版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程进度(1/4)1/22第一章
计算机、互联网与信息社会计算机的发展、信息社会的特征WindowsXP的简介设备与互联;网上服务与交流浏览器、搜索引擎、ftp、E-mail第二章
计算机系统【课外学习】计算机的硬件组成及性能指标计算机的配置计算机软件系统组成、操作系统计算机应用软件课程进度(2/4)2/22第三章程序设计语言和编程环境编程语言,VisualC++编程环境第四章
程序设计导引(I)程序基本框架、变量、常量、数据类型;表达式第五章程序设计导引(II)语句、控制流、输入和输出、程序风格第六章信息的编码、存储与管理数字化原理:二进制及信息编码存储设备及计算机的分层存储结构文件系统与数据库课程进度(3/4)3/22第七章计算机的内部存储与处理CPU及存储程序原理指令系统第八章算法设计问题求解与算法设计第九章
数组数组(二维数组、多维数组)第十章结构结构课程进度(4/4)4/22第十一章指针与数组指针、动态数组第十二章字符串字符串第十三章函数函数、参数、全局变量、局部变量、递归方法调用第十四章习题课数组、指针、字符串,函数第十五章综合练习及复习习题讲解、编程问题分析、答疑5/22计算机在医学方面能做些什么?在任何一门学科的研究和实践中,计算机都是一种很好的辅助工具可以极大地方便人们的各种日常工作和科学研究
医疗管理及医学信息处理医学研究6/22医疗管理及医学信息处理(1/2)医院行政管理财务、人事、门诊和住院等的管理。药房管理药品的进、销、存等环节的管理医疗信息系统病历管理、…7/22医疗管理及医学信息处理(2/2)医疗专家系统中医诊断系统、…医学设备管理系统B超、化验、…医学图象、数据处理心电图、脑电图、X光片、CT图像、…8/22医学研究数字人分子医学医学矫正与疗效评估生物信息学虚拟手术流行病学分析及预防医学信息处理
……冯·诺依曼模型着眼于计算机的内部结构,定义了处理过程4个子系统:存储器,算术逻辑单元,控制单元,输入/输出单元程序必须存储在存储器中程序由有限的指令组成,指令顺序执行CPU10计算机系统的组成计算机系统包括硬件系统软件系统系统软件操作系统其它系统软件应用软件计算机硬件系统和软件系统的层次关系计算机理论的发展历史图灵
研究了
可计算性提出了
图灵机
和
图灵机能解决的问题类证明了
存在着图灵机无法解决的问题类冯·诺伊曼
给出了
现代计算机的设计蓝图提出了
数字计算机的组成原理和体系结构对指令、指令周期、指令系统和存储式程序控制原理都给出了明确的方案库克(StephenA.Cook)研究了
计算复杂性有一些问题,虽然可计算,但随着问题规模的增加,就连最快的计算机用几百年也不能结束计算图灵机的运作方式图灵机的每一步动作取决于四个因素控制器中的当前状态qi读写头的当前位置(在哪个方格上)当前位置的方格内存储的符号si控制规则表中的规则控制器
根据
qi、si、以及控制规则,
决定:1.向当前方格内写入的符号 2.读写头的移动方向(左移,右移,不动) 3.控制器新的当前状态(START,……,HALT)停机状态启始状态2022/10/27北京大学14文件:让数据资料存储在计算机和网络上文件类型:文本文件、数据文件、可执行程序文件文件名,文件名后缀:文本文件(.txt)、数据文件(.xxx)、可执行程序文件(.exe,.com)文本文件:是存储‘ASCII字符’的可变容量的容器。基本单位是——字节Byte(8bit)。数据文件:各种文字书刊,数据纪录,声音图像,影像,…。数据文件需要经过解译(Decoding和Interpretation)才能成为人们有用的信息。可执行程序文件:应用程序文件,是机器可识别的数据、指令集合。2.3WindowsXP操作系统2022/10/27北京大学152.3WindowsXP操作系统资源管理器的文件管理磁盘分区:A、B、C、D,……
文件的属性:文件类型、大型、可读写性、时间等文件的打开、新建、关闭、保存、另存、打印等文件重命名、命名限制。文件的编辑:选择,剪切,复制,粘贴,鼠标拖动等文件夹:文件容器,新建、属性、移动、拷贝等文件和文件夹的查找帮助,目录和索引2022/10/27北京大学162.3WindowsXP操作系统资源管理器的文件管理磁盘分区:A、B、C、D,……
文件的属性:文件类型、大型、可读写性、时间等文件的打开、新建、关闭、保存、另存、打印等文件重命名、命名限制。文件的编辑:选择,剪切,复制,粘贴,鼠标拖动等文件夹:文件容器,新建、属性、移动、拷贝等文件和文件夹的查找帮助,目录和索引2022/10/27北京大学172.3WindowsXP操作系统附属软件的启动和使用:娱乐、游戏、画图、计算器记事本NotePad.exe的使用:创建文件、编辑和保存 “开始”“程序”“附件”“记事本”画图PaintBrush.exe的使用:创建文件、绘制和保存 “开始”“程序”“附件”“画图”数据文件的打开:音乐(*.mp3)、影像(*.rm)的播放 特定的播放软件mp3:WindowsMediaPlayerrm:RealPlayer
游戏程序的使用:纸牌 “开始”“程序”“附件”“游戏”“纸牌”2022/10/27北京大学182.3WindowsXP操作系统个人化工作环境(桌面、任务栏和开始菜单)桌面:本身就是一个文件夹快捷方式:一个文件得索引,本身也是一个文件在桌面上创建文件夹、快捷方式“开始”中各子菜单的含义新的应用程序安装后,会在“开始”菜单中的子菜单“程序”中建立快捷方式编辑管理“开始”菜单中“程序”子菜单的内容任务栏和“开始”菜单属性任务管理器2022/10/27北京大学19控制面板系统特性:常规、网络标识、环境变量、启动和故障恢复等。显示特性:桌面背景、窗口外观、屏幕保护设置、分辨率设置等。用户和密码:用户和密码管理。鼠标设置:左右手习惯、双击速度、鼠标指针设置等。键盘属性:键盘相应速度设置,输入法区域设置等。日期/时间:更改日期/时间。打印机配置
网络和拨号连接管理工具其他2.3WindowsXP操作系统冯·诺依曼模型着眼于计算机的内部结构,定义了处理过程4个子系统:存储器,算术逻辑单元,控制单元,输入/输出单元程序必须存储在存储器中程序由有限的指令组成,指令顺序执行CPU适配器输出设备适配器硬件系统基本结构
—从“冯·诺依曼”结构出发存在很多类型的总线;每一条总线一般会连接多个适配器;CPU输入设备适配器外部存储器芯片组内部存储器每一个适配器通过插入总线上的插槽/插座,和总线连接在一起“CPU”和“内部存储器”是2个例外:它们不需要通过适配器就能和总线连接;或者说:只有外围设备才需要通过适配器和总线相连“CPU”和“内部存储器”是两个例外:它们不需要通过适配器就能和总线连接。或者说:只有外围设备才需要通过适配器和总线相连。硬件系统基本结构
—从计算机外观出发(由外而内)主机(计算设备、存储设备)基本输入设备(键盘、鼠标)基本输出设备(显示器)通讯设备其它外围设备
这里面是啥?23主板上的主要部件总线(Bus)前端总线(Front-SideBus,FSB)【CPU芯片组】内存总线(MemoryBus)【内存芯片组】高速图形总线【显卡芯片组】PCI-E,AGP外部存储器总线【硬盘适配器、光驱适配器芯片组】SATA,IDE,SCSI低速设备总线(LPC)【BIOS芯片组】【键盘适配器、鼠标适配器、软驱适配器、…芯片组】通用型总线【其它外设适配器芯片组】USB(UniversalSerialBus)PCI,ISA内部总线(InternalBus)【芯片组内部互联】接口:插槽(Slot),插座(Socket),端口(Connector/Port)CPU插槽/座,内存插槽,PCI(-E)插槽,ISA插槽鼠标端口,键盘端口,USB端口芯片组(Chipset)北桥芯片(NorthBridge):CPU、内存、显卡南桥芯片(SouthBridge):BIOS、其它外围设备适配器BIOS(BasicInput/OutputSystem)2022/10/27北京大学24信息的输入输入设备将采集的信息转换成二进制不同的输入设备,根据其输入信息的编码特点,利用其自身的物理电路特性,完成所需采集信息的二进制编码采集,并通过缆线传输到计算机内部信息以二进制形式输入计算机
2022/10/27北京大学25信息以二进制形式从计算机输出由输出设备将二进制信息展示出来
输出设备利用其自身的物理电路特性,将二进制信息变换为人们易于接受和理解的视觉、听觉形式或其它形式信息的输出2022/10/27北京大学26存储器硬件的金字塔结构寄存器高速缓存主存储器软磁盘硬盘其它外存设备速度越来越快容量越来越大计算机信息的分层存储原理2022/10/27北京大学27
外存储器中总是存储着许多文件,其中很多文件是计算机系统工作的基础,包括各种程序(各种系统软件和各种应用程序等),程序工作时所需要使用的各种数据。文件是计算机系统的重要资源。在存储时,除了文件本身的信息内容外,系统里还需要存储与文件相关的一些重要属性信息,包括:文件名:文件的名字类型:所存储的信息类别位置:信息在存储器中存放的位置大小:文件的长度,用字节数为单位计算其他:文件创建者、创建时间、修改时间,等等文件系统2022/10/27北京大学28
目前,在各种操作系统里,都采用同样的方式来分类组织文件:用一种称为目录(Directory)或文件夹(FileFolder)的分层树状结构把文件组织起来,使各种文件分散到目录结构的不同位置,以利于对文件的分类管理和使用。
相关概念路径/目录/文件夹(path)父目录子目录文件名“前缀名”+“.”+“后缀名”,同一个文件夹内,不能有2个同名文件当前目录/当前盘文件的组织结构2022/10/27北京大学29数据库管理系统(DatabaseManagementSystem,DBMS):支持建立和管理数据库的系统软件,它负责对数据库做严格的管理和控制,以保证数据库安全和数据库内容的完整。统一的结构化查询语言(StructuredQueryLanguage,SQL)
多层次数据存取访问接口运行日志服务数据库的维护常见DBMS系统:
dBase、FoxBase、FoxProOracle/SQLServer/DB2/Infomix/Sybase/AccessExcel数据库系统图灵机的运作方式图灵机的每一步动作取决于四个因素控制器中的当前状态qi读写头的当前位置(在哪个方格上)当前位置的方格内存储的符号si控制规则表中的规则控制器
根据
qi、si、以及控制规则,
决定:1.向当前方格内写入的符号 2.读写头的移动方向(左移,右移,不动) 3.控制器新的当前状态(START,……,HALT)停机状态启始状态CPU的内部结构算术逻辑运算器程序控制器寄存器组中断处理器CPU内部总线CPU的内部结构
—
寄存器组由
一组寄存器
组成的
高速存储单元用于
暂时存放
运算数据
或
其它信息整数类型
的
操作数
或
运算结果浮点数类型
的
操作数
或
运算结果指令指令地址各种内部标志信息存取速度CPU寄存器CPU的内部结构
—
程序控制器ProgramControlUnit,CPU的控制中心分析/解释
指令根据
分析/解释
结果
向
其它部件
发出命令控制CPU的工作进度和工作方式具体而言,当一条指令进入CPU后,程序控制器:分析/解释该指令的编码内容;确定为执行该指令应该完成的动作;确定指令相关的参数;例如:对于一个“加法指令”,需要确定两个被加数的地址将
所需的数据
从
主存储器
读取到CPU的寄存器中;要求
算术逻辑运算器
进行相关的运算动作;指示
算术逻辑运算器
将
运算结果
放入
寄存器
或
主存储器
中。CPU的内部结构
—
算术逻辑运算器ArithmeticLogicalUnit(ALU),主要进行算术运算和逻辑运算加法指令的例子一条加法指令(其中包含了两个被加数/操作数的地址)进入CPU;程序控制器
分析该指令,判断两个操作数是在寄存器内,还是在主存内;如果在主存内,程序控制器
从主存内读入操作数;程序控制器
将
加法运算
提交给
ALU;ALU
进行加法运算;ALU
根据程序控制器
的指示,将运算结果存放到寄存器或主存中。CPU的内部结构
—
中断处理器问题背景:在CPU执行一般程序运算的过程中,如何处理紧急出现的事件?比如:鼠标移动事件发生一个紧急事件
触发一个中断信号中断信号的处理:当发现中断信号后,程序控制器
暂停正在运行的程序,保存该程序的运行现场(CPU内的各种状态信息);程序控制器
根据中断信号的编码,从特定位置启动
中断处理程序(由操作系统提供);中断处理程序
运行完毕后,程序控制器
恢复被暂停的程序。CPU的内部结构
—
中断处理器中断信号的产生:各种软硬件,比如:鼠标、键盘、其它外设…中断信号的接收:中断处理器
负责
中断信号的接收,并将中断信号的编码、中断处理程序的起始地址
传给
程序控制器中断信号的检测程序控制器
在每条指令执行完毕后,都会检测
是否出现了新的中断信号CPU的主要性能指标工作主频:CPU内部的时钟频率;1.7GHz~3.0GHz运算字长:CPU一次能够处理的二进制位数;32位/64位运算速度:每秒钟执行的指令数;例如:1000MIPS(MillionInstructionsPerSecond)数字化的指令和程序指令:规定了CPU所能执行的基本功能;每一条指令用固定字节数的二进制编码表示;指令编码中包含了
指令要完成的动作
和
相关的参数。程序:为特定的信息处理任务而预先编制的工作执行方案;按照一定的顺序排列的一组指令;指令的排列顺序
决定了
指令在执行时的先后顺序;CPU依次访问每条指令,完成指令规定的运算任务;由于CPU会频繁的读取程序,程序在执行之前会被Copy到内存中。指令工作周期—读取指令在
读取指令
阶段,程序控制器:读取
程序计数器
中
的
指令地址;根据
指令地址,从
主存
中
读取
相应的指令;将
读取到的指令
存放到
指令寄存器
中。然后,进入
执行指令
阶段…指令工作周期—执行指令在
执行指令
阶段,程序控制器:对
指令
进行
分析/解释;根据
分析/解释的结果,从
主存
中
提取出
指令
的
操作数;根据
分析/解释的结果,要求
ALU
进行相关的运算,并指示
ALU
把运算结果存放在指定的地方;在
ALU
进行运算的同时,程序控制器
更新
指令计数器
中
的
指令地址:在没有中断信号的情况下,将
指令计数器
中
的
指令地址
增加一个指令长度;在出现中断信号的情况下,将指令计数器
中
的
指令地址
赋值为
中断处理程序
的
起始地址。主存储器/内存由基于大规模集成电路的存储芯片组装而成,存储CPU可直接访问的数据和程序主存储器的工作速度和容量对计算机系统整体性能影响极大一次读写大约在几十纳秒(ns)左右1纳秒=10-9秒主存储器容量的基本计量单位为字节(Byte),目前常见的计算机标配内存容量多为512MB、1GB和2GB随机器访问存储器(RAM—RandomAccessMemory)访问时间不随访问地址的不同而不同也即,读写任意地址的存储单元,其所需时间是一样的主要功能:存储数据
和
读写数据主存和CPU之间的信息传输通过
存储总线
进行信息传输存储总线由三组总线构成数据总线:用于传输数据地址总线:用于传输存储单元地址控制总线:用于各种控制信息的传递(读、写等)指令系统指令(programinstruction)组成程序的基本单位。每一条指令:规定了CPU执行指令应该完成的工作(运算、或其它控制动作),控制CPU的相关部件执行微操作,从而完成指令所规定的功能。
指令系统每一条指令用若干字节的二进制编码表示,包括它要完成的动作及其相关的参数指令的分类:存储访问指令算术运算指令逻辑运算指令条件判断和分支转移指令输入输出指令其他用于系统控制的指令下一讲
将
通过
汇编语言
讲解
指令系统程序的基本控制结构程序(Program)由若干条指令按照一定的顺序排列组成,是为信息处理任务而预先编制的工作执行方案算法(Algorithm)为某类处理任务而预先编制的指令的组合方法用于表示问题求解的步骤算法的特点通用性:合理的输入产生正确的输出有效性:有限的指令、可预期的执行结果确定性:每一步动作的下一步都是确定的有穷性:算法的执行应在有限步内结束高级语言源程序编译机器语言目标程序通用程序模块连接可执行程序CPU执行输入数据输出结果编译方式运行前运行时在程序执行前,一次性的
将其转化为机器语言程序高级语言源程序解释CPU执行可执行机器语言指令输入数据输出结果解释方式运行前运行时在程序执行时,即时的
将当前需要执行的语句转化为机器语言如何在VisualC++里建立一个C的编程环境?新建一个
工作空间(Workspace)在这个工作空间内添加一个
项目(Project)在这个项目里建立一个
C++源文件(C++SourceFile)在源文件中进行
编程(Programming)…变量:存放数据的容器(对应于内存空间),有不同的数据类型。语句:一个由分号(;)结尾的单一命令是一条语句(Statement),一条语句可以完成一条或若干条指令功能。为了完成不同的功能,C语言中有多种不同类型的语句(将在第8讲中讲述),如:floats,r;//变量定义语句r=10;//变量赋值语句s=3.1416*r*r;//执行乘法运算并赋值的语句代码段:用大括号({……})围起来的多条语句构成一个代码段(Codeblock);有时代码段同时也包括大括号前的一些修饰性描述,如:inti;for(i=0;i<=1;i++){………… }1、C程序基本框架
——变量/语句/代码段C语言是一种函数式语言,其程序基本组成是函数。每个C程序必须有一个、也只能有一个主函数main()。不管主函数在程序中的位置如何,程序执行总是从主函数开始,在主函数内结束。C程序的复杂功能是通过函数调用来完成的。所有变量、函数必须先定义后使用,并且有一定的作用范围。调用标准库函数或其他人编制的现成函数时,必须使用“文件包含”。(这是遵循“先定义后使用”的原则)每条语句必须用分号“;”结束。编译预处理命令(宏定义、文件包含)不是语句,行末不能用分号结束。C语言本身没有输入/输出语句,其功能须通过调用相关函数来实现。1、C程序基本框架
——总结C中的常量值是用文字串表示的,它区分为不同的类型:整型(int)常量:123,-123长整型(long)常量:123l,-123L单精度(float)浮点常量:1.23f,-1.23e12f双精度(double)浮点常量:1.23,-1.23e12字符(char)常量:用单引号对括起来的一个字符,如‘a’字符串常量:用双引号对括起来的一个字符序列,如"Thisisaconstantstring."。在C中,除了直接写出常量的值之外,还可以通过预编译命令“#define”把一个标识符定义为常量,其定义格式为:#definePI3.141593、数据类型、变量和常量
——常量和数学中的变量有所不同,程序中的变量代表内存中某个“存储单元”或某块内存区域(若干个连续的存储单元),可以用来保存数据,通常用一个名字来标识。显然,存储单元或内存区域所存储的数据在程序执行过程中是可能变化的。在程序中,有三种情况涉及到变量:变量的定义:根据给定的数据类型,在内存中分配一个连续的内存区域,并用一个标识符来对它命名,这个标识符就是变量名变量的赋值:把数值存放到某个变量所指示的内存区域变量的引用:使用某个变量中存储的数据3、数据类型、变量和常量
——变量一些特殊字符的常量表示法:反斜线(Backslash) ‘\\’退格(Backspace) ‘\b’回车(Carriagereturn) ‘\r’进纸符(Formfeed) ‘\f’制表符(Formfeed) ‘\t’换行(Newline) ‘\n’单引号(Singlequote) ‘\’’3、数据类型、变量和常量
——字符类型变量(char)
运算符(Operator
)规定了对操作数的处理规则,C语言中的运算符有:算术运算符:―(负号),+,―,*,/,%(取余数),++,――关系运算符:>,<,>=,<=,==,!=逻辑运算符:!,&&,||位运算符:>>,<<,&,|,^,~赋值运算符:=,及其扩展赋值运算符如+=,―=,*=,/=等。条件运算符:?:注意:关系运算符==
和赋值运算符
=的区别4、运算符与表达式
其它运算符分量运算符
·,->
(在结构数据类型及指针中用到)下标运算符
[index]
(在数组中用到)数据长度运算符sizeof
(以字节为单位)inta;sizeof(int);sizeof(a);分隔符
,
(函数参数分隔,变量定义等)inta,b,c;intmax(inta,intb,intc);强制类型转换运算符(DataType)intyear=(int)ceil(x/2);函数调用运算符
()scanf(“%d”,&a);…4、运算符与表达式4、运算符与表达式
根据运算符的不同,表达式也有不同的类型:算术表达式(算术运算)关系表达式(主要用于条件判断)逻辑表达式(主要用于条件判断)位运算表达式(二进制逻辑运算)赋值表达式(与存储访问相关)条件表达式(用于条件判断)在一个复杂的表达式中,往往包含有其他类型的表达式。
存储访问指令算术逻辑运算指令条件判断及分支转移指令输入输出指令:scanf(),printf()
其他指令4、运算符与表达式——算术表达式
使用算术运算符和括号将操作数连接起来的表达式称为算术表达式:
―(负号),+(加法),―(减法),*(乘法),/(除法),%(取余数,只对整型数据有效),如:-3+a-b*5,(x+y)/z+(3*r/5),a%b++(自加)、――(自减):只适合于变量,不适合于常量或表达式,例如:5++或(a+b)--都是不正确的。这两个运算符可用在变量之前或变量之后,如i++和++i。对变量来说,这二种情况的效果都是一样的,都是使变量i加1。但在表达式中,则它们的含义不同,如:
j=++i;表示先将i的值加1,再赋给j,如果i的值是5,则j的值是6。(先给变量加1,再使用变量)
j=i++;表示先将i的值赋给j,再把i的值加1,如果i的值是5,则j的值是5。(先使用变量,再给变量加1)4、运算符与表达式——逻辑表达式
使用逻辑运算符和括号将操作数(通常是关系表达式)连接起来的表达式称为逻辑表达式:
&&(逻辑与):当2个操作数都为非0或真时,结果为1(真),否则结果为0(假),如:(x>1)&&(x<=20)
||(逻辑或):当2个操作数有一个为非0或真时,结果为1(真),否则结果为0(假),如:(x<=1)||(x>20)
!(逻辑非):将一个非0或为真的操作数变为0,或将0或为假的操作数变为1,如:!(x>y)
逻辑运算&&和||连接的表达式是自左向右求值的,一旦知道结果的真、假值,求值马上停止:
(a+1<c)&&(b+1<1),若(a+1<c)为0,则表达式的值为0(a+1<c)||(b+1<1),若(a+1<c)为1,则表达式的值为14、运算符与表达式——逻辑表达式
使用逻辑运算符和括号将操作数(通常是关系表达式)连接起来的表达式称为逻辑表达式:
&&(逻辑与):当2个操作数都为非0或真时,结果为1(真),否则结果为0(假),如:(x>1)&&(x<=20)
||(逻辑或):当2个操作数有一个为非0或真时,结果为1(真),否则结果为0(假),如:(x<=1)||(x>20)
!(逻辑非):将一个非0或为真的操作数变为0,或将0或为假的操作数变为1,如:!(x>y)
逻辑运算&&和||连接的表达式是自左向右求值的,一旦知道结果的真、假值,求值马上停止:
(a+1<c)&&(b+1<1),若(a+1<c)为0,则表达式的值为0(a+1<c)||(b+1<1),若(a+1<c)为1,则表达式的值为14、运算符与表达式——位运算表达式
使用位运算符和括号将操作数连接起来的表达式称为位运算表达式:
&(按位与),|(按位或),^(按位异或),~(按位非):二进制位逻辑运算
<<(左位移):将左侧操作数的二进制数值向左移动若干位(由右侧的操作数给出),移出去的位丢弃,空出的位用0填补。
>>(右位移),将左侧操作数的二进制数值向右移动若干位(由右侧的操作数给出),移出去的位丢弃,空出的位用符号位(对有符号数)或0(对无符号数)来填补。4、运算符与表达式——位运算表达式
位运算符的操作数必须是整型数据。在C中,整型数据分有符号整数和无符号整数,是用一定长度的二进制位来表示。以32位整数为例来说明位移动运算:有符号数:有符号整数做位移运算时,符号位是不参与移动的。左移时,空出的位用0填补;右移时,空出的位用符号位填补。(机器内数据的补码表示)
无符号数:没有符号位,不管左移或右移,空出的位用0填补。位移运算的实质(在不发生溢出时):左移:x<<n,相当于x*2n右移:x>>n,相当于x/2n11111…xx11110…110101101…10100011…xx1右移2位4、运算符与表达式——表达式计算中的数据类型转换
在表达式中,整型、实型、字符型数据可以混合运算。运算中,不同类型的数据需要先强制转化为同一类型(利用强制类型转换运算符),然后进行运算。但是,在把容量大的类型转换为容量小的类型时必须注意:转换过程中可能导致溢出或损失精度
doublea=4.0e40;
intb=(int)a;//b<a(为什么?)浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入
(int)23.7==23 (int)-45.89f==-45
注意:2个整数相除,得到的结果仍为整数
3/2的值为1,1/2的值为0运算符的优先次序:一个复杂的表达式值,往往要涉及不同的运算符,在表达式求值时,其计算次序是要符合一定的规则的,即不同运算符的先后次序是不同的。(不用死记,复杂表达式中多用“()”运算符)1)
.,->,[],() 9)
^2)
++,--,!,~,-,(DataType),sizeof 10)
|3) *,/,% 11)
&&4)
+,- 12)
||5)
>>,<< 13)
?:6)
>,<,>=,<= 14)
=,+=,-=,*=,/=,7)
==,!= %=,^=,&=,|=8)
& <<=,>>=,4、运算符与表达式——运算符的优先次序总结C程序基本框架:预编译处理、函数、语句、注释
C语言基本规范:标识符、关键字数据类型、变量、常量运算符、表达式标准库函数:输入与输出
表达式expression的值应该是数值(0表示假,非0表示真)。通常表达式expression是关系表达式或逻辑表达式。如:
x>(y+1),x>y&&x>z,x>10||x<5每个单一语句后面都要有分号。为了增强程序的可读性,应将if或else后的语句用{}括起来。
elseif和else子句是任选的,不能单独作为语句使用,它必须和if语句配对使用,并且总是与离它最近的if配对。1、语句与控制流
——条件语句if-else1、语句与控制流
——条件语句if-else条件表达式“?:”能够部分替代if-else语句,如:x=(a>b)?(a-b):(b-a);======================if(a>b){x=a-b;}else{x=b-a;}但是,初学者最好不使用条件表达式,而用if-else语句来替代。
表达式expression的值类型必须是整型或字符型:char,short,int,long。
case子句中的值valueI也必须是整型或字符型常量,而且所有case子句中的值应是不同的。执行switch语句时,首先对表达式expression求值,然后与每个case子句中的常量值比较,若找到匹配的常量(相等),程序就执行该分支的语句。1、语句与控制流
——多分支语句switch-case/default1、语句与控制流
——多分支语句switch-case/defaultintyear,month,days;scanf(“%d%d”,&year,&month);switch(month){case
1:case
3:case
5:case
7:case
8:case
10:case
12:{days=31;
break;}
计算某年某月的天数。case
4:case
6:case
9:case
11:{days=30;
break;}default://month==2{if((year%4==0&&year%100!=0)||(year%400==0)){days=29;}elsedays=28;}}
循环语句while(当型循环)
[initialization]//初始化条件
while(termination){//循环条件
body;//循环体
[iteration]//迭代,变更循环条件
}当表达式termination的值为“真”(非0)时,执行{}中的语句,否则终止循环。1、语句与控制流
——循环语句while(当型循环)body假真inittitera
循环语句do-while(直到型循环)
[initialization]//初始化条件
do{ body;//循环体
[iteration]//迭代,变更循环条件
}while(termination);//循环条件首先执行一遍{}中的语句,当表达式termination为“真”(非0)时,继续执行{}中的语句,否则终止循环。1、语句与控制流
——循环语句do-while(直到型循环)tbody假真inititera
循环语句for(另一种当型循环)for(initialization;
termination;
iteration){ body;//循环体}for语句执行时,首先执行初始化操作initialization
,然后判断终止条件termination是否满足,如果满足,则执行循环体中的语句(body),最后执行迭代部分iteration
。完成一次循环后,重新判断终止条件termination。tbody假真iterainit1、语句与控制流
——循环语句for(另一种当型循环)for语句中初始化、终止以及迭代部分都可以为空语句(但分号不能省),三者均为空的时候,相当于一个无限循环。for(;;){……}
在初始化部分和迭代部分可以使用逗号语句,来进行多个操作。逗号语句是用逗号分隔的语句序列。
for(inti=0,intj=10;i<j;i++,j--) { …… }1、Java控制语句
——循环语句for(另一种当型循环)return语句从当前函数中退出,返回到调用该函数的语句处,并从紧跟该语句的下一条语句继续程序的执行。返回语句有两种格式:
returnexpression;//当函数需要返回某种类型数据时
return;//当函数的返回类型为void时单独一条return语句放在函数中间时,会使程序不能正常运行,因为其后的语句将不会执行到。若真需要退出函数,可以通过将return语句嵌入某些语句(如if-else)来使程序在未执行完函数中所有语句时退出。1、语句与控制流
——程序转移相关语句return
仅由一个分号组成的语句为空操作语句。空语句不做任何操作,它在一些特殊情况下是很有用的,如用循环来跳过输入字符开始的空格或制表符:while((c=getchar())==‘
’||c==‘\t’);
不要以为空语句不做任何操作就可以滥用它,有时会造成语法错误:1、语句与控制流
——空语句if(d>=0){x=1;};else{x=2;}else子句和前面的if子句被空语句分隔开了,这会导致程序语法错误。程序
=函数的集合函数
=语句的集合语句
=简单语句+复合语句简单语句
=变量定义与初始化语句、赋值语句、函数调用语句、自增(减)语句、return、空语句,
…复合语句
=if-else、switch-case/default、while、do-while、for、break、continue、goto1、语句与控制流2、输入输出控制scanf()的基本格式控制符有:
%d:整数(int)%ld:整数(long)%hd:整数(short)%c:字符(char)%s:字符串(字符数组)%f:单精度浮点数(float)%lf:双精度浮点数(double)2、输入输出控制printf()的基本格式控制符有:
%d:整数(int)%ld:整数(long)%c:字符(char)%s:字符串(字符数组)%f:浮点数(float,double),缺省输出6位小数
%e:浮点数(double),以科学计数法输出,其输出格式为:[-]m.nnnnnne[+/-]xx
可以用%.Nf或%.Ne来控制小数的输出位数,如%.8f,可以输出8位小数,%.10e,可
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026零跑A10大定提车用户画像报告-电动汽车用户联盟
- 农村人居环境整治中农户付费意愿的异质性研究意义
- 报表生成作业指导书
- 2026年湖南省长沙市中考二模九年级历史试题附答案
- 重庆大学《电子技术基础》课件-第4章三相电路及其应用
- 2026年广东省初中学业水平模拟考试物理试卷(二)(含答案)
- 一级建造师考试(机电工程管理与实务)题库含答案(2025年大连)
- 2025年度一级建造师职业资格考试(水利水电工程管理与实务)复习题库含答案
- 石油工程应急预案
- 2025年执业医师考试综合真题及答案
- 考核化验员管理办法
- 混凝土采购供货投标文件
- 浙二医院胸外科护士进修汇报
- 2025年国能考试题库春季
- 《液压与气压传动》课件-第六章 基本回路
- 企业尽职免责管理办法
- DGTJ08-2323-2020 退出民防序列工程处置技术标准
- 党支部书记讲廉洁党课讲稿
- 猴痘培训课件
- 保税货物考试题及答案
- 北航叶轮机械原理课件第4章 轴流压气机气动设计
评论
0/150
提交评论