ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:18.70KB ,
资源ID:7568384      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7568384.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(04第四章 选择结构.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

04第四章 选择结构.docx

1、04第四章 选择结构第四章 选择结构引言:分支结构,根据逻辑判断的结果决定程序的不同流程。(根据不同的条件执行不同的分支)1关系运算和逻辑运算C语言中的逻辑值:真:非0表示真 1 -1 1.5 a 1 假: 0 0 (1) 关系运算符和关系表达式比较运算,进行两个数的比较,判断比较的结果是否符合条件 = =b 0 (a=3)(b=4) 0 ac=c 0 (a+)b 1 a=97 1 注:关系运算符两边值类型不一致时,系统自动进行类型转换; a=97若x,y定义为double.避免使用x=y来判断两个数是否相等。因为存放在内存中的浮点数是有误差的,x=y结果总为0. 可用:fabs(x-y)0

2、xyx-y0 xyx-y=0 x=y fabs(x-y)1e-6 math.h(2) 逻辑运算符和逻辑表达式 & | !注:&和|是双目运算符,!是单目运算(!a)优先级 ! & |&:两个都为真则结果为真 -1&0|:有一个为真则结果为真 0|0 !:真变假,假变真 !0 !-2 &:两边都为真时,结果为真。有一个为假则结果为假。(左为假短路右边)。int a=1,b=0; a+&b+ b=? 1int a=0,b=0; a+&b+ b=? 0|:有一个真,则结果为真。(左为真短路右边)。int a=1,b=0; a+|b+ b=? 0int a=0,b=0; a+|b+ b=? 1短路:出

3、现在特定情况下,此时不可以用一般的思维方式按优先级考虑。&:左为假短路右边。左为真必须看右边|:左为真短路右边。左为假必须看右边。#includemain()int a=0,b=5,c; c=ab|+b; printf(“%d %dn”,c,b); 数学式:0x10 C语言:0x10 110 1 010 1 0-510 1 0510 1 0150&x=a&x=A&x=0&x = 2 1&2 1+2 1 1.0 1 0语法上只能是一条语句,若该if子句包含多条语句,则必须用复合语句 t=a;a=b;b=t;代码:if(ab) t=a;a=b;b=t; printf(“ok”);执行过程:if(表

4、达式) if子句;其它语句;举例:输入两个数,分别放入x和y中,若两个数不相等,则输出其中的大数;若两数相等,则输出字符串x=y和y 的值。#includemain()int x,y; scanf(“%d%d”,&x,&y); if(xy) printf(“%dn”,x); if(xy) printf(“%dn”,y); if(x=y) printf(“x=y %dn”,y);输入三个数,分别放在变量a,b,c中,然后把输入的数据重新按由小到大的顺序放在变量a,b,c中,最后输出a,b,c中的值。#includemain()int a,b,c,t; scanf(“%d%d%d”,&a,&b,&

5、c);3 1 2 if(ab) t=a;a=b;b=t; 1 3 2 if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; 1 2 3 printf(“%d %d %dn”,a,b,c);2 含else子句的if语句语句形式:if(表达式) if子句; else else子句;注:if子句与else子句语法上只能是一条语句,若有多条则应用复合 语句。else是if语句的一部分,是一个整体。else不可以单独出现。 if-else代码:if(ab) printf(“%d”,a); a+;else prinf(“%d”,b);b+;printf(“ok”); 执行过程:举

