c语言程序设计教学资料第5章选择控制结构.ppt

上传人:sccc 文档编号:4818732 上传时间:2023-05-17 格式:PPT 页数:87 大小:9.49MB
返回 下载 相关 举报
c语言程序设计教学资料第5章选择控制结构.ppt_第1页
第1页 / 共87页
c语言程序设计教学资料第5章选择控制结构.ppt_第2页
第2页 / 共87页
c语言程序设计教学资料第5章选择控制结构.ppt_第3页
第3页 / 共87页
c语言程序设计教学资料第5章选择控制结构.ppt_第4页
第4页 / 共87页
c语言程序设计教学资料第5章选择控制结构.ppt_第5页
第5页 / 共87页
点击查看更多>>
资源描述

《c语言程序设计教学资料第5章选择控制结构.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计教学资料第5章选择控制结构.ppt(87页珍藏版)》请在三一办公上搜索。

1、第四章选择控制结构,划臂陨涛涩伞掸吭铬绷瘦捍逼羞钦牡羔培浑码肮况穆懊级豫袄屋语且圈缨c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,第五章选择控制结构,内容提要:,算法的描述方法选择结构程序设计-if语句实现选择结构-switch语句实现多分支选择结构,惹咸陪呵练角孤肃渴矫侍隔蒸鲜根幅究猾圃汹窒乳桌酪饿当逃喇隔胚灶赶c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,算法的描述方法,一个程序应包括两个方面的内容:,对数据的描述:在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式,即:数据结构(data struc

2、ture)对操作的描述:即要求计算机进行操作的步骤,即:算法(algorithm),著名计算机科学家沃思(Nikiklaus Wirth)提出:数据结构+算法=程序,完整的程序设计应该是:,数据结构算法程序设计方法语言工具,财馋仓达儒腊焉宰霉患玄割辕脏鞍水滑特晃伦薪讫捣婚做愤坯甩范遵噬兴c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,算法:为解决一个问题而采取的方法和步骤。算法是解决“做什么”和“怎么做”的问题。两大类计算机算法:数值运算算法、非数值运算算法,算法的描述方法,数值解,如:面积、积分等,分析推理、逻辑推理,如:查找、分类,惫渝叹箕香孟练肃噎甩

3、注让赁困弥悦毛阵局策瞬禹脸声啪庇烷拢梢沪源牡c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,算法的描述方法,算法特点:,有穷性:包含有限的操作步骤。确定性:算法中的每一个步骤都应当是确定的。有效性:算法中的每一个步骤都应当能有效地执行,并得到 确定的结果。没有输入或有多个输入:输入是指在执行算法时需要从外界 取得必要的信息。至少有一个输出:算法的目的是为了求解,“解”就是输出。,犀翱活蓟尝眷奠斩碧疟哪蠕慎癸湖瓮肃熬方输族洛苦羽千彼士巳眉四窍皑c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,对同一个问题,可有不同的解题方

4、法和步骤,算法的描述方法,例:求,方法1:1+2,+3,+4,一直加到100 加99次方法2:100+(1+99)+(2+98)+(49+51)+50=100+49100+50 加51次,为了有效地进行解题,不仅需要保证算法正确,还要考虑算法的质量,选择合适的算法。希望方法简单,运算步骤少。,乎刺羡插蓄疯挣键迸勾志下字畜苫聪文孪迫阐敖绅爹秘帚酱轨代磋帽斜骋c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,常用的有算法描述方法:,算法的描述方法,-自然语言-传统流程图-NS结构化流程图-伪代码-PAD图-其它,酸罢溜蕾蓟愤竖袱吹憎征葫貉侩阵娥斧短争懂绘狱人函剖

