收藏 分销(赏)

c语言选择结构讲解.ppt

上传人:可**** 文档编号:737159 上传时间:2024-02-28 格式:PPT 页数:42 大小:658KB
下载 相关 举报
c语言选择结构讲解.ppt_第1页
第1页 / 共42页
c语言选择结构讲解.ppt_第2页
第2页 / 共42页
c语言选择结构讲解.ppt_第3页
第3页 / 共42页
c语言选择结构讲解.ppt_第4页
第4页 / 共42页
c语言选择结构讲解.ppt_第5页
第5页 / 共42页
点击查看更多>>
资源描述

1、1选择结构程序设计2一、什么叫“选择”二、在C中选择结构的表现形式三、“关系运算”与“逻辑运算”四、选择结构的使用实例五、总结、疑问、常见错误主要内容3从小学时代:语文课的造句练习:如果就英语学习中单词:if then 一、什么叫“选择”4生活中的“选择”体育课排队中位置的选择 第一次排队 来了新人的排队大学的选择:高考分数、学校知名度、兴趣、就业前景、风险:招生数量、竞争人数、5生活中的“选择”道路上的选择 道口分类:三岔口、十字路口、五道口、N道口 选择的依据?目的地、道路、畅通性6讲座 选择结构程序设计生活中的“选择”领导要求:明天上午10点钟到北京清华大学参加会议,后天回校参加选举会。

2、你怎么办?交通工具的选择:飞机、火车、汽车7讲座 选择结构程序设计总结:依据某些条件实现(达到)某个目标的情况处理称为选择。因此首先必须知道“条件”,然后是使用适当的处理方式。选择的必要条件:“条件”8讲座 选择结构程序设计在C中选择结构的表现形式,一般称为 if 语句 switch 语句可以从不同的角度去观察分析这两个语句。二、在C中“选择结构”的表现形式9讲座 选择结构程序设计1 从词义看:if 语句 switch 语句10选择结构单分支双分支if (表达式)语句多分支if (表达式)语句else 语句if (表达式1)语句else if (表达式)语句else 语句nif 语句的嵌套sw

3、itch 语句讲座 选择结构程序设计2 从分支看分为三种分支11if (表达式)语句switch(表达式)case:.讲座 选择结构程序设计3 从一般形式的角度分两种基本结构:选择标识符 (表达式)语句你注意到与前面第一部分的介绍有什么不同吗?(表达式)12讲座 选择结构程序设计关于表达式的定义表达式由运算符、常量及变量构成。C语言的表达式基本遵循一般代数规则。虽然进一步细分,又分为算术表达式、关系表达式、赋值表达式,有几点却是与C语言紧密相关的需要注意。1.类型转换 2.复合运算的使用 13讲座 选择结构程序设计 根据给定的条件判断决定要执行的操作。语句格式:if(表达式)语句;例:if(a

4、b)x=a;语句零条件非零 if 语句的使用。14举例讲座 选择结构程序设计#include void main()float a,b,t=0;scanf(“%f,%f”,&a,&b);if(ab)t=a;a=b;b=t;printf(“%5.2f,%5.2fn”,a,b);3,4 if(ab)t=a;a=b;b=t;3.00,4.00当某些语句作为一个整体出现的时候,必须是复合语句的形式。15讲座 选择结构程序设计if 语句中对于表达式的要求 1.对表达式的类型没有任何要求 2.使用的是表达式的结果值 3.这个结果值若非0,则都作为“真”处理。4.针对上一条,对float类型的结果要格外注意

5、。16讲座 选择结构程序设计 switch 语句的使用。格式:switch(表达式)case 常量表达式:语句序列;case 常量表达式:语句序列;case 常量表达式n:语句序列n;default:语句序列n+1;17讲座 选择结构程序设计switch 语句中注意的问题 1.规则上对表达式的类型没有任何要求,但实际使用中一般采用结果为整形或字符型的表达式,或者是与常量表达式类型一致的表达式.2.使用的是表达式的结果值与常量表达式“等于”的比较结果。3.要注意case的执行顺序的影响。18讲座 选择结构程序设计在班级排队中排队的依据是“相互之间身高”的差异;在三角形构成判定定理中要求“任意两边

