108 年 國立中正大學資訊管理學系醫療資訊管理碩士班《計算機概論》

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

第 1 題

Session I. Multiple Choice (3 points for each question)
Choose one answer only for each question

  1. Assume an image consists of 512*512 pixel and each pixel needs 1 bit storage space;
    how many images could be stored in the 500MB camera storage system?
    A. about 125,000
    B. about 1,907
    C. about 1.9
    D. about 16,000

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

這一題的完整詳解

本題考驗基本的儲存空間計算能力。

解題步驟:

  1. 計算單張圖片所需的儲存空間:
    圖片解析度為 512x512 像素,每個像素需要 1 bit 的儲存空間。
    單張圖片總儲存空間 = 像素數量 × 每像素儲存空間
    像素數量 = 512 × 512 = 262,144 像素
    單張圖片儲存空間 = 262,144 像素 × 1 bit/像素 = 262,144 bits

  2. 將圖片儲存空間轉換為 Bytes:
    1 Byte = 8 bits
    單張圖片儲存空間 (Bytes) = 262,144 bits / 8 bits/Byte = 32,768 Bytes

🔒

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

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

免費註冊

第 2 題

  1. What mask and which gate could cause the complement of the middle 4 bits but the
    other 4 bits remain the same?
    A. 00111100, XOR gate
    B. 11000011, XOR gate
    C. 00111100, AND gate
    D. 11000011, AND gate

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

這一題的完整詳解

本題考驗位元操作(Bitwise Operation)的應用,特別是遮罩(Mask)與邏輯閘(Gate)的組合。題目要求對一個 8 位元的資料,僅翻轉中間四個位元(middle 4 bits),而其他四個位元保持不變。

假設原始 8 位元資料為 D7D6D5D4D3D2D1D0D_7 D_6 D_5 D_4 D_3 D_2 D_1 D_0。
題目要求翻轉中間四個位元,也就是 D5,D4,D3,D2D_5, D_4, D_3, D_2,而 D7,D6,D1,D0D_7, D_6, D_1, D_0 保持不變。
翻轉位元通常使用 XOR (Exclusive OR) 邏輯閘。XOR 閘的特性是:

  • X⊕0=XX \oplus 0 = X (任何位元與 0 XOR,結果為該位元本身,即保持不變)
  • X⊕1=¬XX \oplus 1 = \neg X (任何位元與 1 XOR,結果為該位元的反相,即翻轉)

因此,為了達到題目要求,我們需要一個遮罩(Mask),其結構為:

  • 對於需要保持不變的位元(D7,D6,D1,D0D_7, D_6, D_1, D_0),遮罩對應的位元應為 0。
  • 對於需要翻轉的位元(D5,D4,D3,D2D_5, D_4, D_3, D_2),遮罩對應的位元應為 1。

所以,遮罩的二進位表示應為:
D7D_7 (0), D6D_6 (0), D5D_5 (1), D4D_4 (1), D3D_3 (1), D2D_2 (1), D1D_1 (0), D0D_0 (0)
即遮罩為 00111100。

🔒

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

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

免費註冊

第 3 題

  1. How many errors per pattern could be corrected when using an error-correcting code in
    which any two code patterns differ by a Hamming distance of 8?
    A. 5
    B. 3
    C. 6
    D. 4

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

這一題的完整詳解

本題考驗錯誤糾正碼(Error-Correcting Code, ECC)的基本原理,特別是 Hamming 距離與錯誤糾正能力之間的關係。

Hamming 距離定義了兩個等長字串之間,對應位置上不同字元的個數。在錯誤糾正碼中,Hamming 距離用來衡量不同編碼字(code patterns)之間的區別程度。

錯誤糾正碼的原理是,如果一個編碼集合 CC 具有最小 Hamming 距離 dmind_{min},那麼它能夠檢測出最多 dmin−1d_{min}-1 個錯誤,並且能夠糾正 ⌊dmin−12⌋\lfloor \frac{d_{min}-1}{2} \rfloor 個錯誤。

