C程序设计第三版课件谭浩强第5章选择

上传人:E**** 文档编号:91228964 上传时间:2019-06-26 格式:PPT 页数:51 大小:700.50KB
返回 下载 相关 举报
C程序设计第三版课件谭浩强第5章选择_第1页
第1页 / 共51页
C程序设计第三版课件谭浩强第5章选择_第2页
第2页 / 共51页
C程序设计第三版课件谭浩强第5章选择_第3页
第3页 / 共51页
C程序设计第三版课件谭浩强第5章选择_第4页
第4页 / 共51页
C程序设计第三版课件谭浩强第5章选择_第5页
第5页 / 共51页
点击查看更多>>
资源描述

《C程序设计第三版课件谭浩强第5章选择》由会员分享,可在线阅读,更多相关《C程序设计第三版课件谭浩强第5章选择(51页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计,_,湖北师范学院计算机科学系,第五章,选择结构程序设计,主要内容,5.1 关系运算符和关系表达式 5.2 逻辑运算符和逻辑表达式 5.3 if语句 5.4 switch语句 5.5 程序举例,Hubei Normal University,4,5.1 关系运算符和关系表达式,(一).关系运算符及其优先次序 (大于) = (大于或等于) = (等于) != (不等于),说明: 关系运算符的优先级低于算术运算符 关系运算符的优先级高于赋值运算符,Hubei Normal University,5,(二).关系表达式 用关系运算符将两个表达式(可以是算术表达式 或关系表达式,逻辑表达

2、式,赋值表达式,字符 表达式)接起来的式子,称关系表达式 例:ab,a+bb+c,(a=3)(b=5),ab)(bb”的值为“真”,表达式的值为1。,C语言中没有专用的逻辑值,1代表真,0代表假,Hubei Normal University,6,(三) 关系运算符的结合律,C语言规定关系表达式采取左结合律。表达式 中出现优先级别为同一级别的运算符时,则按从 左到右结合方向处理。 例如: int a=2,b=3,c=1; abb,值是0,再计算033,值是1,再计算12,值为 1,Hubei Normal University,7,注意: 1、对于关系运算符两边类型不等时,运算前按一般 算术转

3、换规则自动转换成相同类型,再运算。 50+70=100.0 50+70=120 120.0 120.0=100.0 0 2、用浮点数来作为比较的测试条件时,因为有些误 差,所以不能精确的成立。 float x,y;int z; z=x/y*y=x; 0 (x- x/y*y)1e-6,Hubei Normal University,8,3 char c; c=getchar(); if(ca) c=c-32; printf(“%d,%c”,c,c); char c; c=getchar(); if(zc a) c=c-32; printf(“%d,%c”,c,c);,f 70,F,f 102,f

4、,Hubei Normal University,9,5.2 逻辑运算符和逻辑表达式,(一).逻辑运算符及其优先次序 & (逻辑与) 相当于其他语言中的AND | (逻辑或) 相当于其他语言中的OR ! (逻辑非) 相当于其他语言中的NOT,Hubei Normal University,10,1逻辑非 !,逻辑非是一元运算符。 操作数值为0,逻辑非运算的结果为1(逻辑真); 当操作数值为非0时,逻辑非运算的结果为0。 例如: int a=5,b=3; !a 结果:0 !(a b) 结果:1,Hubei Normal University,11,2逻辑与 &,逻辑与是二元运算,只有参加逻辑与运

5、算的两个操作数值均为非0(逻辑真)时,结果才为真。 例如: int a = 5,b = 3; a & b 值:1 (a 0) 值:0,Hubei Normal University,12,3逻辑或 ,逻辑或也是二元运算,只要两个操作数中有一个为非0(逻辑真),结果就为1。 例如: int a=5,b=3; a b 值:1 (a 0) 值:1,Hubei Normal University,13,(二)逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来的 式子就是逻辑表达式 逻辑表达式的值应该是一个逻辑量“真”或“假”。,例:设a=4,b=5: !a的值为0 a&b的值为1 a|b的值为1 !

6、a|b的值为1 4&0|2的值为1,任何非零的数值被认作“真”,Hubei Normal University,14,例:53&84-!0,1&0逻辑值为0,83逻辑值为0,4-1值为3,!0逻辑值为1,53逻辑值为1,表达式值为0,优先次序: ! 算术 关系 &和| 赋值,Hubei Normal University,15,在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。 (1)a&b&c 只有a为真时,才需要判断b的值,只有a和b都为真时, 才需要判断c的值。 (2)a|b|c 只要a为真,就不必判断b和c的值,只有a为假,才 判断b。a和b都为假才判断c,例:(m=ab)&(n

7、=cd) 当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“ab”的值 为0,因此m=0,而“n=cd”不被执行,因此n的值不是0而 仍保持原值1。,Hubei Normal University,16,例:a=0;b=1; c=a,a=0,b=1,c=0,a=1,b=1,c=0,d=1,Hubei Normal University,17,答 (year%4=0&year%100!=0)|year%400=0 案 值为真(1)是闰年,否则为非闰年。,Hubei Normal University,18,5.3 if语句,一.If语句的三种基本形式 (1)单分支选择语句 if(表达式

8、)语句; 例: if(xy) printf(“%d”,x);,Hubei Normal University,19,5.3 if语句(续),(2)双分支选择语句 if(表达式) 语句1; else 语句2; 例: if (xy) printf(“%d”,x); else printf(“%d”,y);,Hubei Normal University,20,5.3 if语句(续),(3)多分支选择语句 if(表达式1)语句1; else if(表达式2)语句2; else if(表达式3)语句3; else if(表达式m)语句m; else 语句n;,Hubei Normal Universi

9、ty,21,5.3 if语句(续),例: if (number500)cost=0.15; else if(number300)cost=0.10; else if(number100)cost=0.075; else if(number50)cost=0.05; else cost=0;,Hubei Normal University,22,写一个程序完成下列功能: 1 、输入一个分数score 2 、score60 输出 E 3 、60=score 70 输出 D 4 、75=score 80 输出 C 5 、80=score 90 输出 B 5 、90=score 输出 A,Hubei

10、Normal University,23,main( ) int score; sanf(“%d”, ,Hubei Normal University,24,if语句中的表达式一般为关系或逻辑表达式,也可以为任何数值类型的表达式。 执行语句可以是一条简单语句、空语句或复合语句,也可以嵌套其它流程控制语句。,复杂条件选择,问题: 输入两个字符ch1和ch2, 如果ch1=Z 且 ch2=B, 则输出“You are right ! “,Hubei Normal University,25,main() char ch1,ch2; ch1=getchar( ); ch2=getchar( ); i

11、f ( ch1 = Z ,Hubei Normal University,26,说明: (1).3种形式的if语句中在if后面都有表达式, 一般为逻辑表达式或关系表达式。 (2).第二,第三种形式的if语句中,在每个 else前面有一个分号,整个语句结束处有一 个分号。 (3).在if和else后面可以只含有一个内嵌的操 作语句,也可以由多个操作语句,此时用花 括号将几个语句括起来成为一个复合语句。,Hubei Normal University,27,例: 输入两个实数,按代数值由小到大的顺序输出这两个数。 #include void main() float a,b,t; scanf(“%

12、f,%f”, ,Hubei Normal University,28,例: 输入三个数a,b,c,要求按由小到大的顺序输出。,If ab 将a和b对换 If ac 将a和c对换 If bc 将b和c对换,Hubei Normal University,29,#include void main ( ) float a,b,c,t; scanf(“%f,%f,%f”, ,Hubei Normal University,30,二.If语句的嵌套 在if语句中又包含一个或多个if语句称为if语句 的嵌套。 形式: If() if() 语句1 else 语句2 Else if() 语句3 else 语

13、句4,内嵌if,Hubei Normal University,31,匹配规则: Else总是与它上面的,最近的,统一复合语句 中的,未配对的if语句配对。,当if和else数目不同时,可以加花括号来确定 配对关系。,Hubei Normal University,32,-1 (x0) 算法1: 算法2: 输入x 输入x 若x0,则y=1 若x=0,则y=0 输出y 若x0,则y=1 输出y,Hubei Normal University,33,#include void main() int x,y; scanf(“%d”, ,Hubei Normal University,34,上例中的程

14、序段有四个,请判断哪个是正确的? 程序1: 程序2: If(x=0) Y=-1; if(x0) y=1; Else else y=0; If(x=0) y=0; else y=-1; Else y=1; 程序3: 程序4: Y=-1; y=0; If(x!=0) if(x=0) If(x0) y=1; if(x0) y=1; Else y=0; Else y=-1;,正 确,正 确,Hubei Normal University,35,三.条件运算符 格式: 表达式?表达式表达式 功能: 判断表达式1的值,如果成立就执行表 达式2,否则就执行表达式3 使用场合:若在语句中,当被判别的表达式的

15、值为“真”或“假” 时,都执行一个赋值语 句且向同一个变量赋值时,可以用一个 条件运算符来处理。,Hubei Normal University,36,例: () =; ; 当ab时将a的值赋给max,当ab时将b的值赋给max, 可以看到无论ab是否满足,都是向同一个变量赋值。 可以用下面的条件运算符来处理: ()?;,Hubei Normal University,37,说明: (1).条件运算符的执行顺序:先求解表达式,若为非(真) 则求解表达式,此时表达式的值就作为整个条件表达式 的值。若表达式的值为(假),则求解表达式,表达 式的值就是整个条件表达式的值。 (2).条件运算符优先级高于赋值运算符 ,低于关系运算符 和算术运算符。 (3).条件运算符的

展开阅读全文
相关资源
相关搜索

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

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