C语言课件第5章选择结构.ppt
《C语言课件第5章选择结构.ppt》由会员分享,可在线阅读,更多相关《C语言课件第5章选择结构.ppt(42页珍藏版)》请在三一文库上搜索。
1、第5章 选择结构程序设计,主要内容:关系运算符和关系表达式 逻辑运算符和逻辑表达式 if - else(重点、难点) switch 条件运算符和条件表达式(了解) 根据选择结构的组成特点,我们在分析问题时着重明确以下两点: 1)条件是什 么。 2)条件成立和不成立时分别执行什么操作。,简单条件用关系表达式来表示 例5.1 判断一个整数n是奇数还是偶数(设n由用户输入) 分析:第一步,输入整数n。第二步,判断:若条件“n%2等于0“成立,则输出“n为偶数“;否则输出“n为奇数“。,5.1关系运算符和关系表达式,main() int n; printf(“n enter int n:”); sca
2、nf(“%d”,开始,输入n,n%2为0,是偶数,是奇数,结束,输入n,例5.2输入任一考生的考号及成绩,判断其是否能上大学。(设分数线为600,若能上,则输出“success“,否则输出”failure”)。 分析:第二步是选择结构,条件是“score大于等于600”, main() int no; float score; printf(“n enter no,score:”); scanf(“%d%f”, ,关系表达式的值:若条件满足,则关系表达式的值为ture( 1);否则,关系表达式的值为false(0)。 1.关系运算符: = = != 例如下列关系表达式: ab 表示条件 “a
3、大于 b“, x!=0 表示条件 “x 等于 0“, a+b 关系运算符 赋值运算符 且 = 高于 = != 结合性: 自左向右(一般很少连用)。 如: abb)c f=ag+1 表示 f=(a(g+1) ),特别提示:关系运算符“=”与赋值运算符“=”不同。 比较 : k=1 与k=1 特别提示:表达式 a+bdc也是合法的关系表达式,但在实际应用中很少使用;因为它不能表示:a+b大于c且大于d。 问题: 如何表示:a x b 0y10 等条件,5.2 逻辑运算符和逻辑表达式,复杂条件可用逻辑表达式来描述 例5.3 判断当前温度是否满足观赏鱼正常生活需要的温度(1520摄氏度)。(设当前温度
4、由用户输入)。 main() int temperature; printf(“n enter the temperature :”); scanf(“%d”, ,1. 逻辑运算符 则 !x-1 、 !y-0 x&y - 0 x | y -1 特别提示 : if( !x ) 等价于 if( x=0),2. 逻辑表达式: 由逻辑运算符将一个或多个表达式连接起来的式子。比如: 1)“a和b中只有一个为0“的逻辑表达式为:a+b!=0&a*b=0 2)某英语专业的招生条件“总分(total )超过分数线(600)并且英语成绩(score)不低于85分“,该条件的逻辑表达式为: total600&sc
5、ore=85 3)判断某年是润年应满足以下两个条件之一:该年能被4整除但不能被100整除,或该年能被400整除。该条件对应的逻辑表达式为: year%4=0&year%100!=0 | year%400=0,3 逻辑运算符的优先级和结合性 当条件表达式中同时出现多个运算符时,首先按优先级计算,当同时出现多个优先级相同的运算符时,再按结合性计算。 优先级: !算术运算符关系运算符& | 赋值运算符 结合性: 逻辑与&、逻辑或 |的结合性:自左向右, 逻辑非 ! 的结合性:自右向左 例如: (下页),优先级与结合性举例,例如: 设int h=3,j=3,k=3; double x=0,y=2.3;
6、 计算下列表达式的值: h& j & k 等价于(h& j) & k hj &xy 等价于 (hj)&(xy) hk | xy 等价于 ( hk) | (xy) x!=y & j+1=!k+4 等价于(x!=y) &( j+1)=(!k)+4 ) 结果:1, 0 ,1 , 1,逻辑表达式计算特例,在逻辑表达式的计算过程中,当该表达式的值能够确定时,就停止该表达式的计算,即并不是表达式中所有的运算符都被执行。 例5.4: 1)设有如下定义: int a=1, b=2, c=3, d=4, m=2, n=2; 则执行表达式: (m=ab) ,5.3 if 语句,if语句能实现所有的选择结构 例5.
7、5 将任意两个整数m、n中的较大数送给x,较小数送给y ,然后按大小顺序输出(设m、n的值由键盘输入) 分析:共分三步, S1: 输入两个整数给m和n。 S2: 判断m、n的大小并分别给x和y 赋值。 S3: 输出x和y。 其中第二步用选择结构.,main() int m,n,x,y; printf(“n please enter two integers:”); scanf(“%d%d”, 思考:若条件改为:mn,如何实现?,1. If语句的一般形式: if( 表达式) 语句1 else 语句2 执行过程:(如右图) 格式说明 :语句1 和语句2 在语法上是一个语句,可以是简单语句,也可以是
8、复合语句。在此要特别注意复合语句中一对 的正确使用 。,2. if 语句的简化形式,例5.6 从键盘接收一个字符,若为大写字母,则将其转换成小写字母并输出;否则输出原字符。 分析:共三步,其中第二步判断ch是大写字母的条件是:ch 在AZ之间 #include main() char ch; printf(“n enter a character:”); /*第一步,输入ch */ ch=getchar(); getchar(); if( ch=A /*第三步,输出*/ ,2. if语句的简化形式,if(expression) statement1 执行过程如图: 例:输入任意数n, 输出其绝
9、对值。 main() float a; scanf(“%f”, ,3. if语句的嵌套,当if语句中的语句1或语句2又是if语句时,就构成了if语句的嵌套,嵌套的if语句能实现多分支结构。 例5.7 猜数游戏:假设m是一个整型数15,让用户从键盘上输入所猜数字(用户已知数的范围是1020),若猜对,则输出“RIGHT”,否则,输出”WRONG“,并指出所猜的数比m大还是小。 分析:共3个分支 第一步,输入猜测的数n。 第二步,判断并输出结果:条件可以是“m等于n”,若条件成立,则输出 RIGHT;否则,需执行两步操作:输出WRONG,判断m、n的大小:条件可以是“nm”;条件成立时输出“big
10、”;否则输出“small”。 很明显,又是一个选择结构。,main() int m=15, n; printf(“n guess a num:“); scanf(“%d“, ,例5.8某幼儿园只接收26岁的小孩,其中23岁编入小班,45岁编入中班,6岁编入大班。编程实现,对输入的任意一个年龄,输出该编入什麽班,或者告知“不收“。 分析:首先根据条件“年龄在26岁之间”判断是“收”还是“不收“,若条件满足,则执行的操作为:(1)判断该编入何班;否则,输出“不收”。 其次,分析(1)如何实现。 提示:本例可用不同的程序实现。 如将条件改为“年龄超出26岁”;或者从条件“年龄小于2”开始判断。试编程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 课件 选择 结构
链接地址:https://www.31doc.com/p-2143409.html