30。这里考察的是C语言中运算符的优先级,先执行括号的程序,然后执行逗号运算符,先执行a=2*3,再执行a*5,取右操作数,然后赋值给i,就是30。
代码如下:
#include
int main(){
int i,a;
printf("输出i的值为:");
i =(a=2*3,a*5),a+6;
printf("%d\n",i);
return 0;
}
程序运行结果:
扩展资料
C语言中,逗号运算符确保操作数被顺序地处理:先计算左边的操作数,再计算右边的操作数。右操作数的类型和值作为整个表达式的结果。左操作数只是为了副作用需要而被计算,它其值会被丢弃。逗号运算符的优先级是所有运算符中最低的。
参考资料:百度百科-C语言
这个应该是选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语言,这个一定要会哦。如果还不懂可以追问我哦。呵呵。逗号表达式的特点不知道的话可以去书上查下。
选c 30,这个结果i=30,a=6。像这种并列逗号什么的,赋值是取第一个的。
逗号表达式,括号里从左到右,而且A的值是传递的。故为30
12,因为,运算符是从左到右呀6+6=12