int x,y,z; x=y=1; z=x+y,y++,++y; printf(%d,%d,%d\n,x,y,z);

这道题结果是多少? 是2,2,1 还是2,3,1

第1个回答  2013-03-05

是1,3,2

追问

第一个为啥是1啊 ? x不是在第一步被加了1么!?
y为什么是3?y++=1 ++y=2, 不是应该这样么?

我打错了
main()
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}

追答

大哥……x=y=1的意思是给x和y都赋初值1……

追问

不好意思 我打错了,
main()
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}

第2个回答  2013-03-05
1,3,2啊

采纳我哦追问

第一个为啥是1啊 ? x不是在第一步被加了1么!?
y为什么是3?y++=1 ++y=2, 不是应该这样么?

追答

x哪里被加1了????

追问

main()
{
int x,y,z;
x=y=1;
z=x++,y++,++y;
printf("%d,%d,%d\n",x,y,z);
}

不好意思 我打错了

追答

2 3 3

追问

为啥y=3 不是2呀?》

追答

加了两次啊

本回答被提问者采纳

...z=x+y,y++,++y; printf(%d,%d,%d\\n,x,y,z);
是1,3,2

...int x,y,z; x=y=1;z=x++,y++,++y; printf ("%d%d%d",x,y,z...
所以这个语句:z=x++,y++,++y;实际上等于:(z=x++),(y++),(++y);这样写的话相信楼主就知道为什么z=1了吧 楼主认为z应该是3的原因应该是把z=x++,y++,++y;当成z=(x++,y++,++y);了

int x,y,z; x=y=1; z=x++,y++,++y; printf("%d%d%d\\n",x,y,z);_百 ...
z=x++;x先将值1赋给z,然后x自增变为2 y++;y自增变为2 ++y;y自增变为3

...{ int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\\n",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); } 其中x++是表明在执行完z=x后x才会自动加一,z=x++这条语句执行完后z=1,x=2 y++也是在这条语句结束后才会加一,这时y=2;++y,是在这条语句执行前y自动加一,这时y=3 所以结果...

...{int x,y,z; x=y=1; z=x++;y=z++,x=y++; printf("%d%d%d\\n",x,y...
x=y=1; 使得变量x和y的内容都为1 z=x++; 表达式的计算结果使z的内容为x的初始值,即z的内容为1, 同时x的内容变为2 y=z++; 表达式的计算结果使y的内容为z的初始值,即y的内容为1,同时z的内容变为2 x=y++;表达式的计算结果使x的内容为y的初始值,即x的内容为1,同时y的...

int x,y,z x=y=1 z=x++,y++,++y printf x,y,z
x = 2; x = 1 ,x++ -->自加1 ,所以为2 y = 3; y = 1 , y++和++y都有自加1,所以为3 z = 1; z = x++ ,因为x++是先赋值在自加1,所以z = x++--->z = 1 , 然后再x= x+1 = 2

...{ int x,y,z;x=y=1;z=(++x)+(++y)+(x++);printf("%d,%d,%d\\n",x...
z=(++x)+(++y)+(x++);原式相当于z=n1+n2+n3 先执行n1=++x 执行后,x=2,n1=2 再执行n2=++y 执行后,y=2,n2=2 然后是n3=x++ 执行后,n3=2,x=3 最后为z=2+2+2 得z=6

...{ int x,y,z; x=y=1; z=x++,y++; printf("%d,%d",x,y); } 程 ...
开始的时候x=1 y=1 然后z=x,x进行自加1,也就是此时的x=2 再过来y自加1,即y=2 最后把x、y的结果以十进制的形式打印出来,即 2,2

...int x,y,z; x=y=z=1; if(++x||++y&&++z) printf("%d,%d,%d",x,y...
++x先用x 然后再自加 初始x=1,即为真,所以||后面的条件不执行 优先级从左到右,所以&&无效 0为假,非0为真,与是不是算式无关

C语言int x,y,z; x=y=1;z=x++,y++,++y; z的值为什么是1? 按照都好运 ...
你错了,z=1才是正确答案!因为逗号表达式被编译器解释为(z=x++),(y++)和(++y)三个,而不是z=(x++,y++,++y)右边的三个。你分明没有加(),干嘛要按有()来理解?

相似回答