c5选择程序流程设计电子教案

上传人:youn****329 文档编号:143143607 上传时间:2020-08-26 格式:PPT 页数:30 大小:680.50KB
返回 下载 相关 举报
c5选择程序流程设计电子教案_第1页
第1页 / 共30页
c5选择程序流程设计电子教案_第2页
第2页 / 共30页
c5选择程序流程设计电子教案_第3页
第3页 / 共30页
c5选择程序流程设计电子教案_第4页
第4页 / 共30页
c5选择程序流程设计电子教案_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《c5选择程序流程设计电子教案》由会员分享,可在线阅读,更多相关《c5选择程序流程设计电子教案(30页珍藏版)》请在金锄头文库上搜索。

1、第5章 选择结构程序设计,池州学院现代教育中心,本讲主要内容: 一、if语句 二、switch语句,学习目的与要求: 掌握if语句的三种形式(if,if-else,if-else if) 及其执行过程; 掌握if语句嵌套概念; 掌握条件运算; 掌握多路分支switch语句的格式及其执行过程。 学习重点:if语句和switch语句的格式及其执行过程。 学习难点:if语句的嵌套;switch语句的执行过程。,if语句(条件选择语句) if语句的三种形式 形式一: 格式:if (expression) statement 执行过程:,例:if (xy) printf(“%d”,x);,形式二: 格式

