c5选择结构程序设计.ppt

上传人:夺命阿水 文档编号:236197 上传时间:2023-03-10 格式:PPT 页数:30 大小:937KB
返回 下载 相关 举报
c5选择结构程序设计.ppt_第1页
第1页 / 共30页
c5选择结构程序设计.ppt_第2页
第2页 / 共30页
c5选择结构程序设计.ppt_第3页
第3页 / 共30页
c5选择结构程序设计.ppt_第4页
第4页 / 共30页
c5选择结构程序设计.ppt_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《c5选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《c5选择结构程序设计.ppt(30页珍藏版)》请在课桌文档上搜索。

1、第5章选择结构程序设计,Page2,第5章 选择结构程序设计,主要内容:5.1 关系运算符和关系表达式5.2 逻辑运算符和逻辑表达式【重点】5.3 if语句【重点】5.4 switch语句5.5 程序举例,Page3,5.1 关系运算符和关系表达式,所谓“关系运算符”实际上是“比较运算”。5.1.1 关系运算符及其优先次序(大于)=(大于或等于)=(等于)!=(不等于),附录C,Page4,5.1 关系运算符和关系表达式,5.1.2 关系表达式 用关系运算符将两个表达式(算术表达式或关系表达式,逻辑表达式,赋值表达式,字符表达式)接起来的式子,称关系表达式。例:ab,a+bb+c,(a=3)(

2、b=5),ab)(bc)注:关系表达式的值是一个逻辑值,即“真”或“假”。,C语言中1代表真,0代表假。即关系表达式的值为真,其值为1;关系表达式的值为假,其值为0。,例:若a=3,b=2,c=1,则:“ab”的值为“真”,表达式的值为1;“(ab)=c”的值为“真”,表达式的值为1;“b+ca”的值为“假”,表达式的值为0。,Page5,5.2 逻辑运算符和逻辑表达式,用逻辑运算符将关系表达式或逻辑量连接起来的式子就是逻辑表达式。5.2.1 逻辑运算符及其优先次序(1)&(逻辑与)(2)|(逻辑或)(3)!(逻辑非),逻辑运算真值表,Page6,5.2 逻辑运算符和逻辑表达式,5.2.2 逻

3、辑表达式逻辑表达式的值应该是一个逻辑量“真”或“假”。C语言中,在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”,在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。,任何非零的数值都被认作“真”,逻辑运算真值表,例:设a=4,b=5:!a的值为0 a&b的值为1a|b的值为1!a|b的值为14&0|2的值为1,Page7,5.2 逻辑运算符和逻辑表达式,例:53&84-!0,53逻辑值为1,得:表达式值为0,注意:在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。,如:(1)a&b&c 只有a为真时,才需要判断b的值,只有a和b都为真时,才需要判断c的值。(2)a|b

4、|c 只要a为真,就不必判断b和c的值,只有a为假,才判断b。a和b都为假才判断c。,自左向右运算,注意运算符优先级别,Page8,5.2 逻辑运算符和逻辑表达式,例:用逻辑表达式来表示闰年的条件,?,(year%4=0&year%100!=0)|year%400=0,表达式值为真(1)是闰年,否则为非闰年。,!(year%4=0&year%100!=0)|year%400=0),表达式值为真(1)是非闰年,否则为闰年。,答:,(1)能被4整除,但不能被100整除。(2)能被4整除,又能被400整除。,Page9,5.3 if语句,5.3.1 if语句的三种基本形式(1)if(表达式)语句例:

5、if(xy)printf(“%d”,x);,(2)if(表达式)语句1 else 语句2例:if(xy)printf(“%d”,x);else printf(“%d”,y);,Page10,5.3 if语句,(3)if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式m)语句m else 语句n,if(number500)cost=0.15;else if(number300)cost=0.10;else if(number100)cost=0.075;else if(number50)cost=0.05;else cost=0;,例

6、:,Page11,5.3 if语句,说明:(1)3种形式的if语句中在if后面都有表达式,一般为逻辑表达式或关系表达式。(2)第二,第三种形式的if语句中,在每个else前面有一个分号,整个语句结束处有一个分号。else子句不能作为语句单独使用,它必须是if语句的一部分,与if语句配对使用。(3)在if和else后面可以只含有一个内嵌的操作语句,也可以由多个操作语句,此时用花括号将几个语句括起来成为一个复合语句。,Page12,5.3 if语句,例5.1 输入两个实数按代数值由小到大的顺序输出这两个数。,#includevoid main()float a,b,t;scanf(“%f,%f”,

7、运行结果:,Page13,5.3 if语句,例5.2 输入三个数a,b,c,要求按由小到大的顺序输出。,if ab 将a和b对换if ac 将a和c对换if bc 将b和c对换,运行结果:,Page14,5.3 if语句,5.3.2 if语句的嵌套在if语句中又包含一个或多个if语句称为if语句的嵌套。形式:,if()if()语句1 else 语句2else if()语句3 else 语句4,匹配规则:else总是与它上面的最近的统一复合语句中的未配对的if语句配对。,if()if()语句1else if()语句2else 语句3,注:当if和else数目不同时,可以加花括号来确定配对关系。,