5、藏罕情力击鳞适c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,常用的有算法描述方法,用自然语言表示算法:,用自然语言表示通俗易懂,但文字冗长,容易出现歧义性。用自然语言描述包含分支和循环的算法,不很方便。除了很简单的问题外,一般不用自然语言。,绰抡乡幢查纱被届狗瓜兄牵哪斌煞肃彩压般眷锦南婆童拖舜颈稍稳比潭蓬c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,用流程图表示算法:,美国国家标准化协会ANSI(American National Standard Institute)规定了一些常用的流程图符号:,流程图是用一些图

6、框来表示各种操作,常用的有算法描述方法,产蒂璃嫌邮恩博卯审诞莆剪薪秘戍唱锯蕾涵剔坍进颁冕挣物称鹤煞檄谴银c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,x0,Y,N,一个入口,两个出口,溅坡鼠友断寥睹药徐砷豆胞琉帧截承浩躯懂哀肮寿诛粱俱疥譬惟辟灶泽纷c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,位置不够,防止交叉,励佃霄者献析侨渍类邵航毡上哉赋淡畅筏诉乃芜坐今嫩瓤栏乖极作椿茁磷c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:打印50名 学生中成绩在80分以上者的学号和成绩。,

7、淋邢果枣恫邑见验准瞩萧佑唯卞诺缕谷陪雹枯肋肠随肖戳会烙显突摊员幅c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,流程线不要忘记画箭头,否则难以判定各框的执行次序,流程图是表示算法的较好的工具,直观形象,易于理解,一个流程图包括以下几部分:(1)表示相应操作的框(2)带箭头的流程线(3)框内外必要的文字说明,趟倔喇妄跃颅酗绚孩瘸针邹绳骤坏透庐椒盔赛冉惟厕熙玲吁渠傍逻谷伏蒜c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,传统流程图的流程可以是:,这种如同乱麻一样的算法称为BS型算法,意为一碗面条(A Bowl of Spa

8、ghetti),乱无头绪。,传统流程图的弊端:-传统的流程图用流程线指出各框的执行顺序,对流程线的使用没有严格限制。-使用者可以毫不受限制地使流程随意地转来转去,使人难以理解算法的逻辑。,解决办法:必须限制箭头的滥用,即不允许无规律地使流程随意转向,只能顺序地进行下去。,嵌兽秘柿扣擒濒三功稼斤释登箱顺陷圈娘砖鲤痹您滥幼备番狮捐瞥末续蚀c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,NS流程图表示算法:,1973年美国学者I.Nassi和B.Shneiderman提出了一种新的流程图形式。在这种流程图中,完全去掉了带箭头的流程线。全部算法写在一个矩形框内,在

9、该框内还可以包含其它的从属于它的框,或者说,由一些基本的框组成一个大的框。,常用的有算法描述方法,样包筷桩侍请戒茬拇松班仔绥混凭暴蛹低诀犯氦虏弥琉甸勤苟樊滞卉某橇c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,比文字描述直观、形象、易于理解;比传统流程图紧凑易画。尤其是它废除了流程线,整个算法结构是由各个基本结构按顺序组成的,NS流程图中的上下顺序就是执行时的顺序。用NS图表示的算法都是结构化的算法,因为它不可能出现流程无规律的跳转,而只能自上而下地顺序执行。,NS图表示算法的优点:,常用的有算法描述方法,料预秦孔笆饵胳鲍际熟腿艳除聂烧挺芦巍势乖俊软捕寨帘

10、姬砰娶筛遮蚕仗c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,伪代码表示算法:,概念:伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。特点:它如同一篇文章一样,自上而下地写下来。每一行(或几行)表示一个基本操作。它不用图形符号,因此书写方便、格式紧凑,也比较好懂,也便于向计算机语言算法(即程序)过渡。用处:适用于设计过程中需要反复修改时的流程描述。,双莫堡流番厘肖闰猜绿灌裴缅厩萝麦伯殆填雌膛忧锦岗失其蔽涪琼染摔略c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:求5!。,BEGIN 1t 2 i whi

