c语言选择结构程序设计笔记,C语言选择结构程序设计.ppt

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

1、选择结构程序设计,关系运算符和关系表达式 逻辑运算符和逻辑表达式 If语句 Switch语句 程序举例,关系运算符和表达式 关系运算符 种类:= != 结合方向:自左向右 优先级别:,例 ca+b /c(a+b) ab!=c /(ab)!=c a=bc /a=(bc),关系表达式:用关系运算符将两个表达式连接起来;以下都是合法的关系表达式: 43,ab,a+bb+c,(a=3)(b=5),ab)(bc) 3.44,a54.4,a63 关系表达式的值:是逻辑值“真”或“假”,用1和0表示,例 int a=3,b=2,c=1,d,f; ab (ab)=c b+cb f=abc,/表达式值1,/表达。

2、式值1,/表达式值0,/d=1,表达式值1,/f=0,表达式值0,关系运算注意:,例 若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,关系运算注意:,例 注意区分“=”与“=” int a=0,b=1; if(a=b) /*if(a=b)*/ printf(“a equal to b”); else printf(“a not equal to b”);,例 应避免对实数作相等或不等的判断 如 1.0/3.0*3.0=。

3、1.0 结果为 可改写为:fabs(1.0/3.0*3.0-1.0)1e-6,0,逻辑运算符和表达式 逻辑运算符 种类: ! b=5; !a a,形式二: 格式:if (expression) statement1 else statement2 执行过程:,例:if (xy) max=x; else max=y;,形式三: 格式:,if ( expr1 ) statement1 else if (expr2 ) statement2 else if (expr3 ) statement3 . else statementn ,执行过程:,例:if (salary1000) index=0.4。

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 /c1.c main() int x,y; scanf(“%d,%d”, ,Compile Error!,/*ch4_1.c*/ #include main() int x,y; printf(Ente。

5、r an integer:); scanf(%d, ,例1 求一个数的绝对值,运行:Enter an integer:-12 integer:-12-absolute value :12,#include main() float a,b,t; scanf(“%f,%f”, ,例2 输入两个实数,按代数值由小到大的次序输出这两个数。,运行:3.6,-3.2 -3.20,3.60,#include main() char c; printf(Enter a character:); c=getchar(); if(c=0 ,例3 判断输入字符种类,运行:Enter a character: Th。

6、e character is 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,if语句嵌套: 一般形式:,当内嵌if语句不包含else语句时,容易出错。,若if与e。

7、lse数目不一样时,为实现程序设计者本来的意图,可以加花括号来确定匹配关系,例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“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。

8、); ,结果:100,结果:-1,运行:23 X=23,y=1,条件运算符与表达式 一般形式: expr1 ? expr2 : expr3 执行过程 功能:相当于条件语句,但不能取代一般if语句,例 求 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 x0,表达式值为a xy?1:1.5 /xy ,值为1.0; xy ,值为1.5,switch语句(开关分支语句) 一般形式:,switch( 表达式) case E1: 语句组 1; break; case E2: 语句组 2; brea。

9、k; . case En: 语句组 n; break; default: 语句组 ; break; ,执行过程:,必须是整数型和字符型,说明: E1,E2,En是常量表达式,且值必须互不相同 语句标号作用,必须用break跳出 case后可包含多个可执行语句,且不必加 switch可嵌套 多个case可共用一组执行语句,如: case A: case B: case C: printf(“score60n”); break; .,例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: prin。

10、tf(“Pass!”); case 2: printf(“Fail!”); default : printf(“data error!”); ,运行结果:score为5时,输出: Very good! Good! Pass! Fail! data error!,例 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); ,运行结果。

11、:a=2,b=1,#include 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 c5_5.c 例题5.6 c5_6.c 例题5.7 c5_7.c,5.5例题:判断是。

12、否为润年,If (year%4=0 ,练习题,单项选择题1、if语句的控制条件a.只能用关系表达式 b.只能用关系表达式或逻辑表达式 c.只能用逻辑表达式 d.可以用任何表达式2、以下程序的输出结果是main()float x=2,y; if (x0) y=0; else if(x5a.0.000000 b.0.250000 c.0.500000 d.10.000000,练习题,3、执行以下程序段后,a,b,c的值分别是int a,b=100,c,x=10,y=9;a=(-x=y+)?-x:+y;if(x9)b=x+;c=y;a.9,9,9 b.8,8,10 c.9,10,9 d.1,11,1。

13、0 4、执行下列程序段后,x、y和z的值分别是int x=10,y=20,z=30;if (xy) z=x;x=y;y=z;a.10,20,30 b.20,30,30 c.20,30,10 d.20,30,20,练习题,5、若a和b均是整型变量,以下正确的switch语句是。a.switch(a/b) case 1:case3.2:y=a+b;break; case 0;case 5:y=a-b; b.switch(a*a+b*b); case 3: case1:y=a+b;break; case0:y=b-a;break; c.switch adefault:x=a+b; case 10:y=a-b;break; case 11:y=a*d;break; d.switch(a+b)case 10:x=a+b;break; case 11:y=a-b;break; ,练习题,6、有一函数 7、编写程序,输入3个实数,判断他们是否能够构成三角形,若能够呈三角形,则输出三角形的类型(等边、等腰或一般三角形)。,分别用(1)简单if语句 (2)嵌套的if语句 (3)if_else语句 (4)switch语句。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值