調查局三等申論題
114年
[電子科學組] 計算機概論
第 一 題
📖 題組:
請回答下列程式設計及程式語言的相關問題: 01 def xyz(n): 02 if n <= 1: 03 return n 04 else: 05 return xyz(n - 1) + xyz(n - 2) 06 07 n=int(input()) 08 result=xyz(n) 09 print(result) PROGRAM-2
請回答下列程式設計及程式語言的相關問題: 01 def xyz(n): 02 if n <= 1: 03 return n 04 else: 05 return xyz(n - 1) + xyz(n - 2) 06 07 n=int(input()) 08 result=xyz(n) 09 print(result) PROGRAM-2
📝 此題為申論題,共 2 小題
小題 (一)
開發電腦程式可以使用各種不同型式的程式語言,包含:程序導向式(Procedural Paradigm)和物件導向式(Object-oriented Paradigm)等語言。請說明在物件導向語言中,類別(Class)、方法(Method)與物件(Object)的定義;以及類別和方法這兩者與物件的關係;並舉例說明之。(15 分)
思路引導 VIP
看到這題,應直覺聯想到物件導向的三大基石概念。作答時採「先各別定義、後論述關係、最後實例佐證」的三段式結構,並善用「藍圖(類別)」與「實體(物件)」的經典比喻,舉一個生活化且具備屬性與行為的例子(如汽車、帳戶)以確保完整拿分。
小題 (二)
以下 PROGRAM-2 是使用遞迴(Recursive)方式撰寫的 Python 程式,請說明該程式的功能;並請將該程式中的自定義函數,第 01 行~第 05 行,改用疊代(Iterative)方式寫出其程式碼。(10 分)
思路引導 VIP
看到這題應立刻認出此遞迴結構為經典的「費氏數列(Fibonacci Sequence)」定義。解題時需先精確點出程式功能,接著利用迴圈(for 或 while)搭配暫存變數,將重複的函式呼叫改寫為狀態更新,以符合疊代(Iterative)的要求。