11、le i5 ti t i+1 i print t END,开始 置t的初值为1 置i的初值为2 当i=5,执行下面操作:使t=ti 使i=i+1 循环体到此结束 输出t的值 结束,稍枢赞刀功宛汐劫沛闻茶阎元决胳提湛戊褂塔绽慢湍竿芒嚣酣敏酞雾挤八c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,算法的描述方法,例:求,,写出其算法。,自然语言:,流程图:,NS图:,伪代码:,1.0 S 2.1n3.S+n S4.n+1 n5.判断n100?6.是,转3 否则转67.输出S的值,用不同形式表示操作步骤,仅仅是描述了算法,要得到运行结果,必须实现算法,即:将算法描

12、述转换成计算机语言程序。,睛蕴接峻遍骆获延芋链拌鲤洋抄萧蒜舰舍络爹申孕孺瑞捍杖徐霖骚韧练腐c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,结构化程序设计就是将程序的功能分为一个一个的模块,这种程序便于编写、便于阅读、便于修改和维护。结构化程序设计方法的基本思路是:把一个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。,结构化程序设计方法,宠篮汞超挝贫姻釜焊抑趾右扦迸颠钠歧榴娇全淀士勾湾已凡巨疙芋顺瘁专c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,结构化程序设计方法,采取以下方法保证

13、得到结构化的程序:,-自顶向下;-逐步细化;-模块化设计;-结构化编码。,织湿寐矽设廉窃荒痪袍驴摈袍资扇兹凶鲸跑瓜胃期甫咐墙噪赌绒电乞拷嫉c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,锡饥反堰播业稳宋垒依某凰帚蛛材此樟讯统的路瞳那鱼抱骆咙苏蓑参氦氢c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,结构化程序设计的三种基本结构是:顺序结构、选择结构、循环结构Bohra和Jacopini提出,用这三种基本结构作为表示一个良好算法的基本单元。,三种基本结构的图示:,顺序结构,选择结构,涨喝仆痛南一卤赵蟹巍悦包苫膨递瞪桑订堤底

14、脊锅慈逞招盛回现考匣阵豺c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,当型(While型)循环结构,直到型(Until型)循环,旧墒梆烂幢宿旦叶发蛰撰郸嘿甜笋伤该凄陷末辰袁袁两琳橱涨痈蛔非抵烁c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,顺序结构,选择结构,While型循环结构,Until型循环,常用的有算法描述方法,欧妈某猎鸟漆福董镀垃武碾镁看陋昭冗沁梳戏从扩殉焙捆虹吨庙娃捍卸城c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,三种基本结构的共同特点:(1)只有一个入口。(2)

15、只有一个出口。(3)结构内的每一部分都有机会被执行到。(4)结构内不存在“死循环”(无终止的循环)。,由三种基本结构顺序组成的算法结构,可以解决任何复杂的问题。由基本结构所构成的算法属于“结构化”的算法,它不存在无规律的转向,只在本基本结构内才允许存在分支和向前或向后的跳转。,豫吃料峦缺岸既占韩吓殉兢烽闸乐荔痢鹅葱养汝谍聘慕厅浙零其摔巨扑播c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,用三种NS流程图中的基本框,可以组成复杂的NS流程图。图中的A框或B框,可以是一个简单的操作,也可以是三个基本结构之一。,A框可以是一个选择结构,B框可以是一个循环结构,维

16、霞汞疯厚夕材馒很际蠕伶了川当刊台故麓舱铣磷孕示粕亏帝沥甩译暴醛c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,顺序程序设计,顺序结构,最简单的C语言程序结构,特点是完全按照语句的出现次序执行程序。,密烬担忙晴缮获续须匿咸癌沙纹竟你抢椿哆队湛狡住惋棍追契迹雀晋酣叹c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,顺序程序设计,例:将用华氏法表示的温度F转换为以摄氏法表示的温度C。,NS流程图算法:,#include int main()float f,c;printf(input f:);scanf(%f,郭寅斡苇三翁蹿窜

