114 年 國立中山大學資訊管理學系碩士班甲組《計算機概論》

📄 試題原卷 免費註冊後即可對照原始考卷 PDF免費註冊

第 1 題

Which one(s) of the following descriptions for network address translation is(are) NOT true?
A. Port numbers of returned packets are mapped to the IP address and port number of the local network
destination
B. The hosts within the local network utilize public IP addresses
C. Typically, the router has both a private and a public IP address
D. The router utilizes public IP address to communicate with the Internet

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查網路位址轉換(Network Address Translation, NAT)的觀念。NAT 的主要目的是讓一個或多個私有 IP 位址的網路,透過一個或多個公共 IP 位址連接到網際網路。

選項 A 描述了 NAT 的一種常見運作方式,稱為 PAT (Port Address Translation),又稱 NAPT (Network Address Port Translation)。當內部主機發起連線到外部網路時,NAT 裝置(通常是路由器)會記錄下內部主機的私有 IP 位址與 Port 號,並將其轉換成公共 IP 位址與一個新的 Port 號。當外部回應的封包到達時,NAT 裝置會根據 Port 號識別出目標內部主機,並將封包的公共 IP 位址與 Port 號轉換回原始的私有 IP 位址與 Port 號。因此,選項 A 是正確的。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 2 題

Which one(s) of the following is(are) NOT for exploiting the instruction-level parallelism in the execution of a computer program?
A. Superscalar execution
B. Multiple threads execution
C. Out-of-order execution
D. Speculative execution

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查指令層級平行性(Instruction-Level Parallelism, ILP)的技術。ILP 指的是在單一處理器核心內,同時執行多個指令或指令的一部分。

選項 A:Superscalar execution (超純量執行) 是一種處理器設計技術,它擁有兩個或更多個獨立的執行單元(如 ALU、浮點單元),能夠在一個時脈週期內同時執行多個指令。這直接利用了 ILP。

選項 B:Multiple threads execution (多執行緒執行) 是一種執行緒層級平行性(Thread-Level Parallelism, TLP)或稱行程層級平行性(Process-Level Parallelism, PLP)的技術。它允許一個程式或多個程式同時執行多個執行緒。雖然現代處理器可能同時執行多個執行緒,但「多執行緒執行」本身主要解決的是 TLP/PLP 問題,而不是單純的指令層級平行性,儘管現代處理器也會在每個執行緒內部嘗試利用 ILP。然而,與其他選項相比,它最不直接是「指令層級」的。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 3 題

Which one(s) of the following descriptions for C++ programming language is(are) NOT true?
A. Polymorphism enables one common interface for many implementations
B. All operators can be overloaded for user-defined types
C. Inheritance allows one data type to acquire properties of other data types
D. Templates allow functions and classes to operate with generic types

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查 C++ 語言的特性,特別是物件導向程式設計(Object-Oriented Programming, OOP)的概念。

選項 A:Polymorphism (多型) 是 OOP 的一個核心概念,它允許使用一個統一的介面來處理不同類型的物件。例如,一個基底類別的指標可以指向其衍生類別的物件,並且透過該指標呼叫虛擬函數時,會根據實際物件的型別來執行對應的函數。這正是「多型使多種實現擁有一種通用介面」的體現。此敘述為真。

選項 B:All operators can be overloaded for user-defined types (所有運算子都可以為使用者自訂型別進行重載)。在 C++ 中,許多運算子(如 +, -, *, /, ==, <<, >> 等)可以被重載,讓使用者自訂的類別能夠像內建型別一樣使用這些運算子。然而,並非「所有」運算子都可以重載。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 4 題

What does RAG stand for in LLM techniques?
A. Reinforced Arguments Generation
B. Rectified Articles Generalization
C. Reinforced Adversarial Generation
D. Retrieval Augmented Generation

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查大型語言模型(Large Language Model, LLM)領域的常見技術術語。

RAG 是 Retrieval Augmented Generation 的縮寫。它是一種結合了檢索(Retrieval)和生成(Generation)兩種機制的技術,用於增強大型語言模型的回答能力,特別是在需要提

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 5 題

