C语言程序设计教程第4章课件.ppt

上传人(卖家):三亚风情 文档编号:2921344 上传时间:2022-06-11 格式:PPT 页数:43 大小:2.17MB
下载 相关 举报
C语言程序设计教程第4章课件.ppt_第1页
第1页 / 共43页
C语言程序设计教程第4章课件.ppt_第2页
第2页 / 共43页
C语言程序设计教程第4章课件.ppt_第3页
第3页 / 共43页
C语言程序设计教程第4章课件.ppt_第4页
第4页 / 共43页
C语言程序设计教程第4章课件.ppt_第5页
第5页 / 共43页
点击查看更多>>
资源描述

1、2022-6-91第第4 4章章 选择结构程序设计选择结构程序设计 4.1 关系运算符与关系表达式4.2 逻辑运算符与逻辑表达式4.3 if语句4.4 switch语句C语言程序设计教程C语言程序设计教程 第4章 选择结构2022-6-92 C语言用三种语句控制程序的执行流程顺序结构、选择结构和循环结构。这一章主要讲选择结构。例如计算分段函数时,须先判断x是大于还是小于0的。这时就需要选择语句来判断。C语言程序设计教程 第4章 选择结构2022-6-934.1 关系运算与关系表达式关系运算与关系表达式关系运算就是比较运算,即将两个数据进行比较,判定两个数据是否符合给定的关系。 a b a =

2、= b a != b C语言程序设计教程 第4章 选择结构2022-6-944.1.1 关系运算符关系运算符 C语言有6种: 小于关系运算符 大于 = 大于等于 = 等于) != 不等于 六个关系运算符都是双元运算符。关系操作数可以是数值类型数据和字符型数据。C语言程序设计教程 第4章 选择结构2022-6-95关系运算的值关系成立: 1 (表示逻辑真); 关系不成立: 0 (表示逻辑假)。例如: 5 3 值: 1 5 b + c 比较两个算术表达式的值 a = 2 * b 比较变量 和算术表达式的值a b 比较两个字符的ASCII码值C语言程序设计教程 第4章 选择结构2022-6-972.

3、 关系运算符的优先级1)、 和 = 为同一级, = 和 != 为同一级。前者的优先级高于后者。2)关系运算符优先级低于算术运算符。例如: a+b b+c 等效于 (a+b)(b+c)。(2+a)=(b-a) 等效于2+a = b-a。C语言程序设计教程 第4章 选择结构2022-6-983. 关系运算符的结合律C语言规定关系表达式采取左结合律。表达式中出现优先级别为同一级别的运算符时,则按从左到右结合方向处理。例如: int a=2,b=3,c=1; abb,值是0 , 再计算 033 ,值是1 , 再计算 12,值为 1C语言程序设计教程 第4章 选择结构2022-6-994.2 逻辑运算符

4、和逻辑表达式逻辑运算符和逻辑表达式C语言没有逻辑类型数据,逻辑运算根据数据是否为0进行判断:数据为非0:逻辑真,数据为0: 逻辑假;逻辑运算值的表示:逻辑真,值为1,逻辑假,值为0。C语言程序设计教程 第4章 选择结构2022-6-9101逻辑非 !逻辑非是一元运算符。操作数值为0,逻辑非运算的结果为1(逻辑真); 当操作数值为非0时,逻辑非运算的结果为0。 例如: int a=5,b=3; !a 结果:0 !(a b) 结果:1。因为a b 的值为 0C语言程序设计教程 第4章 选择结构2022-6-9112逻辑与 &逻辑与是二元运算,只有参加逻辑与运算的两个操作数值均为非0(逻辑真)时,结

5、果才为真。例如:int a = 5,b = 3; a & b 值: 1(a 0) 值:0,因为ab 的值为 0。C语言程序设计教程 第4章 选择结构2022-6-9123逻辑或 逻辑或也是二元运算,只要两个操作数中有一个为非0(逻辑真),结果就为1。例如: int a=5,b=3 a b 值:1 (a 0) 值:1 因为a 0 的值为1。C语言程序设计教程 第4章 选择结构2022-6-9134.2.2 逻辑表达式 逻辑运算表达式的构成 用逻辑运算符将表达式连接起来就构成了逻辑表达式。例如, !(a b)对关系表达式的值取非,(a b)&(b c) (a b)&(b c)( = )C语言程序设

6、计教程 第4章 选择结构2022-6-9142. 逻辑运算符优先级 C语言逻辑运算符的优先级规定如下: (1) 优先级顺序为! (2) !高于算术运算符, 低于关系运算符。例如:!& b 计算顺序:(!a)&( )a = b a 计算顺序:(a = )( )C语言程序设计教程 第4章 选择结构2022-6-9153逻辑运算符的结合律 C语言逻辑运算符采用左结合律。表达式中出现优先级别为同一级别的运算符时, 按从左到右的结合方向处理。例如:a & b & c 计算顺序为:(a& b)& c。C语言程序设计教程 第4章 选择结构2022-6-9164.3 if 语句语句例如计算分段函数计算 x0

7、,如果结果为1:计算:y=3-x;否则,计算:y=2 * x;需要根据x的值进行流程选择(分支)。C语言程序设计教程 第4章 选择结构2022-6-917表达式语句真假1.单分支选择语句if (表达式) 语句首先先判断表达式的值语句表达式若为非0则执行下面的语句若为0则跳过该语句。C语言程序设计教程 第4章 选择结构2022-6-918一般形式:i f (表达式) 语句 main() float x , y; scanf(“%f ”, &x); if ( x 0 ) y = 3 - x ; y = 2 * x ; printf(“y= %6.2f”, y ); C语言程序设计教程 第4章 选择

8、结构2022-6-9192.双分支选择语句 if (表达式) 语句1 else 语句2首先先判断表达式的值若为非0则执行语句1。若为0则执行语句2。表达式语句1真假语句2表达式语句1语句2C语言程序设计教程 第4章 选择结构2022-6-920if (表达式) 语句1 else 语句2main() float x , y; scanf(“%f ”, &x); if ( x b 则输出a ;否则,输出b。#include main( ) float a, b; scanf(“%f, %f”,&a, &b); if (ab) printf (“%f”, a ); else printf (“%f”

9、, b ); C语言程序设计教程 第4章 选择结构2022-6-9223.多分支选择语句 表达式1先判断表达式1的值真语句1非0就执行下面的语句假表达式2为0就执行下一个判断表达式3语句4语句3语句2真真假假一直这样做下去直到得出最后结果C语言程序设计教程 第4章 选择结构2022-6-9234.多分支选择语句一般形式if (表达式) 语句1 else if (表达式)语句2 else C语言程序设计教程 第4章 选择结构2022-6-924多分支问题: 写一个程序完成下列功能: 1 输入一个分数score 2 score60 输出 E 3 60=score 70 输出 D 4 75=scor

10、e 80 输出 C 5 80=score 90 输出 B 5 90=score 输出 AC语言程序设计教程 第4章 选择结构2022-6-925main( ) int score; sanf(“%d”, &score); if ( score60) printf(“%c” , E); else if ( score 70) printf(“%c” , D); else if (score 80) printf(“%c” , C); else if (score 90) printf(“%c” , B); else printf(“%c” , A); C语言程序设计教程 第4章 选择结构2022

11、-6-926if语句中的表达式一般为关系或逻辑表达式,也可以为任和数值类型的表达式。执行语句可以是一条简单语句、空语句或复合语句,也可以嵌套其它流程控制语句。复杂条件选择问题: 输入两个字符ch1和ch2, 如果ch1=Z 且 ch2=B, 则输出“You are right ! “ C语言程序设计教程 第4章 选择结构2022-6-927main() char ch1,ch2; ch1=getchar( ); ch2=getchar( ); if ( ch1 = Z & ch2=B ) printf( “You are right ! “ ); C语言程序设计教程 第4章 选择结构2022-

12、6-9284.4.3 if语句的嵌套1.在语句中嵌套if语句 在上述3种if语句结构中,当if(表达式)或else后面的语句本身又是一个if语句结构时,就形成了if语句的嵌套结构。 例如多分支选择结构。C语言程序设计教程 第4章 选择结构2022-6-929if 语句的二层嵌套结构如下:if ( 表达式表达式1) if ( 表达式1_2) 语句1_1 else 语句1_2 else if ( 表达式2_1) 语句2_1 else 语句2_2C语言程序设计教程 第4章 选择结构2022-6-930 x=getchar(); if (x =a) if (x =a) printf(“%c”,x-32

13、); else printf(“z”); else printf(“A”);输入一个字母,如果是ah则转换成大写输出,iz输出符号z;大写字母输出A2022-6-9312022-6-932C语言程序设计教程 第4章 选择结构2022-6-933例例4.4 编程实现:根据两个数sex和tall分类, 如果sex为F,当tall大于等于150时,输出” A “,否则输出 “ B “;若sex不为F, 当tall大于等于170时,输出A,否则输出B。分析: 根据sex分支 在sex为F的分支中判断tall=150否 在sex不为F的分支中判断tall=170否C语言程序设计教程 第4章 选择结构20

