作业帮 > 综合 > 作业

一道程序题,麻烦看看我思路错在哪

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/16 01:17:51
一道程序题,麻烦看看我思路错在哪
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);
}
程序运行后的输出结果是A
A)8,16 B)8,8 C)16,16 D)4,8
y1我知道等于8,但y2根据程序y2=p2( p1(2.0) )等价于y2=f1(f2(2.0)),那不是先算float f2(float n),return 4,再算float f1(float n),return 8...为什么会是16呢
float f1(float n),return 8 你是怎么算的,参数是4,调用f1是 4 * 4,等于16啊