有以下程序: main() { int x=0,y=5,z=3; while(z-->0&&++x<5) y=y-1; printf("%d,%d,%d\n",x,y,z); } 程序执行后的输出结果是( )。

admin2009-04-15  30

问题 有以下程序:    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

答案2

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

最新回复(0)