🔒

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

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

免費註冊

第 4 題

  1. An ARM based processor is an example of what kind of computer architecture?
    A. Pentium
    B. RISC
    C. CISC
    D. DSL

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

這一題的完整詳解

本題考驗對電腦架構(Computer Architecture)的認識,特別是處理器(Processor)的指令集架構(Instruction Set Architecture, ISA)。

ARM (Advanced RISC Machines) 處理器是目前非常流行的處理器架構,廣泛應用於手機、平板電腦、嵌入式系統等。ARM 架構的設計哲學是基於 RISC (Reduced Instruction Set Computing) 原則。

RISC 的主要特點包括:

  1. 指令集較小且簡單:指令數量少,每條指令執行時間短且固定。
  2. 採用固定長度的指令格式。
  3. 大量使用暫存器(Registers)。
🔒

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

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

免費註冊

第 5 題

  1. The end of a time slice is indicted by the occurrence of a signal called ______.
    A. A login
    B. A stop
    C. A semaphore
    D. An interrupt

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

這一題的完整詳解

核心觀念

本題考查作業系統中的分時系統(time-sharing system)與時間片(time slice)。

在多工環境中,CPU 會將處理時間切割成許多固定長度的時間片,輪流分配給不同程序。當某一程序的時間片用完時,作業系統必須暫停目前程序,保存其執行狀態,再將 CPU 交給下一個程序。

時間片結束通常由硬體計時器產生**計時器中斷(timer interrupt)**通知作業系統。中斷發生後,作業系統核心取得控制權,進行程序切換(context switch)。

解題方法

題幹指出:

The end of a time slice is indicated by the occurrence of a signal called ______.

意思是「時間片結束,是由一種稱為何者的訊號發生來表示?」

判斷關鍵在於:

  1. 時間片是 CPU 分配給程序的限定執行時間。
  2. 時間片到期時,作業系統需要立即介入。
  3. 硬體計時器會發出中斷訊號。
  4. 作業系統接收到中斷後,執行排程與程序切換。

因此,正確概念是 interrupt(中斷)。更精確地說,此處通常指 timer interrupt(計時器中斷)。

選項分析

A. A login

login 是使用者登入系統的行為,涉及帳號驗證與建立使用者工作階段。

🔒

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

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

免費註冊

第 6 題

  1. You want to initialize all of the elements of a double array a to the same value equal to
    1.5. What could you write? Assuming that the array has been correctly initialized.
    A. for(int i=1; i<a.length; i++) a[i] = 1.5;
    B. for(int i=0; i<=a.length; i++) a[i] = 1.5;
    C. for(int i=0; i<a.length; i++) a[i] = 1.5;
    D. for(int i=0; i<a.length+1; i++) a[i] = 1.5

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

這一題的完整詳解

核心觀念

本題考查 Java 陣列的:

  1. 索引從 0 開始
  2. a.length 表示陣列元素總數
  3. 合法索引範圍為 0 到 a.length - 1

若陣列長度為 nn,其合法索引為:

0,1,2,…,n−10,1,2,\ldots,n-1

因此,要初始化所有元素,迴圈必須:

  • 從索引 0 開始
  • 在索引小於 a.length 時繼續執行

解題方法

初始化所有元素的標準寫法為:

for (int i = 0; i < a.length; i++) {
    a[i] = 1.5;
}

假設陣列長度為 nn:

  • 第一次執行:i = 0,設定 a[0]
  • 最後一次執行:i = n - 1,設定 a[n - 1]
  • 此後:i = n,因為不符合 i < a.length,迴圈停止

這樣恰好處理全部 nn 個元素,且不會存取超出陣列範圍的位置。


選項分析

A. for(int i=1; i<a.length; i++) a[i] = 1.5;

錯誤。

迴圈從 i = 1 開始,只會設定:

a[1], a[2], ..., a[a.length - 1]

索引 a[0] 沒有被初始化為 1.5,因此無法涵蓋所有元素。


