C语言程序设计(第二版)-电子教案-丁亚涛 第4章 选择结构程序设计

上传人:E**** 文档编号:89423286 上传时间:2019-05-25 格式:PPT 页数:37 大小:1.08MB
返回 下载 相关 举报
C语言程序设计(第二版)-电子教案-丁亚涛 第4章 选择结构程序设计_第1页
第1页 / 共37页
C语言程序设计(第二版)-电子教案-丁亚涛 第4章 选择结构程序设计_第2页
第2页 / 共37页
C语言程序设计(第二版)-电子教案-丁亚涛 第4章 选择结构程序设计_第3页
第3页 / 共37页
C语言程序设计(第二版)-电子教案-丁亚涛 第4章 选择结构程序设计_第4页
第4页 / 共37页
C语言程序设计(第二版)-电子教案-丁亚涛 第4章 选择结构程序设计_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《C语言程序设计(第二版)-电子教案-丁亚涛 第4章 选择结构程序设计》由会员分享,可在线阅读,更多相关《C语言程序设计(第二版)-电子教案-丁亚涛 第4章 选择结构程序设计(37页珍藏版)》请在金锄头文库上搜索。

1、第4章 选择结构程序设计,掌握关系表达式和逻辑表达式的组成及运算 理解选择结构(分支结构)程序设计的概念 掌握if语句、switch语句的基本结构及执行过程 学会简单的选择结构程序设计,4.1 案例:红绿灯,【例4-1】十字路口倒计时牌中时间结束后显示红灯还是绿灯?,4.1 案例:红绿灯,#include void main() int color; int red=1; /*用变量red存储1来代表红灯 */ printf(“Please input color(1-red , 2 - green):”); scanf(“%d”, ,4.2 关系运算符与关系表达式,4.2.1 关系运算符 关

2、系运算符 、=、bb)c 等价于 a!=(bc),C语言处理判断和输出判断结果示意图,4.1 关系运算符与关系表达式,4.2.2 关系表达式 表达式 关系运算符 表达式 ab a+1 != b 3.1415 = = 3.1416 34=100 a99,4.3 逻辑运算符与逻辑表达式,4.3.1 逻辑运算符 逻辑运算符 !(逻辑非)、&(逻辑与)、|(逻辑或),4.3 逻辑运算符与逻辑表达式,优先级 结合性 非运算符(!)的结合性为右结合;与运算符(&)和或运算符(|)的结合性为左结合。,【例4-2】分析下面程序段的运行结果,#include void main() char c; int a,

3、b; c=A; a=1; b=2; printf(“cB=%dn“,cB); printf(“ab2=%dn“,ab2); ,4.4 逻辑运算符的短路现象,若&运算符左边的表达式为假(或0),则其右边的表达式将不再运算 ,整个表达式的值必然为假 若|运算符左边的表达式为真(或非0值),则其右边的表达式将不再运算 ,整个表达式的值必然为真 35 | +b,【例4-3】测试短路现象,#include void main() int a,b; a=b=0; a | +b; printf(“%d,%dn“,a,b); a=b=1; a | +b; printf(“%d,%dn“,a,b); a=b=0

4、; a ,4.5 if语句,4.5.1 单分支if语句 if (表达式) 语句; 【例4-4】从键盘输入一个整数,判断是否是偶数,若是,则输出“Yes”。 #include void main() int a; printf(“Please input a:“); scanf(“%d“, ,4.3 if语句,4.5.2 双分支if语句 形式为: if(表达式) 语句1; else 语句2;,【例4-5】从键盘输入一个整数,判断是否是偶数,若是,则输出“Yes”,否则输出“No”,#include void main() int a; printf(“Please input a:“); sca

