给定程序中, 函数fun的功能是用函数指针指向要调用的函数,并进行调用。
规定在__2__处使f指向函数f1,在__3__处使f指向函数f2。当调用正确时,程序输出:
x1=5.000000, x2=3.000000, x1*x1+x1*x2=40.000000
请在程序的下划线处填入正确的内容并把下划线删除, 使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
给定源程序:
#include
double f1(double x)
{ return x*x; }
double f2(double x, double y)
{ return x*y; }
double fun(double a, double b)
{
__1__ (*f)();
double r1, r2;
f = __2__ ; /* point fountion f1 */
r1 = f(a);
f = __3__ ; /* point fountion f2 */
r2 = (*f)(a, b);
return r1 + r2;
}
main()
{ double x1=5, x2=3, r;
r = fun(x1, x2);
printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n",x1, x2, r);
}
解题思路:
本题主要是考察用函数指针指向要调用的函数。程序中共有三处要填上适当的内容,使程
序能运行出正确的结果。
第一处:定义函数指针的类型,所以应填:double。
第二处:使f指向函数f1,所以应填:f1。
第三处:使f指向函数f2,所以应填:f2。