




已阅读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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小儿红细胞葡萄糖-6-磷酸脱氢酶缺乏症的临床护理
- 眼眶爆裂性骨折的临床护理
- 【房地产】山水芙蓉国际新城-主题宣传推广创意案
- 诱导透析治疗
- 护理美学美育
- 肝胆护理年终总结
- 新质生产力会议
- 原发性十二指肠恶性淋巴瘤的临床护理
- 感染科院感管理规范实施要点
- 2025届河北省保定市莲池区十三中学七下数学期末质量检测模拟试题含解析
- 小学五六年级女生青春期生理健康教育课件
- 【课程思政案例】《国际物流》:立德树人深挖教学内容,信义忠诚彰显思政元素
- 贵州省毕节市威宁民族中学高一下学期4月第一次月考语文试卷(PDF版含答案)
- 齿轮箱说明书
- DCS、PLC、QCS介绍-dcs与plc的区别
- 有机化学人名反应有机合成基础知识梳理等
- 可口可乐OBPPC渠道营销促销原理
- 三年级下册语文期末考试质量分析
- 国有企业法律审核工作细则模版
- 完整高考英语单词3600
- 药物临床试验审批服务指南
评论
0/150
提交评论