44、设 int a=12,则执行完语句 a+=a-=a*a后,a的值是

44、设inta=12,则执行完语句a+=a-=a*a后,a的值是A)552B)264C)144D)-264... 44、设 int a=12,则执行完语句 a+=a-=a*a后,a的值是
A) 552 B) 264 C) 144 D) -264
展开
 我来答
巢壹僬D5
2018-08-19 · TA获得超过274个赞
知道答主
回答量:125
采纳率:71%
帮助的人:29.4万
展开全部
这种表达式都是从右边开始计算的,有两个等号,所以分为两步计算
1)a-=a*a; //a*a=144, a-=144, a=12-144 a=-132
2)a+=a; //等同于a=a+a, =-264
匿名用户
2018-08-18
展开全部
#include <stdio.h>
int main() {
    int a = 12;
    a+=a-=a*a;
    /**
     *     a+=a-= a*a;
     * --> a=a+(a-=a*a)
     * --> a=a+(a=a-a*a) <a=a-a*a=-132>
     * --> a=a+a
     * --> a=-264
     */
    printf("a = %d",a);
    return 0;
}

差点迷糊掉,多亏楼上的回答,才发现半路a的值已经变了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
DoramiHe
2018-08-18 · 知道合伙人互联网行家
DoramiHe
知道合伙人互联网行家
采纳数:25332 获赞数:59541
2011年中山职业技术学院毕业,现担任毅衣公司京东小二

向TA提问 私信TA
展开全部
额 一开始我被糊弄到了 后来用printf一输出才发现原来错得糊弄离谱啊
b=10 a=1 b-=a 等价于b=b-a 所以b=9 a++ 所以a=2 重头戏来啦
while(b--<0) 嘿嘿 注意是<号哦 b--<0 是先用b的值与0比较大小 再b自减1 也就是说9<0 当然是假啦 所以就退出循环 又b要自减1 所以最后b=8呵呵
追问
亲,回答错问题了吧?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuzhouliuying
高粉答主

2018-08-18 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.5亿
展开全部
a=a-a*a=12-12*12=-132

a=a+a=(-132)+(-132)=-264
a的值是-264,选D
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式