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

下载本文档

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

文档简介

第第4 4章章 选择结构程序设计选择结构程序设计 4.1 关系运算符与关系表达式 4.2 逻辑运算符和逻辑表达式 4.3 if语句 4.4 switch语句 4.5 选择程序设计实例 2018/12/28 关系运算符 1.关系运算符的运算对象、规则与结果、结合性如下表所示: 对象数名 称运算符 运算规则 运算对象 结果结合性 双目 小于 小于等于 大于 大于等于 等于 不等于 = ! 满足则为 真,结果 为1,不 满足为假 结果为0 整型、 实型、 字符型 等 逻辑 值(整 数1或 0) 自 左 向 右 2018/12/28 2.关系运算符的优先级 算术运算符 优先于 关系运算符 ,= 优先于 ,! ,= 同级,结合性是自左向右 ,!同级,结合性是自左向右 2018/12/28 3.关系运算符的使用实例 设变量定义如下: char c1a,c2A; (c1,c2可看成整型,其值为97,65) int n165,n297; float f10.3E1,f23.0001; 则: c1c2,n1n2,f1f2的值依次是 1.,0,0 c1n1,c2n2,c1n2的值依次是 1,0,1 f1c1,f2c21c2n1c1)的值是 1 !c2c1的值是 0 f1f2|!c1的值是0 n132n2 scanf (“%f,%f”, if (ab) t=a;a=b;b=t; printf (“%5.2f,%5.2f”,a,b); 运行情况如下: 3.6,3.2 3.20,3.60 例41 设计程序,划分学生的成绩优,良,及格,不及格 ,输入成绩,输出等级。 #include “stdio.h“ main() int score; char grade; scanf(“%d“, if(score90) grade=5; else if (score70) grade=4; else if (score60) grade=3; else grade=2; printf(“%cn“,grade); 例42 输入三个整数,按从小到大的顺序输出。 #include “stdio.h“ main() int a,b,c,t; scanf(“%d %d %d“, 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(“%d,%d,%dn“,a,b,c); 2. 嵌套的if语句 在 if()语句1 else 语句2 中,其中语句1,语句2本身又 可以是if语句,从而构成了嵌套的if语句。C规定,else 也必 须与最近的if相匹配。 例1: if ( ) if ( ) 语句 1; else 语句 2; else if ( ) 语句3 ; 例4-3 Y= 1 (X0) 编一程序,输入一个x值,输出y值, 流程图如下:开始 输入x X=0) if (x0) y=1; else y=0; else y=1; 程序3:将上述if语句改为: y=1; if (x!0) if (x0) y=1; else y=0; 程序4: y0; if (x=0) if (x0) y=1; else y=1; 只有程序1和程序2是正确的 switch switch 语句语句 1switch的一般形式: switch(表达式) case常量表达式1:语句 1 case常量表达式2:语句 2 : : case常量表达式n:语句 n default:语句 n1 例44 根据输入的百分制成绩,转换成相应的等级 。 #include “stdio.h“ main() int score,mark; printf(“请输入成绩n“); scanf(“%d“, mark=score/10; switch(mark) case 10: case 9: printf(“%d-An“,score);break; case 8: printf(“%d-Bn“,score);break; case 7: printf(“%d-Cn“,score);break; case 6: printf(“%d-Dn“,score);break; case 5: case 4: case 3: case 2: case 1: case 0: printf(“%d-En“,score);break; 2关于switch的说明: (1)switch后面括弧内的“表达式”,ANSI标准允许它为任 何类型。 (2)当表达式的值与某一个case后面的常量表达式的值相等 时,就执行此case后面的语句,若所有的 case中的常量 表达式的值都没有与表达式的值匹配的,就执行default 后面的语句。 (3)每一个case的常量表达式的值必须互不相同,否则就会出 现互相矛盾的现象。 (4)各个case和default的出现次序不影响执行结果。 (5)执行完一个case后面的语句后,流程控制转移到下一个 case继续执行。“case常量表达式”只是起语句标号作用, 并不是在该处进行条件判断。在执行switch语句时,根 据switch后面表达式的值找到匹配的入口标号,就从此 标号开始执行下去,不再进行判断。因此,应该在执行 一个case分支后,使流程跳出switch结构,即终止 switch语句的执行。可以用一个break语句来达到此目 的。 选择结构是结构化程序设计中的三种基本结 构之一。 在大多数程序中都会包含选择结构。它的作 用是,根据所指定的条件是否满足,决定从给定 的两组或多组操作选择其一。 选择选择程序设计举例程序设计举例 1. 写程序,判断某一年是否是闰年。以变量leap代表是否闰年的 信息。若闰年,令leap1;非闰年,leap0。最后判断 leap 是否为1(真),若是,则输出“闰年”信息。 真假 year被4整除 真 真 真 假 假 假 year被100整除 year被400整除 Leap1Leap0 Leap1 Leap0 leap 输出“闰年”输出“非闰年” 编写程序如下: main () int year, leap; scanf (“%d”, if (year%40) if (year%1000) if (year%4000) 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 year.n”); 运行情况如下: 1989 1989 is not a leap year. 2000 2000 is a leap year. 可以将程序中第513行改写成以下的if语句 if (year%4!=0) leap=0; else if (year%100!=0) leap=1; else if (year%400!=0) leap=0; else leap=1; 也可以用一个逻辑表达式包含所有的闰年条件,将上述if语句 用下面的if语句代替: if (year%40 else leap=0; 2. 写程序。运输公司对用户计算运费。路程(s)越远,每公 里运费越低。标准如下: S=3000) c=12; else c=s/250 switch(c) case 0:d0;break; case 1:d2;break; case 2: case 3

温馨提示

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

评论

0/150

提交评论