六C语言程序设计选择结构一

上传人:无*** 文档编号:214334113 上传时间:2023-05-29 格式:PPT 页数:29 大小:1.20MB
收藏 版权申诉 举报 下载
六C语言程序设计选择结构一_第1页
第1页 / 共29页
六C语言程序设计选择结构一_第2页
第2页 / 共29页
六C语言程序设计选择结构一_第3页
第3页 / 共29页
资源描述:

《六C语言程序设计选择结构一》由会员分享,可在线阅读,更多相关《六C语言程序设计选择结构一(29页珍藏版)》请在装配图网上搜索。

1、六C语言程序设计选择结构一 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望该章的学习内容学点什么哪学点什么哪?1.熟熟练练掌掌握握用用C语语言言的的基基本本控控制制语语句句进进行行顺序、选择顺序、选择程序设计的方法;程序设计的方法;选择结构4.1.4.1.选择结构的应用场合选择结构的应用场合 4.2.4.2.关系运算符和关系表达式关系运算符和关系表达式 4.3.4.3.逻辑运算符和逻辑表达式逻辑运算符和逻辑表达式 3.4.*3.4.*选择结构的流程图表示选择结构的

2、流程图表示 3.5.3.5.条件语句条件语句 3.6.3.6.开关语句开关语句 选择结构的应用场合 当我们不知向何处走时,会抬头当我们不知向何处走时,会抬头看看路牌,当某个方向满足了我们的看看路牌,当某个方向满足了我们的要求,则会走去。在程序设计中当某要求,则会走去。在程序设计中当某条件成立,执行某段程序;不成立,条件成立,执行某段程序;不成立,执行另一段程序。此时,即为选择结执行另一段程序。此时,即为选择结构,可使用构,可使用 if if 或或 switch switch 语句完成语句完成该功能。例如:该功能。例如:关系运算符C的关系运算符的关系运算符数学中的关系符数学中的关系符含义含义 大

3、于大于=大于或等于大于或等于 小于小于、=、5 918 4818818010关系运算的运算规则(2)(2)3.关系运算的操作数可为算术表达式。关系运算的操作数可为算术表达式。4.关系运算符的优先级低于算术运算符的优关系运算符的优先级低于算术运算符的优先级。先级。举例举例:2*510-710bc?321110逻辑运算符逻辑运算符逻辑运算符&逻辑与逻辑与(并且并且)|逻辑或逻辑或(或者或者)!逻辑非逻辑非逻辑运算的运算规则(1)(1)1.只有在两个操作数都为真时,逻辑与的只有在两个操作数都为真时,逻辑与的 结果为真,否则为假。结果为真,否则为假。2.只有在两个操作数都为假时,逻辑或的只有在两个操作

4、数都为假时,逻辑或的 结果为假,否则为真。结果为假,否则为真。3.逻辑非为一元运算逻辑非为一元运算,真变假真变假,而假变真。而假变真。4.用逻辑运算符连接的两个逻辑量用逻辑运算符连接的两个逻辑量,构成构成的式子称为逻辑表达式。的式子称为逻辑表达式。逻辑运算的运算规则(2)(2)5.逻辑运算符的优先顺序为:逻辑运算符的优先顺序为:!&|按顺序递减。按顺序递减。6.算术、关系、逻辑运算符的优先顺序为:算术、关系、逻辑运算符的优先顺序为:算术运算关系运算逻辑运算举例举例:a+bc*d&L1&!L27.C语言没有提供语言没有提供“逻辑型逻辑型”或或“布尔型布尔型”等数据类型。只要合法等数据类型。只要合

5、法,任何类型表达任何类型表达式式都可作为判断条件都可作为判断条件,可作逻辑量使用可作逻辑量使用,表表达式值为达式值为非非0,即为,即为真值真值,0为为假假!举例举例:当:当a=3时时 a+1为真值;为真值;a-3为假值。为假值。逻辑运算的运算规则(3)逻辑表达式举例判断某一年判断某一年yearyear是否是闰年。是否是闰年。能被4整除,但不能被100整除;或能被400整除;year%4=0&year%100!=0 或或year%400=0(year%4=0&year%100!=0)|(year%400=0)单选择结构的框图结构yesno语句语句A A条件成立否条件成立否yesno条件条件语句语