Which one(s) of the following is(are) NOT for enhancing the generation performance of LLM?
A. Prompt engineering
B. RAG
C. Fine-tuning
D. Code optimization

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查用於增強大型語言模型(LLM)生成效能的技術。

A. Prompt engineering (提示工程):這是指設計和優化輸入給 LLM 的提示(prompt),以引導模型產生期望的輸出。良好的提示工程可以顯著改善 LLM 的回答品質和相關性,因此是用於增強生成效能的方法。

B. RAG (Retrieval Augmented Generation):如前一題所述,RAG 結合檢索和生成,可以讓 LLM 存取外部知識,生成更準確、更詳細的回答,從而增強其生成效能。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 6 題

Which one(s) of the following techniques is(are) appropriate for transfer learning on pretrained deep
neural network models with small-scale datasets or limited computational resources?
A. Using feature extraction on the pretrained model to train new layers
B. Fine-tuning the pretrained model with new layers
C. Using the same network structure of the pretrained model to train a new network
D. Utilizing the prompt engineering technique

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

  • Transfer Learning:將已在大規模資料上訓練好的深度神經網路(pre‑trained model)作為特徵抽取器,或在其基礎上再進行少量調整,以因應新任務。
  • Small‑scale dataset:樣本數極少(通常 < 1,000),容易發生過擬合。
  • Limited computational resources:只能使用少量 GPU 記憶體或 CPU 時間,無法完整重新訓練大型模型。
  • 常見策略
    1. Feature extraction(凍結 pretrained layers,只訓練新加的分類層)。
    2. Fine‑tuning(在保留大部份 pretrained 權重的前提下,只調整少數層或新加層的參數)。
    3. 從頭訓練相同結構:完全不利用預訓練資訊,計算與資料需求皆高。
    4. Prompt engineering:主要針對大型語言模型(LLM)或多模態模型的「提示」設計,與傳統卷積或全連接的深度模型無關,且不減少模型本身的資源消耗。

解題方法

  1. 判斷每個選項所描述的做法是否屬於 Transfer Learning,且是否在 資料與資源受限 的情境下仍能有效。
  2. 依據以下兩個判斷標準:
    • 是否利用 預訓練權重(降低對大量資料的需求)。
    • 是否 僅需少量額外計算(例如只訓練少數新層或凍結大部分參數)。
  3. 逐一對照選項,排除不符合條件的敘述。

選項分析

選項內容說明是否適用於小規模資料/資源受限判斷依據
A. Using feature extraction on the pretrained model to train new layers以預訓練模型作為固定的特徵抽取器,只訓練新加入的全連接層或其他小型分類層。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 7 題

Which one(s) of the following descriptions is(are) true for reinforcement learning?
A. Assisting your colleagues in digital learning
B. Providing incentives for well-performed students in e-learning
C. Q-learning is a kind of reinforcement learning
D. An online learning technique for teaching activities

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

強化學習(reinforcement learning)是一種機器學習方法:智能體在環境中觀察狀態、採取行動,並依環境回饋的獎勵或懲罰調整策略,目標是最大化長期累積獎勵。

常用馬可夫決策過程描述強化學習:

  • 狀態 ss:環境目前的狀況。
  • 行動 aa:智能體在狀態下採取的選擇。
  • 獎勵 rr:行動後從環境收到的回饋。
  • 策略 π\pi:決定在各狀態下如何選擇行動的規則。

因此,強化學習的核心是「智能體與環境互動,根據回饋改善決策」,不只是一般的線上教學,也不是單純給學生獎勵。

解題方法

逐項確認敘述是否符合強化學習的機器學習定義。判斷重點是:描述中是否有智能體透過與環境互動,依獎勵訊號學習行動策略;若只談數位學習、教學活動或鼓勵學生,並未描述這種學習機制,就不屬於強化學習的正式定義。

選項分析

A. Assisting your colleagues in digital learning

協助同事進行數位學習,是一般的數位學習支援或協作行為,沒有提到智能體、環境互動、行動與獎勵回饋,因此不是強化學習的定義。錯誤。

B. Providing incentives for well-performed students in e-learning

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 8 題

