




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 选择结构又称为分支结构。选择结构又称为分支结构。 在选择结构程序设计中,根据条件的判断情况在选择结构程序设计中,根据条件的判断情况 需要选择不同的语句组执行。需要选择不同的语句组执行。 选择结构类型:选择结构类型: (1)条件选择结构:根据给定的条件表达式)条件选择结构:根据给定的条件表达式 进行判断,决定执行某个分支中的程序段。由进行判断,决定执行某个分支中的程序段。由 if语句来实现。语句来实现。 (2)开关选择结构:根据给定的整型表达式)开关选择结构:根据给定的整型表达式 的值进行判断,然后决定执行多
2、个分支中的某的值进行判断,然后决定执行多个分支中的某 一个分支。由一个分支。由switch语句来实现。语句来实现。 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.1 4.1 程序的流程图程序的流程图 4.3 4.3 多分支选择语句多分支选择语句 4.4 4.4 程序综合举例程序综合举例 4.2 IF4.2 IF语句语句 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.1 程序的流程图程序的流程图 传统流程图符号:传统流程图符号: 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高
3、等专科学校 4.1 程序的流程图程序的流程图 N-S流程图符号:流程图符号: 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.1 程序的流程图程序的流程图 【例例4.14.1】求10!的 程序。 解题思路:解题思路: 由于n!=n*(n-1)! 即10!=10*9! 9!=9*8! 2!=2*1! 1!=1 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 4.2.1 if语句的三种格式语句的三种格式 1单分支选择结构 一般形式为:一般形式为: if(表达式表达式) 语句语句; 执行过程执
4、行过程:先求解表达式的值,如果表达式的值为真先求解表达式的值,如果表达式的值为真 (非(非0),就执行语句;否则直接执行),就执行语句;否则直接执行if语句后面的语语句后面的语 句。句。执行过程如图4.4所示。 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 【例例4.2】求所输入数值的绝对值。求所输入数值的绝对值。 输入数据输入数据 解题思路:解题思路: 首先判断输入数值是否为首先判断输入数值是否为 负数,若为负数,则将取其负数,若为负数,则将取其 相反数;否则,正数和零的相反数;否则,正数和零的 绝对值是其本身,不予处理。绝对
5、值是其本身,不予处理。 判断输入数据判断输入数据 0 取相反数取相反数 0 输出结果输出结果 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 【例例4.2】求所输入数值的绝对值。求所输入数值的绝对值。 程序为:程序为: #include “stdio.h” main() float score; printf(“Please input a score:n”); scanf(“%f”, /*输入数值输入数值*/ if (scorey) temp=x; x=y; y=temp; /*xy时交换*/ if (xz) temp=x; x
6、=z; z=temp; /*xz时交换,x为最小数*/ if (yz) temp=y; y=z; z=temp; /*yz时交换*/ printf(“The sequence is:%3.1f,%3.1f,%3.1fn”,x,y,z); 运行结果如下:运行结果如下: Please input three number: 60.1,60,59.9 The sequence is: 59.9,60.0,60.1 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 2双分支选择结构 一般形式为:一般形式为: if(表达式表达式) 语句语句1
7、; else 语句语句2; 执行过程是执行过程是:先求解表达式的值,如果表达式的值为 真(非0)执行语句1;否则若表达式的值为假(值为 0),就执行语句2。执行过程如图4.5所示。 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 【例例4.4】 判断所输入的学生成绩是否及格。判断所输入的学生成绩是否及格。 解题思路:解题思路: 只需要将输入的学生成绩和只需要将输入的学生成绩和60作一次比较就可以得出作一次比较就可以得出 结论:该成绩大于等于结论:该成绩大于等于60为及格,否则该成绩不及格。为及格,否则该成绩不及格。 第第4章章 选
8、择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 3多重选择结构多重选择结构 多重选择结构用于有多种情况需要选择的程序。 一般形式为:一般形式为: if(表达式表达式1) 语句语句1; else if (表达式表达式2) 语句语句2; else if (表达式表达式3) 语句语句3; else if (表达式表达式n) 语句语句n; else 语句语句 n+1; 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业
9、高等专科学校 4.2 if 语句语句 3多重选择结构多重选择结构 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 【例例4.5】 判断所输入的学生成绩的等级判断所输入的学生成绩的等级,其具体要求其具体要求 如下表:如下表: 学生成绩90100809070806070060 成绩等级ABCDE 解题思路:解题思路: 对于输入的学生成绩,可按照上表分为五个等级判断即 可。 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 第第4章章 选择结构程序设计选择结构程序设计 河南商
10、业高等专科学校河南商业高等专科学校 4.2 if 语句语句 4.2.2 if语句的嵌套语句的嵌套 if语句中的子语句1或子语句2还可以是if语句,这称为if 语句的嵌套。 注意:注意:else总是与前面最近的总是与前面最近的if配对配对。 一般形式如下:一般形式如下: if(表达式表达式1) if(表达式表达式11) 语句语句11; else 语句语句12; else if(表达式表达式2) 语句语句21; else 语句语句22; 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 注意区别以下两种注意区别以下两种if语句结构:语句
11、结构: (1) if(表达式表达式1) (2) if(表达式表达式1) if(表达式表达式11) if(表达式表达式11) 语句语句11; 语句语句11; else 语句语句12; else 语句语句12; 关键是弄清楚关键是弄清楚else与与if的配对情况的配对情况 问:第问:第(1)种情况种情况else与哪个与哪个if配对?配对? 第第(2)种情况种情况else与哪个与哪个if配对?配对? 答:第答:第(1)种情况种情况else与第与第2个个if配对配对 第第(2)种情况种情况else与第与第1个个if配对配对 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等
12、专科学校 4.2 if 语句语句 【例4.6】按表输入三个整数a、b、c,分析运行结果。 #include “stdio.h” void main() int a,b,c; int result11=0,result12=0, result21=0,result22=0; scanf(“%d,%d,%d”, if(ab) /*第(1)种if语句的嵌套*/ if(bc) result11=a*b*c; else result12=a+b+c; printf(“The result11 is: %dn”,result11); printf(“The result12 is: %dn”,result
13、12); if(ab) /*第(2)种if语句的嵌套*/ if(bc)result21=a*b*c; else result22=a+b+c; printf(“The result21 is: %dn”,result21); printf(“The result22 is: %dn”,result22); 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.2 if 语句语句 分析一下输入、输出数据的特点。分析一下输入、输出数据的特点。 输入数据输入数据对应的赋值对应的赋值result11result12result21result22 2,6,8 a=
14、2;b=6;c=8 0 0 0 16 2,8,6 a=2;b=8;c=6 0 0 0 16 8,2,6 a=8;b=2;c=6 0 16 0 0 6,2,8 a=6;b=2;c=8 0 16 0 0 6,8,2 a=6;b=8;c=2 0 0 0 16 8,6,2 a=8;b=6;c=2 96 0 96 0 本程序的执行结果数据如下所示:本程序的执行结果数据如下所示: 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.3 多分支选择语句(多分支选择语句(switch语句)语句) switch语句的一般形式:语句的一般形式: switch(表达式表达式)
15、 case 常量表达式常量表达式1: 语句组语句组1;break; case 常量表达式常量表达式2: 语句组语句组2;break; case 常量表达式常量表达式n: 语句组语句组n; break; default: 语句组语句组n+1; 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.3 多分支选择语句(多分支选择语句(switch语句)语句) 执行过程执行过程:先求解表达式的值,然后与与后面各常量表达式 比较,若与表达式i的值相同,则执行相应语句组i(i为 1n)。若与常量表达式的值都不相同时,执行default后 的语句组n+1。动画演示如下
16、: 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.3 多分支选择语句(多分支选择语句(switch语句)语句) 【例4.7】 根据输入的成绩等级A,B,C,D来对应输出相 应的说明:“superexcellence(优秀)”,“excellence (良好)”,“middling(中等)”和“pass(及格)”, 其它输入都为“failure(不及格)”。 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.3 多分支选择语句(多分支选择语句(switch语句)语句) 第第4章章 选择结构程序设计选择结构程序
17、设计 河南商业高等专科学校河南商业高等专科学校 4.3 多分支选择语句(多分支选择语句(switch语句)语句) 相关说明: (1) case后面所有的常量表达式与switch后面表达式的值类 型相同。 (2) 语句组可以是多个语句组成的,但不需要用大括号括起 来。 (3) 如果case后面没有break语句,程序会继续执行后面case 后语句组。 (4) 注意case和常量表达式之间要有空格。 (5) Default子句可以省略,case和default子句的出现次序是 任意的。 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.3 多分支选择语句(
18、多分支选择语句(switch语句)语句) 【例例4.8】 对于输入的成绩等级对于输入的成绩等级A和和B,相应输出为,相应输出为“良好良好”,C和和D 对应着对应着“及及 格格”,其它输入都为,其它输入都为“不及格不及格”。 程序代码如下:程序代码如下: #include “stdio.h” void main() char grade; printf(“Please input the grade of score:n”); scanf(“%c”, printf(“The information of %c is :”,grade); switch(grade) case A: case B:
19、 printf(“excellence n”);break; /*A,B对应对应“良好良好”*/ case C: case D: printf(“pass n”);break; /*C,D对应对应“及格及格”*/ default: printf(“failure n”); /*其它为其它为“不及格不及格”*/ 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.3 多分支选择语句(多分支选择语句(switch语句)语句) 【例例4.9】 将下列程序与将下列程序与4.8对比分析,什么情况下会出现相同与不同的情况。对比分析,什么情况下会出现相同与不同的情况。
20、 程序代码如下:程序代码如下: #include “stdio.h” void main() char grade; printf(“Please input the grade of score:n”); scanf(“%c”, printf(“The information of %c is :”,grade); switch(grade) case A: printf(“superexcellence n”); case B: printf(“excellence n”);break; case C: printf(“middling n”); case D: printf(“pass
21、n”);break; default : printf(“failure n”); 注意注意:从例从例4.8和例和例4.9的区别和联系,重点关注的区别和联系,重点关注break的用法和作用。的用法和作用。 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.4 程序综合举例程序综合举例 【例4.11】判断输入的某一年是否是闰年,将结果输出。 提示:符合下列任一条件的年份为闰年,其它年份都不是 闰年。 (1)该年份能被4整除,但不能被100整除; (2)该年份能被400整除。 解题思路解题思路:判断所输入的年份是否为闰年,只要满足(1)或 (2)中的任意一
22、条,该年份便为闰年,否则该年份不是闰年。 仔细分析这两个条件,实际上就是三个数的整除问题,即 是否能够被4、100、400整除,程序分别用flag1、flag2和 flag3来表示。 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.4 程序综合举例程序综合举例 程序代码如下:程序代码如下: #include “stdio.h” void main() int year; int flag1, flag 2, flag 3; printf(“Please input a year:n “); scanf(“%d”, /*输入年份*/ flag1=(ye
23、ar%4)=0); /*判断年份是否能被4整除*/ flag2=(year%100)=0); /*判断年份是否能被100整除*/ flag3=(year%400)=0); /*判断年份是否能被400整除*/ if(flag1 else printf(“%d year is not a leap year!n”,year); 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.4 程序综合举例程序综合举例 运行结果如下:运行结果如下: Please input a year: 1600 1600 year is a leap year! Please in
24、put a year: 1902 1902 year is not a leap year! 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.4 程序综合举例程序综合举例 【例例4.12】输入一个无符号短整数和进制代号(输入一个无符号短整数和进制代号(d十进制、十进制、0八进制、八进制、x十十 六进制),然后将数进制代号要求输出。六进制),然后将数进制代号要求输出。 程序代码如下:程序代码如下: #include “stdio.h” void main() unsigned short x; char c; scanf(“%d,%c”, /*输入一个
25、无符号整数和进制代号输入一个无符号整数和进制代号*/ switch(c) /*判断对应的进制代号判断对应的进制代号*/ case d: printf(“%dn”,x); /*进制代号为进制代号为d,输出对应十进制数,输出对应十进制数*/ break; case o: printf(“%on”,x); /*进制代号为进制代号为o,输出对应八进制数,输出对应八进制数*/ break; case x: printf(“%xn”,x); /*进制代号为进制代号为x,输出对应十六进制数,输出对应十六进制数*/ break; default: printf(“Input error!n”); /*进制代号错误提示进制代号错误提示*/ 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.4 程序综合举例程序综合举例 运行结果如下:运行结果如下: 6,d 6 6,o 6 6,x 6 6,c Input error! 26,d 26 26,o 32 26,x 1a 第第4章章 选择结构程序设计选择结构程序设计 河南商业高等专科学校河南商业高等专科学校 4.4 程序综合举例程序综合举例 【例4.13】对于输入的三个数值:x,y和z,判断它们可否 构成一个三角形,若它们可以构成一个三角形,则输出该三 角形的周长和面积。 解题思路:解题思路:三角形三条边
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江西省宜春重点中学2022-2023学年联考高二下学期语文期末试卷(含答案)
- 北京市西城区2023-2024学年五年级下学期语文期末试卷(含答案)
- 2025护工与老年人直接雇佣合同
- 2025合同法制的创新与发展趋势
- 2025中介租赁合同书范本
- 2025年科技创业前如何精准签订技术转让合同
- 2025年深圳市租房租赁合同简易模板
- 2025年合作伙伴间的合同范本
- 2025铝材买卖合同模板范本
- 《中国股市发展历程》课件
- 医院培训课件:《产前准备-为顺产做准备》
- 《管理学原理》(课件)
- 长城汽车2025人才测评答案
- 幼儿园法制教育讲座
- 《中华人民共和国产品质量法》知识培训
- 技能人才评价命题技术规程
- 中职不等式的试题及答案
- 深信服aES产品技术白皮书-V1.5
- Unit+2+Expressing+yourself+PartB(课件)【知识精研】人教PEP版(2024)英语三年级下册
- 电子商务与电子政务的互补关系
- 《安全人机工程学》试题及答案
评论
0/150
提交评论