C语言程序设计李泽中课件第4章_第1页
C语言程序设计李泽中课件第4章_第2页
C语言程序设计李泽中课件第4章_第3页
C语言程序设计李泽中课件第4章_第4页
C语言程序设计李泽中课件第4章_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

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章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.1 程序的流程图程序的流程图N

3、-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】求所输入数值的绝对值。求所输入数值的绝对值。输入数据输入数据解题思路:解题思路: 首先判断输入数值是否为首先判断输入数值是否为负数,若为负数,则将取其负数,若为负数,则将取其相反数;否则,正数和零的相反数;否则,正数和零的绝对值是其本身,不予处理。绝对值是其本身,不予处理。判断输入数据判断输入数据0取相反数取相反数0输出结果输出结果第第4章章 选择结构程

5、序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语句【例例4.2】求所输入数值的绝对值。求所输入数值的绝对值。程序为:程序为:#include “stdio.h”main() float score; printf(“Please input a score:n”); scanf(“%f”,&score); /*输入数值输入数值*/ if (scorey) temp=x; x=y; y=temp; /*xy时交换*/ if (xz) temp=x; x=z; z=temp; /*xz时交换,x为最小数*/ if (yz) temp=y; y=z; z=t

6、emp; /*yz时交换*/ printf(“The sequence is:%3.1f,%3.1f,%3.1fn”,x,y,z);运行结果如下:运行结果如下:Please input three number:60.1,60,59.9The sequence is: 59.9,60.0,60.1第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语句2双分支选择结构一般形式为:一般形式为:if(表达式表达式) 语句语句1; else 语句语句2;执行过程是执行过程是:先求解表达式的值,如果表达式的值为真(非0)执行语句1;否则若表达式的值为假

7、(值为0),就执行语句2。执行过程如图4.5所示。第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语句【例例4.4】 判断所输入的学生成绩是否及格。判断所输入的学生成绩是否及格。解题思路:解题思路:只需要将输入的学生成绩和只需要将输入的学生成绩和60作一次比较就可以得出作一次比较就可以得出结论:该成绩大于等于结论:该成绩大于等于60为及格,否则该成绩不及格。为及格,否则该成绩不及格。第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语句第第4章章 选择结构程序设计选择结构程序设计河南商业高

8、等专科学校河南商业高等专科学校4.2 if 语句语句3多重选择结构多重选择结构多重选择结构用于有多种情况需要选择的程序。一般形式为:一般形式为: if(表达式表达式1) 语句语句1; else if (表达式表达式2) 语句语句2; else if (表达式表达式3) 语句语句3; else if (表达式表达式n) 语句语句n; else 语句语句 n+1; 第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语句3多重选择结构多重选择结构第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语

9、句【例例4.5】 判断所输入的学生成绩的等级判断所输入的学生成绩的等级,其具体要求其具体要求如下表:如下表:学生成绩90100809070806070060成绩等级ABCDE解题思路:解题思路:对于输入的学生成绩,可按照上表分为五个等级判断即可。 第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语句第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语句4.2.2 if语句的嵌套语句的嵌套if语句中的子语句1或子语句2还可以是if语句,这称为if语句的嵌套。注意:注意:else总是与前面最近

10、的总是与前面最近的if配对配对。一般形式如下:一般形式如下:if(表达式表达式1) if(表达式表达式11) 语句语句11; else 语句语句12;else if(表达式表达式2) 语句语句21; else 语句语句22; 第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语句注意区别以下两种注意区别以下两种if语句结构:语句结构:(1) if(表达式表达式1) (2) if(表达式表达式1) if(表达式表达式11) if(表达式表达式11) 语句语句11; 语句语句11; else 语句语句12; else 语句语句12;关键是弄清楚关

11、键是弄清楚else与与if的配对情况的配对情况 问:第问:第(1)种情况种情况else与哪个与哪个if配对?配对? 第第(2)种情况种情况else与哪个与哪个if配对?配对?答:第答:第(1)种情况种情况else与第与第2个个if配对配对 第第(2)种情况种情况else与第与第1个个if配对配对第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语句【例4.6】按表输入三个整数a、b、c,分析运行结果。#include “stdio.h”void main() int a,b,c; int result11=0,result12=0, resu

12、lt21=0,result22=0; scanf(“%d,%d,%d”,&a,&b,&c); 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”,result12); if(ab) /*第(2)种if语句的嵌套*/ if(bc)result21=a*b*c; else result22=a+b+c; printf(“The result21 is:

13、 %dn”,result21); printf(“The result22 is: %dn”,result22); 第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.2 if 语句语句分析一下输入、输出数据的特点。分析一下输入、输出数据的特点。输入数据输入数据对应的赋值对应的赋值result11result12result21result22 2,6,8 a=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