6、例:编写程序,输入一个数,打印它是偶数(even )还是奇数(odd)。3 关于if语句的一些说明表达式:C语言中任意一个合法的表达式或任意类型的数据,但括号里不可为空分号(2) 嵌套的if语句if子句和else子句可以是任意合法的C语句,故当然可以是if语句。所以if语句可以内嵌在if子句中也可以内嵌在else子句中。在if子句中嵌套ifelse语句if(表达式) if(表达式) if子句; else else子句;else else子句;int a=3,b=2,c=1;if(ac) printf(“*”); else printf(“&”);else printf(“%”);printf(

7、“end”);在if子句中嵌套不含else子句的if语句if(表达式) if(表达式) if子句; else else子句;注:括号不可省,因为c语言中规定else总是与前边最近的且不带else的if结合,与它的书写格式无关。int a=3,b=2,c=1;if(ac) printf(“*”);else printf(“&”);printf(“end”);在else子句嵌套ifelseif(表达式) 外层if子句;else if(表达式) 里层if子句; else 里层else子句;int a=3,b=2,c=1; if(ab) printf(“*”);else if(ac) printf(“

8、&”); else printf(“%”);printf(“end”);在else子句中嵌套不含else的if语句if(表达式) 外层的if子句else if(表达式) if子句;int a=3,b=2,c=1;if(ab) printf(“*”);else if(a=90 A60 E6089 80-89 B 70-79 C 60-69 D#includemain()int score; scanf(“%d”,&score); if(score=90) printf(“%d A”,score); else if(score=80) printf(“%d B”,score);else if(sc

9、ore=70) printf(“%d C”,score); else if(score=60) printf(“%d D”,score); else printf(“%d E”,score);2. 条件表达式构成的选择结构根据不同的条件使用不同的运算对象参与运算。条件运算符: ? :唯一三目运算符格式:表达式1?表达式2:表达式3优先级:倒数第三 结合方向:自右向左执行: 表达式1 真 表达式2 假 表达式3int a=5,b=4,c=2,d=2,e=1;ab?a:b 4if(ab) printf(“%d”,a);else printf(“%d”,b); ab?c:de?d:e 1a2 a&b

10、 !a a a 1.0+2 非法 (2)常量表达式:可以是一个整数,一个整数常量表达式或一个字符型常量。其类型必须与switch后圆括号中表达式值的类型保持一致。int a=1,b=2;1 1+2 a 0 合法a b a+b 非法(3)case语句标号: 各case 语句标号值不可重复。各case语句和default语句的书写顺序无先后限制。有时switch语句体中也可以没有default语句。(4)case语句标号后的语句:可以是零条一条或多条。(5)case与常量表达式间要有空格case 0: case 10: (6)内嵌语句举例:int a=1,b=2,c=3;switch(a) cas

11、e 1: switch(a&b) case 0:printf(“A”); case 1:printf(“B”);break; break;case 2:printf(“#”);case 3: case 4: switch(c) case 0:printf(“a”); case 1:printf(“b”); default : printf(“c”); 执行过程:(1)计算switch后表达式的值(2)在switch语句体中与该值相同的case标号,若有相同的case标号则从该标号开始执行各语句直到switch结束;若无相同的case标号再看有无default标号,若有则从default标号开始

12、直到switch结束,若无default标号则跳过switch语句体到其后的语句。程序举例:根据输入的学生成绩给出相应的等级,90分以上为A,其它成绩10分为一个等级,60分以下为E.(成绩为整型数)0-100=90 A 9 10 60 E default60-8980-89 B 870-79 C 760-69 D 6#includemain()int x;scanf(%d,&x); switch(x/10) case 10: case 9: printf(%d An,x);break; case 8: printf(%d Bn,x);break; case 7: printf(%d Cn,x

13、);break; case 6: printf(%d Dn,x);break; default : printf(%d En,x);switch语句中使用break语句:间断语句,break可出现在switch中的任何位置,当执行break语句时,立即跳出了它所在的switch语句体4. 语句标号和goto语句概念:标号为任意合法的标识符形式:标识符:flag1: 12:作用:标号用作goto语句的转向目标概念:goto语句叫无条件转向形式:goto 语句标号;作用:把程序的执行语句转向标号所在的位置, 一般情况下,goto语句和语句标号在同一个函数内stop: printf(“endn”);.goto stop;.

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1