为什么选C呀?为什么不是选A?

有以下程序:

#include

main()

{

int a=0,b=0,c=0,d=0;

if(a=1)

    b=1;  c=2;

else

    d=3;

printf("%d,%d,%d,%d\\n",a,b,c,d);

}

程序输出()。

A

1,1,2,0
B

0,0,0,3
C

编译有错
D

0,1,2,0

题目比较交换,设置了陷阱,if(a=1)会打乱你的思维。
实际由于b=1; c=2; 是两条语句,会使得else找不到对应的if而报错,如果这两句加上大括号就选A了