计算机C语言-第五章(附上机问题汇总).ppt
《计算机C语言-第五章(附上机问题汇总).ppt》由会员分享,可在线阅读,更多相关《计算机C语言-第五章(附上机问题汇总).ppt(62页珍藏版)》请在三一办公上搜索。
1、答疑时间,每周三下午2:30-5:30信息中心810自愿,第5章 选择结构程序设计选择结构是三种基本结构之一,特点是:根据给定条件:成立时执行一组操作,不成立时执行另一组操作。C中选择结构利用if语句实现。5.1 关系运算符和关系表达式 关系运算是比较运算,结果为逻辑值“真”或“假”。(前已讨论算术、赋值、逗号。现讨论关系、逻辑表达式、条件,前两者的值域为真或假,即1或0)。5.1.1 关系运算符及其优先级 关系运算符有6种:、=:优先级为6级=、!=:优先级为7级 结合性为从左到右,关系运算符和其它运算符优先级的比较:高 逻辑运算符:!(2)算术运算符:*、/、%(3)+、-(4)关系运算符
2、:、=(6)=、!=(7)逻辑运算符:&(11)|(12)低 赋值运算符:=、+=、-=、*=、/=、%=(14)由于存在优先级,因此下面表达式是等价的:,关系表达式关系表达式:用关系运算符将两个表达式(算术、关系、逻辑、赋值、字符)连接起来的式子。如:a b、a+b b+c、(a=3)(b=5)a b)(c b 真 a b=c 真 b+c b d的为1 f=a b c f 值为0思考:能否用一般意义的2x 8?返回,5.2 逻辑运算符和逻辑表达式逻辑表达式:用逻辑运算符将表达式连接起来的式子。4.2.1 逻辑运算符及其优先次序在 c 语言中,逻辑运算符有:1.逻辑与:&优先级11 2.逻辑或
3、:|优先级12 3.逻辑非:!优先级2,有如下逻辑表达式:a&b:当 a,b 都为真时,结果为真,否则结果为假 a|b:当 a,b 都为假时,结果为假,否则结果为真!a:当 a 为真时,结果为假,当a为假时,结果为 真。见表5.1,在一个逻辑表达式中,若包含多个逻辑运算符时,则运算顺序按运算符优先级的高低进行。如:下面表达式是逻辑还是关系表达式?所以(ab)&(xy)可写成ab&xy(a=b)|(x=y)可写成a=b|x=y(!a)|(ab)可写成!a|ab,5.2.2 逻辑表达式 在逻辑表达式中参加运算的数据可以是常量、变量、表达式。见P89下及表5.2例:T5-0-1.cmain()int
4、 a=-5,i,j,k,l,m;float b=0.01;i=!a;j=a&b;k=a|b;l=(5 3&2|8 9;printf(“i=%d,j=%d,k=%d,l=%d,m=%dn”,i,j,k,l,m);,运行结果:i=0,j=1,k=1,l=1,m=0,在逻辑表达式求解过程中,所有逻辑运算符并不一定都被执行。只有在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。1.逻辑与运算符:&如有逻辑表达式:a&b&c执行过程是:当a为0时,b和c不用再判断了,逻辑与运算符将不再执行,结果为0,否则还要继续后边的运算。,2.逻辑或运算符:|如有逻辑表达式:a|b|c执行过程是:当a为
5、非0时,b和c不用再判断了,逻辑或运算符将不再执行,其结果为1,否则继续执行后面的运算。,例:T5-0-2.cmain()int a,b=0,c=0,d=0;scanf(“%d”,例T5-0-3.cmain()int a,b=0,c=0,d=0;scanf(“%d”,在C中,巧妙地使用逻辑表达式,可以表示一个复杂的问题如:关于闰年问题:符合下列条件之一,均为闰年。(1)能被4整除并且不能被100整除(2)能被4整除并且能被400整除其逻辑表达式为:(year%4=0&year%100!=0)|(year%400=0&year%4=0)由于能被400 整除的年份一定能被4 整除,所以可省去了后一
6、部分,即:(year%4=0&year%100!=0)|(year%400=0)若判断非闰年,只在闰年表达式前加!即:!(year%4=0&year%100!=0)|(year%400=0),5.3 if 语句选择结构中使用的一种语句。根据给定的条件判别是否满足,以决定执行哪种操作。5.3.1 if 语句的三种形式1.第一种形式的条件语句if(表达式)语句 表达式一般为逻辑或关系,先对其求值,根据结果决定下一步该如何执行,但也可以是常量、变量、各种表达式。其类型可以是整、实、字符型。语句可以是一句或复合语句.。,例T5-0-4.cmain()int x=0;float y=-5.6;if(x)
7、printf(“x=%dn”,x);if(y)printf(“y=%fn”,y);if(0)printf(“0=%dn”,0);if(xy)printf(“x-y=%fn”,x-y);if(y-100)x+;y+;printf(“x=%d,y=%fn”,x,y);,运行结果:y=-5.6000000=48x-y=5.600000 x=1,y=-4.600000,2.第二种形式的条件语句if(表达式)语句1 else 语句2例T5-0-5.cmain()int x,y;printf(“please input x,yn”);scanf(“%d%d”,运行结果:please input x,y 2
8、 _ 5 输出:y=5 34 _ 28 x=34,3.第三种形式的条件语句 if(表达式1)语句1 else if(表达式2)语句2 else if(表达式3)语句3 else if(表达式m)语句m else 语句 n右图为:m=4n=5,例:商店售货按购物的款数分别给予不同的优惠折扣。设变量:n:购物金额,c:优惠折扣百分比,a:优惠后的实际款数T5-0-6.cmain()float n,c,a;scanf(“%f”,输入:输出:800 680.000000480 432.000000200 185.00000080 76.00000030 30.000000,说明:1.执行if语句时,先
9、判断表达式的值,为真时(非0),执行其后语句,为假(0)时不执行其后的语句,表达式可以是常量、变量、各种表达式。2.if的各内嵌语句用“;”号结束,但仍然是一个语句而非2个。3.if和else后面的内嵌语句若有多句,用 括起构成复合语句。例T5-1.c 输入两个实数,按代数值由小到大输出。main()float a,b,t;scanf(“%f,%f”,输入:输出:3.6,-3.2-3.20,3.602.5,8.9 2.50,8.90,例T5-2.c输入三个数,按从小到大的顺序输出(请同学们自己思考)main()float a,b,c,t;scanf(“%f,%f,%f”,t a b c 7 5
10、 3 5 7 3 3 7 57 3 5 7,输入:输出:7,5,3 3.00,5.00,7.001,8,6 1.00,6.00,8.00,5.3.2 if 语句的嵌套嵌套:在if语句中,又包含1到多个if 语句一般形式:if()if()语句1 else 语句2 else if()语句3 else 语句4,总体上是哪种形式?,使用内嵌的if语句时,应区分表面形式与实际对应关系如:if()if()语句1 else if()语句2 else 语句3编程者希望把中间的else与第一行的if匹配,虽然书写上是对齐的,但编译系统并非如此执行(总体上是形式几?几层嵌套?)。,在C语言中,if与else 的配
11、对原则是:从最内层开始,else总是与它上面最近的,未曾配对的if配对。因此,上述问题在编译时的真正效果是:if()等价于下述表示:当条件成立时执行下面虚框中的内容,总体上是哪种形式?嵌套的是形式几?,为了使程序清晰,不至出错,采取的方法是:(1)使内嵌的if也包含else,如上面的问题可进行如下描述:if()if()else else if()else.,(2)若if和else数目不等,为实现设计者的企图,可用 实现,如上述问题可进行如下描述:if()if()语句1 else if()语句2 else 语句3,如此一来,else不是和复合语句匹配而是与其前面的if匹配,总体上是哪种形式?去掉
12、后属于哪种形式?,有一符号函数 例T5-3.cmain()int x,y;scanf(“%d”,输入:-1234 0 756 输出:x=-1234,y=-1 x=0,y=0 x=756,y=1,例T5-3-1.cmain()int x,y;scanf(“%d”,输入:12-24 0 输出:x=12,y=1 x=-24,y=-1 x=0,y=0,例T5-3-2.cmain()int x,y;scanf(%d”,怎么改?,输入:输出:-5 x=-5,y=0 0 x=0,y=-1 8 x=8,y=1,例T5-3-3.c(请同学们自己思考)main()int x,y;scanf(%d”,输入:输出:-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 语言 第五 上机 问题 汇总
链接地址:https://www.31ppt.com/p-6023357.html