6、句A入口出口双选择结构的框图结构yesno程序段程序段A A程序段程序段B B条件成立否条件成立否入口出口双向选择分支结构N-S图yesno条件条件语句语句A语句语句B选择条件语句IF选择条件语句选择条件语句IF语句的说明语句的说明if-else 选择条件语句选择结构的一种最常用形式选择结构的一种最常用形式:if(表达式表达式)语句语句1;else语句语句2;语句语句3执行过程:执行过程:当括号内表达式成立时,即表达式的值当括号内表达式成立时,即表达式的值当括号内表达式成立时,即表达式的值当括号内表达式成立时,即表达式的值是非是非是非是非0 0时,时,时,时,执行语句执行语句执行语句执行语句1

7、 1,然后语句,然后语句,然后语句,然后语句3 3;当表达式不成立时,值当表达式不成立时,值当表达式不成立时,值当表达式不成立时,值等于等于等于等于0 0时,执行语句时,执行语句时,执行语句时,执行语句2 2,然,然,然,然后语句后语句后语句后语句3 3,上面,上面,上面,上面elseelse部分也可以没有。部分也可以没有。部分也可以没有。部分也可以没有。main()main()int a,b;int a,b;printf(Please input two numbers:n);printf(Please input two numbers:n);scanf(%d,%d,&a,&b);scan

