第6-7讲选择结构程序设计.ppt

上传人:tang****xu1 文档编号:515228 上传时间:2018-09-24 格式:PPT 页数:43 大小:416.50KB
返回 下载 相关 举报
第6-7讲选择结构程序设计.ppt_第1页
第1页 / 共43页
第6-7讲选择结构程序设计.ppt_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《第6-7讲选择结构程序设计.ppt》由会员分享,可在线阅读,更多相关《第6-7讲选择结构程序设计.ppt(43页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、1,第6-7讲 选择结构程序设计,2,复习,什么是算法?数据的输出函数有哪些?printf(),putchar();puts()数据的输入函数有哪些?Scanf();getch();getchar()思考题:getch()函数、getche()与getchar()函数的区别是什么?,计算机解决问题的方法和步骤,就是计算机解题的算法,3,引例,引例:从键盘输入一个小写字母,要求在屏幕上输出对应的大写字母(对上节程序的优化),#include main() char lowchar,upchar; lowchar=getchar(); upchar=lowchar-32; putchar(upch

2、ar);,分析左边程序中存在的问题,如何来避免不合理的输入?,4,引例通过输入提示避免不合理输入,#include main() char lowchar,upchar; printf(“Please input a small character:”); lowchar=getchar(); upchar=lowchar-32; putchar(upchar);,有输入的地方增加提示信息。,5,引例通过判断输入值避免程序的错误执行,#include main() char lowchar,upchar; printf(“Please input a small character:”); l

3、owchar=getchar(); upchar=lowchar-32; putchar(upchar);,通过在此处对得到的输入字符进行判断,以避免错误的操作,编程提示:数据有效性判断是程序设计常用的方法,6,本讲主要内容,第4章4.1-4.5,重点:条件运算及条件表达式 if条件语句结构的使用,本讲小结,1. 条件表达式及条件运算,7,1 条件表达式和条件运算(1),1.1 关系运算关系运算符,(大于) 、 =(大于等于)=(等于) 、!=(不等于),关系表达式的值是一个逻辑值:真或假,1(非0)表示真0表示假,课堂练习:写出下面表达式的等价表达式a=k,a=k),优先级:1.前四种优先级

