二級C語言一道上機題 關於函式的遞迴呼叫

2023-04-26 21:40:02 字數 2573 閱讀 1976

1樓:網友

if (n > 1)

return (n*fun(n-1));

return 1;

如果 n>1 執行 return (n*fun(n-1));否則執行 return 1;

因為 main 函式裡呼叫的是 fun(10); 所以對於 fun 函式,入口引數 n 等於10;10 大於 1,所以執行 return (n*fun(n-1));又呼叫了 fun(9)。。

就這樣一直呼叫到 fun(1); 此時 n > 1 不成立,所以不執行。

return (n*fun(n-1));

return ( 2 * fun( 1 ) fun(2) 繼續向上返回,直到 fun(10);

2樓:又現樂

條件成立的話返回值為1

3樓:

long fun(int n)

中的long說明這個函式有返回值 所以要用return 1

若是void 則不用了。

c語言,求這道題用遞迴函式的答案題目如圖

4樓:匿名使用者

遞迴,就是在執行的過程中呼叫自己。

構成遞迴需具備的條件:

函式巢狀呼叫過程示例。

1. 子問題須與原始問題為同樣的事,且更為簡單;

2. 不能無限制地呼叫本身,須有個出口,化簡為非遞迴狀況處理。

在數學和電腦科學中,遞迴指由一種(或多種)簡單的基本情況定義的一類物件或方法,並規定其他所有情況都能被還原為其基本情況。

例如,下列為某人祖先的遞迴定義:

某人的雙親是他的祖先(基本情況)。某人祖先的雙親同樣是某人的祖先(遞迴步驟)。斐波納契數列(fibonacci sequence),又稱**分割數列,指的是這樣乙個數列:

..i[1]

斐波納契數列是典型的遞迴案例:

遞迴關係就是實體自己和自己建立關係。

fib(0) =1 [基本情況] fib(1) =1 [基本情況] 對所有n > 1的整數:fib(n) =fib(n-1) +fib(n-2)) 遞迴定義] 儘管有許多數學函式均可以遞迴表示,但在實際應用中,遞迴定義的高開銷往往會讓人望而卻步。例如:

階乘(1) =1 [基本情況] 對所有n > 1的整數:階乘(n) =n * 階乘(n-1)) 遞迴定義] 一種便於理解的心理模型,是認為遞迴定義對物件的定義是按照「先前定義的」同類物件來定義的。例如:

你怎樣才能移動100個箱子?答案:你首先移動乙個箱子,並記下它移動到的位置,然後再去解決較小的問題:

你怎樣才能移動99個箱子?最終,你的問題將變為怎樣移動乙個箱子,而這時你已經知道該怎麼做的。

如此的定義在數學中十分常見。例如,集合論對自然數的正式定義是:1是乙個自然數,每個自然數都有乙個後繼,這乙個後繼也是自然數。

德羅斯特效應是遞迴的一種視覺形式。圖中女性手持的物體中有一幅她本人手持同一物體的小**,進而小**中還有更小的一幅她手持同一物體的**,依此類推。

德羅斯特效應。

又例如,我們在兩面相對的鏡子之間放一根正在燃燒的蠟燭,我們會從其中一面鏡子裡看到一根蠟燭,蠟燭後面又有一面鏡子,鏡子裡面又有一根蠟燭……這也是遞迴的表現。

c語言函式遞迴題

5樓:網友

if(k>0)fun(k-1);

printf("%d",k);

可以看到遞迴的結束條件是k<=0,更準確點說k=0時,就不再遞迴了,所以首先輸出的是0,然後返回到上乙個函式,輸出1,依次類推。最後輸出的結果是012345。選b

c語言遞迴函式 第12題

6樓:匿名使用者

遞迴求1到n的和啊 1+2+3+4 =10你自己帶進去算一下也可以啊。

f(4) =4 +f(3)

f(3) =3 +f(2)

f(2) =2 +f(1)

f(1) =1+f(0)

f(0)的時候n=0 f(n) 不成立返回值是n 就是0啊所以f(0) =0

然後把後面的套到第乙個 f(4) =4 +3 +2+1+0;

c語言遞迴呼叫問題。求大神幫我詳細講下這題的執行過程,謝謝

7樓:匿名使用者

f(a,9)

9>1,t1=f(a,8)

8>1,t2=f(a,7)

7>1,t3=f(a,6)

6>1,t4=f(a,5)

5>1,t5=f(a,4)

4>1,t6=f(a,3)

3>1,t7=f(a,2)

2>1,t8=f(a,1)

1不》1,返回a[0]=8

t8=8, a[n-1]=2,8>2成立,返回t8t7=t8=8,a[n-1]=9,8>9不成立,返回 9t6=9,a[n-1]=1,9>1成立,返回t6t5=t6=9,a[n-1]=3,9>6成立,返回t5t4=t5=9,a[n-1]=6,9>6成立,返回t4t3=t4=9,a[n-1]=4,9>4成立,返回t3t2=t3=9,a[n-1]=7,9>7成立,返回t2t1=t2=9,a[n-1]=5,9>5成立,返回t1最終返回值為9

二級c語言程式設計題,二級C語言程式設計題

你好 首先因該大致的看看題目的要求是什麼?大致知道該從那裡入手,這個題目的目的是什麼?做到心中有數。給你說說上機的評分標準吧 你可能會認為對於填空,改錯,程式設計是你做對多少就會給你相應的分值,那就錯了!所以填空題,改錯,要是不能順利的完成的話,那就能做到什麼樣就做到什麼樣,盡量做就可以了,千萬不要...

一道計算機二級c語言的題求詳細解答

c選項的資料型別不對,題目中定義的是字元和整形,所以應該是 c和 d 一道c語言題目,求解答!scanf 函式中沒有精度控制。如 scanf 5.2f a 是非法的。不能企圖用此語句輸入小數為2位的實數。則排除c b,d沒有 排除 格式輸入嚴格按照格式輸入就好了,如果是c的話輸入得是 6.2283....

計算機等級考試二級c語言上機題庫及答案

答案 int fun int score,int m,int below return k 2 第2題 請編寫函式fun,它的功能是 求出1到100之內能北7或者11整除,但不能同時北7和11整除的所有證書,並將他們放在a所指的陣列中,通過n返回這些數的個數。答案 void fun int a,in...