c语言程序设计(包云)第4章选择结构程序设计.ppt
《c语言程序设计(包云)第4章选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《c语言程序设计(包云)第4章选择结构程序设计.ppt(93页珍藏版)》请在三一办公上搜索。
1、第4章 选择结构程序设计,4.1 选择结构和条件判断4.2 用if语句实现选择结构4.3关系运算符和关系表达式4.4 逻辑运算符和逻辑表达式4.5 条件运算符和条件表达式4.6 选择结构的嵌套4.7 用switch语句实现多分支选择结构4.8选择结构程序综合举例,4.1 选择结构和条件判断,在现实生活中,需要进行判断和选择的情况是很多的如果你在家,我去拜访你如果考试不及格,要补考如果遇到红灯,要停车等待周末我们去郊游70岁以上的老年人,入公园免票,4.1 选择结构和条件判断,在现实生活中,需要进行判断和选择的情况是很多的处理这些问题,关键在于进行条件判断由于程序处理问题的需要,在大多数程序中都
2、会包含选择结构,需要在进行下一个操作之前先进行条件判断,4.1 选择结构和条件判断,C语言有两种选择语句:(1)if语句,实现两个分支的选择结构(2)switch语句,实现多分支的选择结构,4.1 选择结构和条件判断,例4.1 在例3.5的基础上对程序进行改进。题目要求是求 方程的根。由键盘输入a,b,c。假设a,b,c的值任意,并不保证。需要在程序中进行判别,如果,就计算并输出方程的两个实根,否则就输出“方程无实根”的信息。,解题思路:,输入a,b,c,计算disc,disc0,计算x1,x2,输出无实根,输出x1,x2,真,假,#include#include int main()doub
3、le a,b,c,disc,x1,x2,p,q;scanf(%lf%lf%lf,计算b2-4ac,disc的值变为-15,if(disc0)printf(“has not real rootsn”);else p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“real roots:nx1=%7.2fn x2=%7.2fn”,x1,x2);return 0;,-150为真,#include#include int main()double a,b,c,disc,x1,x2,p,q;scanf(%lf%lf%lf,计算b2-4ac,di
4、sc的值变为8,if(disc0)printf(“has not real rootsn”);else p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“real roots:nx1=%7.2fn x2=%7.2fn”,x1,x2);return 0;,80为假,p的值变为-1,q的值变为0.71,x1的值变为-0.29,x2的值变为-1.71,if(disc0)printf(“has not real rootsn”);else p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;pri
5、ntf(“real roots:nx1=%7.2fn x2=%7.2fn”,x1,x2);return 0;,选择结构,用if语句实现的,if(disc0)printf(“has not real rootsn”);else p=-b/(2.0*a);q=sqrt(disc)/(2.0*a);x1=p+q;x2=p-q;printf(“real roots:nx1=%7.2fn x2=%7.2fn”,x1,x2);return 0;,复合语句,4.2 用if语句实现选择结构,4.2.1 用if语句处理选择结构举例4.2.2 if语句的一般形式,4.2.1 用if语句处理选择结构举例,例4.2
6、输入两个实数,按代数值由小到大的顺序输出这两个数。,解题思路:只需要做一次比较,然后进行一次交换即可用if语句实现条件判断关键是怎样实现两个变量值的互换,A,B,互换前,A,B,互换后,4.2.1 用if语句处理选择结构举例,A,B,C,4.2.1 用if语句处理选择结构举例,A,B,C,4.2.1 用if语句处理选择结构举例,A,B,C,4.2.1 用if语句处理选择结构举例,#include int main()float a,b,t;scanf(%f,%f,将a和b的值互换,如果ab,#include int main()float a,b,t;scanf(%f,%f,选择结构,用if语
7、句实现的,例4.3 输入3个数a,b,c,要求按由小到大的顺序输出。,解题思路:可以先用伪代码写出算法:if ab,a和b对换(a是a、b中的小者)if ac,a和c对换(a是三者中最小者)if bc,b和c对换(b是三者中次小者)顺序输出a,b,c,#include int main()float a,b,c,t;scanf(%f,%f,%f,如果 ab,将a和b对换,a是a、b中的小者,如果 ac,将a和c对换,a是三者中的小者,如果 bc,将b和c对换,b是三者中的次小者,4.2.2 if语句的一般形式,if(表达式)语句1 else 语句2,关系表达式逻辑表达式数值表达式,方括号内的部
8、分为可选的,4.2.2 if语句的一般形式,if(表达式)语句1 else 语句2,简单的语句复合语句另一个if语句等,最常用的3种if语句形式:1.if(表达式)语句1(没有else子句)2.if(表达式)语句1 else 语句2(有else子句)3.if(表达式)语句 else if(表达式)语句 else if(表达式)语句 else if(表达式)语句 else 语句m+1(在else部分又嵌套了多层的if语句),if(number 500)cost=0.15;else if(number 300)cost=0.10;else if(number 100)cost=0.075;else
9、 if(number 50)cost=0.05;else cost=0;,if(number 500)cost=0.15;else if(number 300)cost=0.10;else if(number 100)cost=0.075;else if(number 50)cost=0.05;else cost=0;,等价于,分号不能丢,说明:(1)整个if语句可写在多行上,也可写在一行上 但都是一个整体,属于同一个语句(2)“语句1”“语句m”是if中的内嵌语句 内嵌语句也可以是一个if语句(3)“语句1”“语句m”可以是简单的语句,也可以是复合语句,4.3关系运算符和关系表达式,关系运算
10、符及其优先次序4.3.2 关系表达式,关系运算符,=!=(6种),优先级,赋值 关系(后2前4)算术,关系表达式,用关系运算符将两个表达式连接起来的式子.,算术、关系、逻辑、赋值、字符。,值,真(1)假(0),举例,已知:(a=3 b=2 c=1 d=0),0,a=bc,d=ab+c,1,53?,4.3 关系运算符和关系表达式,思考:abc的值等于多少?p92,ca+b 等效于 c(a+b)ab=c 等效于(ab)=ca=bc 等效于 a=(bc),4.4 逻辑运算符和逻辑表达式,4.4.1 逻辑运算符及其优先次序4.4.2 逻辑表达式4.4.3 逻辑型变量,逻辑运算符,!(逻辑非)&(逻辑与
11、)|(逻辑或),运算规则,优先次序,赋值|&关系算术!,(1)!:取逻辑值的相反值。(2)&:参加运算的两个逻辑值都为真时,结果为真(1)。(3)|:参加运算的两个逻辑值都为假时,结果为假(0)。,P93,逻辑表达式,用逻辑运算符将关系表达式和逻辑量连接起来的式子。,举例,已知:(a=b=),1,a|b&0,!a&(53)|b,0,双目,单目,、逻辑运算符和逻辑表达式,4.4.1 逻辑运算符及其优先次序,判断年龄在13至17岁之内?age=13&age65,4.4.1 逻辑运算符及其优先次序,逻辑运算的真值表,4.4.2 逻辑表达式,逻辑表达式的值应该是逻辑量“真”或“假”编译系统在表示逻辑运
12、算结果时以数值1代表“真”,以0代表“假”但在判断一个量是否为“真”时以0代表“假”,以非0代表“真”注意:将一个非零的数值认作为“真”,4.4.2 逻辑表达式,(1)若a=4,则!a的值为0(2)若a=4,b=5,则a&b的值为1(3)a和b值分别为4和5,则a|b的值为1(4)a和b值分别为4和5,则!a|b的值为1(5)4&0|2的值为1,4.4.2 逻辑表达式,修改后的逻辑运算真值表,4.4.2 逻辑表达式,判别某一年是否闰年,用逻辑表达式表示闰年的条件是符合下面二者之一:能被4整除,但不能被100整除,如2008能被400整除,如2000(year%4=0&year 100!=0)|
13、year%400=0如果表达式值为1,则闰年;否则为非闰年,4.4.3 逻辑型变量,这是C99所增加的一种数据类型可以将关系运算和逻辑运算的结果存到一个逻辑型变量中,以便于分析和运算,4.5 条件运算符和条件表达式,有一种if语句,当被判别的表达式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值如:if(ab)max=a;else max=b;,max=(a b)?a:b;,条件运算符,4.5 条件运算符和条件表达式,有一种if语句,当被判别的表达式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值如:if(ab)max=a;else max=b;,max=(a b)?a
14、:b;,条件表达式,4.5 条件运算符和条件表达式,条件表达式的一般形式为表达式?表达式:表达式,4.5 条件运算符和条件表达式,条件运算符的执行顺序:求解表达式1若为非0(真)则求解表达式2,此时表达式2的值就作为整个条件表达式的值若表达式1的值为0(假),则求解表达式3,表达式3的值就是整个条件表达式的值,4.5 条件运算符和条件表达式,条件运算符优先于赋值运算符条件运算符的结合方向为“自右至左”以下为合法的使用方法:ab?(max=a):(max=b);ab?printf(“%d”,a):printf(“%d”,b);,4.5 条件运算符和条件表达式,例4.4 输入一个字符,判别它是否大
15、写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。,解题思路:用条件表达式来处理,当字母是大写时,转换成小写字母,否则不转换,4.5 条件运算符和条件表达式,#include int main()char ch;scanf(%c,4.6 选择结构的嵌套,在if语句中又包含一个或多个if语句称为if语句的嵌套一般形式:if()if()语句1 else 语句2 else if()语句3 else 语句4,内嵌if,else总是与它上面最近的未配对的if配对,在if语句中又包含一个或多个if语句称为if语句的嵌套if()if()语句1 else语句2,内嵌if,限定了内嵌
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 选择 结构 程序设计
链接地址:https://www.31ppt.com/p-6503980.html