C程序的流程控制教材gbi.pptx

上传人:jix****n11 文档编号:91088526 上传时间:2023-05-21 格式:PPTX 页数:43 大小:703.19KB
返回 下载 相关 举报
C程序的流程控制教材gbi.pptx_第1页
第1页 / 共43页
C程序的流程控制教材gbi.pptx_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《C程序的流程控制教材gbi.pptx》由会员分享,可在线阅读,更多相关《C程序的流程控制教材gbi.pptx(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1THE SCHOOL OF SOFTWARE ENGINEERING OF HUST2CC语言的结构语言的结构 C语言的三大结构:顺序结构、选择结构和循环结构S1S2S3(a)顺序结构 PS1 S2真 假(b)选择结构 PS2假真(c)循环结构 3本章内容提要判断选择型程序设计 3.13.2循环型程序设计 3.3综合应用 3.4本章小结 3.5思考题 3.64本节知识点C语言中的逻辑值1关系运算符与关系表达式2逻辑运算符与逻辑表达式3ifelse结构的应用4if-else if结构的应用5if语句的嵌套应用6重点关系和逻辑运算1if语句的应用2难点5 前面学过的运算符和表达式?比较?并且?6

2、 判断是针对命题的“真”、“假”进行的。3.1.1 3.1.1 命题的命题的“真真”、“假假”与与CC语言中的逻语言中的逻辑值辑值例如,下面一些命题:1、小强是个大学生2、今天下雨了3、a34、abc5、a5或c4 关系表达式和逻辑表达式是C语言中描述命题的两种基本形式7 关系运算是逻辑运算中比较简单的一种,“关系运算”就是“比较运算”,指对两个表达式值的大小比较。3.1.2 3.1.2 关系运算符关系运算符 C语言中提供有如下6个关系运算符:,=,=,=,!=例3.1 a3int a=5;int a=2;结果为真(True)结果为假(False)83.1.2 3.1.2 关系表达式关系表达式

3、 用关系运算符将两个表达式(算术、关系、逻辑、赋值表达式等)连接起来所构成的表达式,称为关系表达式。例3.2:cab ab=c a=bc a=bc 等效于 c(ab)等效于(ab)=c等效于a=(bc)等效于a=(bc)91、表达式5278在数学上允许否?在C中是否允许?关系表达式注意问题:关系表达式注意问题:按自左而右的结合求解:52值为1;17值为0;08的值为0。即整个关系表达式的值为0。102、由于关系表达式的值是整型数0或1,故也可以将其看成是一种整型表达式。例如,若有:int i=1,j=7,a;a=i+(j%4!=0);关系表达式注意问题:关系表达式注意问题:这种表达式的含义不易

4、被理解,初学时不宜多用113、在判定两个浮点数是否相等时,由于存储上的误差,会得出错误的结果。例如:1.0/3.0*3.0=1.0关系表达式注意问题:关系表达式注意问题:该关系表达式的值为0(假),并不为1(真)。所以应避免对两个实数表达式作“相等”或“不相等”的判别。上式可改写为:fabs(1.0/3.0*3.0-1.0)1e-5 fabs是求绝对值函数。只要1.0/3.0*3.0与1.0之间的差小于10-5(或一个其它的很小的数),就认为1.0/3.0*3.0与1.0相等。124、要表示x在区间a,b中,在数学中使用表达式axb可否?在C语言中使用表达式“a=x=b”可否?关系表达式注意问

5、题:关系表达式注意问题:假设a=0;b=0.5。若x=0.3上式可改写为:a=x 并且 x=b133.1.3 3.1.3 逻辑运算符与逻辑表达式逻辑运算符与逻辑表达式A BBAA(a)“与”(b)“或”(c)“非”三个基本逻辑运算 143.1.3 3.1.3 逻辑运算符逻辑运算符C语言提供三种逻辑运算符:1、&逻辑与(相当日常生活中:而且,并且,只在两条件同时成立时为“真”)2、|逻辑或(相当日常生活中:或,两个条件只要有一个成立时即为“真”)3、!逻辑非(条件为真,运算后为假,条件为假,运算后为真)153.1.3 3.1.3 逻辑表达式逻辑表达式 用逻辑运算符(逻辑与、逻辑或、逻辑非)将关系

6、表达式或逻辑量连接起来构成逻辑表达式。例3.3:ab&xy a=b|x=y!a|ab 等效于(ab)&(xy)等效于(a=b)|(x=y)等效于(!a)|(ab)161、在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。a&b&c a|b|c 逻辑表达式注意问题:逻辑表达式注意问题:例3.4:如果a,b,c,d,m,n分别为:1,2,3,4,1,1分析整个表达式(m=ab)&(n=cd)结果和m,n的结果。172、如果在一个表达式中不同位置上出现数值,应区分哪些是作为数值运算或关系运算的对象(原值),哪些是作为逻辑运算的对

7、象(逻辑值)。逻辑表达式注意问题:逻辑表达式注意问题:例3.5:计算:53&2|84-!018关系和逻辑表达式应用 掌握C语言的关系运算符和逻辑运算符后,可以用一个逻辑表达式来表示一个复杂的条件。例3.6:判断某一年是否闰年。闰年的条件是符合下面两个条件之一:1、能被4整除,但不能被100整除;2、能被4整除,又能被400整除。(year%4=0&year%100!=0)|year%400=0考虑:判断非闰年的条件?193.2 3.2 ifif选择语句的应用选择语句的应用PS1 S2真 假选择结构 203.2 3.2 ifif选择语句的应用选择语句的应用 if语句用来判定所给定的条件是否满足,

8、根据判定的结果(真或假)决定执行给出的几种操作之一。if语句 单分支结构 双分支结构 多分支结构 if语句的嵌套213.2.1 3.2.1 单分支结构单分支结构ifif语句语句格式:if(表达式)语句;引例:如果学生成绩(score)不低于60分,则输出“合格”223.2.1 3.2.1 双分支结构双分支结构ifif语句语句 格式:if(表达式)语句1;else 语句2;引例:如果学生成绩(score)不低于60分,则输出“合格”,否则输出“不合格”。233.2.2 3.2.2 多分支结构多分支结构ifif语句语句 引例:如果学生成绩(score)不低于90分,则输出“优秀”;如果80scor

9、e90,则输出“良好”;如果70score80,则输出“中等”;如果60score70,则输出“合格”;如果score60,则输出“不合格”。243.2.2 3.2.2 多分支结构多分支结构ifif语句语句 分析一:单分支结构if(表达式)语句;特点:满足条件即执行语句程序段:if(score=90)printf(“优秀”)if(score=80&score=70&score=60&score70)printf(“合格”)if(score60)printf(“不合格”)缺点:条件表达式复杂且if语句过多253.2.2 3.2.2 多分支结构多分支结构ifif语句语句分析二:双分支结构可以实现不

10、?263.2.2 3.2.2 多分支结构多分支结构if-else ifif-else if语句语句分析三:多分支结构格式:if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;else if(表达式m)语句m;else 语句m+1;思考-如何写程序?27有无其他方法?283.2.3 3.2.3 ifif语句的嵌套应用语句的嵌套应用在if语句中又包含一个或多个if语句称为if语句的嵌套。格式为:293.2.3 3.2.3 ifif语句的嵌套应用语句的嵌套应用 如果学生成绩(score)不低于90分,则输出“优秀”;如果80score90,则输出“良好”;如果

11、70score80,则输出“中等”;如果60score70,则输出“合格”;如果score60,则输出“不合格”。30说明:说明:1、三种形式的if语句中的“表达式”一般为关系表达式或逻辑表达式,但不限于这两种表达式。例如:if(a)printf(“%d”,a);能运行否?31说明:说明:2、else子句不能单独使用,必须是if语句的一部分,与if配对使用。例如:if(a)printf(“%c”,a);else printf(“%c”,b);else printf(“%c”,c);32说明:说明:3、在if和else后面可以只含一个内嵌的操作语句,也可以有多个操作语句构成的语句块(复合语句)。

12、语句块用 括起来。例如:求边长分别为a,b,c的三角形面积?if(a+bc&b+ca&c+ab)s=0.5*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c);printf(area);else printf(“it is not a triangle”);33说明:说明:4、if嵌套语句中,应当注意if与else的配对关系,else总是与它上面的最近的未配对的if配对。特别是if/else子句数目不一样时本意 实际34说明:说明:5、if嵌套语句解决匹配问题方法(1)利用空语句使if子句数量与else子句数量相同。(2)利用。将没有else子句的if语句用 括起来35

