C语言第4章选择结构程序设计.ppt

上传人:wuy****n92 文档编号:70104131 上传时间:2023-01-16 格式:PPT 页数:37 大小:261.99KB
返回 下载 相关 举报
C语言第4章选择结构程序设计.ppt_第1页
第1页 / 共37页
C语言第4章选择结构程序设计.ppt_第2页
第2页 / 共37页
点击查看更多>>
资源描述

《C语言第4章选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言第4章选择结构程序设计.ppt(37页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第第4章章选择结构程序设计选择结构程序设计4.1关系运算符与关系表达式关系运算符与关系表达式4.2逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式4.3if语句语句4.4switch语句语句4.5选择程序设计实例选择程序设计实例1/16/2023关关系运算符系运算符1.关系运算符的运算对象、规则与结果、结合性如下表所示:关系运算符的运算对象、规则与结果、结合性如下表所示:对象数名称运算符 运算规则 运算对象 结果结合性双目小于小于等于大于大于等于等于不等于=!满足则为真,结果为1,不满足为假结果为0整型、实型、字符型等逻辑值(整数1或0)自左向右1/16/20232.关系运算符的优先级关系运算符的

2、优先级算术运算符优先于关系运算符,=优先于,!,=同级,结合性是自左向右,!同级,结合性是自左向右 1/16/20233.关系运算符的使用实例关系运算符的使用实例设变量定义如下:charc1a,c2A;(c1,c2可看成整型,其值为97,65)intn165,n297;floatf10.3E1,f23.0001;则:c1c2,n1n2,f1f2的值依次是1.,0,0c1n1,c2n2,c1n2的值依次是1,0,1f1c1,f2c21c2n1c1)的值是1!c2c1的值是0f1f2|!c1的值是0 n132n2&n1c2的值是11/16/2023if语句语句1if语句的三种形式语句的三种形式(1

3、)if(表达式)语句 例如:if(xy)printf(“d”,x);这种if语句的执行过程如图:表达式语句假假(0)真真(非非0)(2)if(表达式)语句1else语句2例如:if(xy)printf(“d”,x););elseprintf(“d”,y););表达式语句1语句2真真假假(3)if(表达式)语句1elseif(表达式2)语句2elseif(表达式3)语句3:elseif(表达式m)语句melse语句n流程图流程图表达式表达式1表达式表达式2表达式表达式3表达式表达式4语句1语句2语句3语句4语句5真真真真假假假假(4)说明:三种形式的三种形式的if语句中在语句中在if后面都有后面

4、都有“表达式表达式”,一般为逻,一般为逻辑表达式或关系表式。辑表达式或关系表式。例如,例如,if(ab&xy)printf(“ab,xy”););在执行在执行if语句时先对表达式求解,若表达式的值为语句时先对表达式求解,若表达式的值为0,按,按“假假”处理,若表达式的值为非处理,若表达式的值为非0,按,按“真真”处理,执行指处理,执行指定定的语句。的语句。假如有以下假如有以下if语句:语句:if(3)printf(“O.K.”););是合法的,执行结果输出是合法的,执行结果输出“O.K.”,因为表达式的值为,因为表达式的值为3,按按“真真”处理。由此可见,表达式的类型不限于逻辑表达处理。由此可

5、见,表达式的类型不限于逻辑表达式,可以是任意的数值类型(包括整型,实型、字符型、式,可以是任意的数值类型(包括整型,实型、字符型、指针型数据)。指针型数据)。第二、第三种形式的if语句中,在每个else前面有一分号,整个语句结束处有一分号。例如:if(x0)print(“f”,x););elseprintf(“f”,x);各有一个分号这是由于分号是C语言中不可缺少的部分,这个分号是if语句中的内嵌语所要求的。如果无此分号,则出现语法错误。else子句不能作为语句单独使用它必须是if语句的一部 分与if配对使用。在if和else后面可以只含一个内嵌的操作语句(如上例),也可以有多个操作语句,此时

6、用花括号“”将几个语句括 起来成为一个复合语句。(5)例:输入两个实数,按其由小到大的次序输出这两个数。程序如下:main()floata,b,t;scanf(“%f,%f”,&a,&b);if(ab)t=a;a=b;b=t;printf(“%5.2f,%5.2f”,a,b);运行情况如下:3.6,3.23.20,3.60例例41设计程序,划分学生的成绩优,良,及格,不及格,输入成绩,输出等级。#includestdio.hmain()intscore;chargrade;scanf(%d,&score);if(score90)grade=5;elseif(score70)grade=4;el

