C语言第5章 选择结构程序设计.ppt_第1页
C语言第5章 选择结构程序设计.ppt_第2页
C语言第5章 选择结构程序设计.ppt_第3页
C语言第5章 选择结构程序设计.ppt_第4页
C语言第5章 选择结构程序设计.ppt_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 选择结构程序设计 Follow me! 5.1 关系运算符和关系表达式 1. 关系运算符及其优先次序 语言中的关系运算符有种: 、=、(等于)、!(不等于) 关系运算符都是双目运算符,其结合性均为左结合。 运算优先次序: 1.在6种关系运算符中,前种同级,高于后种(后种同级 ) 例如: x != y、 s - db+c bd、a= = bc 等价于 (bb)(by 、s+fd 关系表达式的值是一个逻辑值(真或假),但语言 没有逻辑型数据,关系表达式的真、假是以 数值1 和0表示。“”代表“真”,以“”代表“假”。 例: a=3, b=2, c=1 则 cb; 0 (a-b) = = 1; 1 b+cbc; (自左至右 )f=0 1.逻辑运算符及其优先次序 C语言提供三种逻辑运算符: 5.3 if 语句 3. if (表达式) 语句 1 (多分支) else if(表达式2) 语句 2 else if(表达式3) 语句 3 else if(表达式m) 语句 m else 语句 n 2. if (表达式) 语句 else 语句 2 (双分支) 如: if(xy) printf(“ %d ”, x); else printf(“%d”,y); 如: If (x=90)y=1; else if (x=80)y=2; Else if (x=60)y=3; Else y=0; 说明: (1)条件表达式必须用圆括号括起来。 (2)条件表达式可以逻辑表达式或关系表达式,也可以是其它表达式,如 赋值表达式等,甚至也可以是一个变量 。 如:if (b) printf(“%dn”,x); (3)else子句不能单独使用,必须配合if语句使用。 (4)if和else后均可放置复合语句。 复合语句是用括起来的多个C语句。 例:由小到大输出两个数。 Main() Float a,b,t; Scanf(“%f,%f”,a,b); If (ab) t=a;a=b;b=t; Printf(“%5.2f,%5.2fn”,a,b); 复合语句 2. if 语句的嵌套 if ( ) if ( ) 语句 else 语句 else if ( ) 语句 else 语句 这里,else总是与最近的未配对的if配对。 把内嵌的语句写在中不容易出错 #include main( ) int numb1, sign; printf(“Please input an numbern”); scanf(“%d”, if(numb1b) max=a; else max=b; 执行该语句的语义是:如ab为真,则把a赋予max,否则把b 赋予 max。 max=(ab)?a:b; 写成 使用条件表达式时,注意: 1. 条件运算符的运算优先级低于关系运算符和算术运算符,但 高于赋值符。因此 max=(ab)?a:b可以去掉括号而写为 max=ab?a:b 2. 条件运算符?和:是一对运算符,不能分开单独使用。 3. 条件运算符的结合方向是自右至左。 ab?a:cd?c:d应理解为ab?a:(cd?c:d) 4.条件表达式中的三个表达式的数据类型可以不同。如x ? a : b 。表达式的类型取表达式2和表达式3中类型较高者。( int和float,取float) 例:输入一个字符,判别它是否是大写字母。是 ,将它转成小写字母;不是,不转换。最后输出 结果。 #include “stdio.h” void main() char ch; scanf (“%c”, ch = (ch=A break; 5.5 程序举例 #include “stdio.h” void main() int year, leap; scanf(“%d”, if (year%4=0) if (year%100=0) if (year%400=0) leap=1; else leap = 0; else leap=1; else leap=0; if (leap)printf(“%d is “, year); else printf(“%d is not”,year); printf(“a leap yearn”); 例1:写出判断 某年是否闰年的 程序。条件为下 面之一: (1)能被4整除 ,但不能被100 整除; (2)能被4整除 ,又能被400整 除。 void main() int a,b,c,max,min; printf(“input three numbers: “); scanf(“%d%d%d“, if(ab) max=a;min=b; else max=b;min=a; if(maxc) min=c; printf(“max=%dnmin=%d“,max,min) ; 例2:输入三个整数 ,输出最大数和最小 数。 #include “stdio.h” void main() int c, s; float p, w, d, f; scanf (“%f, %f, %d”, if (s=3000) c =12; else c=s/250; switch (c) case 0: d=0; break; case 1: d=2; break; case 2: case 3: d=5; break; case 4: case 5: case 6: case 7: d= 8; break; case 8: case 9: case 10: case 11: d= 10; break; case 12: d= 15; break; f=p*w*s*(1-d/100.0); printf(“freight=%15.4f”, f); 例3:运输公司计算用户 运费。其中:S路程,p 基本运费,w货重,d折 扣。 S250km 无折扣 250s500 2%折扣 500 s1000 5%折扣 1000 s2000 8%折扣 2000 s3000 10%折扣 3000 s 15折扣 F=p*w*s*(

温馨提示

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

评论

0/150

提交评论