4、相同,后两种相同,后两种低于前四种;2.关系运算符低于算术运算符,高于赋值运算符。,8,1 条件表达式和条件运算(2),1.1 关系运算关系表达式关系表达式的一般形式,表达式1 关系运算符 表达式2,关系表达式的结果为1(真)或0(假)。,课堂练习:设有i=1,j=2,k=3,则下面表达式的值为多少?iji=kj,值为0,等价于i=(kj),值为1,课堂练习:变量x的取值范围为0x 20,在C语言中如何表示此关系式?0=x1 & 4 & 71)&4)&(7=a & ch=A & ch=a & ch=0 &ch b 4、! a k=(m=a+b)&(n=c+d),值为0值为1值为0值为0,k为0

5、 ,m为0, n为2,!非 高 算术运算符关系运算符 & |赋值运算符优先级关系 低,14,2 if选择结构(1),if选择结构,单分支,双分支,多分支,15,2 if选择结构(2),分析下面的问题使用哪种选择结构,输入两个整数a和b,按从大到小的顺序输出输入x,求对应的函数值输入一个字母,若为大写字母,则输出其后继字符,若为小写字母,则输出其前驱字符,若为其他字符则原样输出,16,2 if选择结构(3),例1:输入两个整数a和b,按从大到小的顺序输出,#include void main() ,int a,b,temp;,printf(“输入a,b:”);scanf(“%d%d”,if(a=

6、a ,20,2 if选择结构(6),条件运算符 ?:条件表达式的一般形式:,表达式1?表达式2:表达式3,条件运算符的运算规则是先求表达式1的值,如果表达式1的值非0(为真),则求表达式2,并以表达式2的值为条件运算的结果(不再计算表达式3)。如果表达式1的值为0(为假),则求表达式3,并以表达式2的值做为条件运算的结果,称为“三目运算符”(C语言中唯一的一个三目运算符),21,2 if选择结构(7),条件运算符,例:if (ab) max = a; else max = b;,max = (ab) ? a : b,其中,“(ab) ? a : b”是一个条件表达式,若条件(ab)成立,则条件

7、表达式取值a;否则,取值b。,=,22,2 if选择结构(8),条件运算符,表达式1?表达式2:表达式3,实例:main()int f,x,y;printf(“please input x and y:”);scanf(“%d%d”,请问:程序的功能是什么?,23,2 if选择结构课堂练习,T1 输入三个数,按由小到大输出。,main() int a,b,c,t; scanf(%d%d%d, ,24,2 if选择结构课堂练习,T2有一函数如下,编一程序,输入一个x值,输出y值。 N-S结构图,main() int x,y; scanf(%d, ,注意:if语句中的else并不是必须的,在嵌套的

8、if结构中,可能有的语句带有else,有的不带。C规定:else总是与前面最近的if配对。,25,2 if选择结构课堂练习,T3 输入一个字符。判别它是否大写字母,如果是,将其转换为小写,否则不转换。然后输出最后得到的字符。,main() char ch; scanf(%c, printf(%c,ch); ,返回主菜单,26,3 switch多分支选择结构(1),尽管用ifelse if结构可以实现多分支,但当分支较多时,程序结构较复杂。,switch (表达式) case 常量表达式1:语句1; break; case 常量表达式2:语句2; break; case 常量表达式m:语句m;

9、break; default:语句n; break;,注意:每个case关键字后的常量表达式应互不相同,27,3 switch多分支选择结构(2),switch语句使用分析下面switch语句,switch (k) case 1: case 2:printf(“AAAn”);break; case 3: case 4: case 5:printf(“BBBn”);break;,当k=1或2时,输出结果是什么?当k=3,4,5时,输出结果是什么?,BBB,AAA,结论:不同常量表达式可以共用一个语句,28,3 switch多分支选择结构(32),switch语句使用分析下面switch语句,sw

10、itch (grade) case A:printf(“Very goodn”); case B: printf(“Goodn”); case C: printf(“Badn”); default: printf(“Very badn”); ,若grade的值为B,输出结果是什么?,GoodBadVery bad,结论:为终止switch语句的执行,需要将break语句与switch语句一起使用。如果不使用break语句,一旦进入某个case后面的语句,就由此开始顺序执行后面各个case语句。,29,3 switch多分支选择结构(4),switch语句使用分析下面switch语句,switc

11、h (grade) case A:printf(“Very goodn”); case B: printf(“Goodn”); default: printf(“Very badn”); case C: printf(“Badn”); ,若grade的值为B,C,D时,输出结果是什么?,结论:需要注意default分支的位置。,返回主菜单,30,4 选择结构程序举例(2),例5:输入一个整数,判断它是否为水仙花数。,所谓水仙花数,是指这样的一些3位整数:各位数字的立方和等于该数本身。例如153,1+125+27=153。,输入,处理,输出,31,4 选择结构程序举例(3),例5(续),#inc

12、lude void main() ,int num,ge,shi,bai;,printf(“输入三位整数:”);scanf(“%d”,ge=num%10;shi=(num/10)%10;bai=num/100;,If (num=ge*ge*ge+shi*shi*shi+bai*bai*bai) printf(“%d是水仙花数n”,num);else printf(“%d不是水仙花数n”,num);,请检查程序代码中的错误!,如何找出所有的水仙花数?,32,4 选择结构程序举例(4),例6:输入两个运算量和一个运算符,完成加、减、乘、除运算,输出运算结果,输入,处理,输出,使用哪种选择结构?我们

13、共同完成这个程序的编写,33,4 选择结构程序举例(5),#include main() float x,y,z; char ch; printf(Enter an operator(+,-,*,/):n); ch=getchar(); printf(Enter two numbers:); scanf(%f,%f, ,34,4 选择结构程序举例(6),例7:根据考试成绩的等级(grade)打印出百分制分数段:,35,4 选择结构程序举例(7),例7:根据考试成绩的等级(grade)打印出百分制分数段:,switch (grade) case A:printf(85100n);break; c

14、ase B:printf(7084n);break; case C:printf(6069n);break; case D:printf(60n);break; default: printf(errorn); break语句使程序跳出switch结构。,36,4 选择结构程序举例(8),例8:判别学生成绩的等级: 小于60分,E级;小于70分,D级;小于80分,C级;小于90分,B级;小于100分,A级;,37,4 选择结构程序举例(9),#include stdio.hmain()int score,s;char grade; printf(请输入学生的成绩:); scanf(%dn,返回

15、主菜单,case 5 : case 4 : case 3 : case 2 : case 1 : case 0 :grade=E; break; printf(“成绩是%d,相应的等级是%cn,score,grade);,38,本讲小结,重点学习了的关系运算和逻辑运算重点学习了if选择结构的语法格式及使用重点学习了switch多分支选择结构的使用请同学们重点阅读教材P72-73页“if选择结构的嵌套”请同学们阅读并理解教材例4.6、例4.7、例4.8、例4.12的程序。,39,作业,思考题教材P82,一、填空题、选择题教材P83,二、分析题作业教材P84 三、写出程序运行结果(1-3,4-5)

16、 四、编写程序题(1-2,3-4)上机实验实验指导书实验,40,作业补充:,运输公司对用户计算运费。距离()越远,每公里运费越低。标准如下: 250 km 没有折扣250 500 折扣500 1000 折扣1000 2000 折扣2000 3000 10折扣3000 15折扣设每公里每吨货物的基本运费为,货物重为,距离为,折扣为,则总运费的计算公式为:*(),由键盘输入,试编程计算总运费。,41,思考题,写出下面程序在以下情况的输出结果: a=10,b=5; a=-5,b=-10; a=0,b=-3; a=6,b=7。 main( ) int a,b; scanf(%d,%d, ,42,思考题,2. 本程序的作用是判断year是否闰年,如是闰年则输出“leap year”字样,闰年的条件是符合下面二者之一:能被4整除,但不能被100整除;能被400整除。请对程序填空(填入一个运算符)。 main( ) int year; scanf(%d, ,43,谢谢,

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com