标题:关于计算的问题..
只看楼主
ku_klox
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2010-4-3
结帖率:91.67%
已结贴  问题点数:5 回复次数:1 
关于计算的问题..
已知 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 编辑 ]
搜索更多相关主题的帖子: 表达式 
2010-08-18 12:55
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
得分:5 
赋值从右往左算,
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

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



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-316070-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.085240 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved