重庆大学c程ppt第二章.

上传人:今*** 文档编号:107608421 上传时间:2019-10-20 格式:PPT 页数:65 大小:1,011KB
返回 下载 相关 举报
重庆大学c程ppt第二章._第1页
第1页 / 共65页
重庆大学c程ppt第二章._第2页
第2页 / 共65页
重庆大学c程ppt第二章._第3页
第3页 / 共65页
重庆大学c程ppt第二章._第4页
第4页 / 共65页
重庆大学c程ppt第二章._第5页
第5页 / 共65页
点击查看更多>>
资源描述

《重庆大学c程ppt第二章.》由会员分享,可在线阅读,更多相关《重庆大学c程ppt第二章.(65页珍藏版)》请在金锄头文库上搜索。

1、程序设计技术,C语言数据描述和C程序设计初步 结构化程序设计和C语言的控制结构 数组及其应用 函数与C程序结构 指针与函数 指针与数组 字符串及其应用 结构体类型和联合体类型 C语言的文件处理及其应用 位运算与枚举类型,结构化程序设计和C程序控制结构,C程序的控制结构与条件表示 分支结构及其应用 循环结构及其应用 其他简单控制结构 C语言控制结构应用举例,按照结构化程序设计的基本观点,任何程序都可以通过三种基本程序结构的组合实现。这三种基本结构是: 顺序结构:按语句顺序依次执行的程序结构。 分支结构:根据给定条件是否成立,以决定程序流程转向的程序结构。 循环结构:在某种条件成立时,反复执行某一

2、程序段,直到条件不成立则终止循环的程序结构。 实现分支结构和循环结构的关键是如何实现逻辑判断,即条件的描述和处理。 C语言用关系运算和逻辑运算来实现对程序控制结构中条件的描述和处理。,2.1 C程序控制结构与条件表示,2.1.1 C语言的关系运算,1) 关系运算符和关系表达式 关系运算符用于比较两个运算对象,用关系运算符将两个表达式连接起来的式子称为关系表达式。 2) 关系运算符及其优先级 = =(同级) = !=(同级) 赋值运算符关系运算符算术运算符 多个同级关系运算符为左结合性。 例如:ca+b (先算术运算,后关系运算) (ca)+b (先关系运算,后算术运算),低,高,2.1.1 C

3、语言的关系运算,3)关系运算的结果 关系运算的结果值为逻辑量“真”或”假”,当运算符两边的运算量满足指定的关系时,其值为“真”;否则为“假”。 C语言中没有逻辑数据类型,所以在关系运算中: 用数值“1”表示逻辑量“真”, 用数值“0”表示逻辑量“假”; 例如:设a=3,b=2,c=1,则有: ab)=c /* 结果为1 */ (b+c)!=a /* 结果为0 */ (bc)+a /* 结果为4 */ f=abc /* 左结合,f值为0 */ 例2-1 关系运算示例,2.1.2 C语言的逻辑运算,1)逻辑表达式 指用逻辑运算符将算术表达式、关系表达式或逻辑量连接起来的式子。当需要多个条件来确定程

4、序执行方向时,可用逻辑表达式描述条件。 2)逻辑运算符及其优先级 &(逻辑与)、|(逻辑或)、!(逻辑非) 其中: “&”和“|”是同优先级的双目运算符,遵从左结合性。 “!” 单目运算符,遵从右结合性。 与其它运算符的优先关系:从高到低 !算术运算关系运算&、|赋值运算,3)逻辑运算的结果 是一个逻辑量“真”或“假”。用数值“1”表示逻辑“真”,用数值“0”表示逻辑“假”。 两个逻辑对象a和b之间的逻辑运算真值表:,2.1.2 C语言的逻辑运算,4)判断一个数据对象(逻辑量)的真假时: 若数据对象为数值“0”,则判定为假; 若数据对象为数值非“0”,则判定为真; 例如:设有:int a=8,

