C语言问题:若a=3,则a+=a*=a/=a的值?

 我来答
tianjie890000
2010-09-05 · TA获得超过1739个赞
知道小有建树答主
回答量:339
采纳率:0%
帮助的人:474万
展开全部
楼主好!
这个式子初看起来还是比较麻烦的,因为不知道从哪里执行,或则执行到某个地方时a的值时什么都蛮难看出的,所以最好用括号给括起来!

根据式子从右向左的执行过程,用括号后为:
a+=(a*=(a/=a))
首先:执行括号的最里面的,既(a/=a),等价于(a=a/a),此时a=3,得出结果这个括号式子(a/=a)式子的值时1,而且a此时的值变为a=1。
其次:执行第二个括号(a*=(a/=a))由上面可得到(a*=1)既(a=a*1),结果式子的值时1,后,a的值任然是1。
再次:执行最后一项a+=(a*=(a/=a)),把前面两项的值代入为a+=1,记得此时a的值是1,所以式子转变为a=a+1=1+1=2。

综上有,式子的值时2、
楼主懂了吗?
猪头或火宝宝
2010-09-05 · TA获得超过2758个赞
知道小有建树答主
回答量:1001
采纳率:0%
帮助的人:1520万
展开全部
你好!!
a+=a*=a/=a,首先a/=a等价于a=a/a=1,然后a*=1等价与a=a*1=1*1=1
最后a+=1等价于a=a+1=1+2=2
所以答案是:2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
Loki9Loki
2010-09-05
知道答主
回答量:21
采纳率:0%
帮助的人:18万
展开全部
答案我用printf("%d\n",a+=a*=a/=a)验证是2

因为是a+,所以是从右往左看,a/=a为1,a*=(a/=a)为1,a+=(a*=(a/=a))为2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友9a44e0f30c
2010-09-05
知道答主
回答量:15
采纳率:0%
帮助的人:0
展开全部

答案为:2。有图为证,清晰可见哦!

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
就是佐
2010-09-05 · TA获得超过138个赞
知道答主
回答量:124
采纳率:0%
帮助的人:88.4万
展开全部
a+=a*=a/=a 这个表达式 是右结合 从右到左
第一 a/=a ——a+=a*=1
第二 a*=1 —— a+=1
第三步 a=a+1
得到a 为2
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式