资源描述:
《选择结构程序设计1》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5讲选择结构程序设计1.目的、要求掌握选择型程序要解决的问题及求解规则。掌握IF…ELSE、ELSEIF、SWITCH结构的应用。2.重点、难点IF…ELSE的配对。SWITCH语句的嵌套。BREAK子句的作用。选择型程序用于解决判断问题。通过实例介绍IF…ELSE结构的应用,它适用于多条件并列测试取一种结果;通过一连串的判断来介绍IF…ELSE的嵌套问题。对单条件测试取多个结果中的一个结果,则应用SWITCH结构。3.讲课思路1.关系运算用于比较两个运算量的大小。结合方向:自左至右。优先级:低高赋值关系算术运算符名称运算功能
2、>大于a大于b<小于a小于b==等于a等于b>=大于等于a大于等于b<=小于等于a小于等于b!=不等于a不等于b关系表达式的值关系成立:1(真)关系不成立:0(假)例:若a=3,b=2,c=1,则:若intx=1,y=3,z;表达式z=3-1>=x+1<=y+2的运算结果为z=1。对关系运算的说明判定x是否在[a,b]的表达式:a<=x&&x<=b。字符型数据的比较按ASCII码值进行。对浮点数的比较,由于存在误差,因此不能使用“相等”或“不相等”的判别。但可使用误差进行判别,如:fabs(1.0/3.0*3.0-1.0)<1e-5有
3、些数学上不允许的表达式,在C语言中是合理的,如:5>2>7>82、逻辑运算逻辑运算符用来对运算对象作逻辑运算。C语言提供了三种逻辑运算符:!,逻辑非。单目运算符,右结合。其运算规则是:当运算量为0时,运算结果为1;反之,当运算量为1时,运算结果为0。&&,逻辑与。双目运算符,左结合。其运算规则是:只有当两个运算量都是非0时,运算结果才为1,否则为0。
4、
5、,逻辑或。双目运算符,左结合。其运算规则是:只要有一个运算量为非0时,运算结果就为1;只有两个运算量都为0时,结果才是0。&&和
6、
7、:自左至右,双目运算符。!:自右至左,单目运算符。结
8、合方向!(非)(高)算术运算符关系运算符&&和
9、
10、赋值运算符(低)优先次序:逻辑表达式的值运算结果非0:1(真)运算结果为0:0(假)注:此规定可以将原本非二值的问题视为二值逻辑问题如:intx,y;if(x==0)y=0;等价于if(!x)y=0;若a=1,b=2,c=3,d=4,m和n的原值为1,则表达式(m=a>b)&&(n=c>d)执行时:因“a>b”的值为0,则m=0(已能确定表达式的值为假);而“n=c>d”不被执行,故n的值仍保持原值1。注意:在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑
11、运算符才能求出表达式的解时,才执行该运算符。(“短路”效果)若&&的一端为0,则不再进行计算,该表达式的值肯定为0。若
12、
13、的一端为1,则不再进行计算,该表达式的值肯定为1。year不能被4整除,Nyear能被4整除,但不能被100整除,Yyear能被100整除,又能被400整除,Y其它,N①②③④闰年的判别:(year%4==0&&year%100!=0)
14、
15、year%400==0非闰年的判别:!((year%4==0&&year%100!=0)
16、
17、year%400==0)或者:(year%4!=0)
18、
19、(year%100==0&&
20、
21、year%400!=0)3.流程控制语句—if语句形成流程控制结构(if,while,for)简单的流程转向选择结构1)if(表达式)语句表达式语句真(非0)假(0)[例]:求一个数的绝对值main(){doublea,abstr(doublea);printf("Enterrealnumberaplease:");scanf("%lf",&a);printf("abs(%lf)=%lf",a,abstr(a));}doubleabstr(doublex){if(x<0.0)x=-x;return(x);}[例]:输入3个数,按小
22、大顺序输出main(){floata,b,c,t;scanf("%f,%f,%f",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%5.2f,%5.2f,%5.2f",a,b,c);}2)if(表达式)语句1else语句2表达式语句1真假语句2[例]:求一个数的绝对值main(){doublea,abstr(doublea);printf("Enterrealnumberaplease:");scanf("%lf",
23、&a);printf("abs(%lf)=%lf",a,abstr(a));}doubleabstr(doublex){if(x<0.0)x=-x;elsex=x;return(x);}3)if(表达式1)语句1el