选择题

有以下程序:
#include
main()
{
   nt x=1,y=0;
   if(!x)y++;
   else if(x==0)
      if(x)y+=2;
      else y+=3;
   printf("%d\n",y);
}
程序运行后的输出结果是(     )。

【正确答案】 D
【答案解析】

else 子句总是与前面最近的不带 else 的 if 相结合, 与书写格式无关。 本题中的层次关系是: if(!x)与 else if(x==0)是一组, 位于条件判断的最外层。 而 if(x)与 else 是一组, 位于 else if(x==0)条件的内层。 由此可知条件均不成立, 所以 y 未进行任何操作, 仍为 0。 答案选择 D 选项。