《C语言程序设计实用教程 教学课件 ppt 作者 周虹 课件第4章 选择结构程序设计》由会员分享,可在线阅读,更多相关《C语言程序设计实用教程 教学课件 ppt 作者 周虹 课件第4章 选择结构程序设计(62页珍藏版)》请在金锄头文库上搜索。
1、佳木斯大学,1,C语言程序设计实用教程,第4章 选择结构程序设计,佳木斯大学,2,本章学习目标:,掌握if语句的执行和使用,能够用if语句实现选择结构 掌握switch语句的执行和使用,能够用switch语句实现多分支选择结构 掌握选择结构嵌套的执行 能够进行选择结构程序的设计,佳木斯大学,3,【教学目的】,1、掌握if语句的执行和使用,能够用if语句实现选择结构。 2、掌握选择结构嵌套的执行。 3、培养学生动手编程的能力。,佳木斯大学,4,【主要内容】,1、if语句的3种格式及执行和使用 2、用if语句实现选择结构。 3、典型算法,佳木斯大学,5,【重点与难点】,1、利用嵌套结构的实现和典型
2、算法的形成与实现是难点 2、if的三种结构的构成、执行使用;嵌套的实现是重点,佳木斯大学,6,【教学方法】,采用理论讲解、互动式、游戏式的教学方法,佳木斯大学,7,【教学内容】,带着问题学习: (1)if语句如何执行? (2)嵌套构成是要注意那些问题,佳木斯大学,8,4-1 if语句,选择结构也叫分支结构,是程序设计的一个基本结构,它的作用是,根据所指定的条件是否满足,决定从给定的操作中选择其一。,佳木斯大学,9,4-1 if语句,1、if语句的简单形式有时也称单分支结构,它的形式是: if(表达式) 语句 例如:if(xy)printf(“%d“,x); if语句用来判断给定的条件是否满足,
3、根据结果(真或假)来选择执行相应的语句。它的执行过程是,如果表达式为真(非0),则执行其后所跟的语句,否则不执行该语句,这里的语句可以是一条语句,也可以是复合语句。,佳木斯大学,10,4-1 if语句,1、if语句的简单形式有时也称单分支结构。,佳木斯大学,11,4-1 if语句,【例4-1】输入两个实数,按代数值由小到大的次序输出这两个数。 main() float a,b,t; scanf(“%f,%f“, ,运行时若输入:1.5, 2.5 输出: 1.52.5,佳木斯大学,12,4-1 if语句,【例4-2】输入3个数a,b,c要求按由小到大的顺序输出。 main() float a,b
4、,c,t; scanf(“%f,%f,%f“, ,运行时若输入: 2.1,3.4,2.3 输出: 2.12.33.4,佳木斯大学,13,4-1 if语句,2、if-else结构 if-else型分支有时也称双分支结构,它的形式是: if(表达式) 语句1 else 语句2 它的执行过程是,如果表达式的值为真(非0),就执行语句1,否则,执行语句2。,佳木斯大学,14,4-1 if语句,说明:图4-2 双分支if语句的执行过程表达式语句2假真语句1 (1)if后面的表达式不限于是关系表达式或逻辑表达式,可以是任意表达式。 (2)if语句中的控制表达式应该用括号括起来,如果有else子句,则控制表
5、达式后的语句同样必须用分号结束。 (3)若if子句或else子句由多个语句构成,则应该构成复合语句。,佳木斯大学,15,4-1 if语句,例4-3 输入两个数a,b,输出较大的一个。 #include main() int a,b; scanf(“%d,%d“, 运行时输入5,8 则输出8,佳木斯大学,16,4-1 if语句,【例4.4】输入一个数,如果为正数,求其算术平方根并输出,否则输出该数。 #include #include main() float x,y; printf(“input one number:“); scanf(“%f“, ,运行情况如下: input one num
6、ber:4 y=2.000000,佳木斯大学,17,4-1 if语句,【例4.5】某商品的零售价为每千克8.5元,批发价为每千克6.5元,购买量在10千克以上,便可按批发价计算。设某顾客购买此商品weight千克,请编程计算该顾客需付费(pay)多少。,佳木斯大学,18,4-1 if语句,main() float weight,pay; printf(“Please input the weight:“); scanf(“%f“, ,佳木斯大学,19,4-1 if语句,3、 if-else-if形式 if-else-if形式是条件分支嵌套的一种特殊形式,经常用于多分支处理。它的一般形式为: i
7、f(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 else if(表达式n) 语句n else 语句n+1,它的执行过程是,如果表达式1为真,则执行语句1,否则,如果表达式2为真,则执行语句2,否则,如果表达式n为真,则执行语句n,如果n个表达式都不为真,则执行语句n+l。,佳木斯大学,20,4-1 if语句,执行的流程图见图4-3。,佳木斯大学,21,4-1 if语句,【例4.6】判别键盘输入字符的类别。 #include“stdio.h“ main() char c; printf(“input a character: “); c=getch
8、ar(); if(c=0 ,佳木斯大学,22,4-1 if语句,【例4.7】输入x的值根据分段函数求y的值。 x+1 (x1) y= x2+3 (1x5) x2-3 (x5) #include main() int x,y; scanf(“%d“, ,佳木斯大学,23,4-1 if语句,【例4.8】根据输入的百分制成绩(score),输出成绩等级(grade)A、B、C、D、E。90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。用if语句实现。,佳木斯大学,24,4-1 if语句,main() int score; char grade; printf(“n Pl
9、ease input a score(0100): “); scanf(“%d“, ,程序的运行情况如下: Please input a score(0100): 86 The grade is B.,佳木斯大学,25,4.1 if语句,4.1.4 if语句使用说明 (1)三种形式的if语句中在if后面都有“表达式”,一般为关系表达式或逻辑表达式,系统对表达式的值进行判断,若为0,则按“假”处理,非0按“真”处理。 (2)第二、第三种形式的if语句中,在每个else前面有一分号,整个语句结束处有一分号。,佳木斯大学,26,4.1 if语句,(3)在if和else后面可以只含一个内嵌的操作语句,
10、也可以有多个操作语句,此时用花括号“”将几个语句括起来成为一个复合语句。 (4)在if语句中,条件判断表达式必须用括号括起来,在语句之后必须加分号。,佳木斯大学,27,4-2 if语句的嵌套,在if语句中又包含一个或多个if语句称为if语句的嵌套。一般形式如下: if(表达式) if语句 或者为: if(表达式) if语句 else if语句 在嵌套内的if语句可能又是if-else型的,这将会出现多个if和多个else重叠的情况,这时要特别注意if和else的配对问题。,佳木斯大学,28,4-2 if语句的嵌套,应用if与else的配对关系。else总是与它上面的最近的没有配对的if配对。
11、最好使内嵌if语句也包含else部分,这样if的数目和else的数目相同,从内层到外层一一对应,不致出错 。 如果if与else的数目不一样,应尽量把嵌套的部分放在否定的部分,或为实现程序设计者的企图,可以加花括弧来确定配对关系。,佳木斯大学,29,4-2 if语句的嵌套,【例4-9】有一函数: 编一程序,输入一个x值,输出y值。有以下几个程序,请判断哪个是正确的? -1 (x0) 程序1: main() int x,y; scanf(“%d“, ,佳木斯大学,30,4-2 if语句的嵌套,程序2:main() int x,y; scanf(“%d“,x); if(x=0) if(x=0) y
12、=0; else y=1; else y=-1; printf(“x=%d,y=%dn“,x,y); ,佳木斯大学,31,4-2 if语句的嵌套,程序3:将上述if语句改为: main() int x,y; scanf(“%d“, ,佳木斯大学,32,4-2 if语句的嵌套,程序4: main() int x,y; scanf(“%d“,x); y=0; if(x=0) if(x0) y=1; else y=-1; printf(“x=%d,y=%dn“,x,y); ,佳木斯大学,33,【小 结】,选择结构是三种基本结构之一 用if语句实现,其形式主要有单分支if语句和双分支if语句,多分支i
13、f语句,也可以通过if语句的嵌套来实现多分支问题。,佳木斯大学,34,【预习题】,1、switch语句的构成和执行 2、典型算法,佳木斯大学,35,【教学目的】,1、掌握switch语句的执行和使用,能够用switch语句实现多分支选择结构。 2、能够进行选择结构程序的设计。 3、培养学生动手编程的能力。,佳木斯大学,36,【主要内容】,1、switch语句的执行和使用 2、利用if和switch语句实现选择结构 3、典型算法,佳木斯大学,37,【重点与难点】,1、switch语句的执行和使用是重点 2、典型算法的形成与实现是难点,佳木斯大学,38,【教学方法】,采用理论讲解、游戏式、互动式的
14、教学方法,佳木斯大学,39,4-3 多分支结构,C语言提供switch语句直接处理多分支选择,使程序更清楚。switch语句的一般形式如下: switch(表达式) case 常量表达式1:语句1 case 常量表达式2:语句2 case 常量表达式n:语句n default: 语句n+1 ,佳木斯大学,40,4-3 多分支结构,switch语句的执行过程是:根据switch后面的表达式的值,找到某个case后的常量表达式与之相等时,就以此作为一个入口,执行此case 后的语句,及以下各个case或default后的语句,直到switch的结束或遇到break语句为止。若所有的case中的常量
15、表达式的值都不与switch后的表达式的值匹配,则执行default的语句。,佳木斯大学,41,4-3 多分支结构,在使用switch语句时,应注意以下几点: (1)switch后面的表达式和case后面的常量表达式可以为任何整型或字符型数据。 (2)每一个case后的常量表达式的值应当互不相同。,佳木斯大学,42,4-3 多分支结构,在使用switch语句时,应注意以下几点: (3)switch语句中可以不包含default分支,如果没有default,则所有的常量表达式都不与表达式的值匹配时,switch语句就不执行任何操作。 另外,default可以在switch语句中任何位置,若把de
16、fault写在某些case前面,当所有的常量表达式都不与表达式的值匹配时,switch语句就以default作为一个入口,执行default后面的语句及连续多个case语句,直至switch语句的结束。,佳木斯大学,43,4-3 多分支结构,在使用switch语句时,应注意以下几点: (4)为了在执行某个case分支后,使流程跳出switch结构,即终止switch语句的执行,总是把break语句与switch语句一起合用,即把break语句作为每个case分支的最后一条语句,当执行到break语句时,使流程跳出本条switch语句。break语句的作用是使流程跳出switch语句或跳出所在的循环体。,佳木斯大学,44,4-3 多分支结构,在使用switch语句时,应注意以下几点: (5)由于case及defa