有以下程序: float f1(float n) { return n*n; } float f2(float n) { return 2*n; } main() { float(*p1)(float),(*p

admin2010-09-05  14

问题 有以下程序:
   float f1(float n)
   {  return n*n;  }
   float f2(float n)
   {  return 2*n;  }
   main()
   {  float(*p1)(float),(*p2)(float),(*t)(float),y1,y2;
   p1=f1;p2=f2;
   y1=p2(p1(2.0));
   t=P1;p1=p2;p2=t;
   y2=p2(p1(2.0));
   printf("%3.0f,%3.0f\n",y1,y2);
   }
   程序运行后的输出结果是【  】。

选项

答案8,16

解析 float(*p1)(float)是定义p1为指向函数的float型的指针变量。因此p1=f1;p2=f2;表示p1指向函数f1,p2指向函数f2,故所有y1=p2 (p1(2.0))=f2(f1(2.0))=8;后面将p1与p2互换,y2=f1(f2(2.0))=16。
转载请注明原文地址:https://jikaoti.com/ti/YFI0FFFM
0

最新回复(0)