C语言程序设计 教学课件 ppt 作者 李学军 第4章

上传人:E**** 文档编号:89381914 上传时间:2019-05-24 格式:PPT 页数:39 大小:229KB
返回 下载 相关 举报
C语言程序设计 教学课件 ppt 作者 李学军 第4章_第1页
第1页 / 共39页
C语言程序设计 教学课件 ppt 作者 李学军 第4章_第2页
第2页 / 共39页
C语言程序设计 教学课件 ppt 作者 李学军 第4章_第3页
第3页 / 共39页
C语言程序设计 教学课件 ppt 作者 李学军 第4章_第4页
第4页 / 共39页
C语言程序设计 教学课件 ppt 作者 李学军 第4章_第5页
第5页 / 共39页
点击查看更多>>
资源描述

《C语言程序设计 教学课件 ppt 作者 李学军 第4章》由会员分享,可在线阅读,更多相关《C语言程序设计 教学课件 ppt 作者 李学军 第4章(39页珍藏版)》请在金锄头文库上搜索。

1、2019/5/24,C语言程序设计,1,第4章 选择结构程序设计,主要内容 if语句 switch语句 选择结构的C程序设计举例 核心知识点 if语句、switch语句的格式和使用方法 如何构成、分析、调试选择结构程序 重点难点 if语句、switch语句的应用 选择结构程序的设计方法,2019/5/24,C语言程序设计,2,第4章 选择结构程序设计,4.1 if语句 4.2 switch语句 4.3 选择结构程序设计举例,学习目标 了解if语句的格式及应用的几种形式 掌握if语句嵌套应用的方法 掌握条件运算符的应用 掌握switch语句的格式及应用 掌握选择结构程序的设计方法,2019/5/

2、24,C语言程序设计,3,4.1 if语句,if语句又叫条件语句,它是通过判别条件是否成立,来决定程序的流程(在可能执行的两个流程中选择执行其中的一个)。 1. if语句的一般格式 if(表达式) 语句组1 else 语句组2 如: if(a=b) printf(“%d”, a); else printf(“%d”, b);,2019/5/24,C语言程序设计,4,2.if语句的三种形式 形式一:(缺省else子句时) 格式:if(表达式) 语句 当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句,否则直接转向执行下一条。如图4-1所示。 例如:if(xy) printf(“max=

3、%d“,x);,2019/5/24,C语言程序设计,5,形式二:(指定else子句时) 格式:if(表达式) 语句1 else 语句2 当“表达式”的值不等于0(即判定为“逻辑真”)时,则执行语句组1,然后转向下一条语句;否则,执行语句组2。如图4-2所示。 例如: if(xy) printf(“max=%d“,x); else printf(“max=%d“,y);,2019/5/24,C语言程序设计,6,形式三:(if语句嵌套) 格式:if(表达式1) 语句1 else if(表达式2) 语句2 else if(表达式3) 语句3 . else if(表达式m) 语句m else 语句n,

