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
温馨提示:内容为网友见解,仅供参考
第1个回答  2016-05-30
x=2 y=3 z=1
z=x++,y++,++y;
先++y再y++得y=3
z=x++先把x=1赋予z,再x++,因为x++是先用后加追问

int y=3,z=1;
printf("%d %d\n",y++,z+2);
Y为什么不是等于3

本回答被提问者和网友采纳
第2个回答  2016-05-30
for循环条件中,中间的一个表示循环的条件,你这个循环的条件是xy则停止循环,根据你给的值,这个循环一次都没进行,所以z++无效,所以z的值就是1
第3个回答  2016-05-30
x=2;z=1;
y=3;追问

解答一下啊 X为什么是2

追答

x=y=1

z=x++ ,先取x的值1 赋给 z , 然后再执行 x+1 =2

y++ , 执行 y+1 =2

++y 执行 y +1 =3

"z=x++,y++,++y" 这个按逗号运算符算的话 , z等于最后一个表达式的值, 那就是3

追问

能不能给解释一下 为什么Z的赋值不是 X++ 而是X

追答

X++ 表达式 , 是先取值,在执行加1

++X 是 先加1,在取值

追问

inta=1,b;
b=a+1;
printf("%d",b++);
这个的b就应该是2 咯 如果是++b 那么就应该是3 把?

追答

是的

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

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

...{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 ("%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...
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 所以结果...

逗号表达式的例题
如下题:题目:以下程序的输出结果是: 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]1,1,1解析:x和y的值经过自增以后分别为2和3,D可以排除。剩下3个选项选择什么呢?如果是(x++,y++,++y)...

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 z=x++;x先将值1赋给z,然后x自增变为2 y++;y自增变为2 ++y;y自增变为3

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

C语言中:若x=y=1,z={x+x,y++,++y},输出x,y,z的值
x=1,y=1 z=x++ 把x给z,所以z=1,之后x++,所以x=2;y++ 原来y=1,现在变成2 ++y 前面y=2,现在变成3.所以,最后:x=2 y=3,x=1

...main( ) { 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

相似回答