112 年 國立中央大學網路學習科技研究所《計算機概論》
第 1 題
相對於單處理器的系統,使用多處理器系統 (multiprocessor system) 的主要優點中,不包含下列何者?
(A) 增加吞吐量 (throughput)
(B) 較具經濟效益 (economy of scale)
(C) 增加可靠度 (reliability)
(D) 提升時脈 (clock rate)
登入後即可作答並保存紀錄。
此題考查多處理器系統的優點。多處理器系統(例如雙核心、四核心處理器)的設計目標是為了提升整體運算能力與效率,而不是單一處理器的時脈速度。
- 吞吐量 (throughput):由於有多個處理器可以同時執行任務,系統總體上能在單位時間內完成更多的工作,因此吞吐量會增加。
- 經濟效益 (economy of scale):雖然多處理器系統的初期成本較高,但相較於購買多台獨立的單處理器電腦來達到相同的運算能力,整體而言可能更具經濟效益。
第 2 題
在大數據的時代下,許多利用人工智慧運用在學習的情境之中,其中應特別重視下列何者,可加強社會信任。
(A) 能即時儲存資料
(B) 保護個人隱私
(C) 支援無縫式學習
(D) 重視教學評量
登入後即可作答並保存紀錄。
此題探討在大數據與人工智慧應用於學習情境時,何者是建立社會信任的關鍵。
- (A) 能即時儲存資料:即時儲存資料是許多系統的基本功能,本身不直接關聯到信任。
- (B) 保護個人隱私:在大數據時代,個人學習資料(如學習歷程、成績、行為模式)會被大量收集和分析。若這些資料未被妥善保護,可能被濫用或洩漏,嚴重損害個人權益,也破壞使用者對系統的信任。因此,保護個人隱私是建立社會信任的基石。
第 3 題
對於自然語言處理的敘述,下列何者錯誤?
(A) 自然語言處理中越來越多地使用機器自動學習的方法來獲取語言知識。
(B) 自然語言處理可以將一篇英文文章翻譯成中文文章。
(C) 自然語言處理以單詞出現的次數來衡量單詞重要性。
(D) 自然語言處理需要將文字轉化為向量以進行後續處理及篩選。
登入後即可作答並保存紀錄。
此題考查對自然語言處理 (Natural Language Processing, NLP) 的理解。我們逐一分析各選項:
-
(A) 自然語言處理中越來越多地使用機器自動學習的方法來獲取語言知識。
這是正確的。現代 NLP 很大程度上依賴機器學習(特別是深度學習)技術,例如從大量文本資料中學習語言規則、語義、語法等,這被稱為「自動學習」或「自監督學習」。 -
(B) 自然語言處理可以將一篇英文文章翻譯成中文文章。
這是正確的。機器翻譯是 NLP 的一個重要應用領域,例如 Google Translate、DeepL 等都是 NLP 技術的體現,能夠實現跨語言的文本翻譯。 -
(C) 自然語言處理以單詞出現的次數來衡量單詞重要性。
這句話「以單詞出現的次數來衡量單詞重要性」是 錯誤的。
雖然詞頻 (Term Frequency, TF) 是早期 NLP 中衡量詞語重要性的一個指標,但它有其局限性。例如,像「的」、「是」、「在」這類常見的虛詞,在任何文本中都出現頻率很高,但它們對文章的實質內容貢獻不大。
現代 NLP 中,衡量詞語重要性的方法更為複雜,例如:
第 4 題
將二進位數值 1111 轉換成十六進位,其結果為
(A) e
(B) 7
(C) f
(D) 15
登入後即可作答並保存紀錄。
此題考查二進位數到十六進位數的轉換。
轉換步驟如下:
-
二進位轉十進位:
二進位數 1111 可以寫成:
所以,二進位 1111 等於十進位 15。 -
十進位轉十六進位:
十六進位使用 0-9 和 A-F 來表示數字,其中 A=10, B=11, C=12, D=13, E=14, F=15。
第 5 題
請問下列何者是此二元樹的中序遍歷 (Inorder Traversal) ?
🖼️【此處有附圖,請對照原卷】
(A) [1, 2, 4, 5, 3, 6]
(B) [4, 2, 5, 1, 3, 6]
(C) [4, 5, 2, 6, 3, 1]
(D) [1, 2, 3, 4, 5, 6]
登入後即可作答並保存紀錄。
核心觀念
中序遍歷(Inorder Traversal)的順序是:
對每個節點都要依照相同規則遞迴處理。
解題方法
圖中的二元樹結構為:
- 根節點 的左子樹為 ,右子樹為 。
- 節點 的左子節點為 ,右子節點為 。
- 節點 沒有左子節點,右子節點為 。
先處理以 為根的左子樹:
再訪問根節點 :
最後處理以 為根的右子樹:
因此中序遍歷結果為:
選項分析
第 6 題
下列真值表是哪一種以 A、B 為輸入之邏輯運算?
| A | B | 結果 |
|---|---|---|
| 1 | 1 | 0 |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
(A) A OR B
(B) A AND B
(C) NOT (A OR B)
(D) NOT (A AND B)
登入後即可作答並保存紀錄。
核心觀念
本題考查二輸入邏輯運算的真值表:
- OR(或):只要 、 至少一個為 ,結果即為 。
- AND(且):只有 且 時,結果才為 。
- NOT(非):將原本的 變成 ,原本的 變成 。
各選項的邏輯表示式為:
解題方法
直接將四種輸入組合逐一代入各邏輯運算,比較結果欄即可。
題目給出的結果在四種輸入下全部為 :
| 題目結果 | ||
|---|---|---|
| 1 | 1 | 0 |
| 0 | 0 | 0 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
這代表此真值表所描述的是「永遠輸出 」的常數邏輯函數:
它不是一般的 OR、AND、NOR 或 NAND 運算。
選項分析
(A) :錯誤
OR 運算只要有任一輸入為 ,結果就是 :
因此 OR 的結果應為:
| 1 | 1 | 1 |
| 0 | 0 | 0 |
| 0 | 1 | 1 |
| 1 | 0 | 1 |
與題目全部為 的結果不符。
(B) :錯誤
AND 運算只有在兩個輸入皆為 時才輸出 :
其餘組合皆為 ,因此真值表應為:
第 7 題
物件導向程式設計中,下列何者敘述有誤?
(A) 父類別比其子類別要更加具體化。
(B) 並非所有的程式語言都直接支援「物件導向程式設計」的結構。
(C) 類別代表一群相似的物件。
(D) 抽象是簡化複雜的現實問題的途徑。
登入後即可作答並保存紀錄。
核心觀念
本題考查物件導向程式設計中的類別與物件、繼承及抽象化。
- 類別描述一群具有共同特徵或行為的物件;物件則是類別的具體實例。
- 繼承表示子類別承接父類別的特徵與行為,並可加以擴充或改寫。父類別通常較一般化,子類別則較具體化。
- 抽象化是保留重要特徵、忽略不必要細節,以簡化複雜問題的方法。
解題方法
逐項比對敘述與物件導向的基本定義,尤其留意父類別與子類別的「一般化」和「具體化」方向。父類別涵蓋較廣的概念,子類別是在此基礎上縮小範圍、增加特定條件,因此較具體。
選項分析
(A) 父類別比其子類別要更加具體化。—錯誤
父類別通常較一般化,子類別則繼承父類別並增加特定屬性或行為,因此子類別比父類別更具體。例如「動物」可以是父類別,「鳥」是子類別;「鳥」比「動物」更具體。
第 8 題
在雲端運算環境中,下列何者敘述正確?
(A) Software as a Service(SaaS):軟體僅需透過網際網路,而不須透過安裝即可使用。
(B) System as a Service(SaaS):可泛指我們每天接觸的雲服務,例如手機的雲端備份。
(C) Platform as a Service(PaaS):透過網際網路可以使用伺服器或儲存裝置。
(D) Infrastructure as a Service(IaaS):可任意部署基本計算資源,以及控制底層基礎設施。
登入後即可作答並保存紀錄。
核心觀念
本題考雲端服務常見的三種服務模式:SaaS、PaaS 與 IaaS。判斷時要看使用者取得的是「可直接使用的軟體」、「應用程式開發與執行平台」,還是「運算、儲存等基礎資源」。
- SaaS(Software as a Service,軟體即服務):服務提供者管理並提供應用軟體,使用者透過網路使用,例如網頁郵件或線上文書服務。
- PaaS(Platform as a Service,平台即服務):提供開發、測試及執行應用程式的平台,使用者部署自己的應用程式,平台與底層基礎設施由服務提供者管理。
- IaaS(Infrastructure as a Service,基礎設施即服務):提供虛擬伺服器、儲存及網路等運算資源。使用者可配置作業系統與應用程式,但不管理雲端資料中心等底層基礎設施。
解題方法
逐一比對選項中的服務名稱與描述。題目中的關鍵是「軟體」、「平台」及「伺服器或儲存裝置」分別對應哪一層服務;同時留意 IaaS 使用者雖能配置虛擬資源,通常不會控制雲端業者的底層硬體與設施。
選項分析
第 9 題
在三層資料庫管理系統結構中,下列何者敘述錯誤?
(A) 概念(Conceptual):主要是集中在描述整個資料庫的結構,與資料庫管理系統無關。
(B) 外部(External):可以顯示資料是如何實作及儲存在資料庫。
(C) 內部(Internal):用來描述架構中的有關資料庫實際的儲存與存取路徑的完整資訊。
(D) 三層式架構特色在於資料獨立,在下層綱要修改時,不需要也修改上一層。
登入後即可作答並保存紀錄。
核心觀念
本題考查資料庫管理系統的三層式架構,也稱為三綱要架構:
- 外部層(External):描述個別使用者或應用程式所看到的資料視觀,每個視觀只呈現資料庫的一部分。
- 概念層(Conceptual):描述整個資料庫的整體邏輯結構,包括資料項目、資料間的關係及限制條件。
- 內部層(Internal):描述資料在儲存媒體中的實際組織方式,例如檔案配置、索引及存取路徑。
三層架構的重要目的之一是提供資料獨立性:下層綱要的變更,盡量不影響上層綱要或應用程式。
解題方法
判斷各選項時,先抓住三層架構的區別:外部層談使用者視觀,概念層談整體邏輯結構,內部層談實際儲存與存取方式。再將選項中的描述對照到正確層級。
選項分析
(A) 概念(Conceptual):主要是集中在描述整個資料庫的結構,與資料庫管理系統無關。
第 10 題
根據一般作業系統的概念,下列何者不識一個程序(process)可能的狀態?
(A) 建立 new
(B) 執行 running
(C) 就緒 ready
(D) 排程 scheduling
登入後即可作答並保存紀錄。
核心觀念
本題考查作業系統中的程序狀態。一般常見的五狀態模型包含:
- 建立(new):程序正在建立,尚未進入就緒佇列。
- 就緒(ready):程序已具備執行條件,正在等待 CPU。
- 執行(running):程序目前正在 CPU 上執行。
- 等待(waiting/blocked):程序正在等待某個事件,例如 I/O 完成。
- 結束(terminated):程序已完成或被終止。
程序狀態會隨著排程與事件發生而轉換。例如,程序獲得 CPU 時會由就緒轉為執行;時間片用完時,則可能由執行回到就緒。
解題方法
逐一比對選項與常見的程序狀態名稱。若某個詞描述的是程序生命週期中的狀態,就屬於程序狀態;若描述的是作業系統的管理工作或程序選擇機制,就不是程序狀態。
選項分析
第 11 題
對於先到先服務的工作排程法,下列敘述何者錯誤?
(A) 將所需執行時間從小到大排序
(B) 不適合使用者進行交談
(C) 是一種不可奪取(Non-Preemptive)的排程法
(D) 不適用於分時系統
登入後即可作答並保存紀錄。
核心觀念
先到先服務(FCFS)依照工作抵達就緒佇列的先後順序安排執行。先抵達的工作先執行,後抵達的工作依序等待;排程時不會依所需執行時間重新排序。
FCFS 通常是不可奪取式排程:工作一旦取得處理器,就會持續執行至完成或主動等待,不會因其他工作抵達而被強制中斷。
解題方法
判斷各選項是否符合 FCFS 的定義:
- 排程依據是「抵達順序」,不是「所需執行時間長短」。
- 工作執行期間不會被強制中斷,因此是不可奪取式。
- 長工作可能使後到的短工作或互動工作等待很久,所以不利於交談式使用情境,也不適合分時系統。
選項分析
- (A) 將所需執行時間從小到大排序:錯誤。
這是短工作優先排程(SJF)的排序方式。
第 12 題
下列字元的 ASCII 碼所代表的數值何者最大?
(A) a
(B) z
(C) Z
(D) 9
登入後即可作答並保存紀錄。
核心觀念
ASCII 是用數值表示字元的編碼標準。比較字元的 ASCII 碼,就是比較各字元對應的整數大小。相關字元的 ASCII 碼為:
- 數字字元
9: - 大寫字母
Z: - 小寫字母
a: - 小寫字母
z:
解題方法
將四個選項的 ASCII 碼由小到大排列:
最大值為 ,對應小寫字母 z。
選項分析
第 13 題
給予 個物件,下列哪個排序方法在最差情況下的時間複雜度不為 ?
(A) Merge sort
(B) Bubble Sort
(C) Heap sort
(D) Merge Sort
登入後即可作答並保存紀錄。
核心觀念
本題考查排序法在最差情況下的時間複雜度。 描述輸入規模為 時,執行時間的漸近上界;比較排序常見的複雜度包括 與 。
解題方法
逐一比較各排序法的最差情況時間複雜度:
- 若排序需要比較大量元素對,可能達到 。
- 若排序能透過分割後合併,或以堆積結構反覆取出元素,通常可達 。
因此,找出最差情況不是 的選項即可。
選項分析
(A) Merge sort:錯誤。
合併排序將資料分成兩半遞迴排序,再花 時間合併。其遞迴式為
依主定理可得最差情況時間複雜度為 。
第 14 題
MySQL 屬於哪種資料庫?
(A) 關聯式資料庫
(B) 網狀式資料庫
(C) 多維式資料庫
(D) 階層式資料庫
登入後即可作答並保存紀錄。
核心觀念
本題考資料庫的分類。MySQL 是關聯式資料庫管理系統,資料主要以資料表(table)儲存;資料表由列與欄組成,表與表之間可透過共同欄位建立關聯,並使用 SQL 查詢與管理資料。
解題方法
辨認 MySQL 的資料模型即可作答:它以資料表組織資料,符合關聯式資料庫的特徵,因此選擇「關聯式資料庫」。
選項分析
- (A) 關聯式資料庫:正確。 MySQL 使用資料表儲存資料,並可透過主鍵、外鍵等欄位建立表格間的關聯。
- **(B) 網狀式資料庫:錯誤。
第 15 題
在資料庫中,Metadata 具有下列哪項功能?
(A) 促進資料流通與傳播
(B) 幫助資料長期保存
(C) 說明資料型態
(D) 以上皆是
登入後即可作答並保存紀錄。
核心觀念
Metadata(詮釋資料)是「描述資料的資料」,用來說明資料的內容、格式、結構、來源、建立時間及使用方式等資訊。它讓資料更容易被理解、搜尋、交換與管理。
在資料庫中,詮釋資料常用來描述資料表、欄位名稱、資料型態、欄位限制及資料間的關係;在更廣泛的資料管理情境中,也能協助資料流通、長期保存與後續使用。
解題方法
判斷各選項是否屬於詮釋資料的功能:
- 檢視詮釋資料能否幫助資料被找到並交換。
- 檢視它能否保留資料的背景、來源與格式等資訊,以利長期保存。
- 檢視它是否能描述資料的結構與型態。
三項功能皆成立,因此選擇「以上皆是」。
選項分析
第 16 題
中央處理器(CPU)「不」包含下列哪些元件?
(A) 算術邏輯單元
(B) 控制單元
(C) 暫存器
(D) 主記憶體
登入後即可作答並保存紀錄。
核心觀念
CPU(中央處理器)負責執行指令,基本組成包括:
- 算術邏輯單元(ALU):進行算術運算與邏輯判斷。
- 控制單元(CU):解碼指令,並協調各元件執行指令。
- 暫存器:CPU 內部高速的小型儲存空間,用來暫存指令、資料與運算結果。
主記憶體(如 RAM)則是儲存程式與資料的記憶體,與 CPU 是電腦中的不同元件,不屬於 CPU 本身。
解題方法
逐一比對選項與 CPU 的基本組成。屬於 CPU 內部的運算、控制或暫存元件,都是 CPU 的組成部分;負責儲存程式與資料的主記憶體,則位於 CPU 之外。因此,題目所問「不包含」的元件是主記憶體。
選項分析
第 17 題
關於 RAID 磁碟陣列的敘述何者錯誤?
(A) 具備容錯機制
(B) 故障時發出警告,提醒使用者趕快備份重要資料
(C) RAID 5 安全性較 RAID 1 高
(D) RAID 5 的硬碟需求至少 3 顆
登入後即可作答並保存紀錄。
核心觀念
RAID(獨立磁碟冗餘陣列)把多顆硬碟組成一個儲存系統,利用鏡像或同位元等方式,在部分硬碟故障時維持資料可用。RAID 的容錯能力取決於陣列層級與硬碟配置;它不能取代異地備份,因為誤刪、惡意軟體或整組設備損毀,仍可能讓資料無法復原。
- RAID 1:以鏡像方式保存相同資料。常見的雙碟 RAID 1 可容忍其中一顆硬碟故障。
- RAID 5:把資料與同位元資訊分散寫入多顆硬碟,可容忍一顆硬碟故障。至少需要三顆硬碟;若各碟容量相同,容量約為 顆硬碟的總容量。
解題方法
先判斷各選項所述是否符合 RAID 的基本容錯能力,再比較 RAID 1 與 RAID 5 的故障承受能力。RAID 5 至少需要三顆硬碟;常見雙碟 RAID 1 與 RAID 5 都能承受一顆硬碟故障,因此不能據此認定 RAID 5 的安全性較高。
選項分析
(A) 具備容錯機制:正確。
RAID 1 以鏡像提供冗餘;RAID 5 以分散式同位元提供冗餘。兩者都能在特定硬碟故障時維持資料存取。
第 18 題
下列有關編譯式語言與直譯式語言,何者有誤?
(A) 直譯式語言在執行時會一行一行將程式執行
(B) Python 屬於直譯式語言
(C) 譯式語言的程式開發與除錯速度會較直譯語言快
(D) 直譯式語言速度會比編譯式語言要慢
登入後即可作答並保存紀錄。
核心觀念
本題考查編譯式與直譯式語言的執行方式,以及兩者在開發、除錯與執行速度上的一般差異。
- 編譯式語言:程式通常先由編譯器轉換成機器碼或其他可執行形式,再執行。編譯階段可能需要較多時間,但程式執行時通常較有效率。
- 直譯式語言:程式執行時由直譯器讀取並執行指令,通常較容易快速修改並測試。
- 速度比較:一般而言,編譯式程式執行速度較快;直譯式程式因執行時仍需經過直譯器處理,速度通常較慢。
這些是入門課程常用的概括比較。實際語言可能採用混合方式,例如 Python 會先將程式轉成位元碼,再由直譯器執行。
解題方法
逐一檢查選項是否符合兩種語言的典型特性,尤其注意「開發與除錯速度」和「程式執行速度」是不同概念:
- 直譯式語言通常較方便修改、測試與除錯。
- 編譯式程式通常執行較快。
- 若選項把上述特性對調,即為錯誤敘述。
選項分析
第 19 題
學習管理平台的資料庫中,下列哪個最適合當作個人資料表的主鍵(Primary Key)?
(A) 學生姓名
(B) 學生地址
(C) 學生學號
(D) 學年度
登入後即可作答並保存紀錄。
核心觀念
主鍵(Primary Key)是資料表中用來唯一識別每一筆資料的欄位或欄位組合。合適的主鍵必須能區分不同資料列,且不可為空值;實務上也應避免容易變動的欄位,以維持資料識別的穩定性。
個人資料表的每筆資料代表一位學生,因此主鍵應能唯一識別學生本人。
解題方法
逐一判斷選項是否具有「唯一識別學生」的能力:
- 若多人可能共用同一個值,該欄位就無法單獨識別每位學生。
- 若欄位描述的是資料而非學生身分,也不適合作為個人資料表的主鍵。
- 若學校為每位學生編配唯一且不重複的識別碼,該欄位適合作為主鍵。
選項分析
第 20 題
下列何者不屬於人工智慧(Artificial Intelligence)的主要技術?
(A) Fuzzy Logic(模糊邏輯)
(B) Machine Learning(機器學習)
(C) Real Time System(即時系統)
(D) Natural Language Processing(自然語言處理)
登入後即可作答並保存紀錄。
核心觀念
本題考查人工智慧的主要技術,以及「人工智慧技術」與「系統運作特性」的區別。人工智慧技術通常用來讓電腦執行需要推理、學習、語言理解或處理不確定資訊的工作。
解題方法
逐一判斷各選項的用途:若選項描述的是讓電腦具備智慧能力的方法,便屬於人工智慧技術;若描述的是系統對時間限制的要求,則不屬於人工智慧的主要技術。
選項分析
- (A) Fuzzy Logic(模糊邏輯):屬於人工智慧技術。模糊邏輯以程度值表示命題的真假,能處理不精確或帶有模糊性的資訊。
- (B) Machine Learning(機器學習):屬於人工智慧技術。
第 21 題
以下針對機器學習的描述何者「錯誤」?
(A) 透過花朵的特徵來自動將特徵比較接近的歸類為一群,是屬於分類演算法的概念。
(B) 分群的目標在於透過資料的特徵找到隱藏的結構。
(C) 監督學習的訓練集需要有標籤。
(D) 只要是分群演算法都是都屬於非監督學習。
登入後即可作答並保存紀錄。
核心觀念
本題考查機器學習中的分類、分群與監督式學習:
- 分類是監督式學習,訓練資料已有類別標籤,模型學習如何將新資料分到已知類別。
- 分群是非監督式學習,資料沒有預先提供的類別標籤,演算法依照特徵相似程度將資料分組,以探索資料中的結構。
- 監督式學習的訓練資料包含輸入資料及其對應標籤。
解題方法
逐項比對敘述中的任務與定義。關鍵在於分辨「把資料依相似特徵分成群」和「依已知標籤預測類別」:前者是分群,後者才是分類。
選項分析
第 22 題
下列程式哪一個無法成功執行?
(A)
(B)
(C)
(D)
登入後即可作答並保存紀錄。
核心觀念
本題考查 Python 中布林值、整數與字串的運算規則:
bool是int的子類別,False在數值運算中等同於 。- 字串與整數相乘會重複字串;整數為 時,結果是空字串。
- 兩個字串相加會串接。
- 字串不能乘上非整數數值,例如字串乘上浮點數會引發
TypeError。
解題方法
逐一判斷各運算子的左右運算元型別,再套用 Python 的型別規則:
、、、。
注意 和 都是字串;"3.7" 雖然看起來像小數,因為加了引號,並不是浮點數。
選項分析
(A) print(B*C)
是整數 , 是字串 "3.7"。整數乘字串會重複字串:
print(2 * "3.7")
輸出為:
3.73.7
此選項可以成功執行。
(B) print(A*D)
False 在此乘法中等同於整數 。字串乘以 會得到空字串:
第 23 題
右側程式的輸出為何?
i = 3
while True:
if i % 7 == 0:
break
print('find')
print(i, end=' ')
i += 3
(A)
(B)
(C)
(D) 有錯誤無法執行
登入後即可作答並保存紀錄。
核心觀念
i % 7 == 0檢查i是否為 的倍數;成立時,break會立刻結束while迴圈。- 每次迴圈先檢查條件,再執行迴圈本體。條件成立的那一輪不會執行兩個
print。 print('find')會輸出find並換行;print(i, end=' ')會輸出i,並在後面加一個空格,不換行。
解題方法
逐次追蹤 i 的值。每輪先檢查能否被 整除;未整除時,先輸出 find,再輸出目前的 i,最後將 i 增加 。
迴圈檢查時的 i | 是否為 的倍數 | 本輪輸出 | 增加 後的 i |
|---|---|---|---|
| 3 | 否 | find,接著輸出 3 | 6 |
| 6 | 否 | find,接著輸出 6 | 9 |
| 9 | 否 | find,接著輸出 9 | 12 |
| 12 | 否 | find,接著輸出 12 | 15 |
| 15 | 否 | find,接著輸出 15 | 18 |
| 18 | 否 | find,接著輸出 18 | 21 |
第 24 題
右側程式執行後會有幾個數字被輸出?
def hello(i):
print(i)
if i > 0:
hello(i - 1)
hello(8)
(A) 無
(B) 7
(C) 8
(D) 9
登入後即可作答並保存紀錄。
核心觀念
本題考遞迴函式的呼叫次數,以及程式執行時各敘述的先後順序。
函式 hello(i) 每次呼叫都會先執行 print(i),接著才判斷 i > 0。只要條件成立,就再呼叫 hello(i - 1);當 i 降到 時,條件不成立,遞迴便停止。
解題方法
從 hello(8) 開始,依序列出每次呼叫的參數。每次呼叫都會輸出目前的 :
| 呼叫 | 輸出 | 是否繼續呼叫 |
|---|---|---|
hello(8) | 8 | 是,呼叫 hello(7) |
hello(7) | 7 | 是,呼叫 hello(6) |
hello(6) | 6 | 是,呼叫 hello(5) |
hello(5) | 5 | 是,呼叫 hello(4) |
hello(4) | 4 | 是,呼叫 hello(3) |
hello(3) | 3 | 是,呼叫 hello(2) |
hello(2) | 2 | 是,呼叫 hello(1) |
hello(1) | 1 | 是,呼叫 hello(0) |
hello(0) | 0 | 否,遞迴停止 |
第 25 題
右側程式 scores 存放班上所有同學的分數,請問執行後的敘述何者正確?
scores = [98, 54, 64, 76, 67, 90]
scores.sort()
x = 0
for s in scores:
x += s
a = scores[len(scores) - 1]
b = scores[0]
c = x / (len(scores) - 1)
(A) a 是最高分
(B) b 是最低分
(C) c 是平均分數
(D) x 是所有分數加總
登入後即可作答並保存紀錄。
核心觀念
本題考查串列排序、索引、迴圈累加,以及平均數的計算。
scores.sort():將串列由小到大排序,並直接修改原串列。len(scores):取得串列元素個數。scores[0]:取得第一個元素;排序後是最低分。scores[len(scores) - 1]:取得最後一個元素;排序後是最高分。- 平均數公式為「總分除以人數」。
解題方法
排序前有 6 筆分數。由小到大排序後:
scores = [54, 64, 67, 76, 90, 98]
接著迴圈逐一將分數加到 x:
因此:
a = scores[6 - 1] = scores[5] = 98b = scores[0] = 54c = 449 / (6 - 1) = 89.8
平均分數應以總分除以 6 人: