资源描述:
《C语言程序设计 教学课件 作者 刘莹第3章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第3章分支结构程序设计3.1关系运算符与关系表达式3.2逻辑运算符与逻辑表达式3.3if语句3.4switch语句本章主要内容【例3.1】编程求x的绝对值。x(x≥0)y=-x(x<0)编程要点:从键盘输入x的值;判断x的正负,如果x≥0,则y=x;否则,y=-x。main(){intx,y;printf(“Inputthenumber:”);scanf(“%d”,&x);if(x>=0)y=x;elsey=-x;printf(“
2、%d
3、=%d”,x,y);}3.1关系运算符与关系表达式关系运算是条件判断中比较简单的一种。所谓关系运算实际上就是“比较”
4、运算,将两个数进行比较,判断比较的结果是否满足指定的条件。3.1关系运算符与关系表达式3.1.1关系运算符共六种(皆为双目运算符):>、>=、<、<=、==、!=(不等于)高低结合性:从左至右关系运算符隐含“是否”的含义。例如:“x>0”隐含x的值是否大于03.1关系运算符与关系表达式只能是0或1运算结果只有两种可能:“真”或“假”。关系成立为“真”,不成立为“假”。表达式的值1结果为“真”0结果为“假”3.1.2关系表达式3.1关系运算符与关系表达式【例3.2】若有以下程序段inta=10;printf(“%d”,a>10);printf(“%d
5、”,a<=10);此段程序运行后,两个printf函数应分别输出的结果是什么?3.1关系运算符与关系表达式第一个输出语句中,由于a的值等于10,关系表达式a>10不成立,其值为0,因此输出0;第二个输出语句中,关系表达式a<=10成立,其值为1,因此输出结果为1。【例3.3】求以下程序的输出结果。main(){intx=0,a=0,b=12,c=10;printf(“%d”,x=a
6、目,从右至左)!(x>3)&&:逻辑与(双目,从左至右)x>=0&&x<=2
7、
8、:逻辑或(双目,从左至右)x<-3
9、
10、x>3高低3.2逻辑运算符与逻辑表达式!算术运算符关系运算符&&
11、
12、赋值运算符高低3.2逻辑运算符与逻辑表达式运算符表达式运算规则&&a&&b两个运算量都为真,结果为真只要有一个运算量为假,结果为假
13、
14、a
15、
16、b只要有一个运算量为真,结果为真两个运算量都为假,结果为假!!a运算量为假,结果为真运算量为真,结果为假3.2逻辑运算符与逻辑表达式3.2.2逻辑表达式与逻辑表达式的值逻辑运算结果只有两种可能:“真”或“假”。转换标准:非零为“真”零为
17、“假”3.2逻辑运算符与逻辑表达式(3>1)&&101(3>1)&&(10==9)0(5>2)
18、
19、(10==9)10
20、
21、(5<2)0!(a=0)1!303.2逻辑运算符与逻辑表达式【例3.4】当输入1和5时,下面程序的运行结果各是多少?#includemain(){intx,y;printf(“Inputx:”);scanf(“%d”,&x);y=(!(x-5)!=1);printf(“x=%d,y=%d”,x,y) ;}输入:1y=!(-4)!=1y=0!=1x=1,y=1输入:5y=!(0)!=1x=5,y=0y=1!=13.2逻
22、辑运算符与逻辑表达式【例3.5】若a=1,b=2,c=3,求逻辑表达式!a-b>c&&b!=c的值。(1)单目的取反运算:即先计算!a,由于a=1,所以!a的结果为0。(2)算术运算:即0-b的运算,因为b的值为2,所以,0-b的运算结果为-2。(3)关系运算:经过以上两步的计算后,原表达式变为:-2>c&&b!=c。由于“>”的优先级高于“!=”,所以,先计算-2>3,结果为0。再计算2!=c,即2!=3,结果为真。(4)逻辑运算:经过以上三步计算后,原表达式变为0&&1,因此,整个表达式的最终结果为0。3.2逻辑运算符与逻辑表达式【例3.6】分析下面程
23、序的运行结果#includemain(){intx=1,y;printf(“%d”,0&&(x=5));printf(“x=%d”,x);printf(“%d”,5&&(x=5));printf(“x=%d”,x);y=1;printf(“%d”,-1
24、
25、(y=5));printf(“y=%d”,y);printf(“%d”,0
26、
27、(y=5));printf(“y=%d”,y);}"&& "运算符左侧为0,不执行x=5x的值仍为1"&& "运算符左侧为5,要执行x=5x的值为5"
28、
29、"运算符左侧为-1,不执行y=5y的值仍为1"
30、
31、"运算
32、符左侧为0,要执行y=5y的值为53.2逻辑运算符与逻辑表达式在逻