5、nf(“%d“, ,【例4-6】从键盘输入两个整数,输出其中最大者,#include void main() int a,b; printf(“Please input a,b:“); scanf(“%d,%d“, ,4.5.3 多分支选择结构,多分支选择结构的if语句一般形式为: if(表达式1) 语句1; else if (表达式2) 语句2; else if (表达式n) 语句n; else 语句n+1;,4.5.3 多分支选择结构,流程图,4.6 案例:打车费用的计算,计算方式为:3公里以内8元;3公里以上0车型每公里1.5元,1车型每公里2元。 #include void main(

6、) int taxiType; float s; float money; printf(“Input taxi type(0,1):“); scanf(“%d“, ,4.7 if语句的嵌套,if (表达式) if (表达式) 语句1; else 语句2; else if (表达式) 语句3; else 语句4; C语言规定else总是和其前面最近的没有else配对的if配对。,4.8 案例:闰年的判断,【例4-8】输入一个正整数作为年份,编程判断该年是不是闰年。若是输出“YES”,否则输出“NO”。 【分析】满足下面条件之一即为闰年: 能被4整除,但不能被100整除。 能被400整除。 #i

7、nclude “stdio.h“ void main() int year; scanf(“%d“, ,year%400 = 0 | ( year%4 = 0 & year%100 != 0),4.9 条件运算符和条件表达式,? : 表达式1? 表达式2 :表达式3 if(xy) max=x; else max=y; max=xy?x:y 优先级 右结合性 : ab?a:cd?c:d 等价于 ab?a:(cd?c:d),【例4-9】用条件运算符输出3个整数中的最大者,#include void main() int a,b,c,max; printf(“input a,b,c:“); scan

8、f(“%d,%d,%d“, ,4.10 switch语句,switch(表达式) case常量表达式1: 语句1; case常量表达式2: 语句2; case常量表达式n: 语句n; default: 语句n+1; ,【例4-10】输入一个十进制数,根据输入的数输出所对应的英文星期单词,若所输入的数小于1或大于7,则输出“Error”。,#include void main() int a; printf(“Input a:“); scanf(“%d“, ,4.10 switch语句,switch(表达式) case常量表达式1: 语句1; break; case常量表达式2: 语句2; br

9、eak; case常量表达式n: 语句n; break; default: 语句n+1; ,修改后的例4-10程序,#include void main() int a; printf(“Input a:“); scanf(“%d“, ,【注意】,switch后跟的“表达式”允许为任何类型的表达式,其数据类型和case后面的常量表达式的数据类型一致。 每一个case后的各常量表达式的值不允许重复,否则会报错。 每一个case后允许有多条语句,可以不用花括号“”括起来。 case和default子句出现的先后顺序可以变动,不会影响程序的执行结果。default子句也可以省略不用。 多个case可

10、以共用一组执行语句。例如: case A: case B: case C:printf(“Passn“);break;,关于 break,4.11 案例:判断输入的整数是否含有数字6,【例4-11】输入一个100以内的十进制正整数,判断该数是否包含数字字符“6”。若是输出“Yes!”,否则输出“No!”。 #include void main() int a; printf(“Input a:“); scanf(“%d“, ,4.12 案例:三个数的排序,【例4-12】输入3个数,按从小到大的顺序输出。 #include “stdio.h“ void main() int a, b, c, t

11、 ; printf (“Input a,b,c:“); scanf (“%d,%d,%d“, ,4.13 案例:分数等级的划分,【例4-13】将一个百分制的成绩(设是整数)转化成5个等级90分以上为A,8089分为B,7079分为C,6069分为D,60分以下为E。 例如,输入75,则显示C。 【分析】先判断输入的数据是否在合理的分数范围(0100)内,然后再判断是哪个分数段:90分以上输出A,8089分输出B,7079分输出C,6069分输出D,否则显示E。,4.13 案例:分数等级的划分,#include void main() int a; printf(“Input a:“); sca

12、nf(“%d“, ,【分析】,使用switch语句,当然最笨的办法是每一个分数一个case分支,将需要101个分支,显然这种程序不值得推荐。那么有没有简化的办法呢? 其实,任何好的算法都是对问题分析和提炼的结果。 题目中60分以上都是每10分一个层次,60分以下是一个层次。只要把每个层次的共性找到就容易找到简化程序的办法了。 以6069为例。每个分数的十位数都是6,对于该层次的成绩,整除10的结果都是6。同样对于7079、8089、9099都是一样。而69分以下的成绩整除10的结果都小于6。,【例4-13】将一个百分制的成绩(设是整数)转化成5个等级(用switch语句完成),#include

13、 void main() int a; printf(“Input a:“);scanf(“%d“, ,根据某种条件的成立与否而采用不同的程序段进行处理的程序结构称为选择结构,也称为分支结构。选择结构体现了程序的逻辑判断能力。 对于条件的判断,C语言采用逻辑值1和0分别表示真和假。产生这种逻辑值的表达式是关系表达式和逻辑表达式。二者可以统称条件表达式。 C语言采用if语句和switch语句描述选择结构。 if语句可分为单分支、双分支和多分支。一般采用if语句实现简单的分支结构程序。 switch语句和break语句配合可以实现多分支结构程序。 嵌套的if语句和siwtch语句都能设计完成多分支的程序,二者各有特色。对于条件具备规律性的问题,采用switch语句效率更好,可读性也更好。,下面程序的输出结果是 : #include main() int x=1,a=0,b=0; switch(x) case 0: b+; case 1: a+; case 2: a+;b+; printf(“a=%d,b=%dn“,a,b); 设计一个简单的计算器程序,用户输入运算数和四则运算符(+、-、*、/),输出计算的结果。 编写程序,从键盘输入学生成绩,输出对应的等级(100分为A,9099分为B,8089分为C,7079分为D,6069分为E,小于60分为F)。,

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

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

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