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

2021-08-15 17:55:32 字數 485 閱讀 5696

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

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

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

對於2,很自然了,如果沒有乙個分支不呼叫自身,遞迴就不會結束了。(這是在考查遞迴的定義:程式語言中,函式func(type a,……)直接或間接呼叫函式本身,則該函式稱為遞迴函式。遞迴函式不能定義為內聯函式。必定存在可使遞迴呼叫終止的條件,否則導致出現無限遞迴。)

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

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

遞迴函式最終會結束,那麼這個函式一定 不定項選擇 1.使用了區域性變數 2.有乙個分支不呼叫自身 3.使用了全域性變數或者使用了乙個或多個引數 這是一道簡單的選擇題,但包含的內容並不算簡單,而不定項選擇更加大了難度。我一眼看去,自然就選擇了2和3。1顯然不是,區域性變數只在一次呼叫區域性範圍有效,出...

JS函式 返回一定範圍的陣列

有這麼一道js程式設計題 編寫乙個js函式,該函式有乙個n 數字型別 其返回值是乙個陣列,該陣列內是n個隨機且不重複的整數,且整數取值範圍是 2,32 首先,定義乙個函式用來返回一定範圍的數值 function getrand a,b 其次,定義乙個函式用來做去重校驗 function checka...

裝飾器基礎知識《須有一定函式基礎》

1 裝飾器本質是函式,功能是裝飾其他函式,即為其它函式新增附加功能。2 裝飾器需要遵循的原則 1 不能修改被裝飾函式的源 2 不能修改被裝飾函式的呼叫方式 即總結起來裝飾器對被裝飾的函式是完全透明的。3.特定場景 假如現在有10個函式,每個函式都有自己要完成的功能,呼叫的時候怎麼呼叫呢?即test1...