五章选择结构程序设计

上传人:cl****1 文档编号:567917431 上传时间:2024-07-22 格式:PPT 页数:43 大小:558KB
返回 下载 相关 举报
五章选择结构程序设计_第1页
第1页 / 共43页
五章选择结构程序设计_第2页
第2页 / 共43页
五章选择结构程序设计_第3页
第3页 / 共43页
五章选择结构程序设计_第4页
第4页 / 共43页
五章选择结构程序设计_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《五章选择结构程序设计》由会员分享,可在线阅读,更多相关《五章选择结构程序设计(43页珍藏版)》请在金锄头文库上搜索。

1、东北师范大学计算机学院 2008年秋季学期第五章第五章选择结构程序设计选择结构程序设计主要内容主要内容:(1)关系运算关系运算(2)逻辑运算逻辑运算(3)if语句的结构语句的结构(4)switch语句的结构语句的结构(5)应用两种选择结构解决实际问题应用两种选择结构解决实际问题当璃哩疵逗题肚默跨六萌促觉食靶蓄娄泵汤障信嫁枝迭骑借童煎拆嗽丽睫五章选择结构程序设计五章选择结构程序设计1东北师范大学计算机学院 2008年秋季学期Professional WordsSelection structure选择结构选择结构Arithmetic operator算术运算符算术运算符Relational op

2、erator关系运算符关系运算符Logical operator逻辑运算符逻辑运算符nested 嵌嵌套套priority 优先优先级级选兼纪俘禁尽圆祁渐充茹缅蠕狗食清豫贸黑助滑拱佃诛碌愿菏铂咆蒂郭江五章选择结构程序设计五章选择结构程序设计2东北师范大学计算机学院 2008年秋季学期选选择择结结构构的的作作用用:根根据据指指定定的的条条件件是是否否满满足足,决决定定从从给给定定的的两两组组或或多多组组操操作作中中选择其一。实现方法主要有两种:选择其一。实现方法主要有两种:vifelsevswitch庞笔怎蓑它关氛渣淆掏豢瘟企玛孽梦炼秒脉汰筹秒瑟巨受将果汛厢谣瘤倦五章选择结构程序设计五章选择结构

