语言选择结构程序设计课件

上传人:我*** 文档编号:142553533 上传时间:2020-08-20 格式:PPT 页数:37 大小:451.50KB
返回 下载 相关 举报
语言选择结构程序设计课件_第1页
第1页 / 共37页
语言选择结构程序设计课件_第2页
第2页 / 共37页
语言选择结构程序设计课件_第3页
第3页 / 共37页
语言选择结构程序设计课件_第4页
第4页 / 共37页
语言选择结构程序设计课件_第5页
第5页 / 共37页
点击查看更多>>
资源描述

《语言选择结构程序设计课件》由会员分享,可在线阅读,更多相关《语言选择结构程序设计课件(37页珍藏版)》请在金锄头文库上搜索。

1、1,第四章 选择结构程序设计,共 37页 第 2 页,第一节 关系运算与逻辑运算 第二节 用if语句设计选择结构程序 第三节 用switch语句设计多分支结构 第四节 应用实例,第四章 选择结构程序设计,共 37页 第 3 页,4.1 关系运算与逻辑运算,关系运算和逻辑运算经常作为条件语句和循环语句中的条件,其结果为一逻辑值,A和 B中至少有一个大于 C,如何用C语言描述,A和 B全部大于 C,A为不大于100 的 偶 数,关系运算是一种比较运算,将两个值(表达式)进行比较,判断比较的结果是否符合给定的条件,关系运算 逻辑运算,共 37页 第 4 页,一、关系运算符,大于 , 大于等于 =,小

2、于 , 不等 != 小于等于=,恒等=,,1 . 六个,=,!=的优先级低于其余四个,2. 优先级,关系运算的优先级高于赋值,低于算术,区别 赋值,4.1 关系运算与逻辑运算(续),4.1.1关系运算符与关系表达式,3 . 结合性:从左向右,abc,共 37页 第 5 页,2. 关系表达式的结果是一个逻辑值,根据关系是否满足,分别取 1,或 0,二、关系表达式,1 . 关系运算符与运算分量构成关系表达式,int i=1,j=7,a; a=i+(j%4!=0) a的值?,结果:a=2,3. 使用关系表达式应注意,!,1) 数学上,判断x是否在区间 a,b 时,习惯上写成a=x=b,但在C 中,必

3、须写成 a=x d = a c,逻辑1,17,逻辑0,d的值 为0,4.1 关系运算与逻辑运算(续),共 37页 第 7 页,4.1.2 逻辑运算符与逻辑表达式,一 、逻辑运算符,1. 有三个, int a,b,c; a=(- -x=y+)?-x:+y; b=x+; c=y; 后a,b,c?,a, b, c A) 9, 9, 9 B) 8, 8, 10 C) 8,10, 9 D) 1,11,10,X为9 y为10,X为8,4.1 关系运算与逻辑运算(续),共 37页 第 13 页,若w,x,y,z,m均为int型变量,则执行下面语句后的m值为: w=1;x=2;y=3;z=4; m=(wx)?

4、 w: x; m=(my)? m : y; m=(mz)? m:z; A) 1 B) 2 C) 3 D) 4,若w=1,x=2,y=3,z=4,则表达式 wx?w:yz?y:z的值是: A) 4 B)3 C)2 D)1,练习,4.1 关系运算与逻辑运算(续),共 37页 第 14 页,4.2 用if语句设计选择结构程序,if语句构成的选择结构是C的三种基本结构之一。用来确定给定的条件是否满足,所含条件一般是关系表达式或逻辑运算表达式。,根据学生分数判断是否及格? 根据学生分数如何进行分级?,自然语言:如果 那么 否则 C语言:选择(分支)语句,如何解决?,问题:,共 37页 第 15 页,本节