5、b=0; 则: a|b /* 结果为1 */ a&b /* 结果为0 */ !a /* 结果为0 */,2.1.2 C语言的逻辑运算,注意: 常用逻辑表达式表示某变量值是否在给定范围内 (x=0)&(x10) 描述:“x0”或者“x10” !(x=0)或x!=0 描述:“x0”,5)逻辑表达式运算时应遵循的两条原则 对逻辑表达式从左到右扫描求解; 在逻辑表达式的求解过程中,任何时候只要逻辑表达式的值已经可以确定,则求解过程不再进行。,例如:int a=1,b=2,c=0; 计算:a+|b+&c+ 结果:逻辑表达式的值为1(a=2,b=2,c=0) 计算:a+&b+|c+ 结果:逻辑表达式的值为

6、1(a=2,b=3,c=0) 例2-2 逻辑运算示例 例2-3 关系与逻辑运算示例(自行分析),2.1.2 C语言的逻辑运算,C程序的控制结构与条件表示 分支结构及其应用 循环结构及其应用 其他简单控制结构 C语言控制结构应用举例,结构化程序设计和C程序控制结构,2.2.1 使用if语句实现单分支结构,1)单分支if语句的结构形式 if(expression) sentence; 其中: expression:条件表达式(关系、逻辑、任何求出0值或非0值的表达式) sentence:任何一条合法的C语句。(包括复合语句、if语句),2.2 分支程序结构及其应用,2)if语句的执行过程: 先计算

7、作为条件的表达式的值; 若表达式的值不为0,则执行结构中的语句(sentence)后执行if结构的后续语句; 若表达式的值为0,则跳过语句(sentence)部分直接执行if结构的后续语句。,2.2.1 使用if语句实现单分支结构,例2-4 编程序实现功能:从键盘上输入一个整数,若该输入数据是奇数则将其输出。,注意:(P53) 假定用符号e表示任意表达式 当表达式值不为0时条件成立,可表示为: if (e) 如 if (x%2) 奇数 if (e!=0) 或 if (x%2!=0) 当表达式值为0时条件成立,可表示为: if (!e) 如 if (!(x%2) 偶数 if (e=0) 或 if

8、 (x%2=0),2.2.1 使用if语句实现单分支结构,2.2.2 复合语句及其应用,在C程序设计中,可能涉及到在某种条件下不能仅用一条简单语句描述的功能。为了满足这种在语法结构上只能有一条语句,而功能的实现又需要多条语句的要求,在C语言中提供了称为复合语句的语句块来解决。 复合语句在语法上作为一条语句考虑:在C语言中,复合语句是用一对花括号“”将若干条C语句括起来形成的语句序列。 注意: C语言的复合语句右括号“”后不需要用用分号“;”结尾。,2.2.2 复合语句及其应用,例2-5 从键盘上输入三角形的三边的边长,若它们能构成一个三角形,则输出其面积。,根据数学知识,若三直边a、b、c构成

9、三角形,则必须满足条件:任意两边的之和大于第三边(即: a+bc 且 a+cb 且 b+ca)。计算三角形的面积的公式为:,2.2.3 if_else语句与双分支结构,双分支结构形式: if(expression) sentence1; else sentence2;,语句的执行过程: 先计算表达式的值,若表达式的值为真(表达式的值不为0),则执行语句1,然后执行if结构的后续语句;否则,执行语句2,然后执行if结构的后续语句。,双分支结构及其应用,例2-6 求任意输入的3个整数中的最大数。,1)条件表达式一般形式如下: exp1 ? exp2 : exp3,2)条件表达式的执行过程: 首先计

