国二C语言课件第5章选择结构程序设计

上传人:w****i 文档编号:92799136 上传时间:2019-07-13 格式:PPT 页数:38 大小:223KB
返回 下载 相关 举报
国二C语言课件第5章选择结构程序设计_第1页
第1页 / 共38页
国二C语言课件第5章选择结构程序设计_第2页
第2页 / 共38页
国二C语言课件第5章选择结构程序设计_第3页
第3页 / 共38页
国二C语言课件第5章选择结构程序设计_第4页
第4页 / 共38页
国二C语言课件第5章选择结构程序设计_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《国二C语言课件第5章选择结构程序设计》由会员分享,可在线阅读,更多相关《国二C语言课件第5章选择结构程序设计(38页珍藏版)》请在金锄头文库上搜索。

1、C语言程序设计,第五章 选择结构设计,2,目 录 5.1 关系运算符与关系表达式 5.2 逻辑运算符与逻辑表达式 5.3 条件运算符与表达式 5.4 if语句 三种形式;嵌套 5.5 switch语句 5.6 程序举例,3,5.1 关系运算符和表达式关系运算符 种类:= != 结合方向:自左向右 优先级别,例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc),4,关系表达式的值:是逻辑值“真”或“假”,用1和0表示,例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc,/表达式值1,/表达式值1,/表达式值0,/d=1,/f=0

2、,5,关系运算注意:,例 若a=0; b=0.5; x=0.3; 则 a=x=b的值为,0,例 5278在C中是允许的, 值为,0,例 int i=1, j=7,a; a=i+(j%4!=0); 则a=,2,例 a0 结果为 A100 结果为,1,0,6,关系运算注意:,例 注意区分“=”与“=” int a=0,b=1; if(a=b) printf(“a equal to b”); else printf(“a not equal to b”);,例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0=1.0 结果为 可改写为:fabs(1.0/3.0*3.0-1.0)1e-6,0