Which one(s) of the following descriptions is(are) NOT true for the support vector machine?
A. A linear-separator based approach
B. Maximizing the margin between two classes of data
C. An inherently nonlinear classification technique
D. Utilizing kernel functions to implicitly map data

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查支援向量機(Support Vector Machine, SVM)的原理。SVM 是一種強大的監督式學習模型,常用於分類和迴歸任務,尤其在分類任務中表現出色。

A. A linear-separator based approach (基於線性分隔的方法):SVM 的基本思想是找到一個超平面(hyperplane)來分隔不同類別的資料點。在線性可分的情況下,SVM 尋找一個能夠最大化兩個類別之間邊界(margin)的線性分隔超平面。因此,SVM 的基礎是尋找線性分隔。此敘述為真。

B. Maximizing the margin between two classes of data (最大化兩類資料之間的邊界):這是 SVM 的核心目標。SVM 尋找的超平面是使得離它最近的資料點(稱為支援向量)到超平面的距離最大化。這個距離就是邊界(margin)。最大化邊界有助於提高模型的泛化能力,使其對未見過的資料表現更好。此敘述為真。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 9 題

Which one(s) of the following devices is(are) for relaying IP packets in Internet?
A. Access point
B. Switch
C. Router
D. Modem

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查網路設備在網際網路中傳遞 IP 封包的功能。IP 封包的傳遞是在網路層(Layer 3)進行的。

A. Access point (AP, 存取點):存取點主要用於在無線區域網路(WLAN)和有線區域網路之間建立連接,允許無線設備連接到有線網路。它工作在資料連結層(Layer 2),處理 MAC 位址,不直接處理 IP 封包的路由。

B. Switch (交換器):交換器主要用於區域網路(LAN)內部,根據 MAC 位址(Layer 2 位址)來轉發資料幀。雖然現代的 Layer 3 交換器也能進行 IP 路由,但傳統的交換器(Layer 2 交換器)並不直接路由 IP 封包。在網際網路的骨幹層級,交換器(特別是核心交換器)在傳輸 IP 封包中扮演重要角色,但它們通常是基於 IP 位址進行轉發,這就涉及到路由功能。然而,純粹的交換器(Layer 2)不處理 IP 封包。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 10 題

Which one(s) of the following descriptions is(are) NOT correct for the public key cryptosystem?
A. Usually stronger in security than the pre-shared key encryptions with the same key length
B. The encryption is asymmetric
C. Can be utilized for digital signature
D. A fundamental component of the Transport Layer Security

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查公鑰密碼系統(Public Key Cryptosystem)的特性。公鑰密碼系統是一種加密方法,它使用一對金鑰:一個公開金鑰(public key)用於加密,一個私密金鑰(private key)用於解密。

A. Usually stronger in security than the pre-shared key encryptions with the same key length (通常比相同金鑰長度的預共享金鑰加密更安全):這句話的說法不完全準確。公鑰密碼系統的安全強度與其金鑰長度密切相關,但其「安全性」的來源與對稱式加密(如預共享金鑰加密)不同。公鑰密碼系統的安全性基於數學難題(如大數分解、離散對數問題),而對稱式加密的安全性基於演算法的複雜性和金鑰的保密性。對於相同的金鑰長度,公鑰密碼系統通常需要更長的金鑰才能達到與對稱式密碼系統相當的安全級別。例如,128 位元的 AES 密碼強度很高,而 128 位元的 RSA 密碼則相對較弱,通常需要 2048 位元或更長。因此,聲稱「通常更強」在相同金鑰長度下是錯誤的。此敘述為假。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 11 題

Which one(s) of the following protocols is(are) NOT for virtual private network?
A. L2TP
B. IPSec
C. PPTP
D. PPPOE

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查虛擬私人網路(Virtual Private Network, VPN)的相關協定。VPN 旨在建立一個安全的、加密的通道,讓使用者可以透過公共網路(如網際網路)安全地訪問私有網路資源。

A. L2TP (Layer 2 Tunneling Protocol):L2TP 本身不提供加密,通常會與 IPSec 結合使用(L2TP/IPSec),以提供加密和認證功能,從而構建 VPN。它是一種 VPN 協定。

