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

admin2010-09-05  40

问题 有以下程序:    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。
转载请注明原文地址:https://kaotiyun.com/show/gOWp777K
0

最新回复(0)