




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第4章选择结构程序设计,掌握关系表达式和逻辑表达式的组成及运算理解选择结构(分支结构)程序设计的概念掌握if语句、switch语句的基本结构及执行过程学会简单的选择结构程序设计,学习目标,4.1案例:红绿灯,4.1案例:红绿灯,【例4-1】车接近十字路口准备直行,这时候直行灯是红灯,怎么办?,4.1案例:红绿灯,#includevoidmain()intcolor;intred=1;/*用变量red存储1来代表红灯*/printf(Pleaseinputcolor(1-red,2-green):);scanf(%d,4.2关系运算符与关系表达式,4.2.1关系运算符关系运算符、=、bb)c等价于a!=(bc),C语言处理判断和输出判断结果示意图,4.1关系运算符与关系表达式,4.2.2关系表达式表达式关系运算符表达式aba+1!=b3.1415=3.141634=100a99,4.3逻辑运算符与逻辑表达式,4.3.1逻辑运算符逻辑运算符!(逻辑非)、inta,b;c=A;a=1;b=2;printf(cB=%dn,cB);printf(ab2=%dn,ab2);,4.4逻辑运算符的短路现象,若elsemax=y;max=xy?x:y优先级右结合性:ab?a:cd?c:d等价于ab?a:(cd?c:d),【例4-9】用条件运算符输出3个整数中的最大者,#includevoidmain()inta,b,c,max;printf(inputa,b,c:);scanf(%d,%d,%d,4.10switch语句,switch(表达式)case常量表达式1:语句1;case常量表达式2:语句2;case常量表达式n:语句n;default:语句n+1;,【例4-10】输入一个十进制数,根据输入的数输出所对应的英文星期单词,若所输入的数小于1或大于7,则输出“Error”。,#includevoidmain()inta;printf(Inputa:);scanf(%d,4.10switch语句,switch(表达式)case常量表达式1:语句1;break;case常量表达式2:语句2;break;case常量表达式n:语句n;break;default:语句n+1;,修改后的例4-10程序,#includevoidmain()inta;printf(Inputa:);scanf(%d,【注意】,switch后跟的“表达式”允许为任何类型的表达式,其数据类型和case后面的常量表达式的数据类型一致。每一个case后的各常量表达式的值不允许重复,否则会报错。每一个case后允许有多条语句,可以不用花括号“”括起来。case和default子句出现的先后顺序可以变动,不会影响程序的执行结果。default子句也可以省略不用。多个case可以共用一组执行语句。例如:caseA:caseB:caseC:printf(Passn);break;,关于break,4.11案例:判断输入的整数是否含有数字6,【例4-11】输入一个100以内的十进制正整数,判断该数是否包含数字字符“6”。若是输出“Yes!”,否则输出“No!”。#includevoidmain()inta;printf(Inputa:);scanf(%d,4.12案例:三个数的排序,【例4-12】输入3个数,按从小到大的顺序输出。#includestdio.hvoidmain()inta,b,c,t;printf(Inputa,b,c:);scanf(%d,%d,%d,4.13案例:分数等级的划分,【例4-13】将一个百分制的成绩(设是整数)转化成5个等级,90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。例如,输入75,则显示C。【分析】先判断输入的数据是否在合理的分数范围(0100)内,然后再判断是哪个分数段:90分以上输出A,8089分输出B,7079分输出C,6069分输出D,否则显示E。,4.13案例:分数等级的划分,#includevoidmain()inta;printf(Inputa:);scanf(%d,【分析】,使用switch语句,当然最笨的办法是每一个分数一个case分支,将需要101个分支,显然这种程序不值得推荐。那么有没有简化的办法呢?其实,任何好的算法都是对问题分析和提炼的结果。题目中60分以上都是每10分一个层次,60分以下是一个层次。只要把每个层次的共性找到就容易找到简化程序的办法了。以6069为例。每个分数的十位数都是6,对于该层次的成绩,整除10的结果都是6。同样对于7079、8089、9099都是一样。而69分以下的成绩整除10的结果都小于6。,【例4-13】将一个百分制的成绩(设是整数)转化成5个等级(用switch语句完成),#includevoidmain()inta;printf(Inputa:);scanf(%d,根据某种条件的成立与否而采用不同的程序段进行处理的程序结构称为选择结构,也称为分支结构。选择结构体现了程序的逻辑判断能力。对于条件的判断,C语言采用逻辑值1和0分别表示真和假。产生这种逻辑值的表达式是关系表达式和逻辑表达式。二者可以统称条件表达式。C语言采用if语句和switch语句描述选择结构。if语句可分为单分支、双分支和多分支。一般采用if语句实现简单的分支结构程序。switch语句和break语句配合可以实现多分支结构程序。嵌套的if语句和siwtch语句都能设计完成多分支的程序,二者各有特色。对于条件具备规律性的问题,采用switch语句效率更好,可读性也更好。,本章小结,下面程序的输出结果是:#includemain()intx=1,a=0,b=0;switch(x)case0:b+;case1:a+;case2:a+;b+;printf(a=%d,b=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江苏宿迁市泗洪县招聘国有企业人员拟聘用人员考前自测高频考点模拟试题完整参考答案详解
- 2025年保健常识试题题库及答案
- 2025年饮品培训考试试题及答案
- 2025秋季西北销售分公司高校毕业生招聘备考考试题库附答案解析
- 2025教师教育常识试题及答案
- 2025社区医院院感试题及答案
- 19.3课题学习 选择方案(第2课时)教学设计人教版数学八年级下册
- 2025教师科目二试题及答案
- 2025年南昌市社会福利院招聘5人考试模拟试题及答案解析
- 2025年注塑安全生产试卷及答案
- 驾驶安全培训文案课件
- 招聘渠道分析评估表
- 2025年注册安全工程师考试 安全生产法律法规与标准冲刺押题卷
- 2025年建设工程质量检测行业现状分析及未来五年运行态势
- 鲁科版(五四学制)(2024)六年级上册生物知识点背诵提纲
- 2025张掖市民乐县辅警考试试卷真题
- 2025年中国玻璃生产线数据监测研究报告
- 矿山尾矿购销合同协议
- 学院实验教学中心建设与发展
- 银行解冻申请书
- 森林抚育作业设计
评论
0/150
提交评论