B. IPSec (Internet Protocol Security):IPSec 是一組協定,用於在 IP 層級提供網路安全。它可以提供認證、資料完整性和機密性(加密)。IPSec 是構建 VPN 的核心技術之一,廣泛用於站點到站點(site-to-site)和遠端存取(remote-access)的 VPN。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 12 題

Ethernet relies on ______ to decide which host a frame should be received.
A. MAC address
B. SSID
C. IP address
D. Port number

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查乙太網路(Ethernet)在傳輸資料幀(frame)時,如何決定目標主機。

乙太網路運行在 OSI 模型的第一層(實體層)和第二層(資料連結層)。在資料連結層,設備之間通訊的基礎是 MAC 位址(Media Access Control address)。每個網路介面卡(NIC)都有一個唯一的 MAC 位址,它是一個 48 位元的硬體位址。

當一個乙太網路幀被發送到網路時,它包含一個目標 MAC 位址。網路上的交換器(switch)會根據這個目標 MAC 位址來決定將該幀轉發到哪個連接埠(port)。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 13 題

Which one(s) of the following descriptions is(are) true for the top-level domain?
A. Country code top-level domains are two letters long
B. '.tv' domain is derived from the word television
C. Not all two-letter top-level domains are country code top-level domains
D. '.com' domain is derived from the word company

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念
本題考查頂層網域 (Top‑Level Domain, TLD) 的分類與命名來源。

  • 國家代碼頂層網域 (ccTLD):由國際標準化組織 (ISO) 3166‑1 中的兩字母國家代碼所構成,如 .tw、.jp、.us。
  • 通用頂層網域 (gTLD):不屬於任何國家,而是根據功能或商業用途命名,常見如 .com、.org、.net,以及近年開放的 .app、.shop 等。
  • 名稱來源:部分 gTLD 直接取自英文詞彙的縮寫或描述(如 .com = “commercial”,.org = “organization”),亦有取自其他字詞的例外(如 .tv 原為圖瓦盧國家代碼,後因「television」的商業價值被廣泛使用)。

解題方法

  1. 先釐清每個選項所陳述的概念是否符合上述定義。
  2. 若涉及「兩字母」與「是否皆屬於國家代碼」的判斷,檢視 ISO 3166‑1 是否有對應的國家代碼。
  3. 若涉及「來源」的說法,驗證其是否為正式命名歷史或僅為語意聯想。
  4. 逐一驗證,凡不符合正式定義即為錯誤。

選項分析

  • A. Country code top-level domains are two letters long
    正確。根據 ISO 3166‑1,所有 ccTLD 皆以兩個英文字母表示,例如 .tw(台灣)、.us(美國)、.de(德國)。因此此敘述正確。

  • B. '.tv' domain is derived from the word television
    錯誤。.tv 最初是 圖瓦盧 (Tuvalu) 的國家代碼頂層網域,屬於 ccTLD。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 Fill-in-the-blank 1 題5 分

  1. Suppose the expression X[0, 0] referred to the first-row, first-column entry in a two-dimensional array with 5 rows and 7 columns. If the array is stored in column-major order beginning at memory address x and each entry in the array requires n memory cells, the address polynomial used to compute the address of the beginning of the entry X[I, J] is ______.

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查二維陣列在記憶體中的儲存方式,特別是直欄為主(column-major order)的儲存方式。

二維陣列 AA 宣告為 A[R][C]A[R][C],其中 RR 是行數(rows),CC 是欄數(columns)。
若陣列以直欄為主(column-major order)儲存,表示陣列是按照欄來連續儲存的。也就是說,第一欄的所有元素會連續儲存在記憶體中,然後是第二欄的所有元素,依此類推。

對於一個 R×CR \times C 的二維陣列 A[R][C]A[R][C],若以直欄為主儲存,並且陣列的起始位址是 BaseAddressBaseAddress,每個元素佔用 NN 個記憶體單元。
我們要計算元素 A[I][J]A[I][J] 的位址。這裡,II 是列索引(row index),JJ 是欄索引(column index)。
請注意,題目中給的例子是 X[0,0]X[0, 0],這表示索引是從 0 開始的。所以,一個 5×75 \times 7 的陣列,行索引 II 的範圍是 00 到 44,欄索引 JJ 的範圍是 00 到 66。

