版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计,主讲:计算机应用系,4.1 if语句 4.2 switch语句 4.3 程序举例 习题,第四章 选择结构程序设计,C语言的选择语句,if,switch,单分支if语句,双分支if语句,多分支if语句,选择结构又叫分支结构,是三种基本结构(顺序、选择、循环)之一,其对给定的条件进行判断,再根据判断的结果决定执行哪一个分支。,4.1.1 if语句的三种形式,说明: 1)表达式用于描述选择结构的条件,一般是关系表达式或逻辑表达式,也可以是任意的数值型表达式。 2)表达式的值为真(非0)或假(0)。 3)若有多条语句时,用大括号 将几个语句括起来,构成一个复合语句。,if (表达式)
2、语句;,if (表达式) 语句; 语句; ,4.1 if语句,1.单分支if语句,例4.1:输入两个整数,按从小到大的顺序进行输出。,程序如下: #include stdio.h main() int iNum1,iNum2,it; scanf(%d,%d, ,2.双分支if语句,if (表达式) 语句1; else 语句2;,首先先判断表达式的值,若为非0则执行语句1,若为0则执行语句2,执行过程:,if语句的双分支形式,在语法上视为一条语句。,图4.3 双分支if语句流程图,程序如下: #include stdio.h main( ) int iNum1,iNum2; scanf(%d,%
3、d,例4.2:使用双分支if语句实现例4.1-输入两个整数, 按从小到大的顺序进行输出。,练习:编程实现,从键盘输入一个字符,如果是字母,则输出对应的ASCII码,否则,输出“%”。,main() char a; scanf(%c, ,a=A else if (表达式2) 语句2; else if (表达式3) 语句3; else if (表达式n) 语句n; else 语句n+1;,多分支if语句,这种用if语句作为上一层if语句的语句2的结构,称为if语 句的多分支选择结构。,程序如下: #include stdio.h main() int x,y; scanf(%d, ,-1 (x0)
4、,例4.3:计算分段函数,4.1.2 if语句的嵌套使用,处理多重分支选择结构问题,除了使用多分支if语句外,还可以利用嵌套的if语句来实现。 在if语句中又包含一个或多个if语句称为if语句的嵌套。,语句形式:,if (表达式1 ) if(表达式2) 语句1; else 语句2; else if(表达式3) 语句3; else 语句4;,说明: (1)内嵌的if语句可以嵌套在if子句中,也可以嵌套在else子句中。 (2) if语句的其它嵌套形式如表4.2所示。 (3)当出现多个if和多个else重叠的情况时,要特别注意if和else的配对问题。C语言规定,else 总是与它前面最近的if配
5、对,推荐使用花括号将内嵌的语句括起来。,例4.4:某单位马上要加工资,增加金额取决于工龄和现工资两个因素: 对于工龄大于等于20年的, 如果现工资高于2000,加200元,否则加180元; 对于工龄小于20年的, 如果现工资高于1500,加150元,否则加120元。 工龄和现工资从键盘输入,编程求加工资后的员工工资。,程序如下: #include stdio.h main() float s0,s; int year; printf(Input s0,year:); scanf(%f,%d, ,4.2 Switch语句,if语句是根据表达式的值来判断执行哪一分支,某些情况下,要根据表达式的不同
6、值来判断执行某一分支。虽然也可以用多条if语句来完成这一工作,但当分支较多时,if语句的嵌套层次也会更深, 程序变得复杂冗长,可读性降低,也不便于修改和扩充。c语言中提供了switch语句专门处理多分支选择的情形,更加清晰和方便有效。,语句形式: switch(表达式) case 常量表达式1: 语句1;break; case 常量表达式2: 语句2;break; case 常量表达式n: 语句n;break; default: 语句n+1; ,执行过程,说明: (1)switch后面括号内表达式的值只能是整形、字符型或枚举类型,表达式的类型和常量表达式的类型必须一致。 (2)每一个case的
7、常量表达式的值必须互不相同。 (3)case常量表达式只起语句标号作用,必须用break语句终止多个case连续执行,否则只要有一个case满足后,以下的语句全部无条件执行。如:,switch(inum) case 1:printf(“1”); case 2:printf(“2”); default:printf(“3”); ,说明: (4)多个case可共用一组执行语句。 switch(inum) case 1: case 2: case 3:printf(“3”); break; (5)default和语句n+1可以同时省略。,例4.5:根据用户输入的1-7之间的任意数字,输出相应的星期值
8、。,#include stdio.h main() int inum; printf(input integer number(1-7): ); scanf(%d, ,4.3 程序举例,例4.6:根据输入的三角形的三边判断能否组成三角形,若能则输出三角形面积 。,分析: (1)输入三角形的三条边a,b,c,判断是否能组成三角形。 (2)如果能够组成三角形,则根据三角形面积公式,输出面积。否则,输出出错信息。,程序如下: #include math.h #include stdio.h void main() float a,b,c,p,s; scanf(%f,%f,%f, ,4.3 程序举例,
9、例4.7:输入年份,判断是否为闰年。,分析: (1)闰年的条件是: 1)能被4整除,但不能被100整除的年份是闰年,如 1996,2004。 2)能被400整除的年份是闰年,如1600,2000。 (2)定义整形变量year表示年份,整形变量leap纪录判断结果,若为闰年,令leap=1;反之则令leap=0。 (3)最后根据leap是否为1,判断是否为“闰年”。,程序如下: #include stdio.h void main() int year,leap; printf(Input a year: ); scanf(%d, ,4.3 程序举例,例4.8:输入百分制的一个学生成绩,输出对应的成绩等级。,分析: (1)输入学生成绩(score), 当输入的分数在0-100之间时,使用switch语句处理多分支选择,分数90分以上为A,8089分为B,7079分为C,6069为D,60分以下为E;当输入的分数小于0分或大于100分时,显示出错信息; (2)在使用switch语句进行多分支选择时,由于case后的表达式必须是一个常量表达式,所以必须把0-100之间的成绩分别化成相关的常量,在此我们利用两个整数相除取
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 乌鲁木齐冬季施工方案(3篇)
- 人防采暖施工方案(3篇)
- 保险反恐应急预案(3篇)
- 公园小路施工方案(3篇)
- 冬季灌浆施工方案(3篇)
- 北京游学活动方案策划(3篇)
- 厂方活动营销方案(3篇)
- 回填区施工方案(3篇)
- 地槽砌砖施工方案(3篇)
- 壳管式换热器施工方案(3篇)
- 2026届江苏省苏锡常镇四市高三一模教学情况调研(一)物理试题(含答案)
- 职业病危害申报制度培训
- 自然资源资产生态价值核算技术指南(试行)
- 2025-2026学年教科版三年级科学下册(全册)课时练习(附目录)
- (必会)中级医疗救护员技能鉴定备考题库(附答案)
- 2026年常州工业职业技术学院单招职业技能考试题库及答案详解(历年真题)
- 2026年大连枫叶职业技术学院单招职业技能考试题库附答案详解(综合卷)
- (正式版)DB2102∕T 0010-2020 《氨制冷系统4S安全维保服务规范》
- 2026年畜牧业疫病防控培训
- 2026年中考一轮复习之八下第四单元崇尚法治精神
- 村两委成员培训课件
评论
0/150
提交评论