3、程序设计3东北师范大学计算机学院 2008年秋季学期一、关系运算符和关系表达式一、关系运算符和关系表达式( (Relationalopertor&expression)1、关系运算符关系运算符比比较较大大小小的的运运算算称称为为关关系系运运算算,是是逻逻辑辑运运算算的的一一种种。C语语言言提提供供了了六六种种关关系系运运算算,分分为为两两个个优先级。优先级。,=,优先级高优先级高=,!=,优先级低优先级低关系运算的优先级低于算术运算,高于赋值运算关系运算的优先级低于算术运算,高于赋值运算ab+3a=b=3等效于等效于a=(b=3)a=b3等效于等效于a=(b3)面饵倡捏褐舅邀掏秒大颇雇亢伴鞭瞬

4、箩剪掌钦词燕悄绢制呸衔釜拟旗崇掩五章选择结构程序设计五章选择结构程序设计4东北师范大学计算机学院 2008年秋季学期2、关系表达式、关系表达式 由关系运算符将两个表达式连接起来的由关系运算符将两个表达式连接起来的式子称为关系表达式,关系表达式的值式子称为关系表达式,关系表达式的值为为“真真”或或“假假”,C语言没有逻辑型数语言没有逻辑型数据,所以用非据,所以用非0表示真,用表示真,用0表示假。但表示假。但关系表达式的返回值只有关系表达式的返回值只有0或或1关系表达式满足左结合性关系表达式满足左结合性,a=5,b=4,c=3,abc=? 0硬庄曙弄冈苇胖樱猿陷矗魁麓糠验旅鹊掀看董宜练桐迄性吁粘尿

5、晓怂录菏五章选择结构程序设计五章选择结构程序设计5东北师范大学计算机学院 2008年秋季学期二、逻辑运算符和逻辑表达式二、逻辑运算符和逻辑表达式( (Logicaloperator&expression) )1、逻辑运算符逻辑运算符&,|,!(单目运算符(单目运算符Unary)优先级:优先级:!&|已学过的四类运算符之间的关系已学过的四类运算符之间的关系!算术运算符算术运算符关系运算符关系运算符&|赋值运算符赋值运算符称目衔肉边限钳号墒粱又榔迢绕匿苏贰独贫独粘一鲤惠徒孝隐蒲脂闰叶肪五章选择结构程序设计五章选择结构程序设计6东北师范大学计算机学院 2008年秋季学期三种逻辑运算符的真值表三种逻辑

6、运算符的真值表aba&ba|b!a真真真真真真真真假假真真假假假假真真假假假假真真假假真真真真假假假假假假假假真真状米昨星华距谁醉牲傻脏瞬凛臼燃骡爸汲俱深门丸婶叙佃辊躯拷偶盗颇玄五章选择结构程序设计五章选择结构程序设计7东北师范大学计算机学院 2008年秋季学期三种逻辑运算符的真值表三种逻辑运算符的真值表aba&ba|b!a真真1真真1真真1真真1假假0真真1假假0假假0真真1假假0假假0真真1假假0真真1真真1假假0假假0假假0假假0真真1唆柏走迢泻肤击锨敬拈湖苟妹寇客见氨宏饯栏绽帕恐骸馅丙向踞呻篡缉牧五章选择结构程序设计五章选择结构程序设计8东北师范大学计算机学院 2008年秋季学期三种逻

7、辑运算符的真值表三种逻辑运算符的真值表aba&ba|b!a11110100100101100001盏耀盛怖泄样脉仰磁验谅动兄翟躁震谐坎摊疥柒兑比规执镊圭再扁缉有溃五章选择结构程序设计五章选择结构程序设计9东北师范大学计算机学院 2008年秋季学期2、逻辑表达式、逻辑表达式逻逻辑辑表表达达式式的的结结果果用用0或或1表表示示,但但在在判判断断一一个个量量的的真真假假时时,用用0表表示示假假,用用非非0表表示示真真。C语语言言在在求求解解逻逻辑辑表表达达式式时时,并并不不是是所所有有的的逻逻辑辑运运算算符符都都被被执执行行,只只有有在必须执行的情况下才执行该运算符在必须执行的情况下才执行该运算符&

8、当当为为假假时时,不不再再求求的值的值跑沾性江名卿琢鸦骚烬味避悉纶痛阁籽纲职铣蛊弄慷嘲相伐裁壕羌篱冲考五章选择结构程序设计五章选择结构程序设计10东北师范大学计算机学院 2008年秋季学期(m=ab)&(n=cd)a=1,b=2,c=3,d=4,m,n的原值为的原值为1执执行行后后m的的值值为为0,n的的值值仍仍然然为为1,因因为为该该表表达达式没有被求解式没有被求解例例,判判断断一一个个年年份份是是不不是是闰闰年年,当当year能能被被4整整除除,但但不不能能被被100整整除除,或或能能被被400整整除除,则则为为闰年闰年year%4=0&year%100!=0|year%400=0(yea

9、r%4=0&year%100!=0)|year%400=0外褪抖轿划兔所褐占靴北汹霍斑微匆案距棉罢解析甚奢别央恿褐迎豆膏秃五章选择结构程序设计五章选择结构程序设计11东北师范大学计算机学院 2008年秋季学期三、三、if语句语句1、if语句的三种形式语句的三种形式uif(表达式表达式)语句语句uif(表达式表达式)语句语句1else语句语句2uif(表达式表达式1)语句语句1elseif(表达式表达式2)语句语句2elseif(表达式表达式m)语句语句melse语句语句n钡臼亲郴缓汤丽茁郝肾肪赊祖狭苗洁治仪懦彩卧嫩声尔店榜鳖冲卿蚂湘嫌五章选择结构程序设计五章选择结构程序设计12东北师范大学计算

10、机学院 2008年秋季学期例,输入例,输入3个数个数a,b,c,按由小到大的顺序输出按由小到大的顺序输出main()inta,b,c,temp;scanf(“%d%d%d”,&a,&b,&c);if(ab)temp=a;a=b;b=temp;if(ac)temp=a;a=c;c=temp;if(bc)temp=b;b=c;c=temp;printf(“%d,%d,%d”,a,b,c);眨绝弊学徊弟小挨娠蜂屯僧凯蓄凸盛吸粟贫宰争起仕宰倘氟纽咸康碰危饯五章选择结构程序设计五章选择结构程序设计13东北师范大学计算机学院 2008年秋季学期2、if语句嵌套语句嵌套(nested)ifelse语语句句,

11、语语句句中中可可以以嵌嵌套套if语语句句,else与与离离它它最近的最近的if配对配对例,求例,求sign函数函数main()floatx;inty;scanf(“%d”,&x);if(x0)y=1;elseif(x=0)y=0;elsey=-1;printf(“%f,%d”,x,y);x=0x=0)if(x0)y=1;elsey=0;elsey=-1;printf(“%f,%d”,x,y);x=0xb?a:cb?(a=100):(b=100)ab?printf(“%d”,a):printf(“%d”,b);表表达达式式2和和表表达达式式3的的类类型型可可以以不不同同,向向高级别的转换高级别的

12、转换xy?1:1.5当当xy时,结果为时,结果为1.0参炸渺霓触译尼熟障钠撂锭然仲腕刁袜羌臆鸟粒董跃赏冬谣岁召俭麓氧远五章选择结构程序设计五章选择结构程序设计18东北师范大学计算机学院 2008年秋季学期例例,输输入入一一个个字字符符,判判别别它它是是否否为为大大写写字字母母,如如果果是是大大写写字字母母,则则转转换换为为小小写写字母输出,否则原样输出。字母输出,否则原样输出。main()charch;scanf(%c”,&ch);ch=(ch=A&ch=Z)?(ch+32):ch;printf(“%c”,ch);赊虱须明筋脱狰耪醒捡闭处丁施萍邯擎逮糕傲豢畦贵矩妥扭产炸炮猪雌荆五章选择结构程序

13、设计五章选择结构程序设计19东北师范大学计算机学院 2008年秋季学期说明说明条件运算符一定程度上可替代条件运算符一定程度上可替代ifelse语句语句当条件复杂时当条件复杂时,最好不用这种结构最好不用这种结构,不便不便于理解程序于理解程序佣彩河娩泊析臣灰隋使壤若冯祸酥囚颜造恫监莹狮恐佳绅精盈显缺何贺毕五章选择结构程序设计五章选择结构程序设计20东北师范大学计算机学院 2008年秋季学期练练习习1.表示表示x在在1,8之内为真时的表达式之内为真时的表达式_2.inta=2,b=2,c=3,表达式表达式a|a-b&!c的值的值_3.以下程序段的输出结果为以下程序段的输出结果为:_inta=5,x=

14、6;if(x=a)printf(“1:%dn”,x);elseprintf(“2:%dn”,x);茫渔甚煎悦某雪坪崎讫饭酷推减顾张绚埂必掣患泽月窥咽股踩糠沙胺乔檬五章选择结构程序设计五章选择结构程序设计21东北师范大学计算机学院 2008年秋季学期4.下列程序段的功能是判断三角形是等边下列程序段的功能是判断三角形是等边,等腰还是一等腰还是一般三角形般三角形,或者不能构成三角形,将程序填充完整或者不能构成三角形,将程序填充完整.main()inta,b,c;scanf(“%d%d%d”,&a,&b,&c);if_/能构成三角形能构成三角形if_printf(“等边等边n”);elseif_pri

15、ntf(“等腰等腰n”);elseprintf(“能构成三角形能构成三角形n”);elseprintf(“不能构成三角形不能构成三角形n”);镰卷颜裹始唆叫吓懊察感记盛攫邱鼠型灵自醇负伍滔原累勾踞锅喧讹放宽五章选择结构程序设计五章选择结构程序设计22东北师范大学计算机学院 2008年秋季学期四、四、switch语句语句当分支数较多时,用当分支数较多时,用switch语句语句1switch语句的一般形式语句的一般形式switch(表达式)(表达式)case常量表达式常量表达式1:语句:语句1;case常量表达式常量表达式2:语句:语句2;case常量表达式常量表达式n:语句:语句n;defaul

16、t:语句语句n+1;渣鳖趁旨总着护都氏鳞皑更烃贮督耙殆根红筷吨并性蓟瘫屏禄葛唯椽奎滇五章选择结构程序设计五章选择结构程序设计23东北师范大学计算机学院 2008年秋季学期2、有关、有关switch语句的说明语句的说明(1)switch后的表达式可以是任何类型后的表达式可以是任何类型(2)当当表表达达式式的的值值与与某某一一case后后的的常常量量表表达达式式的的值值相相同同时时,则则执执行行其其后后的的语语句句,如如果果与与所所有有的的case后后的的值值都都不不同同,则则执执行行default后后的的语语句句(3)各各个个case的的值值互互不不相相同同;多多个个case可可以以对对应一个语

17、句应一个语句(4)执执行行某某个个case后后,接接着着执执行行下下一一个个case而而不再进行判断,所以要加不再进行判断,所以要加break跳出跳出switch伤涣械瘪催律俺恫酸糊梧诧堂恫思砍聊玖蝴滦点闺央炎憎棱摊整克忍瘪俄五章选择结构程序设计五章选择结构程序设计24东北师范大学计算机学院 2008年秋季学期五、五、程序举例程序举例例例1,按按照照考考试试成成绩绩等等级级打打印印出出百百分分制制分分数数段段,可以用可以用switch语句来实现语句来实现switch(grade)caseA:printf(“85100n”);caseB:printf(“7084n”);caseC:printf(

18、“6069n”);caseD:printf(“60n”);break;caseD:printf(“60n”);break;default:printf(“errorn”);辉芒问盗驯习感子玉巨场瘫鸣唯傲跪椒髓啃尽胖惹顷净蛙拧香痘芽彭师轿五章选择结构程序设计五章选择结构程序设计26东北师范大学计算机学院 2008年秋季学期例例3 3,写一程序,判断某一年是否闰年,写一程序,判断某一年是否闰年main()intyear,leap;if(year%4=0&year%100!=0|year%400=0)leap=1;elseleap=0;if(leap=1)printf(“%dyearisleap”,

19、year);elseprintf(“%dyearisnotleap”,year);征旋训赌昧葱拷氢窍灸蟹耻称鸳衷轿弓绵帜卵炉纳禽杂惋贡厅蒜巡由吉岿五章选择结构程序设计五章选择结构程序设计27东北师范大学计算机学院 2008年秋季学期 例例4,求,求ax2+bx+c=0方程的解方程的解main()floata,b,c,d,p,q,x1,x2;scanf(%f%f%f,&a,&b,&c);if(fabs(a)=1e-6)printf(isnotaquadraticn);elsed=b*b-4*a*c;p=-b/(2*a);if(fabs(d)1e-6)x1=p+sqrt(d)/(2*a);x2=p

20、-sqrt(d)/(2*a);printf(hastwodistinctrealroots:%8.2f,%8.2fn,x1,x2);elseq=sqrt(-d)/(2*a);printf(hascomplexroots:n);printf(%8.2f+%8.2fin,p,q);printf(%8.2f-%8.2fin,p,q);扣瞅嗣棋钞列戮瑞纹仙焕挛琢枢履汤烯闲拴旦什冬罢实谆扬鄂绚敦涌梭恒五章选择结构程序设计五章选择结构程序设计29东北师范大学计算机学院 2008年秋季学期例例5,运运输输公公司司对对用用户户计计算算运运费费,路路程程S越越远远,每每公里运费越低,标准如下:公里运费越低,标准

21、如下:s250Km没有折扣没有折扣250=s5002%折扣折扣500=s10005%折扣折扣1000=s20008%折扣折扣2000=s300010%折扣折扣3000=3000)c=12;elsec=s/250;switch(c)case0:d=0;break;case1:d=0.02;break;case2:case3:d=0.05;break;芍园酣仇释苯蚌肥嗅桑郴葡沼蠢亦携猾瓜错驭京航箍淫牙孤尖樟着搞足铸五章选择结构程序设计五章选择结构程序设计31东北师范大学计算机学院 2008年秋季学期case4:case5:case6:case7:d=0.08;break;case8:case9:c

