版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、山大威海分校计算中心,1,chapter 4 选择结构,4.1 关系运算符,4.2 逻辑运算符和逻辑表达式,4.3 if 语句条件判断,4.4 switch 语句开关语句,4.5 程序举例,山大威海分校计算中心,2,任务一:(例4-1)从键盘输入三个数,找出最大的一个数。,#include main( ) int a,b,c,max; printf(“n Enter 3 integers:”); scanf(“%d%d%d”, ,山大威海分校计算中心,3,任务二: (例4-2)判断从键盘输入的字符是数字、字母、还是空格。,#include main( ) char c; printf(“ En
2、ter a character:”); scanf(“%c”, switch( c ) case 0: case 1: ,山大威海分校计算中心,4,case 9: printf(“digit.n”); break; case : case n: case t: printf(“white.n”); break; default: printf(“char.n”); ,山大威海分校计算中心,5,4.1 关系运算符,关系运算比较运算, 如: a3为一比较运算,当a=5, a3成立,结果为“ 真”, 否则, 如: a=1,a3不成立,结果为“假”。,上述表达式a3称为关系表达式。,山大威海分校计算中
3、心,6,4.1.1 关系运算符及其优先次序,2. 关系运算符优先级低于算术运算符。,1.关系运算符:C语言提供了六种关系运算符,(大于) =(大于等于) = =(等于) !=(不等于),优先级相同(高),优先级相同(低),山大威海分校计算中心,7,3. 关系运算符优先级高于赋值运算符。,举例: ca+b c(a+b),ab!=c (ab)!=c,a= =bc a= =(bc),a=bc a=(bc),算术运算符 关系运算符 赋值运算符,(高),(低),山大威海分校计算中心,8,4.1.2 关系表达式,如: ab, a+bb+c, (a=3)(b=5) , a b , (ab)(bc),关系表达
4、式用关系运算符将两个表达式(算术、关系、逻辑、赋值、字符等表达式)连接起来的式子。,关系表达式的结果是一个逻辑值,即“真(1)”或“假(0)”。,在C语言中:0 假, 非0 真,山大威海分校计算中心,9,如: 当a=3, b=2, c=1时,(ab)= =c 成立 1,b+ca 不成立 0,d=ab 则ab值为1, 所以d=1.,f=abc ab为1, abc为0,所以f=0.,山大威海分校计算中心,10,4.2 逻辑运算符和逻辑表达式,逻辑表达式用逻辑运算符将关系表达式、逻辑表达式连接起来的式子。,山大威海分校计算中心,11,4.2.1 逻辑运算符及优先级,逻辑运算符:C语言提供了三种逻辑运
5、算符。,! (逻辑非) else printf( %d, y);,山大威海分校计算中心,19,形式3 : if (表达式1) 语句1,else if (表达式2) 语句2,else if (表达式3) 语句3, ,else if (表达式n) 语句n,else 语句n,山大威海分校计算中心,20,流程:,表达1,表达2,表达3,表达n,语句1,语句2,语句3,语句n,语句n,语句1, 0,= 0,= 0, 0, 0, 0,山大威海分校计算中心,21,如: if (3) prinft(o.k); if (a),1. 表达式可以是逻辑、关系,甚至是算术表达式。,2. 上述形式中的语句必须以分号结束
6、,3. 上述形式中的语句可以是由 括起来的复合语句。此时,在 外可以不用分号.,注意的问题:,山大威海分校计算中心,22,main ( ) float a, b, t; scabf (%f, %f, ,例4.1 输入两个实数,按代数值由小到大次序输出这两个数。,山大威海分校计算中心,23,3.6, 3.2 3.20, 3.60,运行情况如下:,山大威海分校计算中心,24,例4_3: 输入三个数,按大小顺序输出。,main ( ) float a, b, c,t; scanf(%f,%f,%f, ,山大威海分校计算中心,25,if (bc) t=b; b=c; c=t; printf(%5.2f
7、, %5.2f, %5.2f, a, b, c); ,运行情况如下:,3,7,1 1.00, 3.00, 7.00,山大威海分校计算中心,26,4.3.2. if语句的嵌套,if (表达式1),内嵌if,else,内嵌if,一般形式,if (表达式2) 语句1,if (表达式3) 语句3,else 语句2,else 语句4,if 语句的嵌套if语句中又包含一个或多个if语句。,else总是与它上面的最近的if 配对。,山大威海分校计算中心,27,例: if ( ),if ( ) 语句2 else 语句3,if ( ) if ( ) 语句1 else ,所以:必要时加 .,if ( ) 语句1
8、else,山大威海分校计算中心,28,4.3.3 条件运算符,C语言提供了更简洁地表示 if-else 语句的方法,它被称为“条件运算符”, 运算符为“ ? : ”,这是一个三目运算符。,条件表达式的一般形式: 表达式1?表达式2 :表达式3,功能: 先判表达式1, 若非0,则值为表达式2的值,否则为表达式3的值。,例如: max=ab? a:b; 当ab, max a, 否则maxb,山大威海分校计算中心,29,main ( ) char ch; scanf (%c, printf(%c, ch) ,例4_4: 输入一个字符,判别它是否大写字母,如果是,将它转换成小写字母;如果不是,不转换。
9、然后输出最后得到的字符。,山大威海分校计算中心,30,运行结果如下: A a,山大威海分校计算中心,31,4.4 switch 语句开关语句,问题: 当某一表达式有n个取值,每一取值执行一语句,则如果用内嵌if十分繁琐,而用switch简单。,一般形式: switch (表达式) case 常量表达式1: 语句1 case 常量表达式2: 语句2 case 常量表达式n: 语句n default : 语句n+1 ,山大威海分校计算中心,32,例: 根据成绩等级打印百分数段.,switch (grade), case A: printf (85100n);,case B: printf (708
10、4n);,case C: printf (6069n);,case D: printf (60n);,default: printf (errorn);,山大威海分校计算中心,33, 计算表达式的值, 判断其与哪一个常量表达式相等,如=表达式i,则自语句i开始执行,直到语句n+1止。, 若与所有常量表达式值不相等,则从default后的语句开始执行。,功能:,存在一个问题: 没有完全起到分支作用。,解决办法: 增加break语句, 使之跳出switch结构。,山大威海分校计算中心,34,switch (表达式) case 常表1: 语句1; break;,一般形式改为:,case 常表2: 语
11、句2; break; case 常表n: 语句n;break; default: 语句n+1; ,山大威海分校计算中心,35,1. 常表值必须互不相等,否则出现二义性。,2. case顺序无关紧要。,3. 不一定非用break不可,有时几种情况合并执行一组语句。,说明:,山大威海分校计算中心,36,switch (grade) case A : case B: case C: printf(60n); break; case D: printf(60n); break; ,例:,山大威海分校计算中心,37,4.5 程序举例,例4_5: 写一程序,输入年号,判断是否为闰年。,1. 算法: 根据闰
12、年的判断条件, 当年号能被4整除但不能被100整除时,它为闰年。, 当年号能被100整除又能被400整除时,它为闰年。,山大威海分校计算中心,38,设用变量year表示年号,leap为待置值变量,当year为闰年:leap1, 否则leap0.,判闰年?,leap0,leap1,yes,A,No,2. 流程图,输入year,A,山大威海分校计算中心,39,打印非闰年,leap=1,打印闰年,No,yes,A,结束,山大威海分校计算中心,40,3. 程序:,main ( ) int year, leap; scanf(%d, ,山大威海分校计算中心,41,if (leap) printf(%d is, year); else printf(%d is not, year); printf (“a leap year.n); ,山大威海分校计算中心,42,运行情况如下:,2000 2000 is a
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 银行后勤服务外包合同
- 2026年质量管理体系原则试题及答案
- 撒播草籽施工实施方案
- 古建筑屋面防水修复施工工艺
- 宠物疾病治疗试题及答案
- 临时人员劳务外包合同
- 2025年中级审计师考试试题及答案专业知识
- 高血压知识及生活习惯调查问卷
- 河道生态修复施工组织方案
- 2026年酒店客房管理(客房管理实操)阶段测试题及答案
- 石油化工安装工程预算定额(2019版)
- 医院收费窗口服务规范
- 2025年供销社笔试题目及答案
- 2025年中国中车集团有限公司招聘笔试题库及答案解析
- 《火力发电企业电力监控系统商用密码应用技术要求》
- 凉山之最教学课件
- 2025年石家庄市市属国有企业招聘笔试考试试题(含答案)
- 消防设备维修实习总结范文
- DB3502-T 180-2025 公安派出所“两队一室”建设规范
- 肺占位待诊-教学查房
- 南邮综评面试题目及答案
评论
0/150
提交评论