2、:if (expression) statement1 else statement2 执行过程:,例:if (xy) max=x; else max=y;,如:if(a=b,说明: if后面的表达式类型任意,语句可以是复合语句 if(x) if(x!=0) if(!x) if(x=0),例 考虑下面程序的输出结果: #include main() int x,y; scanf(“%d,%d”, ,Compile Error!,/*ch4_1.c*/ #include main() int x,y; printf(Enter an integer:); scanf(%d, ,例 求一个数的绝对

3、值,运行:Enter an integer:-12 integer:-12-absolute value :12,/*ch4_2.c*/ #include main() int a,b; printf(Enter integer a:); scanf(%d, ,例 输入两个数并判断两数相等否,运行:Enter integer a:12 Enter integer b:12 a=b,运行:Enter integer a:12 Enter integer b:9 a!=b,/*ch4_3.c*/ #include main() char c; printf(Enter a character:);

4、 c=getchar(); if(c=0 ,例 判断输入字符种类,运行:Enter a character: The character is a control character,运行:Enter a character:8 The character is a digit,运行: Enter a character: D The character is a capital letter,运行: Enter a character: h The character is a lower letter,运行: Enter a character:F1 The character is ot

5、her character,if语句嵌套: 一般形式:,例 输入两数并判断其大小关系,/*ch4_4.c*/ #include main() int x,y; printf(Enter integer x,y:); scanf(%d,%d, ,运行:Enter integer x,y:12,23 XY Enter integer x,y:12,12 X=Y,if else 配对原则:缺省 时,else总是和它上面离它最近的未配对的if配对,例: if (a=b) if(b=c) printf(“a=b=c”); else printf(“a!=b”);,修改: if (a=b) if(b=c)

6、 printf(“a=b=c”); else printf(“a!=b”);,实现if else 正确配对方法:加 ,例 考虑下面程序输出结果: main() int x=100,a=10,b=20; int v1=5,v2=0; if(ab) if(b!=15) if(!v1) x=1; else if(v2) x=10; x=-1; printf(“%d”,x); ,结果:-1,switch语句(开关分支语句) 一般形式:,switch( 表达式) case E1: 语句组 1; break; case E2: 语句组 2; break; . case En: 语句组 n; break;

7、default: 语句组 ; break; ,执行过程:,说明: E1,E2,En是常量表达式,且值必须互不相同 语句标号作用,必须用break跳出 case后可包含多个可执行语句,且不必加 switch可嵌套 多个case可共用一组执行语句,如: case A: case B: case C: printf(“score60n”); break; .,例 switch(score) case 5: printf(“Very good!”); case 4: printf(“Good!”); case 3: printf(“Pass!”); case 2: printf(“Fail!”); d

8、efault : printf(“data error!”); ,运行结果:score为5时,输出: Very good! Good! Pass! Fail! data error!,例 void main() int x=1,y=0,a=0,b=0; switch(x) case 1: switch(y) case 0: a+; break; case 1: b+; break; case 2: a+;b+; break; case 3: a+;b+; printf(“na=%d,b=%d”,a,b); ,运行结果:a=2,b=1,/*ch4_5.c*/ #include main() in

9、t c; printf(Enter m or n or h or other:); c=getchar(); switch(c) case m: printf(nGood morning!n);break; case n: printf(nGood night!n); break; case h: printf(nHello!n); break; default : printf(n?n); break; ,例 根据输入字母输出字符串,一、if 语句的的综合应用,例1:求一元二次方程ax2+bx+c=0的实根解(设a0)。,补充例题:输入任意三个数,按由大到小顺序排列输出。,例2:闰年判断程序

10、。,例3:学生成绩分等显示程序。学生有数学、英语两门课。按百分制考核。要求输入各门课成绩,按平均成绩分等显示:excellence(优秀): 平均成绩90; all right(良好): 80平均成绩90; middling(中等): 70平均成绩80; pass(及格): 60平均成绩70; fail(不及格): 平均成绩60。,返回,例4-3程序流程图,例1 求一元二次方程ax2+bx+c=0的实根解(设a0)。,#include math.h main() float a,b,c; float x1,x2,d; printf(Please Input a,b,c: ); scanf(%f

11、,%f,%f, ,返回,扩充到复数根,#include math.h main() float a,b,c; float x1,x2,d; printf(Please Input a,b,c: ); scanf(%f,%f,%f, ,返回,float realpart,imagpart;,else realpart=-b/(2*a); imagpart=sqrt(-d)/(2*a); printf(x1=%f+%fin,realpart,imagpart); printf(x2=%f-%fin,realpart,imagpart); ,补充例题:输入任意三个数,按由大到小顺序排列输出。,a为三

12、数中最大者,b为三数中次大者,a为a,b中最大者,main( ) int a,b,c,t; printf(Please Input a,b,c: ); scanf(%d,%d,%d, a=b; b=t;,添加中间变量t:,解法一:交换变量值法。,解法二:六种排列组合法。,补充例题:输入任意三个数,按由大到小顺序排列输出。,解法二:六种排列组合法。,三个数a,b,c,由大到小的 六种顺序排列组合: abc acb bac bca cab cba,a=b printf(Please input a b c:); scanf(%d%d%d, ,返回,综合上述两种情况,得到闰年判别条件的逻辑表达式:,

13、例2:闰年判断程序。,main() int year; printf(Type in a year:n); scanf(%d, ,闰年的判别条件:(假设年份变量用year表示), 当year是400的整倍数时为闰年;,条件表示为: year%400=0, 当year是4的整倍数,但不是100的整倍数时为闰年。,条件表示为: year%4=0 printf(Input data a,b: ); scanf(%f,%f, ,返回,二、switch 语句的综合应用,例3:学生成绩分等显示程序。学生有数学、英语两门课。按百分制考核。要求输入各门课成绩,按平均成绩分等显示。 excellence(优秀)

14、: 平均成绩90; all right(良好): 80平均成绩90; middling(中等): 70平均成绩80; pass(及格): 60平均成绩70; fail(不及格): 平均成绩60。,返回,补充例题:编写计算器程序。用户输入运算数和四则运 算符,输出计算结果。,main() float a,b; int ave; scanf(%f,%f, ,返回,采用switch编程时,要注意 精选switch后的表达式: (1)若采用平均值ave 将有101种可能; (2)若采用:ave/10 只有11种结果,再经 过合并后仅剩下5种。,switch语句在开发应用程序 时用途广泛。,例3:学生成

15、绩 分等显示程序。,补充例题:编写计算器程序。用户输入运算数和四则运 算符,输出计算结果。,#include main() int a,b,result=0; char ch; printf(nnInput a,b:); scanf(%d,%d, ,返回,分支结构控制语句-小结,1实现分支结构的控制语句主要有if语句、switch语句。if语句通常有if、if else、if-else if三种形式。 2if语句任何一种if语句的语句体中都可以出现其他的if结构,这种结构称为if语句的嵌套结构。在理论上if嵌套的层数没有限制,但当嵌套层数较多时,容易使程序在逻辑上变得不清晰。 3switch语句专门用于多路分支选择,适用于if else if式的结构,而且更清晰。程序总是试图从满足条件的第一个case子句开始执行其后的所有

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


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

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