问题 单项选择题

有以下程序:
main()
int x=0,y=5,z=31
while(z-->0&&++x<5)y=y-1;
printf("%d,%d,%d\n",x,y,z);

程序执行后的输出结果是 ______。

A) 3,2,0
B) 3,2,-1
C) 4,3,-1
D) 5,-2,-5

答案

参考答案:B

解析: 第一次执行while语句时,z=3>0,然后执行z--得z=2,执行++x得x=1<5,条件成立,执行y=y-1=5
-1=4;第二次执行while语句时,z=2>0,然后执行z--得z=1,执行++x得x=2<5,条件成立,执行y=y-1=4- 1=3;第三次执行while语句时,z=1>0,然后执行z--得x=0,执行++x得x=3<5,条件成立,执行y=y-1=3-1= 2;第四次执行while语句时因z=0,z<0条件不成立,同时执行c--得z=-1。即执行完while循环后x=3、y=2、z=-1。

解答题
单项选择题