请问这道题的答案对不对,为什么??

来源:百度知道 编辑:UC知道 时间:2024/05/21 15:46:29
#include <stdio.h>
main()
{ int x=2,y= -1,z=5;
if(x<y)
if(y<0)
z=0;
else
z=z+1;
printf(“%d\n”,z);
}
运行结果为:
5
顺便问一下这道题的(a),(!b)都是什么意思啊?不胜感激
#include <stdio.h>
main()
{ int a=0,b=1,c=0,d=20;
if(a)
d=d-10;
else
if(!b)
if(!c)
d=15;
else d=25;
printf("d=%d\n",d);
}
运行结果为:
d=20

if(x<y)
if(y<0)
z=0;
else
z=z+1;
printf(“%d\n”,z);
}

先有个 if(x<y) 判断语句
如过成立执行下面的语句:
{ if(y<0)
z=0;
else
z=z+1;}

不成立直接执行 printf(“%d\n”,z);
所以输出: 5

应该是 0

显然是对的。
if(x<y)里的语句块是
if(y<0)
z=0;
else
z=z+1;
也就是说如果if(x<y)判断失败那这几句都不会执行。
所以z的值实际上没变。