6、之和大于第三边”;因此两个对象(量)之间不仅可以实施算术运算,还存在一定的“关系”。小学时就知道:ab是否成立要看具体值。在C语言中称之为关系运算。三、“关系运算”与“逻辑运算”19运算定义、运算符号、运算对象讲座 选择结构程序设计这些运算相互之间的优先级与其它运算组合时的优先级运算结果值、如何使用这个结果关心什么?20关系运算符 =!=(6种)讲座 选择结构程序设计优先级赋值 关系(后2前4 )cd=ab+c153?d=ab+c?关系运算符和关系表达式21讲座 选择结构程序设计关系运算是表述对象之间的关系是否成立,在给出具体值必然有一个确定的、唯一的结果:要么成立、要么不成立。上升到理论高度

7、,将这了结果称为逻辑值:“真”、“假”。看一下造句题:如果a来了并且b也来了,才能打开门。如果a来了或者b也来了,都能打开门。以上两个问题引入了一个新的运算:逻辑运算。22逻辑运算符 !(逻辑非)&(逻辑与)|(逻辑或)运算规则优先次序赋值|&关系算术 3)|b 0逻辑运算符和逻辑表达式23讲座 选择结构程序设计举例53&8 3)&(8 3|21逻辑运算符两侧的运算对象不但可以是和,也可以是或非的整数,也可是任何类型的数据。系统判定标准:为假;非为真。24讲座 选择结构程序设计解决实际问题的步骤 1.分析已知条件、解决分步 2.根据问题决定使用什么结构、语句 3.编写源程序(代码)4.调试:排

8、出语法错误,用已知初始数据和结果排出语义错误。5.实际使用:用真实数据运行程序。四、选择结构的应用实例25思考按照从小到大的顺序输出数据讲座 选择结构程序设计#include void main()float a,b,t=0;scanf(“%f%f”,&a,&b);if(ab)t=a;a=b;b=t;printf(“%5.2f,%5.2fn”,a,b);针对要求选择单分支结构即可。单分支要求编成采用固定输出模式是,已经符合如何处理,不符合时如何处理。26要求讲座 选择结构程序设计#include void main()float a,b,c,p,s;scanf(“%f,%f,%f”,&a,&b

9、,&c);if(a+bc&a+cb&b+ca)p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c);printf(“s=%7.2fn”,s);else printf(“Not a triangle!n”);如何判断是三角形的三边?如何求三角形的面积。输入a,b,c是三角形吗?p(a+b+c)/2ssqrt(p*(p-a)*(p-b)*(p-c)输出s输出“非三角形!”3,4,5s=6.003,4,8Not a triangle!双分支分析输入三角形的三边,求三角形的面积。27格式举例讲座 选择结构程序设计if(cost3000)cash=500;else if(cost

10、2000)cash=300;else if(cost1500)cash=200;else if(cost1000)cash=100;else cash=0;if (表达式1)语句else if (表达式)语句else 语句n语句本身含分号多分支(一)28if语句的嵌套讲座 选择结构程序设计在if语句中又包含一个或多个if语句。被嵌套的条件语句和嵌套进去的条件语句既可是单分支,也可是双分支。if(表达式)if(表达式)语句else 语句else if(表达式3)语句3else 语句4注意if与else的配对原则:else总是与它上面的最近的未配对的if配对。分析方法1、主句是单分支还是双分支的。

11、2、嵌套进来的子句是双分支还是单分支的,嵌套在if后面还是else后面。多分支(二)29开关语句 讲座 选择结构程序设计switch(表达式)case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式3:语句3 case 常量表达式n:语句n default:语句n+1当分支较多时,使用嵌套的if语句层数多,程序冗长而且可读性降低。此时可以考虑使用switch语句(开关语句)来处理多分支。多分支(三)30举例#include void main()char grade;printf(“请输入考试等级AD:”);scanf(“%c”,&grade);switch(gra

12、de)case A:printf(“80100n”);case B:printf(“7079n”);case C:printf(“6069n”);case D:printf(“60n”);default:printf(“errorn”);B7079606960Error根据输入的考试成绩等级打印出百分制分数段。A:80100 B:7079 C:6069 D:60说明:应在每一个printf后加break语句讲座 选择结构程序设计31完善后#include void main()char grade;printf(“请输入考试等级AD:”);scanf(“%c”,&grade)switch(gr

13、ade)case A:printf(“80100n”);break;case B:printf(“7079n”);break;case C:printf(“6069n”);break;case D:printf(“60n”);break;default:printf(“errorn”);B7079最后一行的break可以省略。讲座 选择结构程序设计32问题#include void main()int score;printf(“请输入考试成绩0100:”);scanf(“%c”,&score);switch(score)case 80100:printf(“An”);break;case 7

