17.执行以下程序的输出是? main() {int x=1,y=2,z; z=x+++y; printf(“%d%d%d尀n”,x.y.z); }

2024-11-29 03:41:41
推荐回答(3个)
回答(1):

输出结果是223。
printf(“%d%d%d\n”,x.y.z); //这条语句存在问题:"应该是英文的,并且变量之间应该用,分隔

改后的程序如下:
main()
{
int x=1,y=2,z;
//x++是先用后加,首先计算x+y,结果给z,所以z为2;计算后,x自加,所以x为2;y值不变
z=x+++y;
printf("%d%d%d\n",x,y,z); //输出结果是223
}

回答(2):

这个要看编译器的,有的会看成(x++)+y,有的会看成x+(++y)。不过,一般的编译器输出都是前者,即2,2,3

回答(3):

2,2,3

z =( x++) + y
实际上等于:z = x + y; x ++;
所以:z = 1 + 2; x = 1 + 1;