答案是A, 因为:if(a=b+c) 里是赋值语句,得到 a = -1, 同时这个 if(-1) 为真,所以执行 else a=b=c= 1。
把代码缩进,就可以看的清楚了if 和 else 的配对:
#include <stdio.h>
int main()
{
int a = 2, b = 0, c = -1;
if (a = b + c)
if (a > 0)
b = c = a;
else if (a == 0)
a = b = c = 0;
else
a = b = c = 1;
else
a = b = c = -1;
printf("%d,%d,%d", a, b, c);
return 0;
}
if后面没有加大括号,使用只影响下一行代码