國中教甄|資訊科技資訊科技102 年第 6 題單選題
下列關於遞迴呼叫(recursive call)的敘述,何者正確?
A函數不可以呼叫函數本身
B函數內部必須定義何時為遞迴結束正確答案
C不可使用於 FOR 迴圈當中
D與非遞迴的程式相較,設計上會耗用較多的程式碼
B正確答案
遞迴呼叫必須設定明確的終止條件以避免無窮遞迴,且通常能使程式碼更為簡潔。
逐選項解析
A函數不可以呼叫函數本身✕ 錯誤
遞迴(Recursion)的核心定義即是函數在執行過程中呼叫自身,因此函數可以呼叫函數本身。
B函數內部必須定義何時為遞迴結束✓ 正確
遞迴函數內部必須定義明確的終止條件(Base Case),否則會陷入無窮遞迴,最終導致堆疊溢位(Stack Overflow)而使程式崩潰。
C不可使用於 FOR 迴圈當中✕ 錯誤
遞迴函數的內部或呼叫遞迴的過程中,皆可自由搭配 FOR 迴圈、WHILE 迴圈等各種控制結構使用,並無限制。
D與非遞迴的程式相較,設計上會耗用較多的程式碼✕ 易錯陷阱
遞迴通常能以更精簡的程式碼解決具有自我相似性的複雜問題(如樹的遍歷、費氏數列),因此程式碼行數通常較非遞迴(迭代)少;但其代價是會消耗較多的記憶體(呼叫堆疊)與執行時間。考生易將耗用較多系統資源與耗用較多程式碼混淆。
立即註冊,看進階詳解與知識整理
這題的進階詳解與知識整理,註冊就能看 · 每天 2 題免費
精選詳解- 秒殺解題技巧與破題關鍵
- 關鍵知識表整理
- 陷阱與易錯提醒
- 同考點歷屆題庫連續刷題與錯題本