14、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(表达式表达式) case 常量表达式常量表达式1: 语句组语句组1;break; case 常量表达式常量表达式2: 语句组语句组2;break; case 常量表达式常量表达式n: 语句组语句组n; break; defa

15、ult: 语句组语句组n+1; 第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.3 多分支选择语句(多分支选择语句(switch语句)语句)执行过程执行过程:先求解表达式的值,然后与与后面各常量表达式比较,若与表达式i的值相同,则执行相应语句组i(i为1n)。若与常量表达式的值都不相同时,执行default后的语句组n+1。动画演示如下:第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.3 多分支选择语句(多分支选择语句(switch语句)语句)【例4.7】 根据输入的成绩等级A,B,C,D来对应输出相应的说明:“s

16、uperexcellence(优秀)”,“excellence(良好)”,“middling(中等)”和“pass(及格)”,其它输入都为“failure(不及格)”。第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.3 多分支选择语句(多分支选择语句(switch语句)语句)第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.3 多分支选择语句(多分支选择语句(switch语句)语句)相关说明:(1) case后面所有的常量表达式与switch后面表达式的值类型相同。(2) 语句组可以是多个语句组成的,但不需要用大括号

17、括起来。(3) 如果case后面没有break语句,程序会继续执行后面case后语句组。(4) 注意case和常量表达式之间要有空格。(5) Default子句可以省略,case和default子句的出现次序是任意的。 第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.3 多分支选择语句(多分支选择语句(switch语句)语句)【例例4.8】 对于输入的成绩等级对于输入的成绩等级A和和B,相应输出为,相应输出为“良好良好”,C和和D 对应着对应着“及及格格”,其它输入都为,其它输入都为“不及格不及格”。程序代码如下:程序代码如下:#include “std

18、io.h”void main() char grade; printf(“Please input the grade of score:n”); scanf(“%c”,&grade); printf(“The information of %c is :”,grade); switch(grade) case A: case B: printf(“excellence n”);break; /*A,B对应对应“良好良好”*/ case C: case D: printf(“pass n”);break; /*C,D对应对应“及格及格”*/ default: printf(“failu

19、re n”); /*其它为其它为“不及格不及格”*/ 第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.3 多分支选择语句(多分支选择语句(switch语句)语句)【例例4.9】 将下列程序与将下列程序与4.8对比分析,什么情况下会出现相同与不同的情况。对比分析,什么情况下会出现相同与不同的情况。程序代码如下:程序代码如下:#include “stdio.h”void main() char grade; printf(“Please input the grade of score:n”); scanf(“%c”,&grade); printf(

20、“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 n”);break; default : printf(“failure n”); 注意注意:从例从例4.8和例和例4.9的区别和联系,重点关注的区别和联系,重点关注break的用法和作用。的用法和作用。第第4章章 选择结构程序设计选择结构程序设

21、计河南商业高等专科学校河南商业高等专科学校4.4 程序综合举例程序综合举例【例4.11】判断输入的某一年是否是闰年,将结果输出。提示:符合下列任一条件的年份为闰年,其它年份都不是闰年。(1)该年份能被4整除,但不能被100整除;(2)该年份能被400整除。解题思路解题思路:判断所输入的年份是否为闰年,只要满足(1)或(2)中的任意一条,该年份便为闰年,否则该年份不是闰年。仔细分析这两个条件,实际上就是三个数的整除问题,即是否能够被4、100、400整除,程序分别用flag1、flag2和flag3来表示。第第4章章 选择结构程序设计选择结构程序设计河南商业高等专科学校河南商业高等专科学校4.4

22、 程序综合举例程序综合举例程序代码如下:程序代码如下:#include “stdio.h”void main() int year; int flag1, flag 2, flag 3; printf(“Please input a year:n “); scanf(“%d”,&year); /*输入年份*/ flag1=(year%4)=0); /*判断年份是否能被4整除*/ flag2=(year%100)=0); /*判断年份是否能被100整除*/ flag3=(year%400)=0); /*判断年份是否能被400整除*/ if(flag1&(!flag2)|( fla

23、g3) /*判断年份是否为闰年*/ printf(“%d year is a leap year!n”,year); 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 input a year:1902 1902 year is not a leap year!第第4章章 选择结构程序设计选

24、择结构程序设计河南商业高等专科学校河南商业高等专科学校4.4 程序综合举例程序综合举例【例例4.12】输入一个无符号短整数和进制代号(输入一个无符号短整数和进制代号(d十进制、十进制、0八进制、八进制、x十十六进制),然后将数进制代号要求输出。六进制),然后将数进制代号要求输出。程序代码如下:程序代码如下:#include “stdio.h”void main() unsigned short x; char c; scanf(“%d,%c”,&x,&c); /*输入一个无符号整数和进制代号输入一个无符号整数和进制代号*/ switch(c) /*判断对应的进制代号判断对应的进

25、制代号*/ 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 66,o 66,x 66,c Input error!26,d 2626,o 3226,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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论