B. for(int i=0; i<=a.length; i++) a[i] = 1.5;

錯誤。

雖然從 i = 0 開始,但條件使用 i <= a.length。

🔒

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

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

免費註冊

第 7 題

  1. Which description about SSL is NOT correct?
    A. stands for Secure Socket Layer
    B. provides secure communication links between Web clients and servers
    C. developed by Netscape
    D. becomes outdated and not popular anymore

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

這一題的完整詳解

核心概念
SSL(Secure Sockets Layer)是由 Netscape 於 1990 年代中期提出的網路安全協議,目的在於於 Web 客戶端與伺服器之間建立加密通道。其主要特性包括:

  • 使用公開金鑰加密協定完成握手(Handshake),協商對稱金鑰。
  • 提供資料加密、訊息完整性驗證與雙向認證。
  • 後續演進為 TLS(Transport Layer Security),而 SSL 2.0/3.0 已被視為不安全、過時。

解題方法
本題為單選題,要求找出「描述 SSL 不正確」的敘述。解題步驟:

  1. 逐一檢視四個選項,與已知的 SSL 定義與現況比對。
  2. 判斷敘述是否與事實相符,若不符即為答案。
  3. 注意名稱的細節(單數 vs 複數)與時效性的語意。

選項分析

  • A. stands for Secure Socket Layer
    • 正確全名應為 Secure Sockets Layer,其中 Sockets 為複數。
    • 此選項將 Sockets 寫成單數 Socket,屬拼寫錯誤,因而不正確。
🔒

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

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

免費註冊

第 8 題

  1. What is the outcome of the following code snippet?
    boolean val1 = true;
    boolean val2 = false;
    while (val1)
    {
    if (val1)
    {
    System.out.println("Hello");
    }
    val1 = val2;
    }
    A. No output will be displayed because of compilation error.
    B. "Hello" will be displayed only once.
    C. "Hello" will be displayed infinite times.
    D. No output will be displayed even after successful compilation of the code snippet.

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

這一題的完整詳解

本題考驗 Java 程式碼的執行流程,特別是 while 迴圈和 if 條件判斷的行為。

程式碼分析:

  1. boolean val1 = true;:宣告一個布林變數 val1 並初始化為 true。
  2. boolean val2 = false;:宣告一個布林變數 val2 並初始化為 false。
  3. while (val1):開始一個 while 迴圈。迴圈的條件是 val1 是否為 true。由於 val1 最初為 true,迴圈會進入第一次迭代。
  4. {:迴圈體開始。
  5. if (val1):進入 if 判斷。由於此時 val1 仍然是 true,條件成立。
  6. {:if 區塊開始。
  7. System.out.println("Hello");:執行輸出語句,印出 "Hello"。
  8. }:if 區塊結束。
  9. val1 = val2;:將 val2 的值(false)賦值給 val1。此時,val1 的值變為 false。
  10. }:迴圈體結束。
🔒

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

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

免費註冊

第 9 題

  1. Consider the following code snippet:
    Vehicle aVehicle = new Auto();
    aVehicle.moveForward(200);
    If the Auto class inherits from the Vehicle class, and both classes have an implementation
    of the move Forward method with the same set of parameters and the same return type,
    which statement is correct?
    A. The move Forward method of the Auto class will be executed.
    B. The move Forward method of the Vehicle class will be executed.
    C. You must specify in the code which class's moveForward method is to be used.
    D. It is not possible to determine which class's method is called.

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

這一題的完整詳解

本題考驗物件導向程式設計(Object-Oriented Programming, OOP)中的繼承(Inheritance)和多型(Polymorphism)概念,特別是方法重載(Method Overriding)的行為。

程式碼分析:

  1. Vehicle aVehicle = new Auto();
    這行程式碼宣告了一個型別為 Vehicle 的變數 aVehicle,但它實際指向的物件是 Auto 類別的實例。這是一個典型的多型應用,父類別的參考變數可以指向子類別的物件。

  2. aVehicle.moveForward(200);
    這行程式碼呼叫了 aVehicle 所指向物件的 moveForward 方法。

