注册 登录
编程论坛 C++教室

关于计算的问题..

ku_klox 发布于 2010-08-18 12:55, 292 次点击
已知 int x=5; 执行下列语句后,x的值为(  c  )。
x += x -= x * x;
(a) 25            (b) 40            (c) –40            (d) 20


 以下逗号表达式的值为(  d  )。
( x = 4 * 5, x * 5 ), x + 25
(a) 25            (b) 20            (c) 100            (d) 45

这两题是怎样计算出来的,,写写步骤。

[ 本帖最后由 ku_klox 于 2010-8-18 13:03 编辑 ]
1 回复
#2
pangding2010-08-18 13:34
赋值从右往左算,
x += x -= x * x;
x += (x -= (x * x));  // x = 5
x += (x -= 25);  // 5 * 5 = 25
x += -20; // x -= 25, x = -20
// x += -20, -20 + (-20), x = -40

逗号左到右,值是最后一个逗号后面的:
( x = 4 * 5, x * 5 ), x + 25
( x = 20, x * 5 ), x + 25 // x = 20,代进去算开就是:
20, 20*5, 20+25
取最右边的是45

说实在的,没人这么这么写代码,只有考试干这事。如果有答案给人分析分析还行,我自己做一样没谱,只是有一定的做对概率而已。
1