- 1、本文档共32页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C程序设计 第4章 选择结构
第4章 选择结构 关系表达式 逻辑表达式 if 语句 switch 语句 关系运算符 关系运算符有: 、=、 、 =、 = = 、! = 其中 、=、 、 =比 = = 、! =的优先级高。 关系运算符的结合性为左结合。 关系表达式 关系表达式的值是逻辑量,用1或0表示。非0为真,0为假。 例: 若a=1,b=2,c=3,那么 cba的值是1 。 例:已知int x=5,y=2,z=3; 则执行x=yz;后,x的值为0。 例题 main ( ) { int a,b,c; a=3;b=4;c=5; printf(“%d,“,ab+c); Printf(“%d,%d\n”,a-bc*c,abc); } 结果是:0,1,0 逻辑表达式 逻辑运算符有:与 、或 || 、非 ! 例题 main ( ) { int a,b,;c a=1;b=1;c=0; printf(“%d,%d,%d\n“,ab,a||c,bc); printf(“%d,%d,%d\n“,!a,b||c,!ab||c); } 运行结果:1,1,0 0,1,0 例题 main ( ) {int a=-1,b=4,k; k=(++a0)!(b--0); printf(%d%d%d\n,k,a,b); } 结果:004 注意 在逻辑表达式运算时,如果已经能够计算出表达式的值,后面的运算就不再进行。 例如,在 1 5 || 0 6中, 0 6没有运行,因为对于 || 运算,只要有一个操作数是1,结果就是1。 混合运算顺序 !(非) (高) 算术运算符 关系运算符 || 赋值运算符 (低) 例题 main() { int a=3,b=14,c=5,d; d=a+b*2c*cb-ca+b%5||!(c0); printf(d=%d\n,d); } 结果: d=0 条件表达式 格式:表达式1?表达式2:表达式3 举例:max=(ab)?a:b 表示 当ab时,max=a;当ab时,max=b 例题 main ( ) { int a,b,c; scanf(%d%d“,a,b); c=(ab)?a:b; printf(“最大值为%d\n“,c); } 注意 条件表达式的结合性是右结合。 如果表达式1成立,只计算表达式2,不计算表达式3;否则只计算表达式3,不计算表达式2。 例如:main() {int a=1,b=2,c=3,d=4; printf(%d\n,ab?++a:cd?c:d); printf(%d\n,a); } if语句 第一种形式:if(表达式)语句1 else 语句2 例如:if (ab) max=a; else max=b; 第二种形式:if(表达式)语句 例如:if (AB) y=x+1; 第三种形式 if (表达式1)语句1 else if(表达式2)语句2 …… else 语句n 例如:if(a10) b=3*a; else if (a7) b=2*a+1; else if (a3) b=a+7; else b=a-4; 使用 if 语句时应注意 if 表达式一般为关系或逻辑表达式。 else 必须与 if 配对。 当 if 或 else 后面需要执行若干条语句时,应用花括号将它们括起来组成复合语句。 例:要判断a是否等于0,应使用if(a==0)或者if(!a) 例如 main ( ) {int a,b,t=0; scanf(%d%d,a,b); if(a==2)t=a;a=b;b=t; printf(%d,%d\n,a,b); } 运行时输入:1 3 后,判断a不等于2,条件不成立,不执行t=a;最后显示:3,0 例如 main ( ) { int a=10,b=0; if (a11){a++;b--;} else {a+=2;b-=2;} printf(%d;%d\n,a,b); } 运行结果:12;-2 例如:已知三角形的三条边求面积 程序 #include stdio.h #include math.h main ( ) {int a,b,c; float s,area; scanf(“%d%d%d“,a,b,c); if (a+bca+cbb+ca) {s=0.5*(a+b+c); area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(area=%6.2f\n,area); } else pr
文档评论(0)