已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
.,4,选择结构程序设计,第,章,.,选择结构和条件判断,C语言有两种选择语句,if语句,用来实现两个分支的选择结构switch语句,用来实现多分支的选择结构,.,if语句例题,【例4.1】在例3.5的基础上对程序进行改进。题目要求解得ax2+bx+c=0方程的根。由键盘输入a,b,c。假设a,b,c的值任意,并不保证b2-4ac0。需要在程序中进行判别,如果b2-4ac0,就计算并输出方程的两个实根,如果b2-4ac=(大于等于),4,=(等于),5,!=(不等于),6,前种关系运算符的优先级别相同,后2种也相同。前种高于后种。关系运算符的优先级低于算术运算符。关系运算符的优先级高于赋值运算符。,算术运算符,赋值运算符,高优先级低,ca+b等效于c(a+b)(关系运算符的优先级低于算术运算符)ab=c等效于(ab)=c(大于运算符的优先级高于相等运算符=)a=bc等效于a=(bc)(关系运算符的优先级高于赋值运算符),.,关系表达式,用关系运算符将两个数值或数值表达式连接起来的式子,称为关系表达式。关系表达式的值是一个逻辑值,即“真”或“假”。在C的逻辑运算中,以“1”代表“真”,以“0”代表“假”。,若a=3,b=2,c=1,则:d=ab,由于ab为真,因此关系表达式ab的值为1,所以赋值后d的值为1。f=abc,则f的值为0。因为“”运算符是自左至右的结合方向,先执行“ab”得值为1,再执行关系运算“1c”,得值0,赋给f,所以f的值为0,.,逻辑运算符和逻辑表达式,用逻辑运算符将关系表达式或其他逻辑量连接起来的式子就是逻辑表达式。,.,逻辑运算符及其优先次序,“elsemax=b;,max=(ab)?a:b;,ab?(max=a):(max=b);/表达式2和表达式3是赋值表达式,或,.,条件运算符和条件表达式,【例4.4】输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。,#includeintmain()charch;scanf(%c,解题思路:用条件表达式来处理,当字母是大写时,转换成小写字母,否则不转换。,.,选择结构的嵌套,if()if()语句1else语句2elseif()语句3else语句4,内嵌if,内嵌if,注意,if与else的配对关系。else总是与它上面的最近的未配对的if配对。如果if与else的数目不一样,为实现程序设计者的思想,可以加花括号来确定配对关系。,if()if()语句1elseif()语句2else语句3,编程序者把else写在与第1个if(外层if)同一列上,意图是使else与第1个if对应,但实际上else是与第2个if配对,因为它们相距最近。,if()if()语句1内嵌ifelse语句2,.,条件运算符和条件表达式,#includeintmain()intx,y;scanf(%d,#includeintmain()intx,y;scanf(%d,y10 x-1,.,用switch语句实现多分支选择结构,【例4.6】要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为7084分,C等为6069分,D等为60分以下。成绩的等级由键盘输入。,#includeintmain()chargrade;scanf(%c,.,用switch语句实现多分支选择结构,(1)括号内的“表达式”,其值的类型应为整数类型(包括字符型)。(2)花括号内是一个复合语句,内包含多个以关键字case开头的语句行和最多一个以default开头的行。case后面跟一个常量(或常量表达式),它们和default都是起标号作用,用来标志一个位置。执行switch语句时,先计算switch后面的“表达式”的值,然后将它与各case标号比较,如果与某一个case标号中的常量相同,流程就转到此case标号后面的语句。如果没有与switch表达式相匹配的case常量,流程转去执行default标号后面的语句。(3)可以没有default标号,此时如果没有与switch表达式相匹配的case常量,则不执行任何语句。(4)各个case标号出现次序不影响执行结果。(5)每一个case常量必须互不相同;否则就会出现互相矛盾的现象。(6)case标号只起标记的作用。在执行switch语句时,根据switch表达式的值找到匹配的入口标号,在执行完一个case标号后面的语句后,就从此标号开始执行下去,不再进行判断。因此,一般情况下,在执行一个case子句后,应当用break语句使流程跳出switch结构。最后一个case子句(今为default子句)中可不加break语句。(7)在case子句中虽然包含了一个以上执行语句,但可以不必用花括号括起来,会自动顺序执行本case标号后面所有的语句。当然加上花括号也可以。(8)多个case标号可以共用一组执行语句。,.,用switch语句实现多分支选择结构,【例4.7】用switch语句处理菜单命令。在许多应用程序中,用菜单对流程进行控制,例如从键盘输入一个A或a字符,就会执行A操作,输入一个B或b字符,就会执行B操作。,.,选择结构程序综合举例,【例4.8】写一程序,判断某一年是否为闰年。,#includeintmain()intyear,leap;printf(enteryear:);scanf(%d,year被400整除,year被100整除,if(year%4!=0)leap=0;elseif(year%100!=0)leap=1;elseif(year%400!=0)leap=0;elseleap=1;,if(year%4=0,.,选择结构程序综合举例,【例4.9】求ax2+bx+c=0方程的解。,#include#includeintmain()doublea,b,c,disc,x1,x2,realpart,imagpart;scanf(%lf,%lf,%lf,b2-4ac0,.,选择结构程序综合举例,【例4.10】运输公司对用户计算运输费用。路程越远,运费越低。标准如下:s250没有折扣250s5002折扣500s10005折扣1000s20008折扣2000sc)?temp:c;/将a和b中的大者与c比较,取最大者printf(“3个整数的最大数是%d/n”,max);return0;,.,5.,#include#include#defineM1000intmain()inti,k;printf(“请输入一个小于%d的整数i:”,M);scanf(%d,.,if(iM)printf(”输入的数据不符合要求,请重新输入一个小于%d的整数i”,M);scanf(%d,.,6.,#includeintmain()intx,y;printf(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年8月鼎和财产保险股份有限公司社会招聘44人考前冲刺试卷附完整答案详解【易错题】
- 2026广西北海市县级政府统计机构招聘统计协管员(协统员)25人模拟试卷附答案详解(考试直接用)
- 2026上海交通大学材料科学与工程学院复合材料研究所招聘博士后2人考前冲刺试卷含完整答案详解【必刷】
- 2026年甘肃省酒泉卫星发射中心教育局招聘人员考前冲刺试卷及完整答案详解【夺冠系列】
- 2026体育总局冬运中心选聘国家短道速滑队主教练1人模拟试卷【易错题】附答案详解
- 2026西南交通大学后勤保障部招聘6人笔试题库(突破训练)附答案详解
- 2026贵州毕节织金县部分学校招聘考调工作人员183人模拟试卷(巩固)附答案详解
- 2026台州天台县事业单位选聘8人考前冲刺密卷附参考答案详解(综合卷)
- 2026浙江杭州市西溪实验学校诚聘中学语文、英语、科学、社会老师(非事业)7人备考题库审定版附答案详解
- 2026江苏温州市泰顺县多家医疗卫生单位招聘编外人员联合4人笔试题库标准卷附答案详解
- 2026年医保经办管护综合岗事业单位招聘考试笔试试题(含答案)
- 2026年新上岗护士测试题及答案
- 沪粤版八年级物理上册期末考试卷及答案解析(100分版)
- 2025四川九洲电器集团有限责任公司招聘光电系统总体工程师(校招)等岗位测试笔试历年参考题库附带答案详解
- 2025江苏南京栖霞区中考一模数学试卷及答案
- 广西卫生职业技术学院招聘考试真题2025
- 《电气控制与S7-1200PLC应用》课件 第6章S7-1200 PLC程序块
- 2026镇江市护士招聘考试题及答案
- 钢结构更换构件施工工艺流程
- 2026年河南省安阳市重点学校初一新生入学分班考试试题及答案
- 医疗器械设计转换管理手册
评论
0/150
提交评论