C语言第5章选择结构的程序设计.ppt

上传人:牧羊曲112 文档编号:6504261 上传时间:2023-11-07 格式:PPT 页数:35 大小:267.49KB
返回 下载 相关 举报
C语言第5章选择结构的程序设计.ppt_第1页
第1页 / 共35页
C语言第5章选择结构的程序设计.ppt_第2页
第2页 / 共35页
C语言第5章选择结构的程序设计.ppt_第3页
第3页 / 共35页
C语言第5章选择结构的程序设计.ppt_第4页
第4页 / 共35页
C语言第5章选择结构的程序设计.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《C语言第5章选择结构的程序设计.ppt》由会员分享,可在线阅读,更多相关《C语言第5章选择结构的程序设计.ppt(35页珍藏版)》请在三一办公上搜索。

1、高级语言程序设计(C语言),第五章 选择结构程序设计,第五章 选择结构程序设计,5.1 if语句5.2 switch语句5.3 无条件转向语句,5.1 if语句,1.简单的if语句2.双分支if语句3.多分支if语句4.控制条件的表示5.if语句的嵌套,1.简单的if语句,格式:if()语句 功能:,表达式,语句,F,T,程序应用举例,例1 求给定整数的绝对值。x x0|x|=-x x0设:x整数 yx的绝对值,流程图:,x0?,y=x,y=-x,T,F,开始,输出x,y,结束,输入x,程序应用举例,例2 求4个整数中的偶数之和。设:a,b,c,d4个整数。s偶数之和,作为累加器使用,先要清0

2、。分析:偶数能被2整除,如果设x为整数,则有x%2=0,余数为0。,流程图:,a%2=0?,s=0,s=s+a,T,F,s=s+b,开始,输出a,b,c,d,s,结束,输入a,b,c,d,b%2=0?,T,F,c%2=0?,s=s+c,T,s=s+d,d%2=0?,T,F,I,I,F,程序应用举例,例3 已知a,b,c 3个整数,将3个数按从大到小的顺序排列输出。设:a,b,c 3个整数。,流程图:,ab?,a与b交换,T,F,a与c交换,开始,输出a,b,c,结束,输入a,b,c,ac?,T,F,bc?,b与c交换,T,F,2.双分支if语句if_else语句,格式:if()语句1 else

3、 语句2,2.if_else语句,功能:,表达式,语句2,T,F,语句1,3.多分支if语句,格式:if()语句1 else if()语句2 else if()语句3.else if()语句n-1 else 语句n,3.多分支语句,功能:,表达式1,语句2,T,F,语句1,表达式2,表达式n-1,语句n,语句n-1,T,T,F,F,4.控制条件的表示,控制条件通常用关系表达式或逻辑表达式构造。在判断时,表达式中的非0为True,0为False。而关系表达式或逻辑表达式的返回值为1或0,1表示True,0表示False。,4.控制条件的表示,在判断表达式时:非0True0False而关系表达式或

4、逻辑表达式的返回值:1True0False,5.If语句的嵌套,在一个条件语句中包含有另一个条件语句的结构,成为条件的嵌套。,条件嵌套应用举例,例1 求分段函数。(P90)x+1 x0 y=x x=0 x-1 x0。,条件嵌套应用举例,例2 从键盘上输入3个数,若这3个数能构成三角形的三边长,则求这个三角形的面积,否则打印响应的错误信息,当出现数据小于或等于0时,显示“数据无效!”;当任意两边之和不大于第三边时,显示“不能构成三角形!”分析:三个数能构成三角形的充分必要条件是:(1)三个数均大于0。(2)任意两边之和大于第三边。设:a,b,c三边长 p中间变量,p=(a+b+c)/2 s三角形

5、面积,5.2 switch语句,格式:switch()case:语句1 case:语句2 case:语句ndefault 语句n+1,5.2 switch语句,功能:首先计算的值,然后依次与(i=1,2,n)比较,若表达式的值与相等,则从处开始执行,这里就是执行的入口,直到switch语句结束。若所有的(i=1,2,n)的值均不等于表达式的值,则从default处开始执行。,5.2 switch语句,说明:(1)switch后面的可以是任何表达式,取其整数部分与进行比较。(2)中不能出现变量,且类型必须是整型、字符型或枚举型,各互不相同。(3)语句I可以是一条语句或多条语句,多条语句不必用 将

6、它们括起来。语句i处也可以没有语句,程序执行时会自动向下顺序执行。(4)default一般出现在所有的case之后,也可以出现在case之前或两个case语句之间。Default可以省略。,5.2 switch语句,例1 用switch语句设计程序,实现输出学生成绩和等级的功能。分析:因为分数x为0100分,则x/10的值为0,1,2,3,4,5,6,7,8,9,10。,5.2 switch语句,分析结果:第一行输出正确,后面7行输出是多余的,原因何在?原因:根据switch语句的功能,在执行完一个case后面的语句后,流程控制转移到下一个case继续指向。“case”只是起语句标号的作用,并

7、不是在该处进行条件判断。在执行switch语句时,计算机根据switch后面的值找到响应的入口标号,就从此标号开始一直执行下去,不再判断。那么,如何终止switch语句的执行呢?C语言中提供的break语句可以做到这一点。,5.2 switch语句,格式:break;功能:终止它所在的switch语句的执行。,5.3 无条件转向语句,格式:goto;功能:无条件转向语句标号所标识的语句执行。,5.3 无条件转向语句,说明:1用标识符后面跟冒号表示。例如:goto k;k:2goto语句与相应的必须在同一个函数中,不允许跨两个函数。,5.3 无条件转向语句,例1 输入三角形3边的边长并输出。若输

8、入的3边长不能满足构成三角形的条件,程序在显示提示信息后,利用goto语句自动转到输入函数调用语句,要求用户重新输入3边长的值,直到输入的3个边长满足构成三角形的条件为止。设:x,y,z三角形的3条边长,5.3 无条件转向语句,例2 改进输出学生成绩和的等级的程序,使之当输入的成绩非法时,要求用户重新输入合法的成绩。,5.4 应用举例,例1 输入3个整数,求最小值。设:a,b,c3个整数 min最小值,5.4 应用举例,例2 编写程序,判断某一年是否是闰年。判断闰年的条件:(1)能被4整除,但不能被100整除的年份都是闰年。如1996,2004年等都是闰年。(2)能被100整除,又能被400整

9、除的年份是闰年。如1600,2000年都是闰年。(3)不符合这两个条件的年份不是闰年。设:yezr年份 leap表示是否闰年,如果是,则leap=1,否则leap=0。,流程图:,year被4整除?,leap=1,T,F,leap=0,开始,输出“闰年”,结束,输入year,year被100整除?,T,F,year被400整除?,T,leap,T,F,F,leap=0,输出“非闰年”,leap=1,5.4 应用举例,例3 求一元二次方程ax2+bx+c=0的根。(P99)分析:对于求一元二次方程ax2+bx+c=0,(1)若a=0,则原方程变为一元一次方程bx+c=0,则,当b不等于0时,x=-c/b。(2)若a0,则方程有2个根(实根或复根)若b2-4ac0,则方程有两个实根:x1,2=(-bb2-4ac)/(2a)若b2-4ac0,则方程有两个复根:x1,2=-b/(2a)i|b2-4ac|/(2a),流程图:,a%2=0?,s=0,s=s+a,T,F,s=s+b,开始,输出a,b,c,d,s,结束,输入a,b,c,d,b%2=0?,T,F,c%2=0?,s=s+c,T,s=s+d,d%2=0?,T,F,I,I,F,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号