14、22-6-934 void main() int tall; char sex; printf( “input sex and tall :” ); scanf( “%c %d”, &sex, &tall ); if (sex=F) if (tall=150) printf(“ A ”); else printf(“ B ”); else if (tall=170) printf(“ A ”); else printf(“ B ”); C语言程序设计教程 第4章 选择结构2022-6-935条件语句条件语句在C语言中,简单的分支选择可以用条件语句实现。条件语句的一般形式为: ? : 条件运算符

15、 ?, : 的含义是:表达式1的值为真:计算表达式2,表达式1的值为假,计算表达式3。被计算的表达式的值作为整个表达式的值。C语言程序设计教程 第4章 选择结构2022-6-936用条件语句实现:y = x0 ?3- x: 2 * x;此式求值取决于x的值(1)若x =0为假,则y = 2 / x分段函数:C语言程序设计教程 第4章 选择结构2022-6-937 C语言中条件运算符的优先级高于赋值运算符,但低于逻辑运算符。 条件运算符要求有三个操作对象,称三目(元)运算符。 条件运算符的结合方向为“自右至左”。如条件表达式: y=x10?x/10:x0?x:-x;从右至左结合,等价于:y=x1

16、0?x/10:(x0?x:-x);它的功能是:当x10时,y的值为x/10;当x0? C语言程序设计教程 第4章 选择结构2022-6-9384.4 Switch语句switch(表达式) case 常量1: 语句1; case 常量2: 语句2; case 常量3: 语句3; default: 语句4;另一种多分支语句,根据表达式不同的值选择不同的语句。C语言程序设计教程 第4章 选择结构2022-6-939注意: 语句中的表达式可以是数字型或字符型,表达式的值,称为开关值。 语句结构中各个case后常量表达式的值必须互不相同;否则执行时将出现矛盾,即同一个开关值,对应多种执行方案。 当表达

17、式的值与某一个常量相等时,就执行后面的语句;若无break语句,执行该语句后,流程控制转移到下一个分支: 继续执行这一个分支的语句,一至到最后下个语句执行完。 当表达式的值与所有常量表达式的值不相等时,执行default:后面的语句。 C语言程序设计教程 第4章 选择结构2022-6-940switch(i)case 1:printf(An); case 2:printf(Bn); case 3:printf(Cn); case 4:printf(Dn); default: printf(En); 看下面的例子:假设i=3时,则会从i=3时做起的语句。运行结果为:CDE如果给每条语句加上bre

18、ak;break;break;break;break; 这样就只执行一条语句语句后加或不加“break;”可以使多分支变得非常灵活。如果多种情况需要共用一个执行语句,可用case的常量表达式多种情况列出,最后一种情况后,才放执行的语句。 C语言程序设计教程 第4章 选择结构2022-6-941case后面的语句可以是一条语句,也可以是复合语句,还可以是花括弧括起来的几条语句,还可以是空语句。 有多条语句时会顺序执行完所有语句。C语言程序设计教程 第4章 选择结构2022-6-942例例4.6 编程:根据输入的学生的成绩判断等级。当成绩score 90时为 A等; 成绩70score 90 为B

19、等; 成绩60score 70 为C等; 成绩score 60 为D等 (score 为整数)。分析: 设score为整型数,在score90 的范围内,score可能取100, 99,.,90,利用两个整数相除,结果自动取整的特性,score和 score /10 有如下对应关系: score score/10 90 10, 9 7089 7 , 8 6069 6 60以下 default 因此,可以用score /10的值来确定分支。C语言程序设计教程 第4章 选择结构2022-6-943#include main() /*用switch 语句评级 */ int score; scanf(%d ,&score); switch (score /10) case 10: case 9: printf(%d: An, score);break; case 8:printf(%d: Bn, score);break; case 7: printf(%d: Cn, score);break; case 6: printf(%d: Dn, score);break; default: printf(%d: En, score);

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

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(C语言程序设计教程第4章课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|