有以下程序: #include<stdio.h> float fun(int x,int y) { return(x+y); } main() { int a=2,b=5,c=8; printf("%3.

admin2009-01-15  19

问题 有以下程序:    #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

答案2

解析 本题考查函数调用。将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。
转载请注明原文地址:https://kaotiyun.com/show/3sXp777K
0

最新回复(0)