一道程序題,麻煩看看我思路錯在哪
題目:
一道程序題,麻煩看看我思路錯在哪
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啊
添加新評論