遞迴函式最終會結束,那麼這個函式一定?

2021-06-22 03:27:16 字數 510 閱讀 7344

遞迴函式最終會結束,那麼這個函式一定(不定項選擇):

1. 使用了區域性變數 2. 有乙個分支不呼叫自身

3. 使用了全域性變數或者使用了乙個或多個引數

這是一道簡單的選擇題,但包含的內容並不算簡單,而不定項選擇更加大了難度。我一眼看去,自然就選擇了2和3。

1顯然不是,區域性變數只在一次呼叫區域性範圍有效,出了這次呼叫的範圍就無效了,它不能控制遞迴的結束。(這個選項是考查區域性變數生命週期/有效範圍的問題)需要注意的就是區域性變數不是區域性靜態變數。

對於2,很自然了,如果沒有乙個分支不呼叫自身,遞迴就不會結束了。(這是在考查遞迴的定義)

對於3,這是最有迷惑性的,因為使用全域性變數或使用乙個或多個引數的確可以控制遞迴的結束,但是不是只有這兩種方式呢?所以題目中指出了"一定"。答案是並不是只有這兩種方式。

呵呵,所以,正確答案是2,只有這乙個。

以上終止條件,我只想到前兩個,後面的是綜合了其他人的"創意":d

遞迴函式最終會結束,那麼這個函式一定(不定項選擇)

1.使用了區域性變數 2.有乙個分支不呼叫自身 3.使用了全域性變數或者使用了乙個或多個引數 1顯然不是,區域性變數只在一次呼叫區域性範圍有效,出了這次呼叫的範圍就無效了,它不能控制遞迴的結束。這個選項是考查區域性變數生命週期 有效範圍的問題 需要注意的就是區域性變數不是區域性靜態變數。對於2,很自...

javascript(一)建構函式遞迴

最近專案中有個需求,react專案中做乙個選單配置項的功能,即傳入某個url的引數,匹配出選單資料內該選單內的子選單項及其元件。資料體 選單配置項 export const menus 即進入usermanage元件,傳入 usermanage 匹配出該選單下的子選單項。import from ro...

C遞迴函式(一) 簡單介紹

我們先來看乙個簡單的函式呼叫例子 include 定義乙個簡單的列印函式 print num void print num int n intmain 執行結果 n 5 ok,現在我們對這個c程式進行一些改造 include void print num int n int main 執行結果 n ...