求大神赐教,求一C语言题!!有以下程序 #include <stdio.h> main() { int x, y, z; x=y=1; z=x++,y++,++

有以下程序
#include <stdio.h>
main()
{ int x, y, z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}

程序运行后的输出结果是
A) 2,3,1
B) 2,3,2
C) 2,3,3
D) 2,2,1

通过实际验证了的结果,答案是 A

这里我分布说明,程序的过程:

    第一步计算:x = y = 1;

    第二步计算:z = x ;   结果 z = 1;

    第三步计算:x++ ;    结果 x = 2; 

    第四步计算:y++;   前面赋值 y=1; y++ 后 y = 2;

    第五步计算:++y;   前面 y++ 后,y =2 这里 ++y;  结果 y = 3;

        最后结果:x =2 ; y = 3 ; z = 1 


只要明白了,运算的优先权,就能很好的理解并计算

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-09-19
x++是先使用后计算所以z=1,++y是先计算后使用,经y++后是2,++y后是3,
第2个回答  2013-09-19
A)2,3,1正确。
第3个回答  2013-09-19
A,分清是先加后用还是先用后加就可。。。
第4个回答  2013-09-19
答案:A。
相似回答