版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第四章 选择结构程序设计,内蒙古科技大学实训中心,条件选择控制语句,1、if 语句(单分支语句),if (条件表达式) 语句;,if (条件表达式) 语句块 ,或,2、 if - else 语句(Two-way selection statement),if(条件表达式) 语句1; else 语句2;,例5 将百分制成绩转成五级记分(A、 B、 C、 D、E)。,if(cj=90) grade=A;,if(cj=80,if(cj=70,if(cj=60,cj 等级 90分以上 A 80-90 B 70-80 C 60-70 D 60分以下 E,程序结构:,输入,计算,输出,键盘输入一个实数给变
2、量cj,等级grade,scanf(“%f”,if(cj=60,如果ab a,b值交换 如果ac a,c值交换 如果bc b,c值交换,if(ab) t=a;a=b;b=t; if(ac) t=a;a=c;c=t; if(bc) t=b;b=c;c=t;,#include”stdio.h” void main() int a,b,c,t; scanf(“%d%d%d”, ,例6:键盘输入三个整数,按从大到小的顺序排序。,If语句的嵌套,格式:,在if语句中又包含一个或多个if语句称为if语句的嵌套。,if( ) if( ) 语句1 else 语句2 else,if( ) else if( )
3、语句3 else 语句4,if( ) if( ) 语句1 else 语句2 else if( ) 语句3 else 语句4,注意:if与else的配对关系,if () if ( ) 语句1 else if( ) 语句2 else 语句3,这种表达与原意不符: else总是与上边最近的if配对,因此,把“if ()语句1”加上“ ”才能实现原意,即 if () 语句1 。,程序段1: int x = 20; if ( x = 0) if ( x =0 且 x=0 且 x=50*/,分析下面两个程序段的输出结果,程序段2: int x = 20; if ( x = 0) if ( x 50) /*
4、该 if 不可见*/ printf(“ x is okn”); else printf(“ x is not okn”);,cj 等级 90分以上 A 80-90 B 70-80 C 60-70 D 60分以下 E,例5 将百分制成绩转成五级记分(A、 B、 C、 D、E)。,cj=90,grade=A,N,Y,grade=B,cj=80,cj=70,grade=C,grade=D,N,N,Y,Y,cj=60,grade=E,Y,N,例5 将百分制成绩转成五级记分(A、 B、 C、 D、E)。,输入成绩cj,输出等级,例5 将百分制成绩转成五级记分(A、 B、 C、 D、E)。,if (cj=
5、90) grade=A; else if (cj=80) grade=B; else if (cj=70) grade=C; else if (cj=60) grade=D; else grade=E,#include”stdio.h” void main() float cj; char grade; scanf(“%f”, ,3. 多分支选择switch语句,语句格式: switch (表达式) case 常量表达式1:语句组1; case 常量表达式2:语句组2; case 常量表达式n:语句组n; default: 语句组n+1; ,(1) case后可以是常量表达式, 常量表达式的值
6、必须互不相同, 否则会出现二义性。 (2) 常量表达式可以是任何类型,一般为整型、 字符型等。 (3) 每个case 和default的出现次序不影响执行结果。 (4) case 只起语句标号作用,不进行条件的判断。执行完一个case后面的语句,接着执行下一个case。 (5)一种情况处理完后, 一般应使程序的执行流程跳出switch结构, 终止switch语句的执行, 这可借助break语句完成。,说明:,(6) 最后一种情况处理中可以不加break语句。 (7) 当多个常量代表一种情况时, 出现在前面case中的情况处理无语 句, 这实际上也是多个case共用一组执行语句。 (8) 可以没
7、有default子句。,Break语句的使用,break语句形式为: break;,一般使用了break语句的switch语句形式为:,switch (选择表达式) case 常量1: 语句体1 break; case 常量2: 语句体2 break; case 常量n: 语句体n break; default: 语句体n+1 ,90100分 A 8089分 B 7079分 C 6069分 D 59分以下 E,例5: 根据分数给出考试成绩的等级,注意选择表达式的构造:,9 、10 A 8 B 7 C 6 D 1、2、3、4、5 E,int(cj/10),#include main() char
8、 grade; float score; printf(“please input a scoren”); scanf(“%f”, ,本节作业,1、从键盘输入某一学生的百分制成绩,给出相应的等级。90分以上为“Excellent”;8089分为“Very Good”;7079分为“Good!”;6069分为“Pass!”;60分以下为“Fail”,试用switch语句和if语句分别来实现。 2、从键盘输入三个正整数,按从大到小的顺序输出。 3、输入一个字符,如果是大写字母,将其转换为小写字母, 如果是小写字母转换为大写字母,然后输出。 4、键盘输入一个字符判断其为数字字符还是字母字符,或是其他
9、字符。 5、从键盘输入一个正整数,判断该数是偶数还是奇数。,例7:根据考试成绩的等级输出百分制分数段。,main() char grade; scanf(“%c”, /最后可省略break ,t-Turbo C b-Borland C m-Microsoft C v-Visual C,例 8 根据输入的字符, 输出相应的字符串。,main( ) char ch; scanf(%c, ,main() char c1; scanf(“c1=%c”, ,程序设计:输入一个字符,如果是大写字母,将其转换为小写字母, 如果是小写字母,将其原样输出。,goto语句,格式: goto 语句标号; 功能: 将
10、程序的执行流程无条件转移至语句标号所标识的位置处执行。,说明: C语言的语句标号用标识符表示, 它仅仅表示goto语句转移的目标地址。 带有标号的语句称为标号语句, 标号与语句之间用冒号分隔。 标号语句仅对goto语句有意义。 goto语句往往与if 语句配套使用构成一种远距离的转移。,(4) if语句加goto语句还可构成循环。 例如: x=0; flag: if(x10) x+; goto flag; (5) 不允许使用goto语句把程序控制转移到其它函数内部, 不允许使用goto语句把程序控制转向数据说明语句。 (6) 尽量少使用goto语句, 即使使用, 一般也不要将程序执行流程向后转
11、移。,例 13 两个数的+、 -、 *、 / 简易计算器程序。,数据分析: 输入量: 两个数x、 y, float 运算符op, char 输出量: 计算结果j, float 算法提示: 运算选择通过开关语句处理。 除法运算时要考虑被除数为0的情况。,main( ) float x, y,j; char op; printf(输入两个数: ); scanf(%f, %f, ,运行结果: 输入两个数: 3, 6 输入运算符: * 结果= 18.0000,某商场销售商品,实行按比例优惠,优惠率 如下,货款在200元以下不优惠,200元以上优惠7。5%,300元以上优惠10%,400元以上优惠15%
12、,500元以上优惠20%。求应付货款。,hk=500,cost=0.2,N,Y,cost=0.15,hk=400,hk=300,cost=0.1,cost=0.075,N,N,Y,Y,hk=200,cost=0,Y,N,hk=hk*(1-cost),程序结构:,输入,计算,输出,键盘输入一个数给变量hk,根据优惠求实际所付的货款,scanf(“%f”,#include void main() float cost; float hk; scanf(%f, ,某商场销售商品,实行按比例优惠,优惠率 如下,货款在200元以下不优惠,200元以上优惠7。5%,300元以上优惠10%,400元以上优惠
13、15%,500元以上优惠20%。求应付货款。,某商场销售商品,实行按比例优惠,优惠率 如下,货款在200元以下不优惠,200元以上优惠7。5%,300元以上优惠10%,400元以上优惠15%,500元以上优惠20%。求应付货款。,=500 cost=0.2,用switch语句完成注意选择表达式的构造:,0,1 cost=0 2 cost=0.075 3 cost=0.1 4 cost=0.15 5,6,7, cost=0.2,int(hk/100),#include void main() float cost; float hk; printf(please input a scoren);
14、 scanf(%f, ,征税问题:价格高于10000元的税为5%,高于5000元税为3%,高于1000元税为2%,低于1000元不征税。请输入货物价格,输出税金。,提示:各段采用不同税率进行征收。 如:贷款为53000元,其中43000元以上按5%征收,s剩下的10000元 中,5000元按3%征收。然后剩下的5000中高于1000元按2%, 1000元以下不征税,作业3:,#include main() float price,tax=0; printf(“input price:n”); scanf(“%f”, ,作业4 通讯录管理主控程序。,通讯录管理程序 Add-追加数据 Modify-修改数据 Delete-删除数据 Print-打印数据 Quit-退出程序 请选择(A/M/D/P/Q):,要求:先在屏幕上输出主控界面,然后接收来自用户的响 应,并在屏幕上输出该用户所选功能的字样。 例如:用户输入“P”字符,则程序能够
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川电力职业技术学院单招职业技能考试题库带答案详解(模拟题)
- 2026年吉林省松原市单招职业倾向性测试题库及一套答案详解
- 2026年四川文化艺术学院单招职业适应性测试题库附答案详解(综合题)
- 2026年商洛职业技术学院单招职业技能测试题库参考答案详解
- 2026年四川汽车职业技术学院单招职业技能考试题库附参考答案详解(综合卷)
- 2026年四川文轩职业学院单招职业适应性测试题库及答案详解(各地真题)
- 2026年四川托普信息技术职业学院单招职业倾向性考试题库附参考答案详解(模拟题)
- 2026年四川应用技术职业学院单招职业技能考试题库带答案详解ab卷
- 餐饮业总经理面试要点概览
- 华能集团秘书部门招聘秘籍
- 安徽省单招考试真题及答案
- 变压器装配工职业技能考核试卷及答案
- 2025煤矿安全规程解读
- 烧伤进修汇报课件
- 机械行业重点岗位安全手册
- 卵巢癌PARP抑制剂临床应用指南解读
- 儿童青少年心理健康知识讲座
- 2025年天津市初中学业水平考试中考物理真题试卷(中考真题+答案)
- 2025至2030年中国儿童免疫系统市场分析及竞争策略研究报告
- 2025年电力涂料行业深度研究分析报告
- 城镇燃气管网泄漏检测技术规程
评论
0/150
提交评论