选择题
有以下程序
#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
【答案解析】
对于表达式“z=x++,y++,++y;”,因为赋值运算符的优先级高于逗号运算符的优先级,所以可以将上式改成“(x=x++),(y++),(++y)”。然后从左向右先计算表达式z=x++,因为x++先使用后自增,所以z的值为1,x的值为2。再计算逗号表达式第二个表达式y++,此时y的值为1,y++的值为2。最后计算第三个表达式++y,y的值为3。故本题答案为A。
提交答案
关闭