已知int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量 i 的值是( ) A 6 B 12 C 30 D 36
18个回答
展开全部
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语言
展开全部
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-01-01
展开全部
选c 30,这个结果i=30,a=6。像这种并列逗号什么的,赋值是取第一个的。
参考资料: http://hi.baidu.com/lxxstar1226/blog/item/109fb0acd6a9b1d67dd92a5f.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
逗号表达式,括号里从左到右,而且A的值是传递的。故为30
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
12,因为,运算符是从左到右呀6+6=12
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询