int x=3,y=5,printf("%d,%d\n",(x--,--y),x++);中(x--,--y),的输出结果怎么算?

如题所述

我好,这是C中比较经典的题了,老师经常会拿它来讲这个知识点,就是括号里是以后面那个数输出的,前面那个数是多少不用管它,我个只输出最后一个数,然后,因为前面括号里面X--已经运算过了,得x=2,然后后面那个X++可以看作这样X=X+1因为X先赋值给X,然后再实行加一,所以结果,X等于2,所以结果是 4,2
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-10
这是逻辑运算,你用eclipse打出来运行下结果不就知道了。你这是java?我怎么感觉矛盾呢……啊哦,是c.太久没见了都遗忘了,楼下的敲醒了我啊,就是一个输出显示问题,自己打一遍就知道了。
第2个回答  2011-05-10
一看就是一些玩文字游戏的题 ,如果你是计算机专业的话再一别做这类恶心的题,完全没有意义。
如果想知道结果,把代码敲一边算一下结果呗。
第3个回答  2015-06-09
应该为4和3吧

int x=3,y=5,printf("%d,%d\\n",(x--,--y),x++);中(x--,--y),的输出...
我好,这是C中比较经典的题了,老师经常会拿它来讲这个知识点,就是括号里是以后面那个数输出的,前面那个数是多少不用管它,我个只输出最后一个数,然后,因为前面括号里面X--已经运算过了,得x=2,然后后面那个X++可以看作这样X=X+1因为X先赋值给X,然后再实行加一,所以结果,X等于2,所以...

如果原来x=3且y=5则x++;y++;printf("x=%d,y=%d",x,y);的输出是?
原本x=3,y=5,a.程序中x++与y++的意思是分别在原本x的值上+1;原本y的值上+1,printf函数则负责输出处理之后的x与y,所以输出x=4,y=6;b.程序中y=x++是指先把x的值赋给y,之后执行x+1,所以输出x=4,y=3;c.程序中y=++x是指先执行x+1,再赋值给y,所以输出x=4,y=4;d....

如果原来x=3,且y=5,则以下代码块的输出是什么?
结果输出:1.4.6 2.4.3 3.4.4 4.4.8 5.4.9 6.3.6参照自加与赋值运算等即可得到结果。

...{ int y=3,x=3,z=1; printf(“%d %d\\n”,(++x,y++),z+2); }...
逗号符,表示对这两个表达式执行逗号运算…(x,y)这个表达式的值为y的值 ++x就是将x的值+1后赋给表达式,y++就是先将y拿去计算,在讲y加1 ,

void main() {int y=3,x=3,z=1; printf(%d %d\\n,(++x
(++x, y++)这整个是一个逗号表达式,逗号表达式的运算规则是从左往右依次计算,并返回最后一个表达式的值,所以返回输出的是y++ 这里++放在了y的后面,所以是先输出y,再进行y=y+1运算,所以最后是输出3 3

int x=3,y=3,z=1,则printf("%d\\n,z+=x<y?x++:y++);的值为多少?
由于+=优先级较高所以1+3=4.4不小于y所以执行y++ 3+1=4 结果是4

...>0&&++x<5)y=y-1; printf("%d,%d,%d\\n",x,y,z); }
1:while循环,不写括号表示内容只有一行 2:++、--放在变量前面(++x),表示先对变量进行自增1运算,再将变量更新后的结果作为(++x)这个整体表达式的值;而++、--放在变量后面(z--),表示先将变量原来的值本身作为(z--)这个整体表达式的值,再对变量进行自减运算 3:逻辑&&的结合性自左...

...%d\\n",x++)以及 printf("%d,",x--)是先输出X还是先X自加或者自...
先输出x,加减号在后面,表示先使用,再加减。加减号在前面,表示先加减再使用

...>0&&++x <5)y=y-1;printf("d,%d,%d\\n",x,y,z); }求答案
z--是用z的值判断完后,再执行z=z-1,而++x是先执行x=x+1后,再判断,至于‘&&’刚是前一部分为假 ,后半部分就不用会再执行

c语言printf("%d,%d\\n",(++x,y),y++);是什么意思
printf("%d,%d\\n",(++x,y),y++); 先输入y在输出y++ ,(++x,y)逗号运算返回最后一个即y 不同编译器,对于运算顺序没有统一,有点先y++,在(++x,y),有的相反。

相似回答