8、f(%d,%d,&a,&b);if if printf(MAX=%dn,a);printf(MAX=%dn,a);else else printf(MAX=%dn,b);printf(MAX=%dn,b);条件语句举例-1真真假假a=ba=bmax=amax=amax=bmax=b 从键盘上输入两个整数从键盘上输入两个整数a和和b,输出大的,输出大的数。数。(a=b)(a=b)a ab b成立,执行成立,执行a ab b不成立,执行不成立,执行if-else 选择条件语句if(表达式表达式)语句语句1;语句语句3执行过程:执行过程:当括号内表达式成立时(表达式的值当括号内表达式成立时(表达式的

9、值是是非非0),执行语句,执行语句1,然后执行语句,然后执行语句3;当表达式不成立时(当表达式不成立时(等于等于0),直接执),直接执行语句行语句3。条件语句举例-2t=a;a=b;b=t;输入两个整数,按从小到大的顺序输入两个整数,按从小到大的顺序输出它们。输出它们。main()int a,b,t;scanf(%d,%d,&a,&b);if (ab)printf(%d,%d,a,b);条件语句举例-3#include main()int a,b,c,t;scanf(%d,%d,%d,&a,&b,&c);if (ab)if (ac)if (bc)printf(%d,%d,%d,a,b,c);t

10、=a;a=b;b=t;t=a;a=c;c=t;t=b;b=c;c=t;输入三个整数,按从小到大的顺序输入三个整数,按从小到大的顺序输出它们。输出它们。if-else 多选条件语句if的一种扩展形式格式:的一种扩展形式格式:if(表达式表达式1)语句语句1;else if(表达式表达式2)语句语句2;else if(表达式表达式3)语句语句3;else语句语句4;语句语句5;功功功功能能能能 当当表表达达式式1为为真真值值时时,执执行行语语句句1;否否则则,当当表表达达式式2为为真真值值时时,执执行行语语句句2,否否则则其其中中else部部分分可可以以没没有有。有一函数:有一函数:-1 (x0)

11、编一程序,输入一个编一程序,输入一个x值,输出值,输出y值。值。#include main()int x,y;scanf(%d,&x);if (x0)y=-1;else if (x=0)y=0;else y=1;printf(x=%d,y=%d,x,y);条件语句举例-4#include main()int x,y;scanf(%d,&x);if (x=0)/*条件语句嵌套条件语句嵌套*/if (x=0)y=0;/*注意:内、外重条件语句注意:内、外重条件语句*/else y=1;/*if-else配对使用原则配对使用原则:*/else y=-1;/*else总是与距离它最近的且没有总是与距离

12、它最近的且没有*/*配对的配对的if相结合相结合,与缩进格式无关与缩进格式无关!*/printf(x=%d,y=%d,x,y);if语句的说明1.表达式表达式既可以是关系表达式、逻辑表达式,也既可以是关系表达式、逻辑表达式,也 可以是数值类型表达式。当为可以是数值类型表达式。当为0时,为时,为假值假值;非非0为为真值真值。2.关系运算符关系运算符=不能写成赋值运算符不能写成赋值运算符=。3.在在if 语句和语句和else语句中若有多个操作语句,则应语句中若有多个操作语句,则应 用花括号用花括号 和和 将它们括起成为一个将它们括起成为一个复合语句复合语句。开关语句就像多路开关一样,程序可根据开关

13、语句就像多路开关一样,程序可根据一个表达式可能产生的不同结果值,选择其中一个表达式可能产生的不同结果值,选择其中一个一个独立分支结构独立分支结构,或几个分支,或几个分支的语句的语句非独立分支结构非独立分支结构去执行。去执行。有了有了if 语句,为什么还语句,为什么还要要switch语句?语句?switch后括号内表达式的值只能是后括号内表达式的值只能是整形、整形、字符型或枚举类型字符型或枚举类型,每个常量的类型和表达,每个常量的类型和表达式的式的类型应相同类型应相同,每个语句序列可以是零个,每个语句序列可以是零个或若干个语句。或若干个语句。case 3:case 4:printf(“%d”,d

14、1);break;default:执行时,先求表达式的值,然后自上而下执行时,先求表达式的值,然后自上而下依次测试每一个常量,若与常量依次测试每一个常量,若与常量I相匹配,相匹配,则从其后的语句序列则从其后的语句序列i开始执行每个语句序列,开始执行每个语句序列,若没有常量与之匹配,则执行若没有常量与之匹配,则执行default后面的后面的语句序列语句序列非独立分支结构非独立分支结构。若只执行语句系列若只执行语句系列I,则在语句系列,则在语句系列I后后加加break语句语句独立分支结构独立分支结构。switch (表达式表达式)case 常量常量1:语句系列语句系列1;break;case 常量

15、常量2:语句系列语句系列2;break;case 常量常量m:语句系列语句系列m;break;default:语句系列语句系列m+1;由于每个由于每个case语句后的常量只起语句标号语句后的常量只起语句标号的作用,所以它们的值必须互不相同,否则的作用,所以它们的值必须互不相同,否则会出现互相矛盾的现象会出现互相矛盾的现象(C语言系统不允许,语言系统不允许,编译出错编译出错)。case 1:case 1:case 3:switch (表达式表达式)case 常量常量1:语句系列语句系列1 case 常量常量2:语句系列语句系列2 case 常量常量m:语句系列语句系列m default:语句系列

16、语句系列m+1 独立分支独立分支时每个时每个case语句和语句和default语句的语句的出现的前后次序发生改变时,不影响运行结出现的前后次序发生改变时,不影响运行结果,但在一般情况下,常量出现频率较高的果,但在一般情况下,常量出现频率较高的放在前面。放在前面。case 1:case 1:default:case 2:case 2:case 3:case 3:deault:开关语句-switch功能功能格式格式说明说明举例举例开关语句举例独立分支开关语句举例独立分支开关语句举例非独立分支开关语句举例非独立分支开关语句举例独立分支开关语句举例 X 0X10 2X+1 10X20Y=41 20X3

17、0 71-X 30X40 0 X0或或X40#include#include main()main()int xint x scanf(%d,&x);scanf(%d,&x);switch (switch ()case 0:printf(y=%dn,x);break;case 0:printf(y=%dn,x);break;case 1:printf(y=%dn,2*x+1);break;case 1:printf(y=%dn,2*x+1);break;case 2:printf(y=20n);break;case 2:printf(y=20n);break;case 3:printf(y=%

18、dn,71-x);break;case 3:printf(y=%dn,71-x);break;default:printf(y=0n);default:printf(y=0n);x/10非独立分支开关语句举例设有语句设有语句设有语句设有语句:int a=1,b=0;:int a=1,b=0;则执行下面语句后输出为则执行下面语句后输出为则执行下面语句后输出为则执行下面语句后输出为()()switch(a)switch(a)case 1:case 1:switch(b):switch(b):case 0:printf(“*0*”);break;case 0:printf(“*0*”);break;case 1:printf(“*1*”);break;case 1:printf(“*1*”);break;case 2:printf(“*2*”);break;case 2:printf(“*2*”);break;A.*0*B.*0*2*C.*0*1*2*D.A.*0*B.*0*2*C.*0*1*2*D.错误错误错误错误B.*0*2*B.*0*2*B

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!