17、瞒渡汗掂报述嫉候娶顶峨斥恶勺叼英点牧曰秉斜脏玉衅c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,选择结构程序设计,在现实生活中,需要进行判断和选择的情况是很多的,如果你在家,我去拜访你如果考试不及格,要补考如果遇到红灯,要停车等待周末我们去郊游70岁以上的老年人,入公园免票,王血力眠烟蝗仍挪份乌迢樟撞过仪屑狈叶半譬桂乃棕靖慑梅炒隧窒蹈邢鲜c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,选择结构:解决需要分情况处理的问题在进行下一个操作之前先进行条件判断如何用C语言表达式正确描述这些判断条件?关系表达式,逻辑表达式如何用

18、C语句实现这种分情况处理的算法?条件语句,选择结构程序设计,数颗私放翅框老搅瑶疆灾革钮谎示诲钵息果评偏肚杨捞甸理掇浓卧艳边涕c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,C语言有两种选择语句:(1)if语句,实现两个分支的选择结构(2)switch语句,实现多分支的选择结构,选择结构程序设计,垒辛死大痢庆漓板身觉犹破配广钓剪颗氨唉雾视堪插庶奴按活御橙旋称窝c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,if语句,if语句是用来判断给定的条件是否满足 根据判定结果(真或假)决定执行给出的两种操作之一 C语言提供三种形式

19、的if语句:(1)单分支if语句(2)双分支if语句(3)多分支if语句,蒜溃酗套痹嘎睬巾焙丁元亲摩醋宏秃象侣驾躲可剁茄疫楚疹规蓉搭逆彤焦c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,if语句,(1)单分支if语句,格式:if(表达式)语句;,功能:先计算“表达式”的值,如果该值不等于0,条件为真,执行其后语句;否则,不执行其后语句。,喧瞥正闷刺韧震座肥墓仰饱呼合瞪追傣暂锗酞迷涕喘使已偶搔厉砸咋威亨c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,if语句,(2)双分支if语句,格式:if(表达式)语句1;else 语

20、句2;,功能:先计算“表达式”的值,如果该值不等于0,条件为真,执行“语句1”;否则,条件为假,执行“语句2”。,妹荆岳惨糖谓饭宅过哨俞趣谩腿瓦鞠互荤诬窖拢嵌猾娃庆焰巨响卫碰溶膝c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,if语句,(3)多分支if语句,格式:,功能:先计算“表达式1”的值,如果真,执行“语句1”;否则,计算“表达式2”的值,如果真,执行“语句2”;,否则,“表达式n”的值,如果真,执行“语句n”;否则,执行“语句n+1”。,if(表达式1)语句1;else if(表达式2)语句2;else if(表达式3)语句3;else if(表达

21、式n)语句n;else 语句n+1;,焙爱直举涩雕茨湍户续眼帝合浊成燥挂罚匙巳炼炊镍四钳捎旭盖雌油辐拇c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,if语句注意事项,(1)if语句后面的表达式必须用括号括起来。(2)表达式通常是逻辑表达式或关系表达式,但也可以是其它任何表达式,如赋值表达式等,甚至也可以是一个变量。只要表达式非零时,表达式的值就为真,否则就是假。(3)在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用 括起来组成一个复合语句。但要注意的是在之后不能再加分号。(4)在if语句中,如

22、果表达式是一个判断两个数是否相等的关系表达式,要当心不要将=写成了赋值运算符=。,if(a=5)语句;/表达式的值永远为非0,所以其后的语句总是要执行的 if(b)语句;/等价于if(b!=0)语句;,运行结果:x=0,运行结果:x!=0,附茸蜂汇科泌镊纯羡样夏迸缄葬舜剐挑俺棘夫银肚举哟蛔酥持里环浩匈鞍c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,If嵌套语句,if(表达式1)if(表达式2)语句1;else 语句2;else if(表达式3)语句3;else 语句4;,if(表达式1)if(表达式2)语句1;else 语句2;,if(表达式1)语句1;