題目說明:

  • Auto 類別繼承自 Vehicle 類別。
  • Vehicle 和 Auto 兩個類別都有 moveForward 方法。
  • 這兩個 moveForward 方法具有相同的參數和返回型別。這意味著 Auto 類別中的 moveForward 方法是覆寫(Override)了 Vehicle 類別中的 moveForward 方法。

在物件導向程式設計中,當我們透過父類別的參考變數呼叫一個被覆寫的方法時,實際執行的是子類別(即實際物件型別)中定義的方法。這就是「動態綁定」(Dynamic Binding)或「執行時綁定」(Runtime Binding)的體現。

🔒

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

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

免費註冊

第 10 題

  1. Which of the following is NOT a feature of UML?
    A. Dataflow diagrams
    B. Class diagrams
    C. Sequence diagrams
    D. Use case diagrams

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

這一題的完整詳解

本題考驗對 UML (Unified Modeling Language) 的認識。UML 是一種標準化的通用建模語言,用於建立、可視化、構建和文檔化軟體系統的各種構件。

UML 包含多種圖表(Diagrams),用於從不同角度描述系統。我們來分析各個選項:

A. Dataflow diagrams (DFDs):資料流圖(DFD)是一種圖形化工具,用於表示系統中資料的流動。它主要用於結構化分析階段。雖然 DFD 在軟體工程中非常有用,但它不是 UML 的標準圖表類型。UML 側重於物件導向的視圖。

🔒

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

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

免費註冊

第 11 題

  1. Which of the following is static in the sense that it does NOT change size or shape as
    information is stored and retrieved?
    A. Tree
    B. Array
    C. Stack
    D. Queue

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

這一題的完整詳解

核心觀念

本題考查資料結構依「儲存與取出資訊時,大小或形狀是否改變」所作的分類。

**Array(陣列)**在建立時通常即決定其長度與維度。資料可以被修改、讀取,但陣列本身的大小與結構不會因資料存取而改變,因此符合題目所稱的 static。

相對地,Tree、Stack、Queue 的元素數量或結構會隨插入、刪除而變化。

解題方法

判斷每個選項在資料儲存與取出過程中,是否會改變:

  1. 若元素增減會使資料結構的大小或形狀改變,則不是 static。
  2. 若只能改變元素內容,資料結構的大小與形狀維持固定,則是 static。

依此逐項分析即可。

選項分析

A. Tree

Tree 的節點可以動態增加或刪除。

例如,插入新節點可能使樹的高度增加,刪除節點則可能改變樹的分支結構。因此 Tree 的大小與形狀會隨操作改變,不符合題目所描述的 static。

A 錯誤。

B. Array

Array 通常在建立時指定固定大小,例如:

A[0…4]A[0 \ldots 4]

此陣列共有 55 個位置。即使對其中的元素進行讀取或修改,例如將 A[2]A[2] 的內容替換,陣列仍然維持相同的 55 個位置與相同的線性排列。

🔒

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

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

免費註冊

第 12 題

  1. Which of the following features within a DBMS is not provided to maintain database
    integrity?
    A. Commit points
    B. Locking protocol
    C. Log
    D. Concurrent transaction processing

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

這一題的完整詳解

核心觀念

本題考查資料庫管理系統(DBMS)中的資料庫完整性(Database Integrity)與交易管理(Transaction Management)。

  • 資料庫完整性與 ACID 特性:資料庫必須保持正確性與一致性。在交易處理中,確保完整性的核心機制包含:
    1. 復原管理(Recovery Management):確保交易的原子性(Atomicity)與持久性(Durability),主要仰賴**日誌(Log)與確認點(Commit points)**或檢查點(Checkpoints)。
    2. 並行控制(Concurrency Control):確保交易的隔離性(Isolation)與一致性(Consistency),主要仰賴鎖定協定(Locking protocol)、時間戳記(Timestamping)等機制。
  • 核心盲點區分:**並行交易處理(Concurrent transaction processing)**本身是一種「操作環境」或「運作需求」,即允許多筆交易同時執行以提升系統吞吐量;若缺乏適當控制,並行執行反而會引發遺失更新(Lost update)、髒讀(Dirty read)等破壞資料完整性的問題。因此它並非「用來維護完整性的機制」。

