问题
单项选择题
有以下程序:
#include<stdio.h>
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,b),a-c)可得到fun((int)fun(10,5),-6)。函数调用分为两步:
①调用函数fun(10,5)。
②利用强制类型转换(int)将函数fun(10,5)的返回值15.000000转换成15,再将其结果作为函数的实参进行第二次函数调用fun(15,-6),其结果为9。