下列程序的运行结果是( )。
#include <stdio.h>
main( )
{
int a ,b,c,x;
a=b=c=0,x=25;
if(!a) x--;
else if(b) x++;
if(c) x=3;
else x=4;
printf("%d",x);
}
4
c为零else x=4
if(!a) x--; -----------a为0,if成立,x--使得x变为24
else if(b) x++;------else不执行
if(c) x=3; ------c为0,if不成立
else x=4; ------由于if不成立,所以执行else,使得x=4
printf("%d",x);---输出x的值为4
}
首先这里是上下两个独立的if,else
abc都是0,所以!a是true,执行x--
c是0,执行else x=4
x的值被4覆盖了
所以最终是4
用缩进的格式就看得清楚了,最后 x = 4,供参考:
#include <stdio.h>
int main()
{
int a, b, c, x;
a = b = c = 0, x = 25;
if (!a) //第一个if 条件满足,
x--; //执行 x--; x = 24
else if (b)
x++;
if (c) //第二个if(c)不满足
x = 3;
else //执行 else
x = 4;//x被赋值为4
printf("%d", x);
return 0;
}
A24B25C3D4 你自己运行结果窗口没有清理吧。最终是 4