若a为int类型数据,且其值为3,则执行完表达式a+=a-=a*a后,a的值是?请通过程序验证。

 我来答
帐号已注销
2021-01-19 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:163万
展开全部

a=-12。

按照从左至右结合性和优先级顺序,先计算a-=a*a,最后a结果为a=a-a*a,a=3-3*3=-6;

再计算a+=-6,因为此时a的值已经变成了-6,所以计算过程是a=a+(-6)=-6-6=-12。

或:

a+=a-=a*a;

复合赋值表达式,从右到左运行,可以分拆成:

a-=a*a;

a+=a;

a的原值为3

a-=a*a;

相当于

a=a-a*a=3-3*3=-6;

再运行

a+=a;

自然就成了-12

扩展资料:

任务的优先级等级与相对截止期、空闲时间之间的层次关系可以用一种线性关系来描述,比如,

di+ksj=g

其中,k为线性关系的斜率,g 可以看成是优先级等级。对于确定的斜率k,g 越小,优先级等级越高。比如,对于g1<g2,满足di+ksj=g1的任务优先级要高于满足di+ksj=g2的任务优先级。图中带箭头的斜向上直线表示一种不同等级的排序,越往左上,等级越高。

参考资料来源:百度百科-优先级

一叹t
高能答主

2021-01-19 · 我们不创作,我们只是信息的搬运工。
一叹t
采纳数:2139 获赞数:11977

向TA提问 私信TA
展开全部

执行完表达式a+=a-=a*a后,a的值为:-12。

表达式执行的过程:首先明白赋值运算符的结合性为自左向右,所以说先执行最右边的表达式,同时乘除运算符的优先级大于赋值运算符,所以说先执行a*a,因为a=3,所以说a*a=9,然后执行a-=(a*a)=a-=(9)等价于a=a-(a*a)=3-9=-6。

然后a=-6,然后执行a+=a等价于a=a+a=-6-6=-12。所以说表达式执行完后a的结果为-12。

扩展资料:

乘除运算符的优先级:

乘除运算符的优先级处于运算符优先级的第5级,主要的运算符有“ * ” 乘法运算符、“ / ”除法运算符、“ % ” 取余运算符。

结合性:自左向右,即为相同运算符从左到右依次运算。

赋值运算符的优先级:

赋值运算符的优先级处于运算符优先级的第16级包含的运算符有:=、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。

结合性:自右向左的结合性,即为相同运算符从右到左依次运算。

参考资料来源:百度百科-C语言运算符

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuzhouliuying
高粉答主

推荐于2017-10-24 · 繁杂信息太多,你要学会辨别
知道顶级答主
回答量:5.4万
采纳率:86%
帮助的人:2.5亿
展开全部
先执行a-=a*a,即a=a-a*a
3-3*3=-6,a=-6
再执行a+=a,即a=a+a
-6+(-6)=-12
a=-12
a的值是-12
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-21
展开全部
-12a+=a-=a*a从右边往左边算.先计算a-=a*a,即a=a-a*a=3-3*3=-6然后计算a+=a,即a=a+a=-6+(-6)=-12
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-21
展开全部
-12a*a为9a-=9 a变成-6a+=a 为-6+-6,所以为-12
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式