13、思考题一:思考题一:函数:-1(x0)编一个程序,输入x,输出y。有以下几个程序,请判断哪个是正确的?36思考题一:思考题一:程序1:main()int x,y;scanf(d,&x);if(x0)y=-1;else if(x=0)y=0;else y=1;printf(x=d,y=dn,x,y);37思考题一:思考题一:程序2:main()int x,y;scanf(d,&x);if(x=0)if(x0)y=1;elsey=0;else y=-1;printf(x=d,y=dn,x,y);38思考题一:思考题一:程序3:main()int x,y;scanf(d,&x);y=-1;if(x!

14、=0)if(x0)y=1;else y=0;printf(x=d,y=dn,x,y);39思考题一:思考题一:程序4:main()int x,y;scanf(d,&x);y=0;if(x=0)if(x0)y=1;else y=-1;printf(x=d,y=dn,x,y);40思考题二:思考题二:输入两个实数,按数值由小到大的次序输出这两个数。输入三个实数,按数值由小到大的次序输出这三个数。41课堂小结:课堂小结:关系运算和逻辑运算选择结构if语句的应用关系运算符:,=,=,=,!=逻辑运算符:&,|,!各种运算符的优先级,表达式综合应用if语句单分支ifelse语句双分支if-else if语句多分支if语句的嵌套应用if语句的注意问题4243演讲完毕,谢谢观看!

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

当前位置:首页 > 技术资料 > 施工组织

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