3、,7,a,b,!a,!b,a&b,a|b,真,假,真,假,假,假,真,真,5.2 逻辑运算符和表达式 p92逻辑运算符 种类: ! & | 逻辑运算真值表,8,例 ab&xy a=b|x=y !a|ab,优先级:,结合方向:,/ (a=x) & (x=b),/(ab)&(xy),/(a=b)|(x=y),/(!a)|(ab),9,例 a=4;b=5; !a a&b a|b !a|b 4&0|2 53&2|84-!0 c&d,值为1,值为0,值为1,值为1,值为1,值为1,/(53)&2|(8(4-(!0) 值为1,10,短路特性:逻辑表达式求解时,并非所有的逻辑运算符都被执行,只是在必须执行下

4、一个逻辑运算符才能求出表达式的解时,才执行该运算符,例 a (m=ab)&(n=cd),/结果m=0,n=1,11,作业(p111):5.3,12,5.3 条件运算符与表达式 p102 一般形式: expr1 ? expr2 : expr3 功能:相当于条件语句,例 求 a+|b| printf(“a+|b|=%dn”,b0?a+b:a-b);,例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a & c=z)?c-a+A:c,13,条件运算符可嵌套 如 x0?1:(x0?-1:0) 优先级: 13,结合方向:自右向左 如 ab?a:cd?c:d ab?a:(cd?c

5、:d) expr1、expr2、expr3类型可不同,表达式值取较高的类型,例 x?a:b /x=0,表达式值为b; x0,表达式值为a xy?1:1.5 /xy ,值为1.0; xy ,值为1.5,14,5.4 选择型程序设计 p95 if语句(条件选择语句) if语句的三种形式 形式一: 格式:if (expression) statement 执行过程:,例:if (xy) printf(“%d”,x);,15,形式二:格式: if (expression) statement else statement2,例:if (xy) max=x; else max=y;,执行过程:,16,形

6、式三,格式: 执行过程,if ( expr1 ) statement1 else if (expr2 ) statement2 else if (expr3 ) statement3 . else statementn ,17,例:if (salary1000) index=0.4; else if (salary800) index=0.3; else if (salary600) index=0.2; else if (salary400) index=0.1; else index=0;,18,如:if(a=b,说明: if后面的表达式类型任意 语句可以是复合语句 if(x) if(x!

7、=0) if(!x) if(x=0),19,例 考虑下面程序的输出结果: #include main() int x,y; printf(“Please input (x,y):n“); scanf(“%d,%d“, ,Compile Error!,20,/*ch5_2.c*/ #include main() int x,y; printf(“Enter an integer:“); scanf(“%d“, ,例 求一个数的绝对值,运行:Enter an integer:-12 integer:-12-absolute value :12,21,/*ch5_3.c*/ #include mai

8、n() int a,b; printf(“Enter integer a:“); scanf(“%d“, ,例 输入两个数并判断两数是否相等,运行:Enter integer a:12 Enter integer b:12 a=b,运行:Enter integer a:12 Enter integer b:9 a!=b,22,/*ch5_4.c*/ #include main() char c; printf(“Enter a character:“); c=getchar(); if(c=0 ,例 判断输入字符种类,运行:Enter a character: The character is

9、 a control character,运行:Enter a character:8 The character is a digit,运行: Enter a character: D The character is a capital letter,运行: Enter a character: h The character is a lower letter,运行: Enter a character:F1 The character is other character,23,if语句嵌套: 一般形式:,24,例 输入两数并判断其大小关系,/*ch5_5.c*/ #include m

10、ain() int x,y; printf(“Enter integer x,y:“); scanf(“%d,%d“, ,运行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y,25,if else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对,例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,实现if else 正确配对方法:加 ,26,例 考虑下面程序输出结果: /*ch5_6.c*/ main() int x=100,a=10,b=20; i

11、nt v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; x=-1; printf(“%d”,x); ,0,结果:-1,27,5.5 switch语句一般形式 执行过程,switch( 表达式) case E1: 语句组 1; break; case E2: 语句组 2; break; . case En: 语句组 n; break; default: 语句组 ; break; ,28,说明: E1,E2,En是常量表达式,且值必须互不相同 语句标号作用,必须用break跳出 case后可包含多个可执行语句,且不必加 switc

12、h可嵌套 多个case可共用一组执行语句,29,如: case A: case B: case C: printf(“score60n”); break; ,30,例 ch5_7.c main() int score=4; switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); ,运行结果:score为4时,输出: Good! Pass! Fail!

13、 data error!,31,例ch5_8.c switch可嵌套 void main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,a,b); ,运行结果: a=2,b=1,32,/*ch5_9.c*/ #include main() int c; printf(“Enter m or n or h or other:“); c=getchar()

14、; switch(c) case m: printf(“nGood morning!n“);break; case n: printf(“nGood night!n“); break; case h: printf(“nHello!n“); break; default : printf(“n?n“); break; ,例ch5_9.c 根据输入字母输出字符串,33,例题(p111)5.6 给出一百分制成绩,要求输出成绩等级A,B,C,D,E,F。90A分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。,main() float score; char grade;

15、printf(“Please input the score:”); scanf(“%f”, ,35,5.6 程序举例 p106,1.写程序,判断某一年是否闰年,if(year%4=0) if(year%100=0) if(year%400=0) leap=1; else leap=0; else leap=1; else leap=0; ,36,if(year%4=0,leap=0; if(year%4=0,37,例:求 ax2+bx+c=0 方程的解 p109 自学,例:运输公司对用户计算运费。路程skm越远,每吨千米运费越低。 自学,38,作业(p111):5.4,5.5,总结: 本章主要讲述: 各类表达式(关系、逻辑、条件) 选择结构程序,主要包括: if语句 switch语句(含break语句),

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

当前位置:首页 > 高等教育 > 其它相关文档

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