解題方法

切入點在於區分「維護完整性的控制機制/技術(Mechanism/Control Technique)」與「引發一致性風險的系統行為/功能需求(Behavior/Requirement)」:

  1. 檢視題目關鍵字:「not provided to maintain database integrity」(非用來維護資料庫完整性的功能)。
  2. 逐一比對各選項是屬於「確保 ACID 的保護工具」還是「需要被控管的運作行為」。
  3. Commit points、Locking protocol、Log 皆為 DBMS 提供用來維持 ACID、避免資料毀損與不一致的防禦與還原技術;而 Concurrent transaction processing 是允許多工執行的特性,需要藉由其他技術來防範它對完整性的威脅。

🔒

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

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

免費註冊

第 13 題

  1. Which of the following is not associated with scan conversion?
    A. A z-buffer
    B. Pixel positions
    C. The painter's algorithm
    D. Digitizing

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

這一題的完整詳解

核心觀念 – Scan Conversion(掃描轉換)
掃描轉換是將向量圖形(點、線、曲面)映射到影像平面的離散像素格點之過程,又稱 rasterization。其核心步驟包括

  1. 取樣(Sampling):決定每個像素中心是否落在幾何圖形內。
  2. 量化(Quantization):將顏色、深度等連續屬性離散化為可儲存的位元值。
  3. 深度測試(Depth Test):使用 z‑buffer(深度緩衝) 於每個像素比較不同片段的深度,以決定哪一片段可見。
  4. 像素寫入(Pixel Write):把最終顏色寫入 pixel positions(像素座標) 所指的緩衝區。

此外,digitizing(數位化) 是把連續的幾何或光學訊號轉成離散的數位資料,是掃描轉換的概念前置;在電腦圖形學中常以「取樣」與「量化」之名出現,屬於同一層次的概念。

解題方法
題目要求找出 「不屬於掃描轉換」 的項目。檢視每個選項是否直接與上述四個核心步驟之一相關,若僅是更高層次的隱藏面處理方法,則不屬於掃描轉換。

選項分析

選項與掃描轉換的關聯判斷依據
A. A z‑buffer是 – 深度緩衝在像素寫入階段用於深度測試,屬於掃描轉換的必備資料結構。
🔒

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

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

免費註冊

第 14 題

  1. If both sender and receiver use the same key, the system is referred to as:
    A. public-key encryption
    B. two-key
    C. asymmetric
    D. conventional encryption

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

這一題的完整詳解

本題考驗密碼學(Cryptography)中金鑰(Key)的使用方式與加密系統的分類。

加密系統可以根據金鑰的使用方式分為兩大類:

  1. 對稱式加密(Symmetric Encryption):又稱為傳統加密(Conventional Encryption)或私鑰加密(Private-key Encryption)。在這種系統中,加密和解密使用相同的金鑰。發送方使用金鑰加密訊息,接收方使用相同的金鑰解密訊息。優點是速度快,缺點是金鑰的交換和管理比較困難。
  2. 非對稱式加密(Asymmetric Encryption):又稱為公鑰加密(Public-key Encryption)。在這種系統中,使用一對金鑰:一個公鑰(Public Key)和一個私鑰(Private Key)。公鑰可以公開,用於加密訊息;
🔒

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

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

免費註冊

第 15 題

  1. In an artificial neural network, which of the following pairs of input connection
    weights would cause a neuron with two inputs and a threshold value of 3 to produce an
    output of 1 only when both of its inputs are 1?
    A. 0,0
    B. 2, 0
    C. 2, 2
    D. 0, 2

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

這一題的完整詳解

本題考驗人工神經網路(Artificial Neural Network, ANN)中神經元(Neuron)的輸出計算方式。