10、算表达式exp1的值,若exp1的值为非0(真),则计算表达式exp2的值作为整个条件表达式的值;若exp1的值为0(假),则计算表达式exp3的值作为整个条件表达式的值。,2.2.4 条件运算符与条件表达式,注意: 条件运算符的优先级(从高到低) 算术运算关系运算条件运算赋值运算 例:ab?a:b+1 条件运算符的结合性(右结合性) 例:ab?a:cd?c:d 条件表达式值的类型取exp2、exp3值的类型中较高的类型。,2.2.4 条件运算符与条件表达式,条件(2):两条赋值语句都是为同一个变量赋值 例如:有如下ifelse结构 if(x=A,2.2.4 条件运算符与条件表达式,2.2.5

11、 if语句的嵌套与多分支结构,if结构或者else结构的语句部分又是一个if结构,称为if语句的嵌套。,if语句嵌套的一般形式: if(exp1) if(exp2) sentence1; else sentence2; else if(exp3) sentence3; else sentence4;,注意: if和else的语句部分中只有一个是if结构;嵌套和被嵌套的if结构中一个或者两个都是不平衡的if结构(即没有else部分的结构)。 if语句嵌套时,else子句与if的匹配原则:else子句将与在它上面的、距它最近的、且尚未匹配的if配对。 为明确匹配关系,避免匹配错误,将内嵌的if语句

12、,一律用花括号“ ”括起来。,例2-8 公司按照销售人员收到的订单金额数量评定等级,订单总金额超过一万的为A等,50009999为B等,25004999为C等,2500以下为D等。编制程序根据输入的订单总金额数判定等级。,2.2.5 if语句的嵌套与多分支结构,当被嵌套的if结构均被嵌套在else的语句部分时,形成了一种称为else_if的多分支选择结构,这是if_else多重嵌套的变形。其一般形式为:,if(exp1) sentence1; else if(exp2) sentence2; else if(exp3) sentence3; else if(expN) sentenceN; e

13、lse sentenceN+1;,2.2.5 if语句的嵌套与多分支结构,注意: 在这种特殊的elseif结构中,表示条件的表达式是相互排斥的,执行该结构时控制流程从exp1开始判断,一旦有一个表达式的值为非0(真)时,就执行与之匹配的语句,然后退出整个选择结构;如果所有表示条件的表达式值均为0(假),则在执行语句sentenceN+1后退出整个选择结构;如果当所有的条件均为假时不需要进行任何操作,则最后的一个else和语句sentenceN+1可以缺省。,2.2.5 if语句的嵌套与多分支结构,Else if条件语句构成多分支结构,例3.11 某商场进行促销活动。购物金额超过50元,折扣为5

14、%;购物金额超过100元,折扣为7.5%;购物金额超过300元,折扣为10%;购物金额超过500元,折扣为15%;购物金额没有超过50元,则折扣为0。问顾客应付的金额为多少?,#include void main() float number,con; scanf(“%f“, ,例2-9 编写程序求如下所示多分支方程的解,在程序中,变量x的取值区间为:(DBL_MIN,1)、1,10)、10,DBL_MAX),其中DBL_MIN和DBL_MAX分别表示双精度实型数据所能取得的最小值和最大值。,2.2.5 if语句的嵌套与多分支结构,2.2.6 switch语句与多分支结构,C语言中可用swit

15、ch语句实现多分支选择结构。 1) switch语句的一般形式如下:,switch(expession) case constand1: sentences1; break; case constand2: sentences2; break; case constandN: sentencesN; break; default: sentencesN+1 ,2)执行过程: 首先对expression求值(值是有序型);然后,在语句的花括号内从上至下查找所有的case分支,当找到与条件表达式值相匹配的case时,将其作为控制流程执行的入口,并从此处开始执行相应的语句段,直到遇到break语句或

16、者switch语句的右花括号“”为止。,2.2.6 switch语句与多分支结构,switch(number) case 1: statement1; case 2: statement2; case 3: statement3; default: statement4; statement5;,2,2.2.6 switch语句与多分支结构,3)使用switch语句结构的注意事项 表达式expression的值必须是有序型,即整型、字符 型、枚举型三者之一。 语句段sentences可以是单条语句,也可以是多条语 句,不需要使用花括号 。 语句段sentences中的语句是任意合法的C语句。 case中的常数值应与表达式值对应一致,且各常数值 不能相同。 结构中的break语

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号