问题 单项选择题

有以下程序:
main()
int x=0,y=5,z=3;
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

解析: 本题中首先定义了三个整型变量x、y和z并分别赋值为0、5和3,while循环的判定条件为z-->0&&++x<5,由于x的初值为 3,所以当z--执行3次后,z-->0将不在成立,又由于x的初值为0,所以++x执行5次,++x<5将不再成立,而它们两个表达式的值为逻辑与的关系,故当z-->0不成立时整个表达式的值为假,因此该循环共执行了3次,即语句y=y-1共执行了三次,但 while循环的判定表达式却执行了四次,故起最后输出的x、y、z的值分别为3,2,-1,所以,4个选项中选项B符合题意。

多项选择题
判断题