收藏 分享(赏)

第4章 选择结构程序设计2.ppt

上传人:kpmy5893 文档编号:8464612 上传时间:2019-06-29 格式:PPT 页数:33 大小:502.50KB
下载 相关 举报
第4章 选择结构程序设计2.ppt_第1页
第1页 / 共33页
第4章 选择结构程序设计2.ppt_第2页
第2页 / 共33页
第4章 选择结构程序设计2.ppt_第3页
第3页 / 共33页
第4章 选择结构程序设计2.ppt_第4页
第4页 / 共33页
第4章 选择结构程序设计2.ppt_第5页
第5页 / 共33页
点击查看更多>>
资源描述

1、第4章 选择结构程序设计,4.1 关系运算符与关系表达式 4.2 逻辑运算符与逻辑表达式 4.3 if语句 4.4 switch语句 4.5 结构嵌套程序举例(其中4.1、4.2两节已在第二章中详细介绍,此处不再赘述。),教学目的和基本要求:,要求学生掌握选择结构程序设计,嵌套程序设计,学会运用if语句及switch语句。,教学重点:,if语句、嵌套程序。,很多问题是顺序结构解决不了的 看这样一个例子: 计算分段函数,x在大于等于0和小于0两种不同的情况时,函数将用不同的表达式来求y的值,这时就需要在计算y的值之前,先对x的值进行判断,C语言中用选择语句来实现这一判断。算法N-S图如右上图所示

2、。,C语言中的选择语句有两种:,双分支选择语句 if,多分支选择语句 switch,4.3 if语句,真,假,语句,表达式,1. if语句的最简单形式:,说明:1. 条件表达式的值为1或0,必须用( )括住 2. 若有多条语句(复合语句)时,用 括住。3. (条件表达式)后不要加;,main() float x , y;scanf(“%f ”, ,例:计算分段函数,main() int x , y;scanf(“%d,%d ”, ,例:输入两个数X,Y,如果x大于y,则交换两数。,2. if语句的双分支形式:,if (表达式) 语句1 else 语句2,首先先判断表达式的值,若为非0则执行语句

3、1,若为0则执行语句2,语句2,执行过程:,if语句的双分支形式,在语法上视为一条语句。,main() float x , y;scanf(“%f ”, ,例:计算分段函数,例: 输入两个数, 比较其大小, 将较大的数输出。,算法分析:(1) 输入两个数据a,b ; (2) 如果ab 则输出a ;否则,输出b。,#include main( ) float a, b;scanf(“%f, %f”, ,练习:编程实现,从键盘输入一个字符,如果是字母,则输出对应的ASCII码,否则,输出“%”。,main() char a;scanf(“%c“, ,%,if语句的语句1和语句2又称为if的执行语句

4、。if的执行语句在语法上是一条语句,可以是任何类型的语句,简单语句、复合语句、空语句、流程控制语句都可以作为if的执行语句。,下面我们通过一个例子分别介绍用不同的语句作为if的执行语句的情形:,例:计算分段函数:,方法一:用简单语句,#include main( ) float x,y;scanf(“%f”,方法二:用if语句做语句2,#include main( ) float x,y;scanf(“%f”, ,这种用if语句作为上一层if语句的语句2的结构, 称为if语句的多分支选择结构。,多分支选择语句一般形式:,if (表达式) 语句1 else if (表达式)语句2 else ,先

5、判断表达式1的值,非0就执行下面的语句,为0就执行下一个判断,一直这样做下去,直到得出最后结果,流程图如左:,方法三:语句1与语句2都为if语句,#include main( ) float x,y;scanf(“%f”, ,这种用if语句作为上一层if语句的语句1和语句2 的结构,称为if语句的嵌套。,if 语句的二层嵌套结构如下:,if ( 表达式1)if ( 表达式1_2) 语句1_1;else 语句1_2; elseif ( 表达式2_1) 语句2_1;else 语句2_2;,如:if(a=b,if后面的表达式类型任意,语句可以是复合语句if(x) if(x!=0)if(!x) if(

6、x=0),例 考虑下面程序的输出结果: #include main() int x,y;scanf(“%d,%d”, ,Compile Error!,说明:,: 一般形式:,if语句嵌套,缺省 时,else总是和它上面离它最近的未配对的if配对,if else 配对原则:,实现if else 正确配对方法,例: if (a=b)if(b=c)printf(“a=b=c”);elseprintf(“a!=b”);,修改: if (a=b) if(b=c)printf(“a=b=c”);elseprintf(“a!=b”);,实现if else 正确配对方法:加 ,if语句编程举例:,例1.写一个

7、程序完成下列功能:输入一个分数score当 score60 输出 E当60=score 70 输出 D当70=score 80 输出 C当80=score 90 输出 B当90=score 输出 A,#include main( ) float score;scanf(“%f”, ,程序如下:,例2 : 编程实现:根据两个数sex和tall分类, 如果sex为F,当tall大于等于150时,输出 A,否则输出 B ;若sex不为F, 当tall大于等于170时,输出A,否则输出B。,分析: 根据sex分支 在sex为F的分支中判断tall是否=150 在sex不为F的分支中判断tall是否=1

8、70,#include main() int tall; char sex;printf( “input sex and tall :” );scanf( “%c %d”, ,程序如下:,4.4 Switch语句,if语句是根据表达式的值是否为0来判断执行哪一分支的,某些情况下,要根据表达式的不同值来判断执行哪一分支,如表达式的值为1,2,3时,分别执行不同的操作。虽然也可以用多条if语句来完成这一工作,但c语言中提供了一条switch语句,可以更方便的完成。,一般形式:,switch( 表达式) case E1:语句组 1;break;case E2:语句组 2;break;.case En

9、:语句组 n;break;default:语句组 ;break; ,执行过程:,switch语句(开关分支语句),: E1,E2,En是常量表达式,且值必须互不相同 语句标号作用,必须用break跳出 case后可包含多个可执行语句,且不必加 多个case可共用一组执行语句,如: case A:case B:case C: printf(“score60n”);break;,说明:,例:看下面的程序在几种不同输入情况下的输出:,#include main( ) char i;scanf(“%c”, ,1. 输入:a,输出:b,2. 输入:b,输出:c101,3. 输入:c,输出:101,例:

10、编程:根据输入的学生的成绩判断等级。当成绩score 90时为 A等; 成绩70score 90 为B等; 成绩60score 70 为C等; 成绩score 60 为D等 (score 为整数)。,分析: 设score为整型数,利用两个整数相除,结果自动取整的特性,score和 score /10 有如下对应关系:score score/10 90以上 10, 97089 7 , 86069 660以下 5,4,3,2,1,0因此,可以用score /10的值来确定分支。,#include main( ) int score; scanf(“%d“ , p56 -11,程序:,思考题,已知C调17的频率分别为:523,578,659,698,784,880,988,i-1046;音响函数为sound(f)、nosound()。请编写对应程序,使计算机数字1-8键对应相应音符,以便在计算机上能弹出简单乐曲,本章结束,再见!,同学们:,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报