免費開始練習
地特三等申論題 111年 [電力工程] 計算機概論

第 一 題

📖 題組:
二、Scheme 是一種函式程式語言(functional programming language),其中定義了一個函式如下: (define (mystery input-list) (cond ((null? input-list) 0) (else ( + 1 (mystery (cdr input-list)))))) (一)執行下列函式的呼叫,結果為何?(5 分) (mystery (list 4 5 6)) (二)解釋這個 mystery 函式,在計算什麼?(5 分) (三)用 Scheme 語法,定義出一個函式 factorial n,這個函式要算出 n!。(10 分)
📝 此題為申論題,共 3 小題

小題 (一)

執行下列函式的呼叫,結果為何?(5 分) (mystery (list 4 5 6))

思路引導 VIP

面對遞迴(Recursion)程式追蹤題,應先找出「終止條件(Base case)」與「遞迴呼叫(Recursive call)的縮減方式」。此題利用逐步代入法,追蹤 Scheme 中 cdr(取得去除首項後的剩餘串列)的執行過程,將清單元素逐層展開即可得出結果。

🤖
AI 詳解
AI 專屬家教

【解題思路】運用逐步代入法(Step-by-step trace),追蹤 Scheme 遞迴函式中終止條件(Base case)與遞迴步驟的執行邏輯。 【詳解】 已知:輸入參數為串列 (list 4 5 6)。函式 mystery 的邏輯為:若串列為空(null?)則回傳 0;否則回傳 1 加上對「去除首項之剩餘串列(cdr)」進行遞迴呼叫的結果。

小題 (二)

解釋這個 mystery 函式,在計算什麼?(5 分)

思路引導 VIP

考生應先拆解 Scheme 語法中的遞迴結構:觀察終止條件(Base case)與遞迴步驟(Recursive step)。終止條件為空串列時回傳 0,遞迴步驟為每次取串列剩餘部分(cdr)並將結果加 1,由此即可推導出其作用為計算串列元素數量。

🤖
AI 詳解
AI 專屬家教

【破題】此 mystery 函式的作用為計算輸入串列(list)的長度(即元素總個數)。 【論述】 一、基本條件(Base Case):當輸入的串列為空(null? input-list)時,回傳 0,代表空串列的長度為 0。

小題 (三)

用 Scheme 語法,定義出一個函式 factorial n,這個函式要算出 n!。(10 分)

思路引導 VIP

看到階乘 (n!) 應立刻聯想到遞迴 (Recursion) 的兩個核心要件:基礎條件 (Base Case) 與遞迴步驟 (Recursive Step)。在 Scheme 中,利用 define 定義函式,並透過 ifcond 控制條件分支,實現 n 乘以 (n-1)! 的遞迴呼叫即可得解。

🤖
AI 詳解
AI 專屬家教

【破題】 利用 Scheme 的遞迴(Recursion)特性,可透過定義基礎條件與遞迴公式來計算階乘(Factorial)。 【論述】

升級 VIP 解鎖