已知int i,a;执行语句i=(a=2*3,a*5),a+6;后,变量i的值

 我来答
hhdxtxh
2012-01-02 · TA获得超过306个赞
知道答主
回答量:25
采纳率:0%
帮助的人:10.6万
展开全部

这个应该是选C。已经给你运行了,截图了。你看看。原因如下:先执行a=2*3,a=6,然后再a*5=30,注意此时有一个括号,说明前面这个逗号表达式的值为30.后面再接着一个逗号表达式。因为赋值符号 =  的优先级比逗号的高,所以直接把30赋值给了i。

如果把这题的括号去掉的话,结果就是6了。同样根据优先级的方法,i直接就等于a=2*3了。但是如果把题换成i=(a=2*3,a*5,a+6);后,答案就是12了。根据逗号表达式的特点,就可以得出答案。

这题主要考优先级关系。要学好C语言,这个一定要会哦。如果还不懂可以追问我哦。呵呵。逗号表达式的特点不知道的话可以去书上查下。

风若远去何人留
推荐于2017-12-05 · 知道合伙人互联网行家
风若远去何人留
知道合伙人互联网行家
采纳数:20412 获赞数:450106
专业C/C++软件开发

向TA提问 私信TA
展开全部
执行顺序为:
1
a=2*3 结果a=6
2
i=(a=2*3,a*5)
也就是i=a*5=6*5=30
3
a+6
没有实际意义 ,属于干扰范围.
所以结果i=30.
需要注意点为, 赋值运算优先级高于逗号运算
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
左丘忠仙莺
2020-03-23 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:1081万
展开全部
i
=
30
a=6
a*5=30
那么括号的值为30
i=30,a+6
因为赋值运算符优先级大于逗号运算符
所以
i
=30
再计算
a+6
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sine882010
2011-04-11 · TA获得超过320个赞
知道小有建树答主
回答量:167
采纳率:0%
帮助的人:211万
展开全部
执行顺序:
a=2*3 a=6
a*5 30
赋值 i=30
逗号运算是一个多元运算,它的整个的值都是最后一个表达式的值,
所以(a=2*3,a*5)运算后的结果是30,
然后是赋值运算"i=" 因此是i值为30 后面的逗号运算就不用管了。
如果改成 i=((a=2*3,a*5),a+6); 的话,结果就应该是12,如果你还有什么
不清楚地地方我们再讨论~

参考资料: http://zhidao.baidu.com/question/185829111.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阳光上的桥
2011-04-11 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65790
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
30
追问
WO  ZHI   DAO   DA    AN   ,DAN    YAO     GUO    CHENG   A ,XIE   LA   !
追答
你的语句是:
i=(a=2*3,a*5),a+6;

计算机看起来是一个逗号表达式,依次执行如下两行:
i=(a=2*3,a*5)
a+6

第一行是赋值语句,其右边又是一个逗号表达式,依次执行:
a=2*3,a*5

所以结果是30

我也不知道要写多详细,建议你以为提问的时候,写出你不明白的地方,或者你怎么想的,这样大家可以针对性的进行辅导。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式