4、图4-3 ifelse语句嵌套的流程图,2019/5/24,C语言程序设计,7,例如:if(number500) const=0.15; else if(number300) const=0.10; else if(number100) const=0.075; else if(number50) const=0.05; else const=0;,说明: (1)if (表达式)中的“表达式”一般为逻辑表达式或关系表达式,如: if(a=b ,2019/5/24,C语言程序设计,8,(2)“语句组1”和“语句组2”,可以只包含一个简单语句,也可以是复合语句。复合语句须在其第一个语句前用左花括号

5、“”开头,最后一个语句后以右花括号“”结尾,如: if(a+bc ,2019/5/24,C语言程序设计,9,【例4-1】 输入任意三个整数,求三个数中的最大值。 【分析】定义三个变量num1、num2、num3,分别表示从键盘输入的任意三个数,再定义变量max表示三个数中的最大值。 首先取一个数预置为max(最大值),然后再用max依次与其余的数逐个比较,如果发现有比max大的,就用它给max重新赋值,比较完所有的数后,max中的数就是最大值。 对从3个或3个以上的数中找最大值的处理,上述方法是非常好用的。 程序如下:,单击此处,2019/5/24,C语言程序设计,10,main() int

6、num1,num2,num3,max; printf(“Please input three numbers:“); scanf(“%d,%d,%d“, ,屏幕显示运行结果为:,Please input three numbers:35,100,85 The three numbers are: 35,100,85 max=100,2019/5/24,C语言程序设计,11,【例4-2】 输入任意三个数num1、num2、num3,按从小到大的顺序排序输出。 【分析】编程思路与例4-2基本上相同。不同的是:由于本例题要求将所输入的三个数按从小到大的顺序排序输出,故在比较大小时要注意小数排在前,大

7、数排在后,位置不符时要交换两数的位置。 程序如下: main() int num1,num2,num3,temp; printf (“Please input three numbers:“); scanf (“%d,%d,%d“, ,屏幕显示运行结果为:,Please input three numbers: 35,100,85 Three numbers after sorted: 35, 85,100,2019/5/24,C语言程序设计,12,3if语句的嵌套 if语句允许嵌套。 (1)if语句的嵌套形式 所谓if语句的嵌套是指:if语句中包含另一个if语句,即:在“语句组1”或(和)“

8、语句组2”中,又包含有if语句的情况。 if语句的嵌套的一般形式: if(表达式1) if(表达式2 ) 语句组1 /*内嵌if语句*/ else 语句组2 else if(表达式3 ) 语句组3 /*内嵌if语句*/ else 语句组4,2019/5/24,C语言程序设计,13,(2)if语句的嵌套与嵌套匹配原则 if语句嵌套时,从最内层开始,else总是与它上面距它最近、且尚未匹配的if配对。 为明确匹配关系,避免if与else配对错位的最佳办法是将内嵌的if语句,一律用花括号括起来。 为了便于阅读,使用适当的缩进,此时大括号能保证if和else不错位配对,而且适当的缩进便于阅读程序。 例

9、如以下两组循环的嵌套因加入大括号后,所表示的含义不同。,if() if () if() 语句1 if () 语句1 else else 语句2 语句2,加改变配对关系:,2019/5/24,C语言程序设计,14,【例4-3】 有一函数如下,编程实现:输入一个x值,即可输出y值。 下面以if语句嵌套的不同的方法来编写程序。,方法一: main() int x,y; scanf(“%d“, ,屏幕显示运行结果为:,35 x=35,y=1,2019/5/24,C语言程序设计,15,方法二: main() int x,y; scanf(“%d“, ,屏幕显示运行结果为:,-35 x=-35,y=-1,

10、35 x=35,y=-1,0 x=0,y=0,2019/5/24,C语言程序设计,16,方法三: main() int x,y; scanf(“%d“, ,方法四: main() int x,y; scanf (“%d“, ,2019/5/24,C语言程序设计,17,4.条件运算符“?“运算符 在if语句中,当“表达式”的值为“真”和“假”时,都只执行一个赋值语句给同一个变量赋值,例如: if(ab) max=a; else max=b; 则可以用条件运算符构成 一个条件表达式来处理,如下所示: max=(ab)?a:b; 其中,“(ab)?a:b”是一个条件表达式,其含义是:若条件(ab)成

11、立,则条件表达式取值a;否则,取值b。,2019/5/24,C语言程序设计,18,(1)条件表达式的一般格式: 表达式1?表达式2:表达式3 例如: main() int x, y; x=80; y=x70?100:0; printf(“y=%d“,y); ,注意:条件运算符要求有三个操作对象,称为“三目运算符”(它是C语言中唯一的一个三目运算符)。条件表达式中的“表达式1”、“表达式2”、“表达式3”缺一不可,其类型可以各不相同。,屏幕显示运行结果为:,y=100,2019/5/24,C语言程序设计,19,(2)条件表达式的运算规则 如果“表达式1”的值为非0(即逻辑真), 则运算结果等于“

12、表达式2”的值;否则,运算结果等于“表达式3”的值。 条件表达式的流程图如图4-4所示。,真(非0),表达式1,条件表达式 取表达式2的值,假(0),条件表达式 取表达式3的值,图4-4 条件表达式的流程图,2019/5/24,C语言程序设计,20,条件运算符的结合方向 条件运算符的结合方向为“从右到左”(即右结合性)。如: ab? a:cd?c:d 等介于:(ab)?a:(cd?c:d), if语句一般都可以用条件表达式代替。如: if(ab) printf(“%d“,a); else printf(“%d“,b); 等介于: (ab)?printf(“%d“,a):printf(“%d“,

13、b); 或: printf(“%d“,ab?a:b);,条件运算符的优先级高于赋值运算符,但低于算术运算符和关系运算符。如: max=(ab)?a:b; 等介于:max=ab?a:b; ab?a:b+1 等介于:(ab)?a:(b+1),(3)说明:,2019/5/24,C语言程序设计,21,【例4-4】 从键盘上输入一个字符,判别它是否为大写字母,如果是,则把它转换成小写字母输出;否则不转换,直接输出。,【分析】字符在计算机内是用ASCII表示,大写字母的ASCII值正好比相应的小写字母小32,因此,若能判断出所输入的字符为大写字母,则将该字符的ASCII值加上32后,即转换为相应的小写字母

14、。判断字符ch是否为大写字母的条件是:ch=A & ch=Z为真。,main() char ch; printf(“Input a character: “); scanf(“%c“, ,屏幕显示运行结果为:,Input a character: D ch=d,2019/5/24,C语言程序设计,22,4.2 switch语句,1switch语句的一般格式: switch(表达式) case 常量表达式1:语句(组)1;break; case 常量表达式2:语句(组)2;break; case 常量表达式:语句(组)n;break; default:语句(组)n+1; break; ,C语言提

15、供了switch语句直接处理多个分支的选择结构。,2019/5/24,C语言程序设计,23,例如: switch(ch) case A:printf(“85100n“);break; case B:printf(“7084n“);break; case C:printf(“6069n“);break; case D:printf(“60n“);break; default: printf(“errorn“); ,2019/5/24,C语言程序设计,24,其他,D,B,A,C,图4-5,2019/5/24,C语言程序设计,25,2switch语句的功能 包括以下两方面。 (1)当switch后面

16、“表达式”的值,与某个case后面的“常量表达式”的值相同时,就执行该case后面的语句(组);当执行到break语句时,则跳出switch语句,转向执行switch语句的下一条。 (2)如果没有任何一个case后面的“常量表达式”的值与switch后面“表达式”的值相同,则执行default 后面的语句(组)。然后,跳出switch语句,执行switch语句的下一条。,2019/5/24,C语言程序设计,26,3说明: (1)switch后面的“表达式”和case后面的“常量表达式” 可以是整型、字符型和枚举型中的任意一种,程序执行时将自动计算其值。 (2)为了避免程序执行时出现自相矛盾的现象,对switch后面的“表达

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号