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