问题 单项选择题

有以下程序
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

解析: 本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符将一个表达式转换成所需类型。如:(double)a是将a转换成double类型;(int)(x+y)是将x+y的值转换成整型。
本题可按部就班地逐步运算:
fun((int)fun(a+c,b),a-c)
fun((int)fun(10,5),2-8)
fun((int)15.000000,-6)
fun(15,-6)
9

单项选择题
单项选择题