一個神經元通常包含以下幾個部分:

  1. 輸入(Inputs):神經元接收來自其他神經元或外部數據的輸入。
  2. 權重(Weights):每個輸入都與一個權重相關聯,表示該輸入的重要性。
  3. 加權總和(Weighted Sum):將所有輸入乘以對應的權重後相加。
  4. 偏差(Bias):有時會加入一個偏差值(通常相當於一個固定輸入為 1 的權重)。
  5. 激活函數(Activation Function):將加權總和(加上偏差)通過一個激活函數,產生神經元的輸出。常見的激活函數有階躍函數(Step Function)、Sigmoid 函數等。
  6. 閾值(Threshold):在階躍函數中,通常會設定一個閾值。如果加權總和(加上偏差)大於或等於閾值,則輸出 1;否則輸出 0。

本題的神經元有兩個輸入,記為 x1,x2x_1, x_2,以及對應的權重 w1,w2w_1, w_2。
題目給定的閾值(Threshold Value)是 3。
神經元的輸出為 1 的條件是:加權總和 ≥\ge 閾值。
即:w1x1+w2x2≥3w_1 x_1 + w_2 x_2 \ge 3

題目要求:

  • 當兩個輸入都是 1 時(x1=1,x2=1x_1 = 1, x_2 = 1),輸出為 1。
  • 「only when both of its inputs are 1」這句話意味著,只要有一個輸入不是 1,或者兩個輸入都不是 1,輸出就應該是 0。
    • 如果 x1=1,x2=0x_1=1, x_2=0,則輸出應為 0。
    • 如果 x1=0,x2=1x_1=0, x_2=1,則輸出應為 0。
    • 如果 x1=0,x2=0x_1=0, x_2=0,則輸出應為 0。

讓我們測試各個選項的權重 (w1,w2)(w_1, w_2):

🔒

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

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

免費註冊

第 16 題

  1. What is the time complexity of the problem of sorting a list?
    A. Θ(log⁡2n)\Theta(\log_2 n)
    B. Θ(n)\Theta(n)
    C. O(nlog⁡2n)O(n \log_2 n)
    D. Θ(n2)\Theta(n^2)

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

這一題的完整詳解

核心觀念

本題考查「排序問題」的時間複雜度,以及大 OO 與 Θ\Theta 的差異。

在一般的比較式排序模型中,排序 nn 個元素至少需要:

Ω(nlog⁡2n)\Omega(n\log_2 n)

次比較;而合併排序(Merge Sort)與堆積排序(Heap Sort)等演算法可以在:

O(nlog⁡2n)O(n\log_2 n)

時間內完成。因此,最佳化的比較式排序時間複雜度為:

Θ(nlog⁡2n)\Theta(n\log_2 n)

選項中雖然沒有直接寫出 Θ(nlog⁡2n)\Theta(n\log_2 n),但 O(nlog⁡2n)O(n\log_2 n) 是排序問題可達成的標準上界,故選 C。

解題方法

可從兩個方向判斷:

  1. 排序至少要處理 nn 個元素,因此不可能低於線性時間。
  2. 有效率的排序演算法,例如 Merge Sort,可達到 O(nlog⁡2n)O(n\log_2 n)。

以 Merge Sort 為例,每一層將資料分成兩半,遞迴深度為:

log⁡2n\log_2 n

每一層合併所有元素需要 O(n)O(n) 時間,因此總時間為:

O(n)×O(log⁡2n)=O(nlog⁡2n)O(n)\times O(\log_2 n) = O(n\log_2 n)

另一方面,比較式排序可用決策樹表示。若有 nn 個不同元素,可能的排列共有 n!n! 種,決策樹至少需要 n!n! 個葉節點,因此高度至少為:

log⁡2(n!)\log_2(n!)

由於:

log⁡2(n!)=Θ(nlog⁡2n)\log_2(n!)=\Theta(n\log_2 n)

所以比較式排序的下界為:

