问题 单项选择题

以下程序运行后的输出结果是
float fun(int x,int y) return(x+y);
main( )
int a=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));

A.编译出错

B.9

C.21

D.9.0

答案

参考答案:B

解析: 本题考查函数调用。将a、b、c的值代入函数调用fun((int)fun(a+c,h),a-c)可得到fun((int)fun(10,5),-6)。函数调用分为两步:①调用函数fun(10,5);②利用强制类型转换(int)将函数fun(10,5)的返回值15.000000转换成15,再将其结果作为函数的实参进行第二次函数调用fun(15,-6),其结果为9。

单项选择题 案例分析题
单项选择题