22、ase10:case11:d=0.1;break;case12:d=0.15;break;f=p*w*s*(1-d);printf(“s=%d,d=%f,f=%f”,s,d,f);梭磅蒜浸沃省肮痕睡挠潦奄肤勉谴耻椿陕贱涵胺擎摈煎顿鳖股欧鼻天港勒五章选择结构程序设计五章选择结构程序设计32东北师范大学计算机学院 2008年秋季学期练习练习1.下列程序段执行后,下列程序段执行后,a的值是多少?的值是多少?intx=5,y=5,z=10,a;switch(x=y)case1:if(yz)a=1;elsea=2;case2:switch(z)case10:a+=10;break;case11:a+=2

23、0;case0:a*=10;软绸病可鸿蛆驮税炊聋商墨剐郑篮稠愈钓昆财胳召臣泛湖忘秩矾见日泵啊五章选择结构程序设计五章选择结构程序设计33东北师范大学计算机学院 2008年秋季学期2.编写一程序,根据输入的年份和月编写一程序,根据输入的年份和月份,计算该月有多少天?份,计算该月有多少天?3.输入一个日期,计算该日期是今年输入一个日期,计算该日期是今年(2009)的第几天?)的第几天?4.输入某一年的输入某一年的1月月1日是星期几日是星期几,然后再输然后再输入一个日期入一个日期,计算这一天是星期几计算这一天是星期几?(学完第六章以后学完第六章以后,会有更好的解决方案会有更好的解决方案)憾拌疑荡蚁船

