收藏 分销(赏)

第5章_选择.ppt

上传人:xrp****65 文档编号:13782297 上传时间:2026-04-13 格式:PPT 页数:40 大小:412.50KB 下载积分:10 金币
下载 相关
第5章_选择.ppt_第1页
第1页 / 共40页
第5章_选择.ppt_第2页
第2页 / 共40页


点击查看更多>>
资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,C,程序设计(第三版),*,第五章,选择结构程序设计,本章要点,关系表达式,逻辑表达式,选择结构程序设计,主要内容,5.1,关系运算符和关系表达式,5.2,逻辑运算符和逻辑表达式,5.3,if,语句,5.4,switch,语句,5.5,程序举例,5.1,关系运算符和关系表达式,1.,关系运算符及其优先次序,(,小于,),(,大于,),=(,大于或等于,),=(,等于,),!=(,不等于,),优先级相同(高),优先级相同(低),说明:,关系运算符的优先级低于算术运算符,关系运算符的优先级高于赋值运算符,5.1,关系运算符和关系表达式,2.,关系表达式,用关系运算符将两个表达式(可以是算术表达式或,关系表达式,逻辑表达式,赋值表达式,字符表达式),接起来的式子,称关系表达式,例:,ab,a+bb+c,(a=3)(b=5),ab)(bb”,的值为“真”,表达式的值为,1,。,C,语言中没有专用的逻辑值,,1,代表真,,0,代表假,5.2,逻辑运算符和逻辑表达式,1.,逻辑运算符及其优先次序,(1)&,&(,逻辑与,),相当于其他语言中的,AND,(2)|(,逻辑或,),相当于其他语言中的,OR,(3)!(,逻辑非,),相当于其他语言中的,NOT,例:,a&b,若,a,b,为真,则,a&b,为真。,a|b,若,a,b,之一为真,则,a|b,为真。,!,a,若,a,为真,则,!,a,为假。,优先次序:,!,(非)-&()-|(),逻辑运算符中的“,&”,和“,|”,低于关系运算符,“,!”,高于算,术运算符,5.2,逻辑运算符和逻辑表达式,2.,逻辑表达式,用逻辑运算符将关系表达式或逻辑量连接起来的式子就,是逻辑表达式。,逻辑表达式的值应该是一个逻辑量“真”或“假”。,例:,设,a=4,b=5:,!a,的值为,0,a&b,的值为,1,a|b,的值为,1 !,a|b,的值为,1,4&0|2,的值为,1,任何非零的数值被认作“真”,5.2,逻辑运算符和逻辑表达式,例:,53&84-!0,自左向右运算,1&0,逻辑值为,0,83,逻辑值为,1,表达式值为,0,5.2,逻辑运算符和逻辑表达式,在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。,(1),a&b&c,只有,a,为真时,才需要判断,b,的值,只有,a,和,b,都为真时,,才需要判断,c,的值。,(2),a|b|c,只要,a,为真,就不必判断,b,和,c,的值,只有,a,为假,才,判断,b。a,和,b,都为假才判断,c,例,:,(,m=ab)&(n=cd),当,a=1,b=2,c=3,d=4,m,和,n,的原值为,1,时,由于“,ab”,的值,为,0,,因此,m=0,,而“,n=cd”,不被执行,因此,n,的值不是,0,而,仍保持原值,1,。,5.2,逻辑运算符和逻辑表达式,用逻辑表达式来表示闰年的条件,能被,4,整除,但不能被,100,整除。,能被,4,整除,又能被,400,整除。,答,(,year%4=0&year%100!=0)|year%400=0,案,值为真,(1),是闰年,否则为非闰年。,5.3,if,语句,1.,If,语句的三种基本形式,(1),if (,表达式)语句,例:,if(xy),printf,(“%d”,x);,表达式,语句,真(非,0,),假,(,0,),5.3,if,语句,(2),if(,表达式,),语句,1,else,语句,2,例:,if(xy),printf,(“%d”,x);,else,printf,(“%d”,y);,条件,语句,1,语句,2,Y,N,5.3,if,语句,(3),if(,表达式,1,)语句,1,else if(,表达式,2),语句,2,else if(,表达式,3),语句,3,else if(,表达式,m),语句,m,else,语句,n,5.3,if,语句,例:,if(number500)cost=0.15;,else if(number300)cost=0.10;,else if(number100)cost=0.075;,else if(number50)cost=0.05;,else cost=0;,5.3,if,语句,说明:,(1),3种形式的,if,语句中在,if,后面都有表达式,,一般为逻辑表达式或关系表达式。,(2),第二,第三种形式的,if,语句中,在每个,else,前面有一个分号,整个语句结束处有一,个分号。,(3)在,if,和,else,后面可以只含有一个内嵌的操,作语句,也可以由多个操作语句,此时用花,括号将几个语句括起来成为一个复合语句。,5.3,if,语句,例5.1,输入两个实数,按代数值由小到大的顺序输出这两个数。,#,includevoid main()float a,b,t;,scanf,(%f,%f,if(ab)t=a;a=b;b=t;printf(,%5.2f,%5.2fn,a,b);,y,n,ab,T=a,A=b,B=t,5.3,if,语句,例5.2,输入三个数,a,b,c,要求按由小到大的顺序输出。,If ab,将,a,和,b,对换,If ac,将,a,和,c,对换,If bc,将,b,和,c,对换,ab,ac,bc,a,和,b,交换,a,和,c,交换,c,和,b,交换,y,y,y,n,n,5.3,if,语句,#include void main(),float a,b,c,t;scanf(,%f,%f,%f,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(%5.2f,%5.2f,%5.2fn,a,b,c);,5.3,if,语句,2.,If,语句的嵌套,在,if,语句中又包含一个或多个,if,语句称为,if,语句的嵌套。,形式:,If(),if(),语句,1,else,语句,2,Else,if(),语句,3,else,语句,4,内嵌,if,5.3,if,语句,匹配规则:,Else,总是与它上面的,最近的,统一复合语句中的,未配,对的,if,语句配对。,例:,If(),if(),语句,1,else,if(),语句,2,else,语句,3,例:,If(),if(),语句,1,else,if(),语句,2,else,语句,3,当,if,和,else,数目不同时,可以加,花括号,来确定配对关系。,5.3,if,语句,-1 (,x0),算法,1,:算法,1,:,输入,x,输入,x,若,x0,则,y=-1,若,x0,则,y=1,若,x=0,则,y=0,输出,y,若,x0,则,y=1,输出,y,5.3,if,语句,#,include,void main(),int,x,y;,scanf,(“%d”,程序段,printf,(“x=%d,y=%dn”,x,y);,5.3,if,语句,上例中的程序段有四个,请判断哪个是正确的?,程序,1,:程序,2,:,If(x=0),Y=-1;if(x0)y=1;,Else else y=0;,If(x=0)y=0;else y=-1;,Else y=1;,程序,3:,程序,4:,Y=-1;y=0;,If(x!=0)if(x=0),If(x,0)y=1;,if(x,0)y=1;,Else y=0;Else y=-1;,正,确,正,确,5.3,if,语句,3.,条件运算符,格式:表达式?表达式,表达式,功能:判断,表达式,1,的值,如果成立就执行,表,达式,2,,否则就执行,表达式,3,使用场合:若在语句中,当被判别的表达式的,值为“真”或“假”时,都执行一个赋值语,句且向,同一个变量,赋值时,可以用一个,条件运算符来处理。,5.3,if,语句,例:,(),=,;,;,当,ab,时将,a,的值赋给,max,,当,ab,时将,b,的值赋给,max,,可以看到无论,ab,是否满足,都是向同一个变量赋值。,可以用下面的条件运算符来处理:,(,)?,;,5.3,if,语句,说明:,(1),条件运算符的执行顺序:先求解表达式,若为非(真),则求解表达式,此时表达式的值就作为整个条件表达式,的值。若表达式的值为(假),则求解表达式,表达,式的值就是整个条件表达式的值。,(2),条件运算符优先级高于赋值运算符,低于关系运算符,和算术运算符。,(3),条件运算符的结合方向为“自右至左”。,(,4,)“表达式,2”,和“表达式,3”,不仅可以是数值表达式,还可以,是赋值表达式或函数表达式。,(5),条件表达式中,表达式的类型可以与表达式和表达,式的类型不同。,5.3,if,语句,例5.4,输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。,#,include void main()char,ch,;,scanf,(%c,&,ch,);,ch,=,(,ch,=A&,ch,1e-6),x1=(-b+sqrt(disc)/(2*a);,x2=(-b-sqrt(disc)/(2*a);,printf(,has distinct real roots:%8.4f and%8.4fn,x1,x2);elserealpart=-b/(2*a);,imagpart=sqrt(-disc)/(2*a);,printf(,has complex rootsn,);,printf(,%8.4f+%8.4fin,realpart,imagpart);,printf(,%8.4f-%8.4fin,realpart,imagpart);,5.5,程序举例,例5.7,运输公司对用户计算运费。,路程()越远,每公里运费越低。标准如下:,没有折扣,折扣,折扣,折扣,折扣,折扣,设每公里每吨货物的基本运费为,货物重为,,距离为,折扣为,则总运费的计算公式为:,*(),5.5,程序举例,分析折扣变化的规律性:,折扣的“变化点”都是的倍数,在横轴上加一种坐标,,c,的值为,s/250。,c,代表,250,的倍数。,,无折扣;,,折扣;,,;,,;,,;,,。,5.5,程序举例(续),#include void main()int c,s;float p,w,d,f;scanf(%f,%f,%d,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服