




已阅读5页,还剩49页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第五章 选择结构设计程序设计 1 选择结构设计程序设计 l关系运算符和关系表达式 l逻辑运算符和逻辑表达式 l if语句 lswitch语句 l程序举例 2 关系运算符和关系表达式 3 关系运算符 u关系运算实际上是两个量的比较,比较的结果只有两种可能:真(1) 、假(0)。 例如: a 3 ? 当a=5时,比较的结果为真; 当a=1时,结果为假。 uC语言提供6种关系运算符 (大于) = (大于或等于) = = (相等) ! = (不等) 选择结构程序设计 关系运算符和关系表达式 优先级相同(高) 优先级相同(低)等式运算符 4 选择结构程序设计 关系运算符和关系表达式 关系运算符 u合法的 u4=6 uA+bb uab ua=b ua= =b-1 u(x+y)=!44 5 关于优先次序 u,=为同一级别, =和!=为同一级别。 u在同一级别中,采取由左至右的结合方向。 u 算术运算符 关系运算符 赋值运算符 高 低 例 ca+b c(a+b) ab!=c (ab)!=c a=bc a = (bc) 等式运算符 选择结构程序设计 系运算符和关系表达式 6 选择结构程序设计 关系运算符和关系表达式 关系表达式 u用关系运算符将或者等式运算符两个表达式连接起来,叫关系 表达式。 u合法的关系表达式: ab,a+bb+c, (a=3)(b=5), (a=3)(b=5), ab)(b=0的值为真(在计算机中记为1)。 7 选择结构程序设计 关系运算符和关系表达式 关系表达式 u例: a=3, b=2, c=1, 则: (1)ab的值为1 (2)(ab)=c的值为真(即1) ab的值为1,c也为1,(ab)=c相当于1=1,结果为真, 即(ab=c)的值为1。 (3)b+cb中d的值为ab的值,为。 (5)f=abc中f的值为c的值,为。 8 课堂练习 lint i=1,j=2,k=3; ldouble x=5.5 , y=7.7 li=k+1 lx-y=k+1 (-i)+(5*j)=(k+1) 1 lx-yb) i=2 printf(“%d %dn“,i,j); (i=0) printf(“%d %dn“,i,j); i=0|(j=4); printf(“%d %dn“,i,j); (i=2)|(j=5); printf(“%d %dn“,i,j); 23 课堂练习 l当程序执行下面代码时会显示什么?仔细分 析结果 #include main() int a=1 ,b=2 ,c=3 ; float x=3.3,y=5.5 ; printf(“%d %dn“, ! a+b/c,!a +b / c); printf(“%d %dn“,a=-b+c,a*bc=a); printf(“%d %dn“,! !x 语句 条件满足时执行表达式后面的语句,然后继续执行以下的 语句。条件不满足时,越过if表达式后面的语句,往下执 行。 表达式 语句 真(非0) 假(0) 例如:如果输入的是正数, 则打印出来。 if (x0) printf(“%d“,x); 错误: if b=a area=a*a; 28 合并 if (j 语句1 else 语句2 条件满足时执行语句1,然后继续执行if以下的语句。条件 不满足时,执行语句2,然后继续执行if以下的语句。 表达式 语句1语句2 真假 例如:输出两个数中较大的一个。 if (xy) printf(“%d“,x) else printf(“%d“,y); 30 注意的问题 if (a!=b) a+=1; b+=2; ; /error else c+=3; 31 选择结构程序设计 if语句 if 语句的 第三种形式 if 语句1; else if 语句2; else if 语句3; else if 语句4; else 语句5 表达式1 表达式2 表达式3 表达式4 语句1语句2语句3语句4语句5 假 假 假 假 真 真 真 真 32 选择结构程序设计 if语句 if 语句的三种形式 例如:商场促销,购物500元以上,8折;购物300元以上,85折; 购物100元以上,9折;购物50元以上,95折;购物50元以 下,不打折。根据消费量,计算优惠率。 设:消费量为 money; 折扣为 cost; 实际花费 price if (money500) cost=0.2; else if (money300) cost=0.15; else if (money100) cost=0.1; else if (money50) cost=0.05; else cost=0; price=money-(money*cost); 33 选择结构程序设计 if语句 if 语句的说明 1. If 后面的“表达式“一般为关系表达式或逻辑表达式,但也 可以是其它类型的数值; 2. 在每个else前面有一分号,整个语句结束处有一分号; 3. if 和else后面的语句可以是简单的也可以是复合语句(用 扩起来的语句)。 例:if ( a+bc) area=sqrt(s*(s-a)*(s-b)*(s-c); printf(“area=%6.2f“,area); else printf(“it is not a trilateral“); 34 例 输入两个数,按数值大小次序排列输出. main() float a,b,t; scanf(“%f,%f“, if (ab) t=a; a=b; b=t; printf(“%5.2f,%5.2f“,a,b); 选择结构程序设计 if语句 输入为 3.6, -3.2 输出为 -3.20, 3.60 35 选择结构程序设计 if语句 If 语句的嵌套 u嵌套的定义:在if 语句中又包含一个或多个if 语句。 u嵌套的一般形式: If ( ) if ( ) 语句1 else 语句2 Else if ( ) 语句3 else 语句4 (注意! If 与else的配对关系。) 36 嵌套注意的问题 l if (a=1) if(b=2) printf(“*“); lif(a=1) if(b=2) printf(“*“); else printf(“#“); else属于离它最近的并且能够匹配的if 37 例 输入三个数,按由小到大次序排列并输出。 main() flaot a,b,c,t; scanf(“%f,%f,%f“, if (ab) t=a;a=b;b=t; if (ac) t=a;a=c;c=t; if (bc) t=b;b=c;c=t; printf(“%5.2f,%5.2f,%5.2f“,a,b,c); 选择结构程序设计 if语句 输入为: 3,7,1 输出为: 1.00, 3.00, 7.00 输入a,b,c ab? Y N swap a,b ac? Y N swap a,c bc? YN swap b,c 输出a,b,c 38 选择结构程序设计 if语句 main() int x, y; scarf(“%d“, if (x=0) y=0; else if (x0) y=1; else y=-1; print(“x=%d, y=%dn“, x, y); 例 -1 (x0) 开始 输出Y 结束 输入X X b)?a:b; 条件表达式 当(ab)为真时,表达式取a的值 当(ab)为假时,表达式取b的值 u条件运算符是三目运算符 表达式1 ? 表达式2 : 表达式 3 u条件运算符的结合方向为“从右向左“ 例如: ab?a:cd?c:d 相当于 ab?a:(cd?c:d) 如果a=1,b=2,c=3,d=4,则条件表达式的值为4。 40 例 输入一个字符,判断大小写,如是大写,则转换成小写, 输出。 main() char chi; scarf(“%c“, ch=(ch= A 3. 设分数为score, 则 score/10将范围变常量。 47 选择结构程序设计 switch语句 main() int score,num; char grade; scanf(“%d“, num=score/10; switch(num) case 10: grade=A; break; case 9 : grade=A; break; case 8 : grade=B: break; case 7 : grade=C; break; case 6 : grade=D; break; default : grade=E; printf(“%d %c“,score,grade); 输入为 76 输出为 C 48 程序举例 49 选择结构程序设计 程序举例 例 写一程序判断某一年是否是闰年. main() int year,leap; printf(“输入年份:“);scanf(“%d“, if (year%4=0) if (year%100!=0) leap=1; else if (year%400=0) leap=1; else leap=0 else leap=0; if (leap) printf(“%d is leap yearn“,year); else printf(“%d is not leap yearn“,year); 输入年份:2004 输出为: 2004 is leap year 50 选择结构程序设计 程序举例 year%4=0? year%100!=0? 输出“闰年“ 输出“非闰年“ leap=0 输入year n y y n leap=0leap=1 year%400=0? leap=1 y n leap=1? y n 51 选择结构程序设计 程序举例 例 计算邮资。 最低重量为1克, 基本费为0.80元。 每增加1克, 增加邮费0.50元, 加快费为2.00元。 输入重量 weight weight lmain() l l float weight,postage; l char fast; l char a100; l printf(“nplease input the weight n“); l scanf(“%f“, l printf(“n do you want to fast the post (y/n)n“); l fast = getchar(); l while(fast!=y l l if(weight 1.0) l l weight = 1.0; l l postage = 0.80+(weight-1.0)*0.50; l if(fast = y | fast = Y) l l postage +=2.0; l l printf(“n your postage is :%.2fn“,postage); l 53 选择结构程序设计 程序举例 课堂练习 编写一个运算器程序,输入两个操作数和一个符号,输出结果 ,注意0不能作除数。 #include “stdio.h“ main() int num1,num2,result; char op; printf(“Please enter two numbersn“); scanf(“%d%d“, printf(“Please enter operatorn“); scanf(“n%c“, switch(op) case +: result=num1+num2;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 房东微信群规定管理制度
- 分公司财务流程管理制度
- 施工现场机房管理制度
- 施工物资仓库管理制度
- 泵站建设工程管理制度
- 北京市安全用电管理制度
- 公司打印机彩打管理制度
- 分布式光伏公司管理制度
- 可燃气探测安全管理制度
- 服务企业入驻管理制度
- 智慧校园大数据可视化分析平台建设方案
- 110kv升压站施工组织设计
- “安全生产课件:如何预防工伤事故”
- 《教育学原理》马工程教材第二章教育与社会发展
- 西藏农村公路管理办法
- 野外生存优秀课件
- 国际投资学教程(第四版)綦建红答案
- 福建省福州市福建师大附中2023年自主招生样卷--数学试卷
- GB/T 16622-2022压配式实心轮胎规格、尺寸与负荷
- GB/T 3620.1-2016钛及钛合金牌号和化学成分
- GB/T 2878.2-2011液压传动连接带米制螺纹和O形圈密封的油口和螺柱端第2部分:重型螺柱端(S系列)
评论
0/150
提交评论