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

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 03:44:44
已知int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量 i 的值是( ) A 6 B 12 C 30 D 36

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

已知int i,a;执行语句“i=(a=2*3,a*5),a+6;”后,变量 i 的值是( ) A 6 B 12 C 30 D 36
这个应该是选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语言,这个一定要会哦.如果还不懂可以追问我哦.逗号表达式的特点不知道的话可以去书上查下.