这个程序答案为什么是A啊,我感觉是C啊,C语言

img

选A啊。else虽然排版上和第一个if对齐,但实际上它是和最近的if(b>c)配对的。因此if(a>b)不成立时,只会执行最后一行的printf"%d\n",d);,输出d的值2

只要是能把代码写成一行都能运行,就不要看对齐,要看匹配,else要和上面距离最近的if匹配,也就是if(b>c)不满足的话才会执行这个else,而if (a>b)不满足的话就执行最后一个printf了。
所以说写代码不要老想着省略{},这个代码你把{}补齐了就知道是怎么回事了。else语句是包含在if(a>b){if xxx,else xxx}里面的