8、如:,Page15,5.3 if语句,例5.3 有一个函数:,编一程序,输入一个x值,输出y值。,算法:输入x若x0,则y=1输出y,Page16,5.3 if语句,#includevoid main()int x,y;scanf(“%d”,#includevoid main()int x,y;scanf(“%d”,#includevoid main()int x,y;scanf(“%d”,程序1,程序2,程序3,程序4,#includevoid main()int x,y;scanf(“%d”,Page17,5.3 if语句,题5.1 下面程序的输出是:,#include void main

9、()int x=1;if(x=2)printf(“OK”);else if(x2)printf(“%dn”,x);else printf(“Quit”);,OK,#include void main()int a=5,b=8,c=3,max;max=a;if(cb)if(ca)max=c;else if(ba)max=b;printf(“%dn”,max);,5,else与if语句的匹配,表达式的值,Page18,5.3 if语句,5.3.3 条件运算符格式:表达式1?表达式2:表达式3 功能:判断表达式1的值,如果成立就执行表达式2,否则就执行表达式3使用场合:若在if语句中,当被判别的表达

10、式的值为“真”或“假”时,都执行一个赋值语句且向同一个变量赋值时,可以用一个条件运算符来处理。,if(ab)max=a;else max=b;,例:,Page19,5.3 if语句,说明:(1)条件运算符的执行顺序:先求解表达式,若为非(真)则求解表达式,此时表达式的值就作为整个条件表达式的值。若表达式的值为0(假),则求解表达式,表达式的值就是整个条件表达式的值。(2)条件运算符优先级高于赋值运算符,低于关系运算符和算术运算符。(3)条件运算符的结合方向为“自右至左”。(4)“表达式2”和“表达式3”不仅可以是数值表达式,还可以是赋值表达式或函数表达式。(5)条件表达式中,表达式的类型可以与

11、表达式和表达式的类型不同。,表达式1?表达式2:表达式3,Page20,5.3 if语句,例5.4 输入一个字符,判别它是否大写字母,如果是将它转换成小写字母;如果不是不转换。然后输出最后得到的字符。,如果字符变量ch的值为大写字母,则条件表达式的值为(ch+32),即相应的小写字母。如果ch的值不是大写字母,则条件表达式的值为ch,即不进行转换。,#include void main()char ch;scanf(%c,运行结果:,Page21,5.3 if语句,题5.2 下面程序运行的结果是:,#include void main()int k=4,a=3,b=2,c=1;printf(“

12、%dn”,ka?k:cb?c:a);,#include void main()int x=12,y;y=x12?x+10:x-12;printf(“%dn”,y);,0,自右向左运算:先求表达式cb?c:a的值为1;再求ka?1的值,1,Page22,5.4 switch语句,switch语句的格式:,switch(表达式)case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default:语句n+1,千万不能接(;)号!,注:(1)default语句可以省略不用;(2)case和default与其后面的常量表达式间至少有一个空格;(3)switch

13、语句可以嵌套,break语句只跳出它所在的switch语句。,Page23,5.4 switch语句,switch语句执行流程:,简单语句或复合语句,指语句的最后一条是否为break,case语句出现的次序并不影响执行结果。,执行完一个case后面的语句后,流程控制转移到下一个case继续执行。,Page24,5.4 switch语句,例:要求按照考试成绩的等级输出百分制分数段,用switch语句实现。,switch(grade)case A:printf(“85100n”);case B:printf(“7084n”);case C:printf(“6069n”);case D:printf

14、(“60n”);default:printf(“errorn”);,把百分制成绩分为A、B、C、D四等。,Page25,5.5 程序举例,例5.5 写程序,判断某一年是否闰年。,if(year%4!=0)leap=0;else if(year%100!=0)leap=1;else if(year%400!=0)leap=0;else leap=1;,Page26,5.5 程序举例,例5.7 运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:s250km 没有折扣 250s500 2%折扣 500s1000 5%折扣 1000s2000 8%折扣 2000s3000 10%折扣

15、3000s 15%折扣设每公里每吨货物的基本运费为p,货物重为w,距离为s,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d),Page27,5.5 程序举例,分析折扣变化的规律性:折扣的“变化点”都是250的倍数,在横轴上加一种坐标c,c的值为s/250。,#include void main()int c,s;float p,w,d,f;scanf(%f,%f,%d,多个可以共用一组执行语句,c代表250的倍数。则:c1,无折扣;1c2,折扣d=2%;2c4,d=5%;4c8,d=8%;8c12,d=10%;c12,d=15%。,Page28,小 结,逻辑运算符和逻辑表达式if语句选择结构程序设计,Page29,思 考 题,1.什么是算术运算?什么是关系运算?什么是逻辑运算?2.C语言中如何表示“真”和“假”?系统如何判断一个量的“真”和“假”?,Page30,作 业,习题:1.习题5.32.习题5.53.习题5.64.习题5.8,

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

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


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号