Ω(nlog⁡2n)\Omega(n\log_2 n)

綜合上界與下界:

Ω(nlog⁡2n)且O(nlog⁡2n)\Omega(n\log_2 n) \quad\text{且}\quad O(n\log_2 n)

可知最佳比較式排序的複雜度為 Θ(nlog⁡2n)\Theta(n\log_2 n);在本題選項中,應選能表示此有效率上界的 O(nlog⁡2n)O(n\log_2 n)。

選項分析

🔒

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

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

免費註冊

第 1 題

Session II. Problems and Calculations

  1. (4 points each sub-question) Translate each of the following binary representations
    into its equivalent base ten representations OR translate the values represented in base
    ten notations into binary notation.
    (a) 0.01
    (b) 110.011
    (c) 1
    8

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

這一題的完整詳解

本題考驗不同進位制之間的轉換能力,包括二進位(Binary)、十進位(Decimal)和分數形式。

** Part (a): Convert Binary 0.01 to Decimal **
二進位小數的位值是 2−1,2−2,2−3,…2^{-1}, 2^{-2}, 2^{-3}, \dots 從小數點後第一位開始。
二進位數 0.01 可以寫成:
0×2−1+1×2−20 \times 2^{-1} + 1 \times 2^{-2}
=0×12+1×14= 0 \times \frac{1}{2} + 1 \times \frac{1}{4}
=0+14= 0 + \frac{1}{4}
=0.25= 0.25

所以,二進位 0.01 轉換為十進位是 0.25。

** Part (b): Convert Binary 110.011 to Decimal **
這個二進位數包含整數部分和小數部分。
整數部分 110:
1×22+1×21+0×201 \times 2^2 + 1 \times 2^1 + 0 \times 2^0
=1×4+1×2+0×1= 1 \times 4 + 1 \times 2 + 0 \times 1
=4+2+0=6= 4 + 2 + 0 = 6

小數部分 0.011:
0×2−1+1×2−2+1×2−30 \times 2^{-1} + 1 \times 2^{-2} + 1 \times 2^{-3}

🔒

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

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

免費註冊

第 2 題

  1. (7 points each sub-question) Translate the following values using an 8-bit floating-
    point format system, and indicate which values may have truncation errors.
    (a) 514\frac{1}{4}
    (b) -312\frac{1}{2}

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

這一題的完整詳解

核心觀念

  • 8 位元浮點數= 1 位元符號 (S)、3 位元指數 (E)、4 位元尾數 (F)。
  • 采用 IEEE‑類似的正規化表示,指數使用 偏移 (bias) = 2^{(k-1)}‑1 = 3(k 為指數位數)。
  • 正規化形式:(−1)S×1.F×2Eraw−bias(-1)^{S}\times 1.F \times 2^{E_{\text{raw}}-bias}。
  • 若尾數的真實位元超過 4 位,必須 四捨五入或截斷;若恰好不超過,則 不會產生截斷誤差。

(a) 轉換 5145\frac14(5.255.25)

  1. 十進位 → 二進位
    5.2510=101.0125.25_{10}=101.01_{2}
  2. 正規化
    101.012=1.01012×22101.01_{2}=1.0101_{2}\times 2^{2}
  3. 取得尾數
    • 隱含的首位 11 省略,剩餘 0101 正好佔 4 位。
    • 不需要截斷或捨入。
  4. 指數
    • 真正指數 =2=2
    • 偏移後的二進位指數 Eraw=2+bias=2+3=5=1012E_{\text{raw}} = 2 + bias = 2 + 3 = 5 = 101_{2}
  5. 符號位 S=0S=0(正數)

最終位元

0  101  0101=010101012=0x55\boxed{0\;101\;0101}=01010101_{2}=0x55

截斷誤差:無(尾數已完整表示)。


(b) 轉換 −312-3\frac12(−3.5-3.5)

  1. 十進位 → 二進位
    3.510=11.123.5_{10}=11.1_{2}
  2. 正規化
    11.12=1.112×2111.1_{2}=1.11_{2}\times 2^{1}
