有以下程序: #include <stdio.h> main() { int x, y, z;   x=y=1;   z=x++,y++,++y;   printf("%d,%d,%d\n",x,y,z); } 程序运行后的输出结果是(  )。

admin2015-11-24  2

问题 有以下程序:
#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,3
B、2,3,2
C、2,3,1
D、2,2,1

答案C

解析 z=x++,y++,++y;因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式表示成(z=x++),(y++),(++y)。然后从左向右先计算表达式z=x++,因为x++先使用后自增,所以z的值为1,x的值为2。再计算逗号表达式第二个表达式y++,此时y的值为2,最后计算第三个表达式++y,y的值为3。
转载请注明原文地址:https://www.kaotiyun.com/show/fVID777K
0

相关试题推荐
最新回复(0)