1.
设x,y,z均为int型变量,则执行语句:x=y=2;t=++x||++y;后,y的值为______
2.
main()
{
int a=3,b=-1,c=1;
if(a<b)
if(b<0)c=0;
else c++;
printf("%d\n",c);
}
该程序的输出结果是_____
3.
设a、b、c、d、m、n均为整型变量,且a=5,b=7,c=3,d=8,m=2,n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后n的值_____
4.
main()
{
int a=0,b=1,c=2,d;
d=!a&&!(--b)||!c++;
printf("%d\n",c);
}
则输出结果是_____
请详细解答
第二题,else是和最近的if进行配对使用,当第一个if条件为假的时候下一句执行的就是printf()输出语句了。
第四题,++(自加)与--(自减)如果是x++或者x--是先调用在运算,而++x或者--x则是先运算再使用。d=!a&&!(--b)||!c++;是逻辑表达式,结果只能为真(1)或者为假(0).第三题是一样同属逻辑表达式。
1.y=3(求y值,只要看y有那些变化,++y后,y=3)
2.1(else和最近的if配对,而第一个if没执行,所以下面的if也不执行,c=1)
3.0((m=0)&&(n=0)所以n=0)
4.1(!a为真=1,!(--b)也=1,!c++=0,所以是1&&1||0,为真=1)
1. y的值为2
2. 1
3. 2
4. 0
对于或运算,如果A||B 如果A为真,整个表达式就为真了,B就不执行了。
同理,A&&B,如果A为假,整个表达式就为假,B也不执行了。