14、079:printf(“Bn”);break;case 6069:printf(“Cn”);break;case 60:printf(“Dn”);break;default:printf(“请输入0100之间的整数n”);根据输入的考试成绩(百分制整数)打印出等级水平。(使用switch语句实现)A:80100 B:7079 C:6069 D:60思考:本程序有问题么?理想中讲座 选择结构程序设计思考使用什么结构来解决问题?33#include void main()int score,p;printf(“请输入考试成绩0100:”);scanf(“%c”,&score);p=score/10

15、;switch(p)case 0:printf(“Dn”);break;case 1:printf(“Dn”);break;case 2:printf(“Dn”);break;case 3:printf(“Dn”);break;case 4:printf(“Dn”);break;case 5:printf(“Dn”);break;case 6:printf(“Cn”);break;case 7:printf(“Bn”);break;case 8:printf(“An”);break;case 9:printf(“An”);break;case 10:printf(“An”);break;def

16、ault:printf(“请输入0100之间的整数n”);改进程序111种情况思考:不同case值时执行相同的操作,是否可以合并?讲座 选择结构程序设计34#include void main()int score,p;printf(“请输入考试成绩0100:”);scanf(“%c”,&score);p=score/10;switch(p)case 0:case 1:case 2:case 3:case 4:case 5:printf(“Dn”);break;case 6:printf(“Cn”);break;case 7:printf(“Bn”);break;case 8:case 9:c

17、ase 10:printf(“An”);break;default:printf(“请输入0100之间的整数n”);改进程序2注意:多个case共用一组执行语句时,共用的执行语句写在最后一个case的后面。讲座 选择结构程序设计35问题输入一年号,判断这一年是否为闰年.讲座 选择结构程序设计真year被400整除year被4整除真假leap=0leap=1year被100整除真leap=1leap=0Leap真假输出“闰年”输出“非闰年”假假分析当给出数学表达式后,如何转化为程序.参考N-S图是结构化程序设计中常用的方法,36参考程序讲座 选择结构程序设计#include void main(

18、)int year,leap;scanf(%d,&year);if(year%4=0)if(year%100=0)if(year%400=0)leap=1;else leap=0;else leap=1;else leap=0;if(leap)printf(%d is,year);else printf(%d is not,year);printf(a leap yearn,year);运行情况如下:输入:1800输出:1800 is not a leap year输入:2000输出:2000 is a leap year输入:1996输出:1996 is a leap year条件可否合并写

19、成一行呢?37改进程序讲座章 选择结构程序设计#include void main()int year,leap;scanf(%d,&year);if(year%4=0&year%100!=0)|(year%400=0)leap=1;else leap=0;if(leap)printf(%d is,year);else printf(%d is not,year);printf(a leap yearn,year);38讲座 选择结构程序设计总结前面所用的例子基本上都取自教材中,这里只是重新梳理分析。1.选择结构有两种基本形式,但是能组合出多种变化;2.表达式不仅有算数表达式、还有关系、逻辑、

20、条件(?)、逗号、赋值,等等。3.表达式的使用要特别注意优先级的影响。4.在VC中“逻辑与”的表达式当求解到“假”时,后面的不再计算。39讲座 选择结构程序设计问题?1.能看懂程序,但是自己对立写不出来;模仿是学习的必要阶段,但只是初级阶段。只有亲自动手才能熟悉;经验需要自己总结。2.如何设计程序的结构?如果让你做一道菜,你怎么完成?再复杂的机械,也是由简单部分构成的,能把所有完成的任务分解成一步一步的,你就会写程序了。2.如何验证程序的正确与否?你会验证一个公式的正确性,就会验证程序的正确性,原理一样、方法多种。40讲座 选择结构程序设计4.复杂的表达式如何简单化?加入圆括号,明显地表示出结

21、构关系;充分利用优先级的影响。5.如何快速的排除错误?先排除头三个错误;鼠标点击提示后,光标到错误所在的行,90%的错误在本行。6.语法错误与语义错误是两个概念 要求计算a+b,程序中写成a-b,计算机不会知道这个错误。41讲座 选择结构程序设计常见错误 记住:有错不可怕,只怕不知道。1.“=”与“=”的区别?在C语言中,“=”是关系运算符,易犯得错误是 if(a=b)then c=a;2.没有使用复合语句?记住一点:凡是需要两条或多条语句完成的工作一定用花括号表示出来;3.嵌套关系错误 如果你能用N-S图画出流程,就不会犯这类错误。建议采用缩进格式(VC中基本自动缩进了)写程序;4.缺少break语句 对case的执行流程没有记住导致的。42讲座 选择结构程序设计谢谢

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服