有以下程序 int fa(int x) { return x*x; } int fb(int x) { return x*x*x; } int f(int (*f1)(),int (*f2)(

admin2013-06-11  31

问题 有以下程序      int fa(int x)      {   return x*x;  }      int fb(int x)      {  return x*x*x;  }      int f(int  (*f1)(),int  (*f2)(),int x)      {  return f2(x)-f1(x);  }      main()      {  int i;          i-f(fa, fb,2); printf("%d \n",i);      }         程序运行后的输出结果是

选项 A、4
B、1
C、4
D、8

答案4

解析 函数f()有3个形式参数f1、f2和x,其中f1、f2是指向函数的指针变量。在main()函数中执行了函数调用“f(fa,fb,2)”,从而使f()的形式参数f1指向了fa,形式参数f2指向了fb,把实参2传给了行参变量x。函数f()中的 return语句中的相当于“fb(2)-fa(2)”  (fb(2)的返回值为2*2*2=8,fa(2)返回值为2*2=4)即(8-4),值为4.函数f()执行后把返回值4赋给了i,输出i的值是4.所以4个选项中C正确。
转载请注明原文地址:https://kaotiyun.com/show/AxJp777K
0

最新回复(0)