c语言课件--选择结构程序设计

上传人:第*** 文档编号:49186212 上传时间:2018-07-25 格式:PPT 页数:31 大小:400KB
返回 下载 相关 举报
c语言课件--选择结构程序设计_第1页
第1页 / 共31页
c语言课件--选择结构程序设计_第2页
第2页 / 共31页
c语言课件--选择结构程序设计_第3页
第3页 / 共31页
c语言课件--选择结构程序设计_第4页
第4页 / 共31页
c语言课件--选择结构程序设计_第5页
第5页 / 共31页
点击查看更多>>
资源描述

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

1、C语言程序设计信息工程学院 施莹 *关系运算符与关系表达式 逻辑运算符与逻辑表达式 if语句(条件运算符与条件表达式) switch语句 程序举例第五章 选择结构程序设计 5.1关系运算符和表达式 关系运算符 种类:= != 结合方向:自左向右 优先级别:= = !=优先级6(高)优先级7(低)关系表达式的值:是逻辑值“真”或“假”,用1和0表示a+b /c(a+b)ab!=c /(ab)!=ca=bc /a=(bc) 例 int a=3,b=2,c=1,d,f;ab (ab)=cb+cbf=abc算术运算符 关系运算符 赋值运算符高低 关系运算注意:78在C中是允许的,值为0例 int i=

2、1, j=7,a; a=i+(j%4!=0); 则a=2例 a0 结果为A100 结果为10关系运算注意:例 注意区分“=”与“=”int a=0,b=1;if(a=b) printf(“a equal to b”);elseprintf(“a not equal to b”);例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0=1.0 结果为 可改写为:fabs(1.0/3.0*3.0-1.0)ab!a!bab=5;!aab=2;c=3;d=4;m=1;n=1;(m=ab) 执行过程:exprstatement非0=1=0例:if (xy)printf(“%d”,x);exprs

3、tatement1statement2非0=0l形式二: u格式:if (expression) statement1; elsestatement2; u执行过程:例:if (xy) max=x;else max=y; 形式三: 格式:if ( expr1 ) statement1;else if (expr2 ) statement2;else if (expr3 ) statement3;. else statementn; expr1statemnt1非0=0expr2expr3statemntnstatemnt3statemnt2非0非0=0=0u执行过程: 例:if (salary

4、1000) index=0.4; else if (salary800) index=0.3;else if (salary600) index=0.2;else if (salary400) index=0.1;else index=0; 如:if(a=bif(3) printf(“OK”);if(a) printf(“%d”,a);l说明: uif后面的表达式类型任意 u语句可以是复合语句用 u if(x) if(x!=0)if(!x) if(x=0) 例 考虑下面程序的输出结果: #include main() int x,y;scanf(“%d,%d”,if(xy)x=y; y=x;e

5、lsex+; y+;printf(“%d,%dn”,x,y); Compile Error! 编译出错/*ch5_1.c*/ #include main() int x,y; printf(“Enter an integer:“);scanf(“%d“,y=x;if(y main() int a,b; /*变量定义*/printf(“Enter integer a:“); /*语句提示*/scanf(“%d“, /*键盘输入一个数值*/printf(“Enter integer b:“); /*语句提示*/scanf(“%d“, /*键盘输入一个数值*/if(a=b)printf(“a=bn“

6、);elseprintf(“a!=bn“); 例 输入两个数并判断两数相等否运行:Enter integer a:12Enter integer b:12a=b 运行:Enter integer a:12Enter integer b:9a!=b /*ch5_3.c*/ #include main() char c; /*变量定义*/printf(“Enter a character:“); /*语句提示*/c=getchar(); /*键盘输入一个字符*/if(c=0printf(“Enter integer x,y:“);scanf(“%d %d”,x,y)%d,%d“,if(x!=y)i

7、f(xy) printf(“XYn“);else printf(“XYEnter integer x,y:12 12X=Yif (expr1)if (expr2) statement1else statement2内嵌ifif (expr1)if (expr2) statement1 elsestatement3内嵌if if (expr1)statement1 elseif(expr3) statement3else statement4内嵌ifif else 配对原则:缺省 时,else总是和它 上面离它最近的未配对的if配对if() if() if() else.else. else.例

8、: if (a=b)if(b=c)printf(“a=b=c”);elseprintf(“a!=b”);修改: if (a=b) if(b=c)printf(“a=b=c”);elseprintf(“a!=b”);实现if else 正确配对方法:加 例 考虑下面程序输出结果:main() int x=100,a=10,b=20;int v1=5,v2=0;if(ab)printf(“%d”,a);elseprintf(“%d”,b);printf(“%d”,ab?a:b);例 求 a+|b|printf(“a+|b|=%dn”,b0?a+b:a-b);expr1取expr2值取expr3值非

9、01=0例 (a=b)?Y:N(x%2=1)?1:0(x=0)?x:-x(c=a x0,表达式值为axy?1:1.5 /xy ,值为1.0; x70n”);case D: printf(“score60n”);break;lcase后可包含多个可执行语句,且不必加 ; lswitch可嵌套; l多个case可共用一组执行语句。例 switch(score) case 5: printf(“Very good!”);case 4: printf(“Good!”);case 3: printf(“Pass!”);case 2: printf(“Fail!”);default : printf(“d

10、ata error!”);运行结果:score为5时,输出:Very good! Good! Pass! Fail! data error!Break; Break; Break; Break; Break;例 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/*ch5_5.c*/ #include main()

11、 int c;printf(“Enter m or n or h or other:“);c=getchar();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; 例 根据输入字母输出字符串返回开始结束年份yy能被4整 除 y能被100整 除 y能被400整 除打印y“是润年”打印y“不是润年”打印y“不是润年”打印y“是润年”5.5 程序举例例:写程序,判断某一种是否闰年。NYNYNY/*ex5_1.c*/ #include if (leap) main() printf(“%d is”,year); int year,leap; elsescanf(“%d”, printf(“%d is not”,year);if (year%4= =0) printf(“a leap year.n”);if(year%100= =0) if(year%400= =0)leap=1;else leap=0;else leap=1; else leap=0;今 天 作业 题

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

最新文档


当前位置:首页 > 中学教育 > 职业教育

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