在直欄為主儲存中,要找到 A[I][J]A[I][J] 的位址,我們需要知道:

  1. 它位於第幾欄(JJ)。
  2. 在該欄中,它是第幾個元素(II)。

一個欄總共有 RR 個元素(因為有 RR 行)。
所以,第 JJ 欄(從 0 開始)的起始位址,要先加上前面 JJ 個欄的總大小。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 Fill-in-the-blank 2 題5 分

  1. In the ______ method for synchronizing the operation of the CPU with an I/O device, the I/O device informs the CPU when it is ready for data transfer.

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查 CPU 與 I/O 設備同步操作的方法。當 CPU 需要與 I/O 設備進行資料傳輸時,需要協調兩者之間的速率差異和操作時序。

題目描述的場景是「I/O 設備主動通知 CPU 何時準備好進行資料傳輸」。這種通知機制通常是透過中斷(Interrupt)來實現的。

以下是幾種常見的 CPU 與 I/O 設備同步方法:

  1. 輪詢(Polling)/ 程序化 I/O(Programmed I/O): CPU 不斷地檢查 I/O 設備的狀態,詢問設備是否準備好。當設備準備好時,CPU 才進行資料傳輸。這種方法的缺點是 CPU 會浪費大量時間在等待上。
  2. 中斷驅動 I/O(Interrupt-driven I/O): 當 I/O 設備準備好進行資料傳輸時,它會產生一個中斷信號給 CPU。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 Fill-in-the-blank 3 題5 分

  1. In an operating system, ______ is responsible for removing entries from the process table.

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查作業系統中進程管理(Process Management)的相關知識,特別是進程的生命週期和進程表(Process Table)的管理。

進程表(Process Table)是作業系統用來儲存所有進程的資訊的資料結構。每個進程在進程表中都有一個對應的條目,其中包含進程的狀態、ID、記憶體分配、打開的文件列表等關鍵資訊。

當一個進程結束執行(無論是正常終止,還是因錯誤而終止),作業系統需要清理與該進程相關的所有資源,並從進程表中移除該進程的條目,以釋放空間並標記該進程不再運行。

負責執行這個清理和移除操作的作業系統元件是調度程式(Scheduler)或更具體地說,是進程終止處理程序(Process Termination Handler),它通常由調度程式或核心(Kernel)的一部分來執行。在許多作業系統的文獻中,這個職責常被歸類為調度程式的一部分,因為調度程式負責進程的創建、調度、終止和進程表的管理。

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 4 題

  1. The combination of sign and mantissa of a real number in IEEE standard floating point format is stored as an integer in the ______ representation.

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

  • IEEE 浮點數格式(單精度、雙精度等)由 符號位 (sign)、指數位 (exponent) 與尾數位 (mantissa / fraction) 三部份構成。
  • 指數位 以 bias(偏移) 方式編碼,使指數可以以無符號整數儲存。
  • 尾數位(fraction)本身是 無符號整數,代表二進位小數點右側的位元。
  • 符號位 僅佔 1 位,表示正 (0) 或負 (1)。

在 IEEE 標準中,符號位與尾數位的組合 是以 符號‑幅度 (sign‑magnitude) 表示法 來儲存的。換言之,整個組合被視為一個 有符號的整數,其「正負」由最左邊的符號位決定,而其「大小」則直接由後續的尾數位(視為無符號整數)給出。


解題方法

  1. 確認題目問法:
    「The combination of sign and mantissa of a real number in IEEE standard floating point format is stored as an integer in the ______ representation.」
    必須填入一個描述「整數的表示方式」的詞彙。

  2. 回顧 IEEE 浮點數的位元布局:

    • 1 位 sign(0 = 正,1 = 負)
    • k 位 exponent(以 bias 編碼)
    • n 位 mantissa(fraction,隱含最前面的 1)
  3. 分析 sign 與 mantissa 的關係:

    • 這兩部份直接相連形成 (sign || mantissa)。
    • 沒有使用 二補數 (two’s complement),因為二補數是針對整數的「算術」編碼,而此處僅需表示「正負」與「大小」的資訊。
    • 也不使用 bias 或 excess,因為這兩種編碼僅用於指數位。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 5 題8 分

  1. Explain the difference between a process that is waiting as opposed to a process that is ready.

