填空题 有以下程序: 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); } 程序运行后的输出结果是{{U}} 【13】 {{/U}}。
  • 1、
【正确答案】 1、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。