24、驮貌阜某剪寡烂艰愧摹羹坊惰麓眠请造唁仟纤拨四孜拘得橡五章选择结构程序设计五章选择结构程序设计34东北师范大学计算机学院 2008年秋季学期5.接受一个字符,例如用接受一个字符,例如用“+”表示加法,表示加法,用用“”表示减法。接受表示减法。接受num1和和num2两个数。如果输入的字符为两个数。如果输入的字符为“+”,则将,则将这两个数相加并显示相应的结果。如果这两个数相加并显示相应的结果。如果输入的字符为输入的字符为“”,则将这两个数相,则将这两个数相减并显示相应的值。要求完成减并显示相应的值。要求完成+,-,*,/四种四种运算。运算。6.编写一个程序,从用户输入的三个数中编写一个程序,从用

25、户输入的三个数中找到最大值,并将该最大值输出。找到最大值,并将该最大值输出。箭蹈妮氟拨告忿蹬脚卿海去浑耽曳豫画弗稽咕爸页虐琅砌挝葬谓咯咒牟稠五章选择结构程序设计五章选择结构程序设计35东北师范大学计算机学院 2008年秋季学期2代码代码:#include#includevoidmain()intyear,month,days;scanf(%d%d,&year,&month);switch(month)case1:case3:case5:case7:case8:case10:case12:days=31;break;赎搽筷艇叮皖碰苞坚紊奴姨牺人裂抉轩站骨蚁哼续拭膳辙孤茸抡肇捌芳奢五章选择结构程序

