c语言程序设计施莹答案,C语言课件--选择结构程序设计.ppt

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

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

2、=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,关系运算注意:,例 注意区分“=”与“=” 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,返回,a equal to b,fabs(。

3、 )取绝对值函数,5.2逻辑运算符和表达式 逻辑运算符 种类: ! (非) b=5; !a ab=2;c=3;d=4;m=1;n=1; (m=ab) 执行过程:,例:if (xy) printf(“%d”,x);,形式二: 格式:if (expression) statement1; else statement2; 执行过程:,例:if (xy) max=x; else max=y;,形式三: 格式:,if ( expr1 ) statement1; else if (expr2 ) statement2; else if (expr3 ) statement3; . else statem。

4、entn; ,执行过程:,例: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;,如:if(a=b,说明: if后面的表达式类型任意,语句可以是复合语句用 if(x) if(x!=0) if(!x) if(x=0),例 考虑下面程序的输出结果: #include main() int x,y; scanf(“%d,%d”, ,Compile Error! 编译出错,/*ch5_1.。

5、c*/ #include main() int x,y; printf(Enter an integer:); scanf(%d, ,例: 求一个数的绝对值,运行:Enter an integer:-12 integer:-12 absolute value :12,/*变量定义*/ /*语句提示*/ /*键盘输入一个数值*/,/*ch5_2.c*/ #include main() int a,b; /*变量定义*/ printf(Enter integer a:); /*语句提示*/ scanf(%d, ,例 输入两个数并判断两数相等否,运行:Enter integer a:12 Enter。

6、 integer b:12 a=b,运行:Enter integer a:12 Enter integer b:9 a!=b,/*ch5_3.c*/ #include main() char c; /*变量定义*/ printf(Enter a character:); /*语句提示*/ c=getchar(); /*键盘输入一个字符*/ if(c=0 ,例 判断输入字符种类,运行:Enter a character: The character is a control character,运行:Enter a character:8 The character is a digit,运行:。

7、 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,The character is a control character,The character is a digit,The character is a capital letter,The character is a lower letter,T。

8、he character is other character,if语句嵌套: 一般形式:,例 输入两数并判断其大小关系,/*ch5_4.c*/ #include main() int x,y; printf(Enter integer x,y:); scanf(“%d %d”,x,y)%d,%d, ,运行:Enter integer x,y:12 23 XY Enter integer x,y:12 12 X=Y,if else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对,例: if (a=b) if(b=c) printf(“a=b=c”); else printf。

9、(“a!=b”);,修改: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,实现if else 正确配对方法:加 ,例 考虑下面程序输出结果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; x=-1; printf(“%d”,x); ,结果:-1,返回,条件运算符与表达式 一般形式: expr1 ? expr2 : expr3 执行过程 功能:相当于条件语句,但不能取代一般if语句,例 求 a+|b。

10、| printf(“a+|b|=%dn”,b0?a+b:a-b);,例 (a=b)?Y:N (x%2=1)?1:0 (x=0)?x:-x (c=a x0,表达式值为a xy?1:1.5 /xy ,值为1.0; xy ,值为1.5,返回,5.4 switch语句 一般形式:,switch( 表达式) case E1: 语句组 1; break; case E2: 语句组 2; . case En: 语句组 n; break; default: 语句组 ; break; ,执行过程:,说明: E1,E2,En是常量表达式,且值必须互不相同待; 执行完一个case后面的语句,流程转移到下一个case。

11、继续执行,若要终止程序,必须用break跳出;,如: case A: case B: case C: printf(“score70n”); case D: printf(“score60n”); .,break;,case后可包含多个可执行语句,且不必加 ; switch可嵌套; 多个case可共用一组执行语句。,例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); default : printf(“da。

12、ta 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*/ #i。

13、nclude main() 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; ,例 根据输入字母输出字符串,返回,5.5 程序举例,例:写程序,判断某一种是否闰年。,N,Y,N,Y,N,Y,/*ex5_1.c*/ #include if (leap) main() printf(“%d is”,year); int year,leap; else scanf(“%d”,今 天 作业 题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值