问题
单项选择题
有以下程序:
fun(int x,int y)(return (x+y);)
main()
int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++);
printf("%d\n",sum);
执行后的输出结果是()。
A.6
B.7
C.8
D.9
答案
参考答案:C
解析: 本题考查的知识点是逗号表达式。因为整个逗号表达式的值为其最右边一个子表达式的值,所以程序中传递给fun()函数的第1个实参(a++,b++,a+b)的值为a+b的值。但是,在计算a+b之前,已经先让a和b各自增1了,所以第1个实参值为(1+1)+(2+1)=5。第2个实参c++的值为变量c自增之前的值3。所以,函数返回的值为5+3=8。故应该选择C) 。