26、设计五章选择结构程序设计36东北师范大学计算机学院 2008年秋季学期case2:if(year%4=0&year%100!=0|year%400=0)days=29;elsedays=28;break;case4:case6:case9:case11:days=30;break;default:printf(inputiserror!n);exit(0);printf(days:%dn,days);譬梦除翠涩久为障铆技样嘴咏森撰药猾距锨轴暮巡痒胯粱暖郴挖摧请烬脱五章选择结构程序设计五章选择结构程序设计37东北师范大学计算机学院 2008年秋季学期3代码代码:voidmain()intyear

27、,month,day,days;scanf(%d%d%d,&year,&month,&day);switch(month)case1:days=day;break;case2:days=31+day;break;case3:days=31+28+day;break;case4:days=31+28+31+day;break;case5:days=31+28+31+30+day;break;case6:days=31+28+31+30+31+day;break;case7:days=31+28+31+30+31+30+day;break;汉尺透抬钝沃畴包泽蒜倾啊炬飘斜接爬灾唁俺翘资谋目哨姨唬照骇

28、弧酥湖五章选择结构程序设计五章选择结构程序设计38东北师范大学计算机学院 2008年秋季学期case8:days=31+28+31+30+31+30+31+day;break;case9:days=31+28+31+30+31+30+31+31+day;break;case10:days=31+28+31+30+31+30+31+31+30+day;break;case11:days=31+28+31+30+31+30+31+31+30+31+day;break;case12:days=31+28+31+30+31+30+31+31+30+31+30+day;break;default:pri

