请教:2013年9月全国计算机等级《二级C语言程序设计》命题预测试卷一第1大题第2小题如何解答?
【题目描述】
有以下程序:
fun(int x,int y){return(x+y);}
main
{ int a=1,b=2,c=2,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
}
执行后的结果是( )。
A.6
B.7
C.8
D.9
【我提交的答案】: B |
【参考答案与解析】: 正确答案:C |
表达式a++,b++,a+b是一个逗号表达式,在逗号表达式中,从左向右进行各个表达式的运算,最后一个表达式的值就是逗号表达式的结果,所以表达式a++,b++,a+b的值为5,所以fun函数中的形参x 的值为5;表达式c++先把变量C的值传给形参y,然后c 的值加1,所以y的值为3,因此函数fun((a++,b++,a+b),c++)的返回值为8。