仔细阅读下面程序,请给出运行结果( )。#include<stdio.h>#in

免费题库2022-08-02  56

问题 仔细阅读下面程序,请给出运行结果( )。#include<stdio.h>#include<math.h>int f1(int x){return x*x;}int f2(int x){return x*x*x;}main( ){int x=3,y1,y2,y3,y4;int(*f)( );f=f1;y1=(*f)(x);y2=f1(x);f=f2;y3=f(x);y4=f2(x);printf(“y1=%d,y2=%d,y3=%d,y4=%d\n”,y1,y2,y3,y4);}A.y1=9,y2=9,y3=27,y4=27B.y1=3,y2=9,y3=27,y4=9C.y1=3,y2=3,y3=9,y4=9D.y1=3,y2=9,y3=9,y4=27

选项 A.y1=9,y2=9,y3=27,y4=27
B.y1=3,y2=9,y3=27,y4=9
C.y1=3,y2=3,y3=9,y4=9
D.y1=3,y2=9,y3=9,y4=27

答案 A

解析 题中y2和y4是直接函数调用,毫无疑问是9和27,关键在于f=f1是将函数指针f指向了函数f1,因此y1=(*f)(x)本质是调用了函数f1,其结果与直接调用y2=f1(x)相同,y3同理。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2424410.html

最新回复(0)