🔒

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

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

免費註冊

第 3 題

  1. (3 points each sub-question) Fill in the blanks below with the part on the operating
    system (e.g. file manager, memory manager, device drivers, window manager, scheduler,
    dispatcher) that performs the activity described.
    (a)
    (b)
    (c)
    (d)
    Maintains a record of what is displayed on the computer's screen
    Performs the switching from one process to another
    Maintains the directory system
    Creates virtual memory

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

這一題的完整詳解

核心觀念
本題測驗對作業系統 (OS) 各子系統功能的認識。作業系統常被抽象為多個管理元件,每個元件負責特定資源或服務:

  • 檔案管理子系統 (File Manager):維護目錄結構、檔案名稱與磁碟配置。
  • 記憶體管理子系統 (Memory Manager):提供虛擬記憶體、分配與回收實體/虛擬頁面。
  • 裝置驅動程式 (Device Driver):介面硬體設備,使上層軟體可透過統一介面存取。
  • 視窗管理子系統 (Window Manager):在圖形使用者介面 (GUI) 中維持螢幕上各視窗的畫面緩衝與佈局。
  • 排程子系統 (Scheduler):根據排程演算法決定哪個行程 (process) 取得 CPU。
  • 分派子系統 (Dispatcher):執行實際的 context switch,將 CPU 控制權從一個行程切換到另一個行程。

了解每個子系統的「職責」即可對照題目敘述,找出正確填入的名稱。


解題方法

  1. 依題目描述的活動逐一比對至上述子系統的功能。
  2. 若描述涉及「記錄螢幕畫面」→視窗管理子系統。
  3. 若描述涉及「切換行程」→分派子系統(執行切換)或排程子系統(決定切換)。題目使用「switching」一詞,指實際切換,因此選 dispatcher。
  4. 若描述涉及「目錄系統」→檔案管理子系統。
  5. 若描述涉及「虛擬記憶體」→記憶體管理子系統。

選項逐一分析

空格敘述正確子系統為何正確常見錯誤選項與說明
(a)Maintains a record of what is displayed on the computer's screenWindow Manager只要在圖形介面下,螢幕上每個視窗的內容、位置與層次都由 Window Manager 追蹤並維護。它維持一個「螢幕緩衝區」的抽象表示。Device Driver 只負責把畫面資料送到顯示硬體,並不管理螢幕上各視窗的布局;Scheduler 與畫面記錄無關。
🔒

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

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

免費註冊

第 4 題

  1. (4 points each sub-question) Suppose an operating system allocates time slices in 10
    millisecond units and the time required for a context switch is negligible.
    (a) How many processes can obtain a time slice in one second?
    (b) How many processes can obtain a time slice in one second if half of them use only
    half of their slice?

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

這一題的完整詳解

核心觀念

本題考查作業系統的「時間片(time slice)」與 CPU 排程。時間片是某一程序在被排程器暫停前,最多可連續使用 CPU 的時間。

已知:

  • 每個時間片為 1010 毫秒
  • 11 秒 =1000=1000 毫秒
  • Context switch 時間可忽略,因此 CPU 時間全部用於執行程序

可使用的基本公式為:

可服務的程序數=總 CPU 時間每個程序平均使用時間\text{可服務的程序數} = \frac{\text{總 CPU 時間}}{\text{每個程序平均使用時間}}

解題方法

(a) 一秒內可取得時間片的程序數

每個程序使用一個完整時間片,即 1010 毫秒。

一秒可分割成:

1000 毫秒10 毫秒=100\frac{1000\text{ 毫秒}}{10\text{ 毫秒}} = 100

因此,一秒內共有 100100 個時間片可供程序取得。


(b) 一半程序只使用一半時間片

一半程序使用完整的 1010 毫秒;另一半程序只使用一半時間片:

102=5 毫秒\frac{10}{2}=5\text{ 毫秒}

因此,每個程序的平均 CPU 使用時間為:

🔒

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

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

免費註冊

其他考古題