运行结果是什么A24B25C3D4

下列程序的运行结果是( )。
#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