登入後即可作答並保存紀錄。

這一題的完整詳解

此題考查作業系統中進程(Process)的狀態,特別是「就緒」(Ready)狀態與「等待」(Waiting/Blocked)狀態的區別。

在作業系統中,一個進程在其生命週期中會經歷不同的狀態。常見的狀態包括:

  • 新建(New): 進程正在被創建。
  • 就緒(Ready): 進程已經準備好執行,但因為 CPU 正忙於執行其他進程,所以它在就緒佇列(Ready Queue)中等待。
  • 執行(Running): 進程正在 CPU 上執行。
  • 等待(Waiting / Blocked): 進程因為某個事件發生而暫時無法繼續執行,例如等待 I/O 操作完成、等待某個資源的釋放、等待某個信號等。
  • 終止(Terminated): 進程已經執行完畢。

就緒(Ready)狀態的進程:

  • 原因: 該進程的所有必要資源(除了 CPU)都已分配,並且程式指令也已準備好執行。它只是在等待 CPU 的調度,以便獲得 CPU 時間來執行。
  • 特點: 處於就緒狀態的進程,其執行僅取決於 CPU 的可用性。一旦 CPU 可用,調度程式(Scheduler)就可以選擇它來進入執行狀態。
  • 類比: 就像排隊等候結帳的顧客,他們已經準備好付款,只是在等收銀員有空。

等待(Waiting / Blocked)狀態的進程:

  • 原因: 該進程由於某種原因而無法繼續執行,必須等待外部事件的發生。這些原因包括:
    • 等待 I/O 設備操作的完成(例如,讀取磁盤數據、網絡數據包到達)。
    • 等待某個鎖(lock)或訊號量(semaphore)的釋放,以獲取對共享資源的訪問權。
    • 等待父進程發送的信號。
  • 特點: 處於等待狀態的進程,即使 CPU 可用,它也無法執行,因為它正在等待一個外部條件。只有當它所等待的事件發生時(例如,I/O 操作完成),它才會被重新移動到就緒佇列,而不是直接進入執行狀態。
  • 類比: 就像在餐廳點餐後,顧客必須等待廚房準備好食物,無法在等待期間做其他事情(除了等待)。
🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

第 6 題20 分

  1. Write the recursive function for printing every leaf node of a binary tree given its pre-order
    traversal in C programming language. (20%)
    For instance, given the binary tree below:
    🖼️【此處有附圖,請對照原卷】
    The input to the recursive function should be [793, 279, 137, 547, 922], and the output should be
    137, 547, 922.
🖼️ 本題含圖表,以下為原卷對應頁面:
原卷第 4 頁

登入後即可作答並保存紀錄。

這一題的完整詳解

核心觀念

葉節點(leaf node)是沒有左子樹、也沒有右子樹的節點。前序走訪順序為:

根節點→左子樹→右子樹\text{根節點} \rightarrow \text{左子樹} \rightarrow \text{右子樹}

題目只給前序序列,因此必須利用圖中節點符合二元搜尋樹(Binary Search Tree, BST)的特性:

  • 左子樹所有值小於根節點
  • 右子樹所有值大於根節點

若是一般二元樹,單靠前序序列無法唯一還原樹的結構;以下依照圖示的 BST 關係作答。

解題方法

使用索引 pos 指向目前尚未處理的前序元素,並以 (low, high) 限制目前子樹允許的數值範圍。

  1. 若下一個值不在目前範圍內,表示該子樹不存在,且不能移動 pos。
  2. 取出下一個值作為目前子樹根節點。
  3. 遞迴處理左子樹與右子樹。
  4. 若左右子樹都不存在,表示目前節點是葉節點,印出其值。

C 程式碼

🔒

後續完整解題步驟與【答案】

免費註冊,享三天全站完整詳解閱覽。

免費註冊

其他考古題