29、ntf(inputiserror!n);exit(0);if(year%4=0&year%100!=0|year%400=0)&month2)days+;printf(days=%dn,days);撰枣镜彼辖剔凰荣咆肪功寨柬惠历倡隅须萤韭晨疏舰秤隅钟诽萨惰烙耘憋五章选择结构程序设计五章选择结构程序设计39东北师范大学计算机学院 2008年秋季学期4代码代码:#include#includevoidmain()intyear,month,day,week,week1,days;scanf(%d%d%d%d,&year,&month,&day,&week);switch(month)case1:d

30、ays=day;break;case2:days=31+day;break;case3:days=31+28+day;break;case4:days=31+28+31+day;break;case5:days=31+28+31+30+day;break;case6:days=31+28+31+30+31+day;break;case7:days=31+28+31+30+31+30+day;break;冠斡深淌诡滚砍屑丸芜籽匀凋痊薯菱伙配乖莹币宦糕劈窄邪赡厌寺筷焚稳五章选择结构程序设计五章选择结构程序设计40东北师范大学计算机学院 2008年秋季学期case8:days=31+28+31+30

31、+31+30+31+day;break;case9:days=31+28+31+30+31+30+31+31+day;break;case10:days=31+28+31+30+31+30+31+31+30+day;break;case11:days=31+28+31+30+31+30+31+31+30+31+day;break;case12:days=31+28+31+30+31+30+31+31+30+31+30+day;break;default:printf(inputiserror!n);exit(0);if(year%4=0&year%100!=0|year%400=0)&mont

32、h2)days+;week1=(days+week-1)%7;printf(week1=%dn,week1);吭日施辈亦伤怪肥驾队昂馋嘴濒东由误诌除捡驰畸推连耳略婪垃勉祈帛遍五章选择结构程序设计五章选择结构程序设计41东北师范大学计算机学院 2008年秋季学期5代码代码:#includemain()inta,b;charop;printf(inputoperator:n);scanf(%c,&op);printf(inputtwooperands:n);scanf(%d%d,&a,&b);洗嗣纫纠骄履转坟厉痛煽耙嘛纺老哮且队抬嫩乾斧悉蹬劈喇令赐繁雨君责五章选择结构程序设计五章选择结构程序设计42东北师范大学计算机学院 2008年秋季学期switch(op)case+:printf(%d%c%d=%dn,a,op,b,a+b);break;case-:printf(%d%c%d=%dn,a,op,b,a-b);break;case*:printf(%d%c%d=%dn,a,op,b,a*b);break;case/:printf(%d%c%d=%dn,a,op,b,a/b);break;default:printf(operatorerror!n);囊纤蛰永廓纫歹蜕岁沂侈拈棱揭蜂黑该枪衡留敞涂肛炯撂粗低悟阿备宦夺五章选择结构程序设计五章选择结构程序设计43

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号