以下程序的输出结果是(A)。 main() { int x=0,y=1,z=2; if

以下程序的输出结果是(A)。
main()
{
int x=0,y=1,z=2;
if(x>y)
{ if(y>z) z=0;}
else z-=1;
printf(“%d\n”,z);
}
A)1 B)2
C)0 D)-1

求详细解释

把代码整理一下就比较清楚了,看注释

#include <stdio.h>
main()
{
   int x=0,y=1,z=2;
   if(x>y)    /*x是0,y是1,所以x>y这个判断不成立,进入下面的else语句*/
   {
       if(y>z)  
           z=0;
   }
   else
   {
       z-=1;          /*z-=1,也就是z=z-1,z原来的值是2,减1后变为1*/
   }  
   printf("%d\n",z);    /*这里输出z的值就是1*/
}

答案选A

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-06-18
main()
{
int x=0,y=1,z=2;
if(x>y)
{ if(y>z) z=0;} //因为x<y不满足if的条件 花括号内所以不执行
else z-=1; //执行else z=z-1 所以z=2-1=1
printf(“%d\n”,z);
}本回答被网友采纳
相似回答