C语言程序设计第4章-选择结构程序设计

举报
资源描述
Page 1 C 课程课程第第4章章 选择结构程序设计选择结构程序设计 Page 2 主要主要内容内容条件判断表达式条件判断表达式 关系运算符及表达式关系运算符及表达式 逻辑运算符及表达式逻辑运算符及表达式if选择语句选择语句(重点)(重点)单分支单分支if语句语句 双分支双分支if-else语句语句 条件运算符条件运算符多分支多分支switch语句语句(难点)(难点)Page 3 已知三边长,求三角形面积?已知三边长,求三角形面积?问题引入问题引入任意三边长都能构成三角形吗?任意三边长都能构成三角形吗?Page 4 构成三角形的条件:任意两边之和大于第三边构成三角形的条件:任意两边之和大于第三边问题引入问题引入开始开始输入三边输入三边结束结束输出面积输出面积输出错误输出错误构成三构成三角形?角形?真真假假Page 5 4.1 4.1 条件判断表达式条件判断表达式4.1.1 关系运算符及表达式关系运算符及表达式4.1.2 逻辑运算符及表达式逻辑运算符及表达式Page 6 4.1 4.1 条件判断表达式条件判断表达式4.1.1 关系运算符及表达式关系运算符及表达式关系运算符:关系运算符:用于确定两个数据之间是否存在着用于确定两个数据之间是否存在着某种关系。某种关系。Page 7 4.1 4.1 条件判断表达式条件判断表达式4.1.1 关系运算符及表达式关系运算符及表达式关系表达式:关系表达式:用关系运算符将两个表达式(算术、关系、用关系运算符将两个表达式(算术、关系、逻辑或赋值表达式)连接起来构成关系表达式逻辑或赋值表达式)连接起来构成关系表达式。关系表达式的结果关系表达式的结果关系表达式的结果关系表达式的结果得整数值:得整数值:0 0或或1 10 0:假假假假1 1:真真真真 各种运算符的优先级各种运算符的优先级各种运算符的优先级各种运算符的优先级算术算术算术算术关系关系关系关系赋值赋值赋值赋值Page 8 4.1 4.1 条件判断表达式条件判断表达式4.1.1 关系运算符及表达式关系运算符及表达式区别:区别:关系运算符关系运算符“=”,赋值运算符,赋值运算符“=”。【随堂练习【随堂练习4-1】当当r的值为的值为3时,判断下列条件表达式的值。时,判断下列条件表达式的值。(1)r=3 (2)r=4 (3)0r1 Page 9 4.1 4.1 条件判断表达式条件判断表达式4.1.2 逻辑运算符及表达式逻辑运算符及表达式&与与与与|为双目运算符,使用时左右各有一个为双目运算符,使用时左右各有一个为双目运算符,使用时左右各有一个为双目运算符,使用时左右各有一个操作数,使用时形如操作数,使用时形如操作数,使用时形如操作数,使用时形如:A&B,A|BA&B,A|B!为单目运算符,使用时形如为单目运算符,使用时形如为单目运算符,使用时形如为单目运算符,使用时形如:!A!APage 10 4.1 4.1 条件判断表达式条件判断表达式4.1.2 逻辑运算符及表达式逻辑运算符及表达式 A&B A&B 与运算只有与运算只有与运算只有与运算只有a a、b b均为真均为真均为真均为真 ,结果才为真。,结果才为真。,结果才为真。,结果才为真。A|B A|B 或运算或运算或运算或运算a a、b b有一个真有一个真有一个真有一个真 ,结果即为真。,结果即为真。,结果即为真。,结果即为真。!A !A 非运算即为取反运算非运算即为取反运算非运算即为取反运算非运算即为取反运算Page 11 4.1 4.1 条件判断表达式条件判断表达式例例4-11当当x=3,y=4,z=5时,计算下列各逻辑表达式的值。时,计算下列各逻辑表达式的值。xy&yz !(x=3)|yz00结果结果0!11结果结果1Page 12 4.2 if4.2 if选择语句选择语句4.2.1 单分支单分支if语句语句 4.2.2 双分支双分支if-else Page 13 4.2 if4.2 if选择语句选择语句4.2.1 单分支单分支if语句语句 验证码不区分大小写验证码不区分大小写 Page 14 4.2 if4.2 if选择语句选择语句4.2.1 单分支单分支if语句语句 语法格式:语法格式:if(表达式表达式)语句组;语句组;流程图流程图重点提示:重点提示:“语句组”可以是一条独立的语句,此时“”可以省略;也可以是包含多条语句的复合语句,此时“”不能省略。Page 15 例例4-2编写程序,输入两个整数,然后将这两个整数按照从大到小的顺编写程序,输入两个整数,然后将这两个整数按照从大到小的顺序存放并输出。序存放并输出。4.2 if4.2 if选择语句选择语句分析分析1、输入两整数存放两整型变量、输入两整数存放两整型变量a、b之中之中2、若、若ab,交换,交换a、b3、输出、输出a、bPage 16#include void main()int a,b,t;printf(“请输入请输入a,b的值:的值:”);scanf(“%d%d”,&a,&b);if(ab)t=a;a=b;b=t;printf(“输出结果为:输出结果为:a=%d,b=%d.”,a,b);4.2 if4.2 if选择语句选择语句参考代码参考代码Page 17 4.2 if4.2 if选择语句选择语句4.2.2 双分支双分支if语句语句 语法格式:语法格式:if(表达式表达式)语句组语句组1;else 语句组语句组2;流程图流程图Page 18 例例4-3输入一个正整数,判断该数是偶数,还是奇数。输入一个正整数,判断该数是偶数,还是奇数。4.2 if4.2 if选择语句选择语句分析分析Page 19#include void main()int x;printf(请输入一个正整数:请输入一个正整数:);scanf(%d,&x);if(x%2=0)printf(正整数正整数%d是偶数。是偶数。n,x);else printf(正整数正整数%d是奇数。是奇数。n,x);4.2 if4.2 if选择语句选择语句参考代码参考代码Page 20 条件运算符条件运算符if(mn)max=m;else max=n;max=mn?m:n;运算符运算符“?:?:”是条件运算符,条件表达式的一般格式为:是条件运算符,条件表达式的一般格式为:表达式表达式1?表达式?表达式2:表达式:表达式3Page 21 4.3 if4.3 if语句嵌套语句嵌套例例4-4输入三个边长输入三个边长a、b、c,如果这三个边能构成三角形,判断,如果这三个边能构成三角形,判断该三角形是等边三角形、等腰三角形,还是其它三角形。该三角形是等边三角形、等腰三角形,还是其它三角形。分析分析非三角非三角构成三构成三角形?角形?真真假假等边?等边?真真等边等边假假等腰?等腰?真真等腰等腰假假普通三角普通三角Page 22 void main()int a,b,c;printf(请输入三角形三边长:请输入三角形三边长:);scanf(%d%d%d,&a,&b,&c);if(a+bc&b+ca&a+cb)if(a=b&b=c)printf(该三角形为等边三角形该三角形为等边三角形.n);elseif(a=b|b=c|a=c)printf(该三角形为等腰三角形该三角形为等腰三角形.n);else printf(该三角形为其它三角形该三角形为其它三角形.n);else printf(注意:不能构成合法三角形注意:不能构成合法三角形.n);4.3 if4.3 if语句嵌套语句嵌套嵌套嵌套else总是和它前面离它最近的未配对总是和它前面离它最近的未配对的的if相匹配。可以通过相匹配。可以通过“”来强制来强制if和和else的配对关系。的配对关系。Page 23 4.3 if4.3 if语句嵌套语句嵌套【随堂练习【随堂练习4-2】1以下程序可判断指定的年份是否为闰年,补充完整。以下程序可判断指定的年份是否为闰年,补充完整。int year,f;/f是闰年的标志位,是闰年的标志位,year表示年份表示年份scanf(“%d”,&year);f=1;else if()printf(“%d年是闰年。年是闰年。”,year);else printf(“%d年不是闰年。年不是闰年。”,year);if(year%4=0&year%100!=0)|(year%400=0)f=0;f=1Page 24 4.4 4.4 多分支结构多分支结构4.4.1 多分支多分支if语句语句 执行过程执行过程执行过程执行过程式式1 1为真?为真?1真真真真假假假假退退退退 出出出出式式2 2为真?为真?真真真真真真真真2假假假假3假假假假4Page 25 例例4-4编写程序计算分段函数的值编写程序计算分段函数的值4.4 4.4 多分支结构多分支结构分析分析Page 26 4.4 4.4 多分支结构多分支结构参考代码参考代码Page 27 4.4 4.4 多分支结构多分支结构4.4.2 多分支多分支switch语句语句 在分支情况较多的情况下,用在分支情况较多的情况下,用if实现的多分支实现的多分支显得有些凌乱,程序流程不够清晰,用显得有些凌乱,程序流程不够清晰,用switch语语句实现多分支结构,程序工整清晰。句实现多分支结构,程序工整清晰。Page 28 4.4 4.4 多分支结构多分支结构switch语句格式语句格式 switch(表达式表达式)case 常量表达式常量表达式1:语句序列语句序列1;break;case 常量表达式常量表达式2:语句序列语句序列2;break;case 常量表达式常量表达式n:语句序列语句序列n;break;default:语句序列语句序列n+1;整型整型,字符型字符型类型相同类型相同跳出跳出switch方括号中方括号中的内容可的内容可省略省略 Page 29 例例4-5根据学生考试成绩根据学生考试成绩score的值(整数)判定考试等级。的值(整数)判定考试等级。判定标准如下表所示。判定标准如下表所示。4.4 4.4 多分支结构多分支结构分析分析Page 30 4.4 4.4 多分支结构多分支结构参考代码参考代码void main()int score;printf(请输入学生成绩:请输入学生成绩:);scanf(“%d”,&score);switch(score/10)case 10:case 9:printf(“该生的成绩等级为该生的成绩等级为A-优秀优秀.”);break;case 8:printf(“该生的成绩等级为该生的成绩等级为B-良好良好.”);break;case 7:printf(“该生的成绩等级为该生的成绩等级为C-中等中等.”);break;case 6:printf(“该生的成绩等级为该生的成绩等级为D-及格及格.”);break;default:printf(“该生的成绩等级为该生的成绩等级为E-不及格不及格.”);运行结果:运行结果:Page 31 4.5 4.5 综合应用综合应用例例4-6根据定期存款的期限和相应的利率,计算本息合计。根据定期存款的期限和相应的利率,计算本息合计。Page 32 4.5 4.5 综合应用综合应用例例4-6【分析分析】1、输入本金与存款期限、输入本金与存款期限 2、程序运算,选定特定利率值、程序运算,选定特定利率值 3、计算得到本息并输出、计算得到本息并输出 选择结构选择结构选择结构选择结构Page 33 4.5 4.5 综合应用综合应用【解法解法1】float c,r,money,m;/存款存款 期限期限 本息合计本息合计 存款额存款额 printf(存款金存款金额额与期限与期限);scanf(%f%f,&c,&m);if(m=3)r=0.026;if(m=6)r=0.028;if(m=12)r=0.033;if(m=24)r=0.0375;money=c+c*r*m/12;printf(%f,money);本息合计本息合计=本金本金+本金本金利率利率时间时间 (时间单位为年)(时间单位为年)Page 34 4.5 4
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 高等教育 > 大学课件


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