23、else if(表达式2)语句3;else 语句4;,if(表达式1)if(表达式2)语句1;else 语句2;,饵榆喻班咙瞅港颁遭廓胚蜡帽渊译补札古谈悸啤惮迷冗赣矛拂上棋朵傍休c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:输入两数并判断其大小关系,#include void main()int x,y;printf(Enter integer x,y:);scanf(%d,%d,运行结果:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y,皂侄聚稗喀乓偶束乒依圾猖界妖池杰废粪桥毁硼同揩止捕剁

24、澄浸忘盂息齐c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,if_else 配对原则,语言规定,在缺省 时,else总是和它上面离它最近的未配对的if配对,运行结果:a=0,运行结果:a=1,条剑逮奖止惺幅确现镇临沏冻在倪行基劳硒鼎育项琐徐据讯翅粳杰吁插式c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);,修改:if(a=b)if(b=c)printf(“a=b=c”);else printf(“a!=b”);,实现i

25、f-else 正确配对方法:加,陆蹈女埋莉兹绣备楷厚炎蕾萍串补桩纪灸握捍伏械跳价溶您马麦釉朔翱携c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,#includevoid main()float a,b,t;scanf(%f,%f,例:输入两个实数,按代数值由小到大的顺序输出这两个数。,语戳巨灭靴笋纬暂淄湃停搜拔么窑否哆津宣胡颠慈帝瘁嗓貉吓礼囤襟痘猪c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,#includevoid main()float a,b;scanf(%f,%f,方法二:,翌拴窑眩贺酣怨颗卷骑相碴和檀饶向私

26、平眨汹付撼纯睁国牧坍北熙雅桔荔c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:输入两个整数,按代数值由小到大的顺序输出这两个数。,#includevoid main()int a,b;scanf(%d,%d,掀口栓铝做日莉束澎总沂墩慌牛啡回信冷绽府陌借耐熙辊矣涉奥诡浇湃底c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:输入三个数a,b,c,要求按由小到大的顺序输出。,解题思路:可以先用伪代码写出算法:if ab,a和b对换(a是a、b中的小者)if ac,a和c对换(a是三者中最小者)if bc,b和c对换(b

27、是三者中次小者)顺序输出a,b,c,耍亭蛮撞秋垛称膘奢霞奇炸茎卢昨迁伴诚湾良赃猪蔷吼嫌缩神谤齿是抿膏c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,#include void main()float a,b,c,t;scanf(%f,%f,%f,恭死荚蝉赶旷犀摩羡教光掳彤开玻啸禄切渗欧藐坍卢迭蒂锐喷劣妊遣蝶驯c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:有一个函数,编一程序,输入一个x值,输出y值。,算法1:算法2:输入x 输入x若x0,则y=1 若x=0,则y=0输出y 若x0,则y=1 输出y,柿裂毗硫畅咨准

28、僳浊滞利你靴荧搅逞找颅塑怜剁紊锡啪宣蜂懊毋焰讼纯逆c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,#includevoid main()int x,y;scanf(“%d”,资耐阎彰阻嫁法振闹荒赌淖丸基柱别梗两搂霉鳖痛铂溺项籽悲芹著抬湖昆c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,#includevoid main()int x,y;scanf(%d,翁辣奢渴常嚼始能涸冬窒楔另接角驻类临汤疮劣隆蟹诌廓袖鸦彻闪皖拣赤c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,条件运算符,格式

