【C語言】程式閱讀題——求fun(5)*w的輸出結果
阿新 • • 發佈:2021-01-08
這道題目是求輸出結果
題目如下:
1 #include<stdio.h> 2 int w=3; 3 int fun(int k) 4 { 5 if(k==0)return w; 6 return (fun(k-1)*k); 7 } 8 int main() 9 { 10 int w=10; 11 printf("%d\n",fun(5)*w); 12 return 0; 13 }
解題過程如下:
第一步:
首先我們知道求的值是fun(5)*10,因為這裡的w是10,新定義的intw=10頂替了舊定義的intw=3;
第二步:
將fun(5)代入到上面的公式中,求得fun(5)的結果為fun(4)*5
第三步:
重複上面的步驟:
得出:
fun(5)的結果為fun(4)*5
fun(4)的結果為fun(3)*4
fun(3)的結果為fun(2)*3
fun(2)的結果為fun(1)*2
fun(1)的結果為fun(0)*1
第四步:
fun(0)代入到上面的公式中,求得fun(0)的結果為3。
之所以這裡為3是因為這裡用的是第一個定義的int w=3;
第五步:
將fun(0)=3代入
fun(1)=fun(0)*1=3;
fun(2)=fun(1)*2=6;
fun(3)=fun(2)*3=18;
fun(4)=fun(3)*4=72;
fun(5)=fun(4)*5=360;
第六步:
第一步中說了最終結果是fun(5)*10;
即最終結果為3600
答案:3600