5、 重点,if语句的缺省形式 if语句的标准形式 复合if语句 if语句的嵌套,一、if语句的三种基本形式,1 格式:if(表达式) 语句 功能:判断表达式的值,若为非 0,执行语句,否则,跳过语句继续,输出不及格的成绩 main() int a; scanf(“%d”, ; ,4.2 用if语句设计选择结构程序,共 37页 第 16 页,2. 格式: if(表达式) 语句组1 else 语句组2 功能:判断表达式的值,若为非0,执行语句组1,否则执行语句组 2,if(a60) printf(“及格n”); else printf(“不及格n”);,4.2 用if语句设计选择结构程序,共 37页

6、 第 17 页,求a 和 b 两数中较大的一个。,main( ) int a,b,max; scanf(%d , %d, ,N,格式一,4.2 用if语句设计选择结构程序,共 37页 第 18 页,main( ) int a,b,max; scanf(%d, %d, ,求a和b两数中较大的一个。,格式二,4.2 用if语句设计选择结构程序,共 37页 第 19 页,多分支,3 . 多分支的 i f 结构,格式 if (表达式1) 语句1 e l se i f ( 表达式2 ) 语句2 e l s e i f (表达式3) 语句3 e l s e 语句 n,从键盘输入一个整数a,按其值的大小,判

7、断并输出a是几位数。,4.2 用if语句设计选择结构程序,共 37页 第 20 页,if语句中进行条件判断的“表达式”必须用( )括起来且不可省略。,#include main( ) int a; scanf(“%d”, ,4.2 用if语句设计选择结构程序,共 37页 第 21 页,二、 if语句的嵌套,格式: if(表达式) if( 表达式1) 语句1 else 语句2 else if (表达式2)语句3 else 语句4,在一个if结构中,包含一个或多个if结构,判断表达式的值,若为非0,再判断表达式1的值,非0执行语句1,否则执行语句2。 若表达式的值为0,再判断表达式2的值,非0执行

8、语句3,否则执行语句4。,功能:,4.2 用if语句设计选择结构程序,共 37页 第 22 页,在if语句的“语句1”或“语句2”中又包含着if语句,main( ) int x, y; printf (Enter integer X and Y:); scanf (%d%d, ,表 达 式,if与else之间的匹配,else总是与同它最近的 if相匹配,表 达 式 1,注 意,4.2 用if语句设计选择结构程序,共 37页 第 23 页,嵌套,else,if,if,else,else,else,else,if,if,if,4.2 用if语句设计选择结构程序,共 37页 第 24 页,4.3 用

9、if语句设计选择结构程序,if语句中的条件表达式必须用()括起来,并 且在括号外部没有分号; 2. if或else 子句后面的执行语句均有分号; else是if语句的子句,不可单独使用; 当if或else子句后是多个执行语句构成的语句组时(复合语句),必须用 括起来,否则各子句均只管到其后第一个分号处; 5. if或else 子句后只接一单个分号时,应把之作为空语句处理。,有关if语句使用的几点说明:,共 37页 第 25 页,格式:switch(表达式) case 常量表达式1: 语句1 case 常量表达式2: 语句2 . case 常量表达式n: 语句n default: 语句n+1 ,

10、先计算表达式的值,判断此值是否与某个常量表达式的值匹配,如果有,控制转向其后相应的语句,若无,检查 default。,功能:,多重分支的条件语句 switch,4.3 用switch语句设计多分支结构,共 37页 第 26 页,例题:按照考试成绩输出百分制分数段。,main( ) char grade; scanf (“%c”, ,输入字母B,输出:70-84 60-69 60 Error,?,printf(“70-84n”);,printf(“70-84n”); break;,4.3 用switch语句设计多分支结构,共 37页 第 27 页,main( ) float x,y; char

11、c; double r; scanf(“%f,%f,%c”, ,当输入3,5,+之后,r的值为8.000000,如果没有break语句, 会顺序执行下面的 r=x-y; r=x*y; r=x/y; 则 :最后的结果为?,4.3 用switch语句设计多分支结构,共 37页 第 28 页,2 case 后的每个常量表达式必须各不相同,说明:,1 括号内的表达式可以是 int ,char,3 case 和 default的位置是任意的,每一个case之后应有一个 以跳出 switch( ) 结构,break(间断语句),5 每个case 之后的执行语句可多于一个,但不必加 ,6 允许几种case情

12、况下执行相同的语句,不必每个都写,4.3 用switch语句设计多分支结构,共 37页 第 29 页,4.4 程序实例,例1、银行如何根据存入现金和年限计算利息?,银行计算利息的情况如下: 1、当存储年限Y为1年以上时, 月息r为5 ; 2、当存储年限Y为2年以上时, 月息r为6 ; 3、当存储年限Y为3年以上时, 月息r为6.5 ; 4、当存储年限Y为5年以上时, 月息r为8 ; 5、当存储年限Y为8以上年, 月息r为10 ;,共 37页 第 30 页,main( ) int Y; float m, r, t ; /* 本金,月利率,本利合计*/ printf(Input money and

13、 year =?); scanf(%f%d, ,4.3 用if语句设计选择结构程序,共 37页 第 31 页,例2:输入年,月,计算该月有多少天。,输入年、月后,该年月的天数有 以下几种可能: 1. 当输入的month为“大月”时, 该月的 day为31天; 2. 当输入的month为“小月”时, 该月的day为30天; 3. 当输入的month为“二月”时, 如果该年year为润年,则该 月day为29天;否则,该月 day为28。,4.4 程序实例,共 37页 第 32 页,main( ) int year,month,days; printf(“Enter year,几个CASE 执行相

14、同的 语句,跳出开关结构,/* 处理“大”月 */,4.4 程序实例,共 37页 第 33 页,case 4: case 6: case 9: case 11: days=30 ; break; case 2: if (year%4=0) ,判断是否 为闰年,开关结 构结束,/* 处理“小”月 */,/* 处理“平”月 */,4.4 程序实例,共 37页 第 34 页,三、开关语句(基本形式,功能,要求,break 的作用, 和default的作用),二、if语句的基本形式,分支形式,多分支形式,以及嵌 套形式 else与if 的匹配,四、 需注意的: 1 .自增,自减作为if的条件时,边界条件的处理 2. if中的复合语句 ,第四章 总结,一、关系运算和逻辑运算,共 37页 第 35 页,第四章 习题,补充题: 1. 能正确表示“当x的取值在1,10和200,210范围内的式子是( ) A. (x=1) 执行(m=ab)&(n=cd)后n的值为( ) A. 0 B. 1 C. 2 D. 3,共 37页 第 36 页,第四章 习题,共 37页 第 37 页,6. 以下程序的运行结果是( ) main( ) if (2*2= =5a ,第四章 习题,

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

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

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