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

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

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

1、第4章 选择结构程序设计,21世纪高等学校精品规划教材,掌握关系表达式和逻辑表达式的组成及运算 理解选择结构(分支结构)程序设计的概念 掌握if语句、switch语句的基本结构及执行过程 学会简单的选择结构程序设计,4.1 关系运算符与关系表达式,4.1.1 关系运算符 关系运算符 、=、=、bb)c 等价于 a!=(bc),4.1 关系运算符与关系表达式,关系表达式 ab a+1 != b 3.1415 = = 3.1416 34=100 a99,4.2 逻辑运算符与逻辑表达式,4.2.1 逻辑运算符 逻辑运算符 !(逻辑非)、&(逻辑与)、|(逻辑或),4.2 逻辑运算符与逻辑表达式,优先

2、级 逻辑或运算符(|) 逻辑与运算符(&) 关系运算符 双目算术运算符(+、-、*、/、%等) 逻辑非运算符(!)、单目算术运算符(+、-等) 结合性 非运算符(!)的结合性为右结合;与运算符(&)和或运算符(|)的结合性为左结合。,【例4-1】分析下面程序段的运行结果,#include void main() char c; int a,b; c=A; a=1; b=2; printf(“cB=%dn“,cB); printf(“ab2=%dn“,ab2); ,逻辑运算符的“短路”现象,若&运算符左边的表达式为假(或0),则其右边的表达式将不再运算 ,整个表达式的值必然为假 若|运算符左边的

3、表达式为真(或非0值),则其右边的表达式将不再运算 ,整个表达式的值必然为真 35 | +b,【例4-2】测试短路现象,#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; a ,*【例4-3】测试短路现象,#include int show(int n,int a) printf(“(%d,%d)“,n,a); return a; void main() int a; a = show(1,1) | show(2,2) ,4.

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

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

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

7、n() int year; scanf(“%d“, ,year%400 = 0 | ( year%4 = 0 & year%100 != 0),4.3.5 条件运算符和条件表达式,? : 表达式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:“); scanf(“%d,%d,%d“, ,4.4 swit

8、ch语句,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.4 switch语句,switch(表达式) case常量表达式1: 语句1; break; case常量表达式2: 语句2; break; case常量表达式n: 语句n; bre

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

10、e B: case C:printf(“Passn“);break;,4.5 程序举例,【例4-11】输入一个100以内的十进制正整数,判断该数是否包含数字字符“6”。若是输出“Yes!”,否则输出“No!”。 #include void main() int a; printf(“Input a:“); scanf(“%d“, ,【例4-12】输入3个数,按从小到大的顺序输出。,#include “stdio.h“ void main() int a, b, c, t ; printf (“Input a,b,c:“); scanf (“%d,%d,%d“, ,【例4-13】将一个百分制的成

11、绩(设是整数)转化成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】将一个百分制的成绩(设是整数)转化成5个等级,#include void main() int a; printf(“Input a:“); scanf(“%d“, ,【分析】,使用switch语句,当然最笨的办法是每一个分数一个case分支,将需要101个分支,显然这种程序

12、不值得推荐。那么有没有简化的办法呢? 其实,任何好的算法都是对问题分析和提炼的结果。 题目中60分以上都是每10分一个层次,60分以下是一个层次。只要把每个层次的共性找到就容易找到简化程序的办法了。 以6069为例。每个分数的十位数都是6,对于该层次的成绩,整除10的结果都是6。同样对于7079、8089、9099都是一样。而69分以下的成绩整除10的结果都小于6。,【例4-13】将一个百分制的成绩(设是整数)转化成5个等级(用switch语句完成),#include void main() int a; printf(“Input a:“);scanf(“%d“, ,根据某种条件的成立与否而

13、采用不同的程序段进行处理的程序结构称为选择结构,也称为分支结构。选择结构体现了程序的逻辑判断能力。 对于条件的判断,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号