已知int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量 i 的值是( ) A 6 B 12 C 30 D 36

 我来答
多xdl点事
2019-06-20 · TA获得超过1189个赞
知道答主
回答量:19
采纳率:0%
帮助的人:2364
展开全部

30。这里考察的是C语言中运算符的优先级,先执行括号的程序,然后执行逗号运算符,先执行a=2*3,再执行a*5,取右操作数,然后赋值给i,就是30。

代码如下:

#include<stdio.h>

int main(){

int i,a;

printf("输出i的值为:");

i =(a=2*3,a*5),a+6;

printf("%d\n",i);

return 0;

}

程序运行结果:

扩展资料

C语言中,逗号运算符确保操作数被顺序地处理:先计算左边的操作数,再计算右边的操作数。右操作数的类型和值作为整个表达式的结果。左操作数只是为了副作用需要而被计算,它其值会被丢弃。逗号运算符的优先级是所有运算符中最低的。

参考资料:百度百科-C语言

hhdxtxh
推荐于2017-12-15 · TA获得超过306个赞
知道答主
回答量:25
采纳率:0%
帮助的人:10.5万
展开全部

这个应该是选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语言,这个一定要会哦。如果还不懂可以追问我哦。呵呵。逗号表达式的特点不知道的话可以去书上查下。

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-01-01
展开全部
选c 30,这个结果i=30,a=6。像这种并列逗号什么的,赋值是取第一个的。

参考资料: http://hi.baidu.com/lxxstar1226/blog/item/109fb0acd6a9b1d67dd92a5f.html

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卡卡斩
2012-01-02 · 超过22用户采纳过TA的回答
知道答主
回答量:167
采纳率:0%
帮助的人:59.9万
展开全部
逗号表达式,括号里从左到右,而且A的值是传递的。故为30
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
1165246628
2012-01-01 · TA获得超过443个赞
知道小有建树答主
回答量:301
采纳率:0%
帮助的人:53.6万
展开全部
12,因为,运算符是从左到右呀6+6=12
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(16)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式