版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、,江汉大学商学院信息管理系 柯 林 Lin_,第5章 选择结构程序设计,本章主要内容,5.1 关系运算符和关系表达式,5.2 逻辑运算符和逻辑表达式,5.3 if 语句,5.4 switch 语句,5.5 程序举例,学习目标,掌握关系运算符和逻辑运算符的表示方法及优先级 会阅读关系表达式和逻辑表达式,求出值,1.关系表达式和逻辑表达式,2.if语句,if语句的两种形式及嵌套使用方法 带有if语句的程序的阅读,3.switch语句,switch语句的语法格式与执行流程 各种带有switch语句的程序的阅读,4.选择程序设计,会阅读if和switch结构的程序 能编写选择结构的程序,5.1 关系运
2、算符和关系表达式,1.关系运算符及其优先次序,运 算 符,举 例,(1) (大于) (4)= (大于等于) (5)= (等于) (6)!= (不等于),ca+b 等效于 c(a+b) ab=c 等效于 (ab)=c a=bc 等效于 a=(bc) a!=bc 等效于 a!=(bc),优先级,逗号运算符,赋值运算符,关系运算符,算术运算符,优先级相同(高),优先级相同(低),5.1 关系运算符和关系表达式,概 念,例:exam21.c,运行结果,用关系运算符连接起来的表达式 例ab, a+bb+c,(a=3)(b=5),ab)(bc) 逻辑值:c语言在需给出逻辑值时,“真”以1表示,“假”以0表
3、示,0,1,1 0,1,1,2.关系表达式,j2=a1c1=z1b2c2; j6=a1!=a2; printf(%d,%d,%dn,j1,j2,j3); printf(%d,%d,%d,j4,j5,j6); ,main() int a1=3,a2=-3, b1=4,b2=-4, c1=5,c2=-5, j1,j2,j3,j4,j5,j6; char z1=a,z2=n; clrscr(); j1=a1b1c1;,5.2 逻辑运算符和逻辑表达式,1.逻辑运算符及其优先次序,逻辑运算的真值表,(1) 执行过程见图a If(表达式) 语句1 else 语句2 例:if(xy) printf(“%d”
4、,x); else printf(“%d”,y);,表达式?,语 句,假(0),真(非0),表达式?,语句2,假(0),真(非0),图a,图b,语句1,5.3 if语句,If(表达式1) 语句1 else If(表达式2) 语句2 else If(表达式3) 语句3 else If(表达式m) 语句m else 语句n,表达式1?,语句1,表达式2?,表达式3?,表达式4?,假(0),假(0),假(0),假(0),语句2,语句3,语句4,语句5,真(非0),真(非0),真(非0),真(非0),例5.1 输入两个实数,按代数值由小到大输出这两个数,5.3 if语句,main() float a,
5、b,t; printf(Enter a and b: ); scanf(%f%f,准备两个变量a,b来接收这两个实数 if ab 交换a b 输出a b,思路,程序li5_1.c,if(ab) t=a;a=b;b=t; printf(%f,%f,a,b); ,运行结果,Enter a and b: 23.99 -89.3452 -89.345200, 23.990000,5.3 if语句,例5.2,思路,程序li5_2.c,运行结果,main() float a,b,c,t; printf(Enter a b and c: ); scanf(%f%f%f,输入三个实数,按代数值由小到大输出这三
6、个数,准备三个变量a,b,c来接收三个实数 if ab 交换a b if ac 交换a c,到此,a一定是a b c中的最小者 If bc 交换b c,b是b c中的小者 输出a b c,if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t; printf(%f, %f, %f,a,b,c); ,Enter a b and c: 1.5 -4.6 54 -4.600000, 1.500000,54.000000,5.3 if语句,2.If语句的嵌套 If( ) if( ) 语句1 else 语句2 else if( ) 语句3 else 语句4 注意if与else的配对
7、关系,else总是与它上面最近的未配对的if配对 例:阅读右边两段程序,想想输出什么(设x=3,y=4,z=5),内嵌if,内嵌if,If(xy) if(xz) printf(“%d”,x); else if(yz) printf(“%d”,z); else printf(“%d”,y);,If(xy) if(xz) printf(“%d”,x); else if(yz) printf(“%d”,z); else printf(“%d”,y);,5.3 if语句,例5.3,思路1:程序li5_3.c,有一函数: 编一程序,输入一个x值,输出y值 -1 ( x0),main() int x,y;
8、 printf(Enter x: ); scanf(%d, ,main() int x,y; printf(Enter x: ); scanf(%d, ,思路2:程序li5_3s2.c,main() int x,y; printf(Enter x: ); scanf(%d, ,思路3:程序li5_3s2.c,5.3 if语句,3.条件运算符 表达式1? 表达式2:表达式3,运算顺序:右结合,执行过程,表达式1?,t,表达式2的值作为 条件表达式的值,f,表达式3的值作为 条件表达式的值,5.3 if语句,max=ab?a :b; (max得到a b中的大者) y=x=0 ? 1:0; (这是干
9、什么?) c=a; c=c=a,例,条件运算符的优先级,高于赋值运算符和逗号运算符,! (非) 算术运算符 关系运算符 case B:printf(“7084n”); case C:printf(“6069n”); case D:printf(“60n”); default: printf(“errorn”); ,说明: swtich后的表达式可以是任何类型,但一般只用整型、字符型、枚举型 case和default只是入口,其顺序无所谓,但影响执行结果。,5.4 switch语句,main() int a; clrscr(); printf(Enter a int number: ); sca
10、nf(%d, ,例:exam22.c,运行时分别输入-3 0 3 4 8其结果分别是什么?,? 思考,运行结果,输入-3 结果:01234 输入0 结果:01234 输入3 结果:34 输入4 结果:4 输入8 结果:01234,5.4 switch语句,例:exam23.c,运行时分别输入-3 0 3 4 8其结果分别是什么?,? 思考,运行结果,输入-3 结果:0 输入0 结果:0 输入3 结果:3 输入4 结果:4 输入8 结果:0,main() int a; clrscr(); printf(Enter a int number: ); scanf(%d, ,5.5 程序举例,例1(e
11、xam24.c )以下程序的运行结果是,main() int x,y,z; x=1;y=2;z=3; x=y-=x|x+y=z; printf(%d,%d,x,y); ,0,1,运行结果,例2(exam25.c):以下程序的运行结果是,main() int x=10,y=9; int a,b,c; a=(x-=y+)? x-:y+; b=x+; c=y; printf(a=%d,b=%d,c=%d,a,b,c); ,运行结果,a=10,b=9,c=11,5.5 程序举例,main() int a=2,b=7,c=5; switch(a0) case 1:switch(b0) case 1:pr
12、intf();break; case 2:printf(!);break; case 0:switch(c=5) case 0:printf(*);break; case 1:printf(#);break; deafault:printf(=); default:printf( ,例3(exam26.c )以下程序的运行结果是,运行结果,# printf(Enter a year: ); scanf(%d, ,例4(例5.5li5_5.c )判断某一年是否是闰年,此题的N-S图,5.5 程序举例,程序,s250 没有折扣 250s500 %2折扣 500 s 1000 %5折扣 1000 s
13、 2000 %8折扣 2000 s3000 %10折扣 3000s %15折扣,例5(例5.7li5_7.c )运输公司对用户计算运费,标准如下,设每吨每千米货物的基本运费为p(price), 货物重为w(wight),距离为s,折扣为d, 则总运费的计算公式为:f=pws(1-d),main() int c,d,s; float p,w,f; clrscr(); printf(Enter p w s: ); scanf(%f%f%d, case 2:,case 3:d=5;break; case 4:case 5:case 6: case 7:d=8;break; case 8:case 9:case10: case 11:d=10;break; default:d=15; f=p*w*s*(
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 数字音乐互动装置创新创业项目商业计划书
- 市场摆摊拖拉车行业跨境出海战略分析报告
- 新形势下工业污水处理行业顺势崛起战略制定与实施分析研究报告
- 2025年杭州市第一人民医院人员招聘考试试卷真题
- 工程部年终工作总结2篇
- 关于2026年客户满意度调查数据反馈函(3篇)
- 2026村文书面试题及答案
- 催办完成资金拨付手续函8篇范本
- 关于确认2026年供应商合作伙伴关系的函(4篇)
- 农业机械智能化升级改造工程实施方案
- 2026年CCAA注册审核员《管理体系认证基础》试题及答案
- 云南大理西电新源开发有限责任公司招聘笔试题库2026
- 康复治疗师岗位技能测试试题及答案
- GB/T 12957-2026用于水泥混合材的工业废渣活性试验方法
- 2026人教版小学四年级下册语文全单元课文易错考点梳理讲义
- 浙江省名校共同体2026年中考模拟考数学试题(6月)
- 合规岗位招聘笔试题及解答(某大型国企)2025年
- 特种设备应急处置规范及流程
- 学堂在线 中国古代礼义文明-礼制 章节测试答案
- DB15∕T 4258-2026 草种子生产基地建设技术规程
- 2026年建筑安全员C证考试题库及答案
评论
0/150
提交评论