已阅读5页,还剩37页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,5.1关系运算符和关系表达式,5.5程序举例,5.4switch语句(多分支选择),5.3if语句(双分支选择),5.2逻辑运算符和逻辑表达式,第五章选择结构程序设计,关系运算符及其优先次序,关系表达式成立时(True),其值为1如:3=a+2a=a+8,注意优先级:a=83;/等价为a=83a=0a=(83);a=2,第五章选择结构程序设计,5.1关系运算符和关系表达式,5.5程序举例,5.4switch语句(多分支选择),5.3if语句(双分支选择),5.2逻辑运算符和逻辑表达式,逻辑真,逻辑假,a与b:二者都成立才为真逻辑真1,1)无else的形式:if(表达式)一条语句,表达式若为0,按“假”处理,若为非0,按“真”处理。因此:if(a!=0)常被简写为if(a)if(a=0)常被简写为if(!a),2)有else的形式:if(表达式)一条语句else一条语句,例:if(xy)printf(%d,x);elseprintf(%d,y);,if可以单独使用,但是else不能单独用,必须有与之配对的if。,例:if(a+bc,学生实验中常见错误:忘了加,则会出现语法错误提示:Error:illegalelsewithoutmatchingif.,if(表达式)一条语句else一条语句,要运行多条语句时,用“”将若干条语句括起来,视作一条复合语句。,(可读性太差)if()if()语句1else语句2elseif()语句3if()语句4,编程经验:应以空格(统一缩进2格或4格)来明确if和else的配对关系,有利于程序的可读性。,if()if()语句1else语句2elseif()语句3if()语句4,if语句中可以再嵌套if语句,形成多分支选择,例如:if()语句1if()语句2else语句3,else配对原则:向上最近配对例如:if()if()语句1else语句2,注意:不允许复合语句内外的if、else之间配对。,举例:#includevoidmain()intx=-7;if(xb)max=a;elsemax=b;,max=(ab)?a:b;,2.执行过程:如果表达式1为真,则条件表达式取表达式2的值,否则取表达式3的值。,表达式1?表达式2:表达式3,表达式1、2、3可以是任意类型的。(ab)?printf(%d,%d,b,a):printf(%d,%d,a,b);,eg5.2输入三个数,按由小到大顺序输出。,#includevoidmain()floata,b,c,t;scanf(%f,%f,%f,3.3,34,2.0,1.8,常用算法必须掌握,#includevoidmain()intx,y;scanf(%d,*思考:为了提高运行效率,建议改为:if(x0)y=-1;elseif(x=0)y=0;elsey=1;printf(y=%dn,y);,常用算法必须掌握,eg5.4:输入一个字符,判断它是否为大写字母,如果是,将它转换成小写字母,如果不是,不转换。然后输出最后得到的字符。,voidmain()charch;scanf(%c,A60n”);break;,851007084606960error,switch(grade)caseA:printf(“85100n”);break;caseB:printf(7084n);break;caseC:printf(6069n);break;caseD:printf(60n);break;default:printf(“输入有误n);,分析:若去掉break,输入grade=A,则运行结果是什么?,忘记写break语句,是新手常犯的错误。,例:将5分制成绩转为百分制,*例:实现菜单的最简单方法charmenu;while(1)printf(“*n”);printf(“1查询2新增3排序4另存5新建用户0退出n”);printf(“*请*选*择*n”);menu=getchar();switch(menu)case1:执行查询操作;break;case2:执行新增操作;break;case3:执行排序操作;break;case4:执行另存操作;break;case5:执行新建用户操作;break;case0:将数据存盘并退出整个程序;,第五章选择结构程序设计,5.1关系运算符和关系表达式,5.5程序举例(综合练习),5.4switch语句(多分支选择),5.3if语句(双分支选择),5.2逻辑运算符和逻辑表达式,综例1:任给三角形的三边,判断该三角形是等边、等腰、直角或一般三角形。,用变量a,b,c表示三角形三条边的长:,#includevoidmain()inta,b,c;printf(“输入三个边长,用空格间隔:);scanf(%d%d%d,常用算法必须掌握,综例2:eg5.5写程序,判断某一年是否闰年。,(指导书P34)阳历规定:闰年的条件是符合下面二者之一:1.能被4整除,但不能被100整除;例:公元2200年不是闰年。2.能被400整除。例:公元100年、200年都不是闰年。,算法一(推荐):直接用逻辑表达式来表示闰年的条件if((year%4=0,C二级常见问题建议掌握,算法二:多重分支选择结构(不推荐)if(year%4=0)if(year%100=0)if(year%400=0)leap=1;elseleap=0;elseleap=1;elseleap=0;if(leap)printf(“是闰年);elseprintf(“不是闰年);,综例3:eg5-6:求方程的解,分析:有以下几种可能:,要想成为一个用计算机解决问题的高手,前提是掌握广泛的知识。否则即使熟读C语法知识,也只能是“纸上谈兵”。,#include#includevoidmain()floata,b,c,disc,x1,x2,p,q;scanf(%ff%f,常用算法建议掌握,else/disc1e-6),综例4:给百分制的成绩,要求输出成绩等级ABCDF。(90分以上为A,80-89分为B,70-79分为C,60-69分为D,60分以下为F),提示:这是一个多分支选择问题,优先考虑能否用switch语句。关键是怎么使各个分支对应于不同整数,以便能用switch语句!,intgrade;/*分数*/charx;/*分数等级*/scanf(%d,常用算法必须掌握,思考1:通常可利用default来检查数据有效性,但本例不宜!switch(grade/10)case6:x=D;break;case5:case4:case3:case2:case1:case0:x=F;break;default:printf(“错误数据”);return;思考2:如果grade变量的类型是float或者double型时,注意要强制类型转换:switch((int)(grade+0.5)/10)/加0.5的目的是实现四舍五入,如果用户输入的是“-8”或“104”,则检查不错误数据出来。,实验课中常见错误:(数据不能正确输入,自己上机实验)scanf(“%dn”,&grade);/多加了回车scanf(“%d”,&grade);/多加了空格scanf(“%6.2f”,&dot);/多加了输出格式6.2动态调试技巧:(在今后各个实验中使用并写在实验报告中)1、菜单stepinto(F11)单步时会进入被调函数中2、菜单stepover(F10)单步时会越过被调函数3、菜单stepout4、菜单runtocursor5、设置/移除断点(F9)运行至断点处暂停,C语法小结,主要4种成分:关键字标识符常数运算符,仅仅有5种句型:if语句switch语句while语句dowhile语句for语句,作业:第5章3、4、5、6、7,算法:多看多练,无他尔,熟能生巧!,上机要求:初步学会动态调试技巧
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 煤矿智能液压支架智能控制与支护效率提升技术创新总结报告
- 烧烤店火灾应急预案演练脚本
- 2026年公务员考试备考行测《图形推理》复习题资料含答案解析
- 餐饮场所一氧化碳中毒应急预案演练脚本
- 学生素养阅读-让学生成为自己的成长解决方案
- 写给中年教师的假期成长清单
- 2026年注册化工工程师考试化工安全生产事故案例分析试题及答案
- 钢结构防火涂料施工专项施工方案
- 中医内科学试题及答案
- 2026小众公司面试题及答案
- 消化系统类医疗服务价格立项新规解读总结2026
- 酒店服务基础礼仪培训分享课件
- JJF(京)217-2026 圆锥塞尺校准规范
- 2026年高中语文毕业会考试卷及答案(共三套)
- (2026)高血压性脑出血重症管理专家共识课件
- 【2026】超星尔雅学习通《服装流行分析与预测(浙江理工大学)》章节测试及答案
- 建筑工程材料见证取样手册
- DB11T 1526-2025地下连续墙施工技术规程
- 李叔同简介课件
- 2026年大学生英语六级考试必背全部词汇表汇编(包过版)
- 口腔门诊护士培训制度
评论
0/150
提交评论