7、seif(score60)grade=3;elsegrade=2;printf(%cn,grade);例例42输入三个整数,按从小到大的顺序输出。#includestdio.hmain()inta,b,c,t;scanf(%d%d%d,&a,&b,&c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(%d,%d,%dn,a,b,c);2.嵌套的嵌套的if语句语句 在 if()()语句1else语句2中,其中语句1,语句2本身又 可以是if语句,从而构成了嵌套的if语句。C规定,else也必 须与最近的if相匹配。例1:

8、if()if()语句1;else语句2;elseif()语句3;例4-3Y=1(X0)编一程序,输入一个x值,输出y值,流程图如下:开始输入xX0Y1X0Y0Y1输出y结束YNYN有以下几个程序,请判断哪个是正确的?程序1:main()intx,y;scanf(“%d”,&x);if(x=0)if(x0)y=1;elsey=0;elsey=1;程序3:将上述if语句改为:y=1;if(x!0)if(x0)y=1;elsey=0;程序4:y0;if(x=0)if(x0)y=1;elsey=1;只有程序1和程序2是正确的switch语句1switch的一般形式:switch(表达式)case常量表

9、达式1:语句1case常量表达式2:语句2:case常量表达式n:语句ndefault:语句 n1例例44根据输入的百分制成绩,转换成相应的等级。#includestdio.hmain()intscore,mark;printf(请输入成绩n);scanf(%d,&score);mark=score/10;switch(mark)case10:case9:printf(%d-An,score);break;case8:printf(%d-Bn,score);break;case7:printf(%d-Cn,score);break;case6:printf(%d-Dn,score);break

10、;case5:case4:case3:case2:case1:case0:printf(%d-En,score);break;2关于switch的说明:(1)switch后面括弧内的“表达式”,ANSI标准允许它为任 何类型。(2)当表达式的值与某一个case后面的常量表达式的值相等时,就执行此case后面的语句,若所有的case中的常量表达式的值都没有与表达式的值匹配的,就执行default后面的语句。(3)每一个case的常量表达式的值必须互不相同,否则就会出 现互相矛盾的现象。(4)各个case和default的出现次序不影响执行结果。(5)执行完一个case后面的语句后,流程控制转移到

11、下一个 case继续执行。“case常量表达式”只是起语句标号作用,并不是在该处进行条件判断。在执行switchswitch语句时,根据switchswitch后面表达式的值找到匹配的入口标号,就从此标号开始执行下去,不再进行判断。因此,应该在执行一个casecase分支后,使流程跳出switchswitch结构,即终止 switchswitch语句的执行。可以用一个breakbreak语句来达到此目的。选择结构是结构化程序设计中的三种基本结构之一。在大多数程序中都会包含选择结构。它的作用是,根据所指定的条件是否满足,决定从给定的两组或多组操作选择其一。选择程序设计举例1.写程序,判断某一年是

12、否是闰年。以变量leap代表是否闰年的2.信息。若闰年,令leap1;非闰年,leap0。最后判断leap3.是否为1(真),若是,则输出“闰年”信息。真假year被4整除真真真假假假year被100整除year被400整除Leap1Leap0Leap1Leap0leap输出“闰年”输出“非闰年”编写程序如下:main()intyear,leap;scanf(“%d”,&year);if(year%40)if(year%1000)if(year%4000)leap=1;elseleap=0;elseleap=1;elseleap=0;if(leap)printf(“%dis”,year);el

13、seprintf(“%disnot”,year);printf(“aleapyear.n”);运行情况如下:19891989isnotaleapyear.20002000isaleapyear.可以将程序中第513行改写成以下的if语句if(year%4!=0)leap=0;elseif(year%100!=0)leap=1;elseif(year%400!=0)leap=0;elseleap=1;也可以用一个逻辑表达式包含所有的闰年条件,将上述if语句用下面的if语句代替:if(year%40&year%100!=0)|(year%4000)leap=1;elseleap=0;2.写程序。运

14、输公司对用户计算运费。路程(s)越远,每公3.里运费越低。标准如下:S250km没有折扣250S5002%折扣500S10005%折扣1000S20008%折扣2000S=3000)c=12;elsec=s/250switch(c)case0:d0;break;case1:d2;break;case2:case3:d5;break;case4:case5:case6:case7:d8;break;case8:case9:case10:case11:d10;break;case12:d15;break;f=p*w*s*(1-d/100.0);printf(“freight=%15.4f”,f);

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

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com