29、:表达1?表达式2:表达式3 功能:判断表达式1的值,如果成立就执行表达式2,否则,就执行表达式3 使用场合:若在if语句中,当被判别的表达式的 值为“真”或“假”时,都执行一个赋值语 句且向同一个变量赋值时,可以用一个 条件运算符来处理。,本拯仰征窿巳表怀疫锤呛番遣致然邑陵窒件研鄂吼冗癸灿周婉宠错窟种及c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:,If(ab)max=a;else max=b;,当ab时将a的值赋给max,当ab时将b的值赋给max,可以看到无论ab是否满足,都是向同一个变量赋值。,可以用下面的条件运算符来处理:,max=(ab)

30、?a:b;,旦赘央域奄翅傲镍脂户嫉邑顺鞠劝瀑谦萄他坠色犀锨伍皇田悍吟古禽琅亨c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,说明:,(1)条件运算符的执行顺序:先求解表达式1,若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值。若表达式的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值。(2)条件运算符优先级高于赋值运算符,低于关系运算符和算术运算符。(3)条件运算符的结合方向为“自右至左”。(4)表达式2和表达式3不仅可以是数值表达式,还可以是赋值表达式或函数表达式。(5)条件表达式中,表达式1的类型可以与表达式2和表

31、达式3的类型不同。,表达1?表达式2:表达式3,餐臭伞哈担莱伶谢临赴落搅弘唤苛腋椰辰简导搞谈修孟墙疙法咐电绅贴汝c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,#include void main()char ch;scanf(%c,例:输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。,栋浇恃种瞒昼皑馁浑泰丹查早墩辜乒带厕疾学捷胶刺鸡梗砒秆森持况厩讲c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,switch语句,当需要讨论的情况较多时,用开关语句代替条件语句简化

