作业帮 > 综合 > 作业

下列程序的输出结果为( ) void main() { int x, y, z; x = y = 1; z = x++,

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/04/29 16:27:55
下列程序的输出结果为( ) void main() { int x, y, z; x = y = 1; z = x++, y++, ++y; printf(“%d, %d,
下列程序的输出结果为( )
void 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
下列程序的输出结果为( ) void main() { int x, y, z; x = y = 1; z = x++,
c
首先赋值后,x=1,y=1
z = x++,y++,++y;
先执行z=x++=1,后面的y++,++y是逗号表达式,赋值优先级高于它
当输出后x=2,y=3;(x自加了一次,y自加了2次)
再问: z = x++, y++, ++y; 我理解的是逗号表达式并列,取最后一个++y=2
再答: 错了,是先进行z的赋值语句,z是取第一个逗号的啦,在进行y的自加 因为逗号优先级低于“=”(赋值),所以 z = x++, y++, ++y; 就是一个逗号语句,z=x++是一条,y++,是一条++y是一条,按顺序执行 如果z = (x++, y++, ++y);那么答案就是楼下十一级回答的那样