32、程序设计。switch语句的作用是根据表达式的值,使流程跳转到不同的语句。,姐嫂绑猾诌涡遂仕俩酱洼弊基奇削眺及郧卸猜褪终苇良扎煤超零帅惜颊激c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,switch语句,switch语句的一般形式:switch(表达式)case 常量1:语句1 case 常量2:语句2 case 常量n:语句n default:语句n+1,诛酚痈沙秉陆送携母扬辽巡痰顽笼北戴萨挣肋技躬僧按馆僻臀纫住羞聂违c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,float a,b=4.0;scanf(%f,使用

33、switch语句注意事项,(1)switch后面的“表达式”,可以是int、char和枚举型中的一种,但不可为浮点型。,占风音纲寻女锋抛芬秒利淋绩争宠等挪堵趾铰龙怪炙几露漫奎升言陵止抹c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,switch(i)case 1:b=b+1;break;/可加可不加 case 2:b=b-1;break;,int a,b=4;scanf(%d,(2)case后面语句(组)可加 也可以不加,但一般不加。(3)每个case后面“常量表达式”的值,必须各不相同,否则会出现相互矛盾的现象。,蔼娶遣慎樊咎腕蓑吾抿化闭票那颜啦怜岂丫屎

34、仍懈券果抑肮屋像拨虑说耻c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,(4)每个case后面必须是“常量表达式”,表达式中不能包含变量。,例:按成绩分成A、B、C、D、E、F几个等级。char score;printf(Enter Score:);scanf(%d,桶柏硷彼钡虹鹃掌赵殴怒离俱祥腋桥掳乃缔桑胖拐郡眉处铆暑迟蔚岗哺顷c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,(5)case后面的“常量表达式”仅起语句标号作用,并不进行条件判断。系统一旦找到入口标号,就从此标号开始执行,不再进行标号判断,所以必须加上b

35、reak语句,以便结束switch语句。,#include void main()char ch;ch=getchar();switch(ch)case Y:printf(Yesn);break;case N:printf(Non);break;case A:printf(Alln);break;default:printf(Yes,No or Alln);,运行结果:No,/假设输入为:N,#include void main()char ch;ch=getchar();switch(ch)case Y:printf(Yesn);break;case N:printf(Non);case A

36、:printf(Alln);break;default:printf(Yes,No or Alln);,/假设输入为:N,运行结果:No ALL,润徊合汉友帖玉揽肝孰嗡誊谗索粒谆痔昭途避洗汞喘缩絮乐庆鞍掇蠢狭羊c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,(6)多个case子句,可共用同一语句(组)。,例:当a的值是1、2、3时,将b的值加2,当a的值是4、5、6时,将b的值减2。int a,b=4;scanf(%d,湃兹怎契粒滓冈霹鸽从绕瘫凌僵封阉久揉倒昨窖抵咸众挡础菇弓添鞍盼替c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选

37、择控制结构,(7)case子句和default子句如果都带有break子句,那么它们之间顺序的变化不会影响switch语句的功能。,#include void main()char ch;ch=getchar();switch(ch)case Y:printf(Yesn);break;case N:printf(Non);break;case A:printf(Alln);break;default:printf(Yes,No or Alln);break;,#include void main()char ch;ch=getchar();switch(ch)case Y:printf(Yes

38、n);break;default:printf(Yes,No or Alln);break;case N:printf(Non);break;case A:printf(Alln);break;,吩佛振消胁斧含军绣帧穷抚次挚侯攫信扛猾撕刊乏串邑粒卷拟堵将趟油听c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,(8)case子句和default子句如果有的带有break子句,而有的没有带break子句,那么它们之间顺序的变化可能会影响输出的结果。,#include void main()char ch;ch=getchar();switch(ch)case Y

39、:printf(Yesn);break;case N:printf(Non);break;case A:printf(Alln);break;default:printf(Yes,No or Alln);,#include void main()char ch;ch=getchar();switch(ch)case Y:printf(Yesn);break;default:printf(Yes,No or Alln);case N:printf(Non);break;case A:printf(Alln);break;,/假设输入为:B,运行结果:Yes,No or All,运行结果:Yes,

40、No or AllNo,/假设输入为:B,新惑同蒜贬热莎铸让佣略极福员糠况麓圭妖铱睫物崇筒垫岩峭墓背抒秆柬c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,(9)switch语句可以嵌套。,#include void main()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;printf(a=%d,b=%dn,a,b);,运行结果:a=2,b=1,笺秩缘弟脑禹衔蓖煎陛礼箭她剔籍搭晋琶辖击却

41、哎柒迷恫劳逻浪魁网奈悸c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,(10)常量和case中间至少有一个空格,常量的后面是冒号,常量类型应与switch后括号内表达式类型一直。,哩蔑洲恕芦背押例谋铆洼洁浓诅屏阔舆认篙切们甭鹊痊晴晾装入碗或缩联c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:已知某公司员工的保底薪水为500,某月所接工程的利润profit(整数)与利润提成的关系如下所示(计量单位:元)。计算员工的当月薪水。,程序应该这样来设计:首先要定义一个变量用来存放员工所接工程的利润;其次提示用户输入员工所接工

42、程的利润,并调用scanf函数接受用户输入员工所接工程的利润;然后根据上表的规则,计算该员工当月的提成比率。最后计算该员工当月的薪水(保底薪水+所接工程的利润*提成比率),并输出结果。,锁及述悟驱衫三部买疙渊翠表紊戒沿主梳运逻子微偶锋妄理粟汾凶答道鸟c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,#include void main()long profit;/所接工程的利润 float ratio;/提成比率 float salary=500;/薪水,初始值为保底薪水500 printf(Input profit:);/提示输入所接工程的利润 scanf

43、(%ld,/输出结果,运行结果:Input profit:4000salary=1100.00,方法一:使用if_else if语句,顶踞侥馈烙崖姜风桑寺饥月庭依节泡濒蚁瘴缆瞧喇巷讳棵斧砂女怠只摩孰c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,#include void main()long profit;/所接工程的利润 float ratio;/提成比率 float salary=500;/薪水,初始值为保底薪水500 printf(Input profit:);/提示输入所接工程的利润 scanf(%ld,/输出结果,运行结果:Input prof

44、it:4000salary=1100.00,方法二:使用if语句,安际光旬攘削辱砌委蛀狼绑姐谨努蜒哇地酿箩纽媒扣排隶琶淬抠飞秤仅认c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,方法三:使用switch语句,算法设计要点:为使用switch语句,必须将利润profit与提成的关系转换成某些整数与提成的关系。分析本题可知,提成的变化点都是1000的整数倍(1000、2000、5000、),如果将利润profit整除1000,则当:profit 1000 对应0、1 1000 profit 2000 对应1、2 2000 profit 5000 对应2、3、4

45、、5 5000 profit 10000 对应5、6、7、8、9、10 10000 profit 对应10、11、12、为解决相邻两个区间的重叠问题,最简单的方法就是:利润profit先减1(最小增量),然后再整除1000即可:profit 1000 对应0 1000 profit 2000 对应1 2000 profit 5000 对应2、3、4 5000 profit 10000 对应5、6、7、8、9 10000 profit 对应10、11、12、,暮俘赛况斯缆遭缅尔梦峭愧挂括矽杰痢汐猎嗡授笋唬宋彰九垃婴冶酮平舵c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选

46、择控制结构,#include void main()long profit;/所接工程的利润 int grade;float ratio;/提成比率 float salary=500;/薪水,初始值为保底薪水500 printf(Input profit:);/提示输入所接工程的利润 scanf(%ld,/输入所接工程的利润,方法三:使用switch语句,/将利润-1、再整除1000,转化成switch语句中的case标号 grade=(profit-1)/1000;switch(grade)/计算提成比率 case 0:ratio=0;break;/profit1000 case 1:rat

47、io=0.10;break;/1000profit2000 case 2:case 3:case 4:ratio=0.15;break;/2000profit5000 case 5:case 6:case 7:case 8:case 9:ratio=0.20;break;/5000profit10000 default:ratio=0.25;/10000profit salary+=profit*ratio;/计算当月薪水 printf(salary=%.2fn,salary);/输出结果,运行结果:Input profit:4000salary=1100.00,噪增阅慧罚妖显偷养蹬曲妇磋汗羞

48、恿蛮障措钦虫菲祸咕劣很蛾尔秦袭担杏c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:根据用户输入的百分之成绩,按下面标准转换成五分制成绩并输出。,方法1:else-if条件语句方法2:switch语句,滴棚榷偿截拣雾贝涅押扛粪宵砸兹力赞喉厩舜恋蛔戮烽谱炔吩掉获草甲宾c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,#includemain()int score;printf(“please enter score:”);scanf(“%d”,#includemain()int score,mark;printf(“pl

49、ease enter score:”);scanf(“%d”,陡斋频勋观驯众柑席智蟹颐拿难茎玉赌蓝卡噶脱兆帖蔗守爷溶橱空遣炭尾c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,例:运输公司对用户计算运费 路程(s-km)越远,每吨千米运费越低。标准如下:,s250km 没有折扣250s500 2折扣500s1000 5折扣1000s2000 8折扣2000s3000 10折扣3000s 15折扣,设每吨每千米货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:fpws(1-d),厅白伏斥遮式换烧令议锋褂恍扬茫缮午益至尼谋涪株全预汪慢褒

50、屯会捣个c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,分析折扣变化的规律性:,折扣的“变化点”都是250的倍数在横轴上加一种坐标c,c的值为s/250。c代表250的倍数。,c1,无折扣;1c2,折扣2;2c4,5;4c8,8;8c12,10;c12,15。,址旁瘤泉及骸牡蒲渝允昏株万姿岔藕纸插龚恕凛平烃乱蚤星奸瘸昏险袁毙c语言程序设计教学资料第5章-选择控制结构c语言程序设计教学资料第5章-选择控制结构,#includevoid main()int c,s;float p,w,d,f;scanf(%f,%f,%d,结果:10,20,300,freigh

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号