110 地方特考四等 資訊處理 計算機概要 考古題詳解

110 年・地方特考・四等・資訊處理
試題代碼 計算機概要

第 1 題

處理器在執行程式時,目前正在或即將被執行的指令的位址,儲存在下列那一元件?

這一題的完整詳解

核心觀念

程式計數器(Program Counter, PC)是處理器中的特殊暫存器,用來儲存下一個要被擷取、解碼或執行之指令的記憶體位址。處理器依照 PC 所指的位址,到主記憶體擷取指令;擷取完成後,PC 通常會更新為下一個指令的位址。

因此,題目詢問「目前正在或即將被執行的指令位址」所儲存的元件,命題慣例所指即為程式計數器。

解題方法

判斷各選項的功能:

  1. 是否為「專門儲存指令位址」的處理器元件?
  2. 若不是,是否負責計算、選擇資料,或僅供一般用途使用?

具備「指令位址追蹤」功能的是程式計數器,因此選擇 (B)。

在一般指令循序執行時,PC 的更新可概念化表示為:

PCnext=PCcurrent+指令長度PC_{\text{next}} = PC_{\text{current}} + \text{指令長度}

遇到跳躍、分支、函式呼叫或中斷時,PC 則會載入新的目標位址。

選項分析

(A) 加法器(adder) 錯誤。加法器是算術邏輯單元或處理器資料路徑中的組合邏輯電路,負責進行加法運算,例如計算:

PC+指令長度PC + \text{指令長度}

它本身不負責持續儲存指令位址。

🔒

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

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

免費註冊

第 2 題

有關共享記憶體多處理器(shared memory multiprocessor)的敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

共享記憶體多處理器(shared memory multiprocessor)是指多個處理器共同存取同一個實體記憶體系統。其重點在於:

  • 多個處理器共用同一實體記憶體位址空間。
  • 各處理程序仍可擁有各自獨立的虛擬記憶體位址空間。
  • 依處理器存取不同記憶體位置所需時間是否相同,可分為 UMA 與 NUMA。

其中:

  • UMA(Uniform Memory Access,一致記憶體存取):任一處理器存取任一記憶體位置,所需時間相同。
  • NUMA(Nonuniform Memory Access,非一致記憶體存取):處理器存取記憶體的時間,會因記憶體位置與處理器距離不同而有所差異。

解題方法

本題逐一檢查各選項是否符合共享記憶體多處理器、UMA、NUMA 的定義即可。

最重要的判斷是區分:

  • 實體記憶體位址空間:多處理器共同使用。
  • 虛擬記憶體位址空間:由各程序管理,通常彼此獨立,不必全部共用。

因此,聲稱「所有程序必須共享同一虛擬記憶體位址空間」的選項,即違反程序虛擬記憶體的基本概念。

選項分析

(A) 提供單一實體記憶體位置空間給多處理器使用

正確。共享記憶體多處理器的核心特徵,就是多個處理器可使用同一個實體記憶體位址空間。任一處理器可透過共同的位址系統存取記憶體內容。

(B) 於多處理器上的所有程序必須共享同一虛擬記憶體位置空間

錯誤。每個程序通常擁有自己的虛擬位址空間,作業系統透過虛擬記憶體與頁表,將不同程序的虛擬位址轉換至相應的實體位址。

🔒

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

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

免費註冊

第 3 題

發掘程式中指令階層平行性(instruction-level parallelism)有助於提升程式執行效能,其可由硬體或是軟體的機制來達成。下列何者需要依賴純軟體的方式,以發掘指令階層平行性進而提升程式效能?

這一題的完整詳解

核心觀念

指令階層平行性(Instruction-Level Parallelism, ILP)是指同一程式中,彼此沒有資料相依性的多個指令,可以在同一時間重疊或平行執行,以提高處理器效能。

發掘 ILP 的方式可分為:

  • 靜態排程(static scheduling):由編譯器在程式執行前分析指令相依性,安排哪些指令可同時執行,主要依賴軟體。
  • 動態排程(dynamic scheduling):由處理器在執行期間分析指令相依性,決定指令的發射與執行順序,主要依賴硬體。

本題問的是「需要依賴純軟體方式來發掘 ILP」的架構,因此關鍵在於判斷 ILP 是由編譯器靜態決定,還是由處理器硬體在執行時動態處理。

解題方法

判斷各選項所採用的排程機制:

  1. 若由編譯器事先安排平行指令,屬於軟體發掘 ILP。
  2. 若由處理器硬體在執行時判斷指令是否可平行、是否可亂序執行,屬於硬體發掘 ILP。

VLIW 將多個可同時執行的操作放入一個很長的指令字中,這些操作的組合與排程通常在編譯階段由編譯器完成。因此,VLIW 的 ILP 發掘主要依賴軟體。

【答案:A】

選項分析

(A) 很長指令字(VLIW)架構:正確

VLIW 架構的指令字很長,內含多個操作欄位,每個欄位可交給不同功能單元執行。例如,一個很長的指令字可能同時包含整數運算、浮點運算與記憶體存取操作。

VLIW 的核心特色是:

  • 編譯器在編譯時分析指令間的資料相依性。
  • 編譯器將彼此獨立、可平行執行的指令打包。
  • 處理器執行時主要依照已排好的指令字執行。
  • 硬體不必在執行期間大量分析指令相依性。

因此,VLIW 以編譯器靜態排程來發掘 ILP,符合題目所稱的純軟體方式。

(B) 超純量(superscalar)架構:錯誤

🔒

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

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

免費註冊

第 4 題

程式的執行時間中有一部分稱為中央處理器執行時間(CPU execution time)。下列何者與中央處理器執行時間無關?

這一題的完整詳解

核心觀念

中央處理器執行時間(CPU execution time)是指程式在 CPU 上實際執行所耗用的時間,基本公式為:

CPU Execution Time=Instruction Count×CPI×Clock Cycle Time\text{CPU Execution Time} = \text{Instruction Count} \times \text{CPI} \times \text{Clock Cycle Time}

由於:

Clock Cycle Time=1Clock Rate\text{Clock Cycle Time} = \frac{1}{\text{Clock Rate}}

因此也可寫成:

CPU Execution Time=Instruction Count×CPIClock Rate\text{CPU Execution Time} = \frac{\text{Instruction Count} \times \text{CPI}} {\text{Clock Rate}}

其中:

  • Instruction Count:程式實際執行的指令總數。
  • CPI(Cycles Per Instruction):平均每一指令所需的時脈週期數。
  • Clock Rate:處理器每秒產生的時脈週期數。

本題要求判斷何者「與中央處理器執行時間無關」,應直接對照上述公式。

解題方法

將各選項代入公式:

CPU Time=Instruction Count×CPIClock Rate\text{CPU Time} = \frac{\text{Instruction Count} \times \text{CPI}} {\text{Clock Rate}}

公式中直接出現:

  1. 指令數(Instruction Count)
  2. 每個指令時脈數(CPI)
  3. 時脈速率(Clock Rate)

「快取錯失率(Cache Miss Rate)」並未直接出現在基本 CPU 執行時間公式中,因此依本題的命題架構,答案為(C)。

選項分析

(A)程式中的指令數(Instruction Count)

錯誤選項。

指令數是 CPU 執行時間的直接決定因素之一。若平均 CPI 與時脈速率固定,指令數增加,所需的總時脈週期數也會增加:

Total Clock Cycles=Instruction Count×CPI\text{Total Clock Cycles} = \text{Instruction Count} \times \text{CPI}

因此,執行的指令越多,CPU 執行時間通常越長。

(B)每個指令時脈數(Clock Cycles Per Instruction)

錯誤選項。

Clock Cycles Per Instruction 即 CPI,代表平均執行一個指令所需的時脈週期數。CPU 執行時間公式為:

🔒

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

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

免費註冊

第 5 題

管道式處理器(pipelined processor)在執行一道算術指令時,若該計算發生滿溢的狀況,最早可在那個階段被偵測?

這一題的完整詳解

核心觀念

本題考查管道式處理器五階段流程,以及「算術運算溢位」在何時產生。

典型五階段管線如下:

  1. 擷取(Fetch):從記憶體取得指令。
  2. 解碼(Decode):解讀指令、讀取暫存器內容。
  3. 執行(Execute):由算術邏輯單元(ALU)進行算術或邏輯運算。
  4. 記憶體存取(Memory):進行資料記憶體讀寫。
  5. 寫回(Write Back):將運算結果寫入目的暫存器。

算術指令的滿溢(overflow)是指運算結果超出資料格式可表示的範圍。以固定長度的有號整數為例,若使用 nn 位元二補數表示,其可表示範圍為:

−2n−1≤x≤2n−1−1-2^{n-1} \leq x \leq 2^{n-1}-1

當 ALU 執行加法、減法等算術運算時,才會產生實際結果與滿溢旗標,因此最早可在「執行」階段偵測。


解題方法

判斷方式是依照「哪一個階段首次真正完成算術運算」來決定。

以有號整數加法為例,若兩個運算元 AA、BB 的符號相同,而結果 SS 的符號與它們不同,即表示發生有號加法滿溢:

sign⁡(A)=sign⁡(B)且sign⁡(S)≠sign⁡(A)\operatorname{sign}(A)=\operatorname{sign}(B) \quad\text{且}\quad \operatorname{sign}(S)\ne\operatorname{sign}(A)

這項判斷必須等到 ALU 計算出結果 SS 後才能完成。ALU 位於執行(Execute)階段,因此滿溢最早在執行階段被偵測。


選項分析

🔒

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

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

免費註冊

第 6 題

下列何者不是聯結器(linker)所需負責的工作?

這一題的完整詳解

核心觀念

本題考查程式由原始碼轉換成可執行程式時,各系統軟體的職責分工:

  1. 編譯器(compiler):將高階語言程式轉換成組合語言或目的碼。
  2. 組譯器(assembler):將組合語言轉換成目的檔案(object file)。
  3. 聯結器(linker):合併多個目的檔案與函式庫,解析外部符號與參考,並進行位址配置及重定位。
  4. 載入器(loader):將可執行程式載入主記憶體,準備執行。

本題詢問「不是聯結器負責的工作」,應找出屬於編譯器或組譯器的工作。

解題方法

判斷每個選項是否屬於聯結器的典型工作:

  • 涉及「合併目的檔案」:屬於聯結器。
  • 涉及「解決外部參考」:屬於聯結器。
  • 涉及「位址配置與重定位」:通常歸入聯結器的工作範圍。
  • 涉及「將低階語言轉成目的檔案」:屬於組譯器,不是聯結器。

因此,不符合聯結器職責的是將低階語言轉換成目的檔案。

選項分析

(A) 負責合併來自不同程式模組的目的(object)檔案

正確。程式通常會分成多個模組,各模組先分別轉換成目的檔案,再由聯結器將這些目的檔案合併,形成完整的可執行檔案。

例如主程式呼叫另一個模組中的函式,聯結器必須將兩個模組整合在一起,建立完整的程式映像。

(B) 確保程式中沒有未解決的參考(references)

正確。若一個目的檔案呼叫了另一個模組或函式庫中的函式,這種呼叫會形成外部參考。聯結器必須尋找對應的定義,將符號參考連接至正確的函式或資料位址。

若找不到對應定義,通常會產生「未定義參考」或「無法解析的外部符號」等聯結錯誤。

🔒

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

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

免費註冊

第 7 題

考慮硬碟排程,目前讀寫頭(read-write head)在磁柱(cylinder)4 的位置,電腦系統中僅有 4 個將被讀取的資料 A、B、C、D 分別位於磁柱 1、磁柱 5、磁柱 8、磁柱 9 的位置,若採用最短搜尋時間優先(shortest-seek-time-first)排程演算法,四筆資料被讀取出來的先後次序,由先至後的排序為何?

這一題的完整詳解

核心觀念

本題考查硬碟排程中的「最短搜尋時間優先」(Shortest-Seek-Time-First, SSTF)演算法。

SSTF 的規則是:每次都從目前讀寫頭所在的磁柱出發,選擇「距離目前位置最近」的下一筆磁柱;讀取完成後,讀寫頭位置更新至該磁柱,再重新計算下一次距離。

重點是每一步都要以「讀寫頭的最新位置」計算,不能固定以起始位置磁柱 4 判斷全部順序。

解題方法

資料位置如下:

資料磁柱位置
A1
B5
C8
D9

起始位置為磁柱 4。

第一步,計算各資料與磁柱 4 的距離:

d(A)=∣4−1∣=3d(A)=|4-1|=3 d(B)=∣4−5∣=1d(B)=|4-5|=1 d(C)=∣4−8∣=4d(C)=|4-8|=4 d(D)=∣4−9∣=5d(D)=|4-9|=5

距離最近的是 B,因此先讀取 B,讀寫頭移至磁柱 5。

第二步,以磁柱 5 為目前位置:

d(A)=∣5−1∣=4d(A)=|5-1|=4 d(C)=∣5−8∣=3d(C)=|5-8|=3 d(D)=∣5−9∣=4d(D)=|5-9|=4

距離最近的是 C,因此讀取 C,讀寫頭移至磁柱 8。

第三步,以磁柱 8 為目前位置:

d(A)=∣8−1∣=7d(A)=|8-1|=7 d(D)=∣8−9∣=1d(D)=|8-9|=1

距離最近的是 D,因此讀取 D,讀寫頭移至磁柱 9。

🔒

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

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

免費註冊

第 8 題

磁碟陣列(RAID)可分成不同等級,對於各不同等級的磁碟陣列至少需要幾顆磁碟機才能運作的條件,下列敘述何者錯誤?

這一題的完整詳解

核心觀念

本題考查各種 RAID(Redundant Array of Independent Disks,獨立磁碟冗餘陣列)的資料配置方式,以及其正常運作所需的最低磁碟機數量。

常見 RAID 等級如下:

  • RAID 0:資料分割(Striping),不具備容錯能力。
  • RAID 1:資料鏡像(Mirroring)。
  • RAID 2:以位元為單位分割資料,並使用漢明碼(Hamming Code)進行錯誤更正。
  • RAID 5:資料與同位檢查資訊分散配置,具備單一磁碟故障容錯能力。
  • RAID 1+0:先鏡像,再分割資料,兼具效能與容錯能力。

本題依命題慣例判斷各 RAID 等級的最低磁碟數量。

解題方法

判斷重點是:各 RAID 等級的資料配置與冗餘資訊,至少需要幾顆磁碟才能形成完整陣列。

RAID 等級主要技術最少磁碟數
RAID 0分割資料2
RAID 1鏡像2
RAID 2位元分割+漢明碼3
RAID 5分散式同位檢查3
RAID 1+0鏡像後再分割4

因此,題目所列的「至少需要 2 顆」若用於 RAID 2,與一般考試採用的 RAID 規格表不符,故錯誤選項為 B。

選項分析

(A) RAID 0 至少需要 2 顆:正確

RAID 0 將資料分割後,分散寫入兩顆以上的磁碟,以提升平行讀寫效能。

若只有一顆磁碟,便無法形成「分散」配置,因此至少需要:

2 顆磁碟2\text{ 顆磁碟}

RAID 0 不提供鏡像或同位檢查,任一磁碟故障都可能造成整個陣列資料損失,但這不影響其最低磁碟數為 2 顆。

(B) RAID 2 至少需要 2 顆:錯誤

🔒

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

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

免費註冊

第 9 題

在 32 位元單精確度 IEEE 754 浮點數表示法中,第一個位元是符號位元;之後是 8 個位元的指數部分,以偏移表示法(Biased Notation)呈現欄位中的數值,且偏移值是 127;最後的 23 位元代表小數部分。以該標準格式表示 10 進位的 -18.625 結果為何?

這一題的完整詳解

核心觀念

本題考查 32 位元單精確度 IEEE 754 浮點數格式:

符號位元 (1 位)  ∣  指數 (8 位)  ∣  小數部分 (23 位)\text{符號位元 }(1\text{ 位})\;|\;\text{指數 }(8\text{ 位})\;|\;\text{小數部分 }(23\text{ 位})

其數值公式為:

(−1)S×(1.F)2×2E−127(-1)^S \times (1.F)_2 \times 2^{E-127}

其中:

  • SS:符號位元,00 表示正數,11 表示負數。
  • EE:以偏移值 127127 儲存的指數。
  • FF:小數部分,正常化數值的整數部分省略為隱含的 11。

解題方法

先將 −18.625-18.625 轉換為二進位。

整數部分:

1810=10010218_{10}=10010_2

小數部分:

0.62510=0.10120.625_{10}=0.101_2

因此:

18.62510=10010.101218.625_{10}=10010.101_2

將其正常化:

10010.1012=1.00101012×2410010.101_2=1.0010101_2\times 2^4

1. 符號位元

因為數值為負數:

S=1S=1

2. 指數部分

實際指數為 44,加上偏移值 127127:

E=4+127=131E=4+127=131

將 131131 轉換為 8 位元二進位:

13110=100000112131_{10}=10000011_2

3. 小數部分

正常化後的數值為:

1.0010101‾2×241.\underline{0010101}_2\times 2^4

省略最前面的隱含位元 11,小數部分為:

00101010010101

補足 23 位元:

0010101000000000000000000101010000000000000000

4. 組合三個欄位

1  ∣  10000011  ∣  001010100000000000000001\;|\;10000011\;|\;00101010000000000000000

完整 32 位元表示為:

1100000110010101000000000000000011000001100101010000000000000000

每 4 位元分組:

1100  0001  1001  0101  0000  0000  0000  00001100\;0001\;1001\;0101\;0000\;0000\;0000\;0000

所以正確選項為 (D)。


選項分析

(A) 1000  0010  0100  1010  1000  0000  0000  00001000\;0010\;0100\;1010\;1000\;0000\;0000\;0000

  • 符號位元為 11,表示負數,這部分正確。
  • 指數部分為 100000102=13010000010_2=130,實際指數為:
130−127=3130-127=3
🔒

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

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

免費註冊

第 10 題

計算機中的記憶體可分為讀寫記憶體(Read Write Memory, RWM)與唯讀記憶體(Read Only Memory, ROM),常見的讀寫記憶體中又有動態隨機存取記憶體(Dynamic Random Access Memory, DRAM)與靜態隨機存取記憶體(Static Random Access Memory, SRAM)。在現實世界中,下列敘述何者正確?

這一題的完整詳解

核心觀念

本題考查記憶體的分類、揮發性,以及 DRAM、SRAM 與 ROM 的用途和容量特性。

  • 讀寫記憶體(RWM):可讀取也可寫入,常見類型包括 DRAM 與 SRAM。
  • 唯讀記憶體(ROM):主要供系統讀取資料,內容在斷電後仍能保留,屬於非揮發性記憶體。
  • DRAM:以電容儲存資料,必須定期更新內容,容量大、成本低,常作為主記憶體。
  • SRAM:以正反器電路儲存資料,不需定期更新,速度快但成本高、單位面積容量較小,常作為快取記憶體。
  • BIOS:屬於主機板韌體,通常儲存在 ROM 類型的非揮發性記憶體中。

判斷本題的關鍵,是比較各類記憶體的「斷電後資料是否保留」、「單位成本與容量」及「典型用途」。

解題方法

逐一檢查各選項:

  1. ROM 是否具有揮發性?
  2. 一般計算機中 ROM 與 RWM 的容量大小關係。
  3. SRAM 與 DRAM 的容量及成本特性。
  4. BIOS 實際儲存在哪一類記憶體中。

其中,DRAM 通常作為容量較大的主記憶體;SRAM 雖然速度較快,但成本高、密度低,因此容量通常小於 DRAM。ROM 則主要存放開機程式與韌體,所需容量通常小於主記憶體。

選項分析

(A) 唯讀記憶體為揮發性的

錯誤。

揮發性記憶體在電源中斷後,儲存內容會消失,典型例子是 DRAM 與 SRAM。

ROM 的主要特性是斷電後仍能保存資料,因此屬於非揮發性記憶體。BIOS 等開機所需程式必須在關機後仍然存在,正是因為它儲存在非揮發性記憶體中。

(B) 計算機中的唯讀記憶體容量比讀寫記憶體小

正確,為本題答案。

在一般計算機系統中:

  • RWM 中的 DRAM 通常作為主記憶體,需提供作業系統、應用程式及執行中資料使用,因此容量較大。
  • ROM 主要存放 BIOS、韌體或固定的系統啟動程式,所需儲存空間通常較小。

因此,從現實世界中一般計算機的配置而言,ROM 容量通常小於 RWM 容量。

🔒

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

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

免費註冊

第 11 題

對於一個使用區段記憶體管理(segmentation memory management)的系統,下列敘述何者正確?

這一題的完整詳解

核心觀念

本題考「區段記憶體管理(segmentation)」與「分頁記憶體管理(paging)」的差異。

區段記憶體管理是依照程序的邏輯結構,將程序分成大小不固定的區段,例如:

  • 程式碼區段(code segment)
  • 資料區段(data segment)
  • 堆疊區段(stack segment)
  • 函式或模組區段

每個區段通常需配置一段連續的實體記憶體,並以「區段編號+區段內位移」表示位址。系統會使用區段表(segment table)記錄各區段的起始位址與長度。

由於各區段大小不同,配置與釋放後容易在記憶體中留下大小不一的空閒區塊,因此會產生外部碎片(external fragmentation)。

解題方法

判斷本題可掌握三個特徵:

  1. 最小配置單位是區段,不是分頁。
  2. 區段大小不固定。
  3. 通常以區段表記錄區段位置,且可能產生外部碎片。

逐一比對選項後,只有敘述「可能產生外部碎片」符合區段記憶體管理的特性。

選項分析

(A) 記憶體將以一個分頁(page)作為最小的配置單位

錯誤。

以分頁作為固定大小配置單位,是分頁記憶體管理的特徵。區段記憶體管理以區段作為主要配置單位,且區段大小可依程序的邏輯需求而不同。

分頁管理通常會產生內部碎片;區段管理則因區段大小不一且通常需連續配置,容易產生外部碎片。

(B) 同一個程序中的不同區段,大小皆相同

錯誤。

區段是依程序的邏輯用途劃分,大小不必相同。例如程式碼區段、資料區段與堆疊區段所需的容量通常不同,因此區段屬於「可變大小」的記憶體配置單位。

固定大小是分頁管理的特徵,不是區段管理的特徵。

(C) 一個程序需要一個分頁表(page table)來記錄每個區段所在的位置

🔒

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

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

免費註冊

第 12 題

下列不同無號數進制表示法的運算式之計算結果,何者的值最大?

這一題的完整詳解

核心觀念

本題考查不同無號數進制的數值轉換與減法運算。不同進制的表示法,必須先換算成相同進制,才能比較大小。

常用轉換公式為:

(anan−1⋯a0)b=∑i=0naibi(a_na_{n-1}\cdots a_0)_b = \sum_{i=0}^{n}a_i b^i

其中 bb 為進制,aia_i 為各位數字。


解題方法

逐一將各選項的運算結果換算成十進位:

(A) (1000001−100000)2(1000001-100000)_2

(1000001)2=1×26+1=65(1000001)_2=1\times2^6+1=65 (100000)2=1×25=32(100000)_2=1\times2^5=32

因此:

65−32=3365-32=33

所以 (A) 的值為 3333。


(B) (76−34)8(76-34)_8

(76)8=7×8+6=62(76)_8=7\times8+6=62 (34)8=3×8+4=28(34)_8=3\times8+4=28

因此:

62−28=3462-28=34

所以 (B) 的值為 3434。


(C) (73−38)10(73-38)_{10}

因為本身就是十進位:

73−38=3573-38=35

所以 (C) 的值為 3535。


(D) (CD−AF)16(\text{CD}-\text{AF})_{16}

十六進位中:

🔒

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

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

免費註冊

第 13 題

假設一計算機儲存浮點數(floating point numbers)的型式如下:

01…89…31SCM\begin{array}{|c|c|c|} \hline 0 & 1 \quad \dots \quad 8 & 9 \quad \dots \quad 31 \\ \hline \text{S} & \text{C} & \text{M} \\ \hline \end{array}

其中 S=0S = 0 為正,S=1S = 1 為負,C=Exponent(指數)+127C = \text{Exponent(指數)} + 127,小數點在 mantissa(MM)最左端,小數點右邊第一位位元(bit)恆不為 0 且必須儲存為精確度(precision)的位元之一,則此浮點數表示法的精確度一共使用了多少位元(bits)?

🖼️ 本題原卷含圖表。基於試題來源之版權考量,本站不轉載原卷影像; 題目文字已完整轉錄,圖表請自行參閱考選部公告之試題原檔。
這一題的完整詳解

核心觀念

本題考查浮點數格式中各欄位的位元數,以及「精確度(precision)」所代表的意義。

圖示共有 3232 位元:

  • SS:第 00 位,符號位元,共 11 位。
  • CC:第 11 至第 88 位,指數欄位,共 88 位。
  • MM:第 99 至第 3131 位,尾數欄位,共 2323 位。

題目特別指出:小數點在 mantissa 的最左端,且小數點右邊第一位位元恆不為 00,並且「必須儲存」為精確度的位元之一。因此,精確度就是實際儲存在 MM 欄位中的位元數。

解題方法

尾數欄位 MM 的範圍為第 99 位至第 3131 位,計算如下:

31−9+1=2331-9+1=23

因此,尾數實際儲存 2323 位元。由於小數點右邊第一位也必須儲存,不能視為隱藏位元,所以浮點數表示法的精確度為:

23 bits\boxed{23\text{ bits}}

指數欄位使用偏移值 127127,只影響指數的表示方式,不影響精確度位元數。

🔒

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

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

免費註冊

第 14 題

下列三個式子中,有幾個是正確? ① 110010.10112<658110010.1011_2 < 65_8 ② 210<1042_{10} < 10_4 ③ 330.62510<506.58330.625_{10} < 506.5_8

這一題的完整詳解

核心觀念

本題考查不同進位制數字的轉換與大小比較。

進位制數字的位值公式為:

(anan−1⋯a0.a−1a−2⋯ )b=∑aibi(a_na_{n-1}\cdots a_0.a_{-1}a_{-2}\cdots)_b =\sum a_i b^i

其中:

  • 整數部分依各位數乘以 b0,b1,b2,…b^0,b^1,b^2,\ldots
  • 小數部分依各位數乘以 b−1,b−2,b−3,…b^{-1},b^{-2},b^{-3},\ldots

比較不同進位制數字時,必須先轉換成相同進位制,通常轉換為十進位最直接。

解題方法

① 110010.10112<658110010.1011_2 < 65_8

先將二進位轉為十進位:

110010.10112=1×25+1×24+0×23+0×22+1×21+0×20110010.1011_2 =1\times 2^5+1\times 2^4+0\times 2^3+0\times 2^2+1\times 2^1+0\times 2^0

小數部分為:

1×2−1+0×2−2+1×2−3+1×2−41\times 2^{-1}+0\times 2^{-2}+1\times 2^{-3}+1\times 2^{-4}

因此:

110010.10112=32+16+2+12+18+116=50.687510110010.1011_2 =32+16+2+\frac12+\frac18+\frac1{16} =50.6875_{10}

再將八進位轉為十進位:

658=6×8+5=531065_8=6\times 8+5=53_{10}

比較可得:

50.6875<5350.6875<53

所以第①式正確。


② 210<1042_{10} < 10_4

四進位的 10410_4 表示:

104=1×41+0×40=41010_4=1\times 4^1+0\times 4^0=4_{10}

因此:

210<4102_{10}<4_{10}

所以第②式正確。


③ 330.62510<506.58330.625_{10} < 506.5_8

將八進位轉為十進位:

506.58=5×82+0×81+6×80+5×8−1506.5_8 =5\times 8^2+0\times 8^1+6\times 8^0+5\times 8^{-1}
🔒

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

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

免費註冊

第 15 題

下列那一種進制可以將十進制數 (2468.6)10(2468.6)_{10},用有限的位元完整精確地表示出來?

這一題的完整詳解

核心觀念

本題考查「有理數在不同進制下能否有限表示」的判斷方法。

將十進制小數化為最簡分數後,若分母的所有質因數都能在進制的基數中找到,該數即可用有限位數表示。

例如:

  • 22 進制的基數質因數為 22
  • 33 進制的基數質因數為 33
  • 44 進制的基數質因數為 22
  • 55 進制的基數質因數為 55

題目中的數為:

(2468.6)10=2468+610=2468+35(2468.6)_{10}=2468+\frac{6}{10} =2468+\frac{3}{5}

小數部分的最簡分母為 55,因此必須選擇基數含有質因數 55 的進制。


解題方法

整數部分 24682468 在任何整數進制中都能以有限位數表示,判斷關鍵在於小數部分:

0.6=350.6=\frac{3}{5}

在 55 進制中:

35=3×5−1\frac{3}{5}=3\times 5^{-1}

所以:

(0.6)10=(0.3)5(0.6)_{10}=(0.3)_5

再將整數部分 24682468 轉為 55 進制:

2468=3×625+4×125+3×25+3×5+32468=3\times625+4\times125+3\times25+3\times5+3

因此:

(2468)10=(34333)5(2468)_{10}=(34333)_5

合併後:

(2468.6)10=(34333.3)5(2468.6)_{10}=(34333.3)_5

這是有限位數的 55 進制表示。


選項分析

(A) 2 進制:錯誤

22 進制的基數只有質因數 22,但小數部分為:

35\frac{3}{5}

分母含有質因數 55,無法在 22 進制中有限表示,會形成循環小數。

例如小數部分轉換時:

0.6×2=1.20.6\times2=1.2
🔒

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

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

免費註冊

第 16 題

設計 4-to-1 多工器(Multiplexer)時,需要幾個位元的選擇輸入訊號?

這一題的完整詳解

核心觀念

多工器(Multiplexer, MUX)會根據「選擇輸入訊號」的二進位組合,從多組資料輸入中選出一組,送至輸出端。

若多工器有 nn 個選擇輸入位元,能表示的選擇狀態數為:

2n2^n

4-to-1 多工器共有 4 組資料輸入,必須能選擇其中任意 1 組,因此需要的選擇狀態數為 4。

解題方法

設需要 nn 個選擇輸入位元,則:

2n=42^n=4

因此:

n=log⁡24=2n=\log_2 4=2

兩個選擇輸入位元可形成 4 種組合:

選擇輸入選取的資料輸入
00D0D_0
01D1D_1
10D2D_2
11D3D_3

所以 4-to-1 多工器需要 2 個位元的選擇輸入訊號。

選項分析

🔒

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

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

免費註冊

第 17 題

布林函數 F(A,B,C,D)=∑m(1,2,5,6,9)+∑d(10,11,12,13,14,15)F(A, B, C, D) = \sum m(1, 2, 5, 6, 9) + \sum d(10, 11, 12, 13, 14, 15),其中 dd 為隨意項(don’t care),將 FF 化簡後,下列何者是其化簡後的結果?

這一題的完整詳解

核心觀念

本題考查:

  • 四變數布林函數的最小項表示法。
  • 隨意項(don’t care)的使用。
  • 卡諾圖分組與布林代數化簡。
  • 隨意項可視為 11 或 00,應選擇有利於化簡的方式,但不能使原本的必要最小項消失。

題目給定:

F(A,B,C,D)=∑m(1,2,5,6,9)+∑d(10,11,12,13,14,15)F(A,B,C,D)=\sum m(1,2,5,6,9)+\sum d(10,11,12,13,14,15)

其中 mm 為必須使函數值為 11 的最小項,dd 為可自由設定的隨意項。


解題方法:利用卡諾圖分組

四變數最小項以 ABCDABCD 的二進位表示:

最小項ABCD1000120010501016011091001\begin{array}{c|c} \text{最小項} & ABCD \\ \hline 1 & 0001\\ 2 & 0010\\ 5 & 0101\\ 6 & 0110\\ 9 & 1001 \end{array}

隨意項為:

10=1010,11=1011,12=1100,13=1101,14=1110,15=111110=1010,\quad 11=1011,\quad 12=1100,\quad 13=1101,\quad 14=1110,\quad 15=1111

在卡諾圖中,可利用隨意項擴大分組。

第一組取:

m(1,5,9,13)m(1,5,9,13)

其二進位如下:

0001, 0101, 1001, 11010001,\ 0101,\ 1001,\ 1101

在此群組中,AA、BB 皆有變化,C=0C=0、D=1D=1 固定,因此化簡為:

CˉD\bar{C}D

第二組取:

m(2,6,10,14)m(2,6,10,14)

其二進位如下:

0010, 0110, 1010, 11100010,\ 0110,\ 1010,\ 1110

在此群組中,AA、BB 皆有變化,C=1C=1、D=0D=0 固定,因此化簡為:

CDˉC\bar{D}

所以:

F=CˉD+CDˉF=\bar{C}D+C\bar{D}

這正是選項(C)。


選項分析

(A)AˉB+ABˉ\bar{A}B+A\bar{B}

此式代表 AA 與 BB 互異,也就是 A⊕BA\oplus B。

檢查必要最小項 m(1)m(1):

m(1)=0001m(1)=0001

此時 A=0,B=0A=0,B=0,因此:

AˉB+ABˉ=1⋅0+0⋅1=0\bar{A}B+A\bar{B}=1\cdot 0+0\cdot 1=0

但題目指定 m(1)m(1) 必須為 11,故選項(A)錯誤。


(B)AˉC+ACˉ\bar{A}C+A\bar{C}

🔒

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

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

免費註冊

第 18 題

若布林函數 F(A,B,C)=AB+AˉCF(A, B, C) = AB + \bar{A}C,以正規最小項和(Canonical Sum of Minterms)表示時,其結果為:

這一題的完整詳解

核心觀念

本題考查布林函數轉換為「正規最小項和」的表示法。正規最小項和要求:

  • 每一項都必須包含所有變數 A、B、CA、B、C。
  • 函數值為 11 的輸入組合,轉換成對應的最小項 mim_i。
  • 最小項編號依變數順序 ABCABC 的二進位值決定,其中 AA 為最高位元。

例如:

  • ABC=001ABC=001,對應 m1m_1;
  • ABC=111ABC=111,對應 m7m_7。

解題方法一:代數展開

原函數為:

F(A,B,C)=AB+AˉCF(A,B,C)=AB+\bar{A}C

先將每一項補入缺少的變數。

對 ABAB 而言,利用 C+Cˉ=1C+\bar{C}=1:

AB=AB(C+Cˉ)AB=AB(C+\bar{C}) =ABC+ABCˉ=ABC+AB\bar{C}

對 AˉC\bar{A}C 而言,利用 B+Bˉ=1B+\bar{B}=1:

AˉC=AˉC(B+Bˉ)\bar{A}C=\bar{A}C(B+\bar{B}) =AˉBC+AˉBˉC=\bar{A}BC+\bar{A}\bar{B}C

因此:

F=ABC+ABCˉ+AˉBC+AˉBˉCF=ABC+AB\bar{C}+\bar{A}BC+\bar{A}\bar{B}C

依照 ABCABC 的排列順序,逐項判定最小項編號:

布林項ABCABC 組合最小項
AˉBˉC\bar{A}\bar{B}C001001m1m_1
AˉBC\bar{A}BC011011m3m_3
ABCˉAB\bar{C}110110m6m_6
ABCABC111111m7m_7

所以:

F(A,B,C)=∑m(1,3,6,7)F(A,B,C)=\sum m(1,3,6,7)

因此選擇:

(C)\boxed{\text{(C)}}

解題方法二:直接列出函數為 11 的情況

原式:

F=AB+AˉCF=AB+\bar{A}C

第一部分 AB=1AB=1 的條件是 A=1、B=1A=1、B=1,此時 CC 可為 00 或 11:

  • ABC=110⇒m6ABC=110\Rightarrow m_6
  • ABC=111⇒m7ABC=111\Rightarrow m_7

第二部分 AˉC=1\bar{A}C=1 的條件是 A=0、C=1A=0、C=1,此時 BB 可為 00 或 11:

🔒

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

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

免費註冊

第 19 題

雙向移位器(Bi-Directional Shifter)的設計中,除了 D 型正反器(D flip-flops)外,使用下列何種邏輯元件最為適宜?

這一題的完整詳解

核心觀念

雙向移位器由多個 D 型正反器組成,用來儲存資料;每個正反器的輸入端 DD,必須依控制訊號選擇不同來源:

  • 向左移位:接收右側相鄰正反器的輸出。
  • 向右移位:接收左側相鄰正反器的輸出。
  • 邊界位置:接收外部串列輸入或補入指定值。

因此,每個 D 型正反器的 DD 輸入端需要在兩個以上資料來源中進行選擇,最適合使用多工器(Multiplexer, MUX)。

解題方法

以 4 位元雙向移位器為例,設正反器輸出為 Q3,Q2,Q1,Q0Q_3,Q_2,Q_1,Q_0,方向控制訊號為 SS。

以 Q1Q_1 所對應的正反器為例:

  • 向左移位時,D1D_1 應接收 Q0Q_0。
  • 向右移位時,D1D_1 應接收 Q2Q_2。

因此,D1D_1 的輸入可表示為:

D1={Q0,S=0Q2,S=1D_1= \begin{cases} Q_0, & S=0 \\ Q_2, & S=1 \end{cases}

這正是 2 對 1 多工器的功能:

D1=S‾Q0+SQ2D_1=\overline{S}Q_0+SQ_2

其他各位元的 D 輸入也以相同方式,利用多工器依方向控制訊號選擇左、右相鄰位元的資料。故雙向移位器除了 D 型正反器外,最適合使用的邏輯元件是多工器。

選項分析

(A) 編碼器(Encoder)錯誤

編碼器的功能是將多條輸入線中的啟用訊號,轉換成較少位元的二進位編碼。例如將 88 條輸入編碼成 33 位元輸出。

🔒

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

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

免費註冊

第 20 題

計算機有許多不同的數碼系統來編輯數字,若以 84-2-1(84 負 2 負 1)碼來表示十進制數 58 時,答案為何?

這一題的完整詳解

核心觀念

本題考查「加權碼」的表示方式。84-2-184\text{-}2\text{-}1 碼的四個位元權值依序為:

8, 4, −2, −18,\ 4,\ -2,\ -1

每一個十進制數字以 4 個位元表示,位元值為 11 的權值相加後,必須等於該十進制數字。十進制數 5858 必須拆成兩個數字「5」與「8」分別編碼,再串接為 8 位元。

解題方法

先求十進制數字 55 的 84-2-184\text{-}2\text{-}1 碼:

8−2−1=58-2-1=5

因此四個位元依序為:

1 0 1 11\ 0\ 1\ 1

再求十進制數字 88 的編碼:

8=88=8

因此四個位元為:

1 0 0 01\ 0\ 0\ 0

將「5」與「8」的編碼依序串接:

58⟶5 8⟶1011 100058 \longrightarrow 5\ 8 \longrightarrow 1011\ 1000

所以:

10111000\boxed{10111000}

選項分析

  • (A) 1011100010111000:正確

前四位 10111011 表示:

8−2−1=58-2-1=5

後四位 10001000 表示:

8=88=8
🔒

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

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

免費註冊

第 21 題

假設有一個邏輯推論系統,black(x)\text{black}(x) 代表 xx 是黑色的,dog(x)\text{dog}(x) 代表 xx 是一隻狗,A→BA \rightarrow B 代表若 AA 則 BB,(∀x)(y)(\forall x)(y) 代表所有的 xx 都具有 yy 的特性。根據下列敍述,可以得到什麼邏輯推論:(∀x)(dog(x)→black(x))(\forall x)(\text{dog}(x) \rightarrow \text{black}(x))

這一題的完整詳解

核心觀念

本題考查一階述詞邏輯中的:

  • 全稱量詞 (∀x)(\forall x):表示「對所有的 xx」。
  • 蘊涵符號 →\rightarrow:表示「若……則……」。
  • dog(x)\text{dog}(x):xx 是狗。
  • black(x)\text{black}(x):xx 是黑色的。

題目公式為:

(∀x)(dog(x)→black(x))(\forall x)(\text{dog}(x)\rightarrow \text{black}(x))

其完整意思是:

對所有的 xx 而言,只要 xx 是狗,xx 就是黑色的。

因此可翻譯為「所有的狗都是黑色的」。

解題方法

判讀蘊涵式時,先確認箭頭兩側的方向:

A→BA\rightarrow B

表示:

若 AA,則 BB。

本題中:

  • 前件 A=dog(x)A=\text{dog}(x):xx 是狗。
  • 後件 B=black(x)B=\text{black}(x):xx 是黑色。

所以公式要求的是:

dog(x)→black(x)\text{dog}(x)\rightarrow \text{black}(x)

也就是「狗」是條件,「黑色」是結果,不能將兩者對調。

選項分析

(A) 所有動物中的狗都是黑色的

此選項可理解為「在動物範圍內,所有狗都是黑色的」。若題目明確將論域限定為所有動物,則其意思與本題公式相近;但原公式本身只表達「所有狗都是黑色的」,沒有額外加入「動物中的」這項限制。

依題目公式的直接、標準翻譯,應選擇表達最完整且最精確的 (C),因此 (A) 不作為標準答案。

(B) 所有動物中黑色的都是狗

此選項表示:

若某個動物是黑色的,則它是狗。

形式上較接近:

🔒

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

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

免費註冊

第 22 題

在統一塑模語言(Unified Modeling Language)中,下列圖型中何者著重於敘述物件間的訊息傳遞與順序?

這一題的完整詳解

核心觀念

本題考查 UML 各類圖形的用途,重點在於辨識「結構模型」與「行為模型」:

  • 類別圖(Class Diagram):描述類別、屬性、方法及類別間的靜態關係。
  • 部署圖(Deployment Diagram):描述系統軟體元件配置於硬體節點的情形。
  • 物件圖(Object Diagram):描述特定時間點的物件實例及其關係。
  • 循序圖(Sequence Diagram):描述物件或參與者之間傳遞訊息的內容,以及訊息發生的先後順序。

題目中的關鍵語句是「物件間的訊息傳遞與順序」,這正是循序圖的核心功能。

解題方法

判斷 UML 圖形時,可先找題幹關鍵字:

  • 出現「類別、屬性、方法、繼承、關聯」:偏向類別圖。
  • 出現「硬體節點、伺服器、裝置、部署」:偏向部署圖。
  • 出現「物件實例、某一時間點的狀態」:偏向物件圖。
  • 出現「訊息、呼叫、生命線、時間順序」:偏向循序圖。

循序圖以垂直方向表示時間先後,並以物件或參與者的生命線表示互動對象;訊息通常由一條生命線指向另一條生命線,用來呈現方法呼叫或訊息傳遞的順序。

因此,本題答案為 (D)循序圖。

選項分析

(A)類別圖(Class Diagram)錯誤

類別圖屬於 UML 的結構圖,主要描述:

  • 類別名稱
  • 屬性
  • 操作或方法
  • 繼承、關聯、聚合、組合及相依等關係

它著重於系統中「有哪些類別」及「類別彼此如何關聯」,屬於較靜態的設計觀點,並非用來表示物件之間訊息傳遞的時間順序。

🔒

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

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

免費註冊

第 23 題

針對 C++ 程式語言中的純虛擬函式(pure virtual function),下列敍述何者錯誤?

這一題的完整詳解

核心觀念

本題考查 C++ 的「純虛擬函式」與「抽象類別(abstract class)」。

在 C++ 中,將虛擬函式宣告為純虛擬函式,通常寫成:

virtual void show = 0;

只要類別中含有至少一個純虛擬函式,該類別就是抽象類別。抽象類別具有以下特性:

  1. 不能直接建立物件。
  2. 可以被其他類別繼承。
  3. 衍生類別必須實作所有繼承而來的純虛擬函式,才能成為具體類別。
  4. 衍生類別也可以不實作純虛擬函式,此時衍生類別仍是抽象類別。
  5. 同一類別可以同時具有純虛擬函式與一般虛擬函式。

解題方法

判斷各選項是否正確時,應分別檢查純虛擬函式對「建立物件」、「繼承關係」及「函式種類」的影響。

關鍵區分如下:

  • 「不能建立物件」是抽象類別的限制。
  • 「不能繼承其他類別」並不是抽象類別的限制。
  • 抽象類別仍然可以作為基底類別,被其他類別繼承。

因此,只要找出把「不能建立物件」誤植成「不能繼承其他類別」的選項,即可判定答案。


選項分析

(A) 一個類別如果含有純虛擬函式,則該類別無法用來建立一個物件

正確。

含有純虛擬函式的類別屬於抽象類別,不能直接宣告該類別的物件。例如:

class Animal {
public:
 virtual void speak = 0;
};

Animal a; // 錯誤:Animal 是抽象類別

不過,抽象類別可以作為基底類別,透過具體的衍生類別建立物件:

class Dog : public Animal {
public:
 void speak override {}
};

Dog d; // 正確

因此,A 的敘述正確。


(B) 一個類別如果含有純虛擬函式,則該類別無法繼承其他類別

錯誤,故為本題答案。

含有純虛擬函式的類別雖然不能直接建立物件,但仍然可以繼承其他類別。例如:

class Base {
public:
 virtual void run {}
};

class Derived : public Base {
public:
 virtual void show = 0;
};

Derived 同時繼承了 Base,並且自行宣告純虛擬函式 show。因此,含有純虛擬函式並不會限制類別的繼承能力。

🔒

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

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

免費註冊

第 24 題

若執行以下的 Python 程式碼,則螢幕上輸出的數字依序為何?

list = [1, 2, 3, 4]

def function(list):
    print(list[2])
    list[2] = 7
    print(list[2])

print(list[2])
function(list)
print(list[2])
這一題的完整詳解

核心觀念

本題考查 Python 的下列觀念:

  1. 串列(list)是可變動(mutable)的資料型態。
  2. 函式參數傳遞的是物件參考;函式內的參數 list 與外部的串列指向同一個串列物件。
  3. 透過索引指定值,例如 list[2] = 7,會直接修改原串列。
  4. Python 串列索引從 00 開始,因此:
list=[1,2,3,4]\text{list} = [1,2,3,4]

各索引對應為:

索引0123
元素1234

所以 list[2] 的初始值是 33。

解題方法

依照程式執行順序逐行判斷:

  1. 執行:
print(list[2])

此時 list[2] = 3,輸出第一個數字:

33

  1. 呼叫:
function(list)

函式參數 list 指向外部同一個串列。

  1. 函式內執行:
print(list[2])

尚未修改串列內容,因此輸出第二個數字:

33

  1. 執行:
list[2] = 7

這會直接將原串列的第 2 索引元素由 33 改為 77。串列變成:

[1, 2, 7, 4]
  1. 函式內再次執行:
print(list[2])

此時 list[2] = 7,輸出第三個數字:

77

  1. 函式結束後執行:
🔒

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

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

免費註冊

第 25 題

若一個以列為主(Row-Major),8 列(Row)4 行(Column)的二維陣列 A,每個陣列元素占用一個記憶體位址空間,已知 A[6][3] 的記憶體位址為 1022,則 A[1][1] 的記憶體位址為何?

這一題的完整詳解

核心觀念

本題考查二維陣列在「列為主(Row-Major)」儲存方式下的記憶體位址計算。

Row-Major 的排列方式是:先連續存放同一列的所有元素,再存放下一列。每列有 44 個元素,因此從一列移動到下一列,記憶體位址增加 44。

兩個元素間的位址差可用下式計算:

位址差=(列差)×每列元素數+行差\text{位址差} = (\text{列差})\times \text{每列元素數} + \text{行差}

解題方法

已知:

  • A[6][3]A[6][3] 的記憶體位址為 10221022
  • 共有 44 行
  • 每個元素占用 11 個記憶體位址
  • 採用 Row-Major

從 A[1][1]A[1][1] 移動到 A[6][3]A[6][3]:

  1. 列由 11 移動到 66,相差 55 列,每列有 44 個元素:
5×4=205\times 4=20
  1. 行由 11 移動到 33,相差 22 個元素:
3−1=23-1=2
  1. 總位址差:
20+2=2220+2=22

因此:

Addr⁡(A[1][1])=Addr⁡(A[6][3])−22\operatorname{Addr}(A[1][1]) = \operatorname{Addr}(A[6][3])-22 =1022−22=1000=1022-22=1000

所以 A[1][1]A[1][1] 的記憶體位址為 10001000。

🔒

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

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

免費註冊

第 26 題

針對一個具有 nn 個節點的二元搜尋樹(binary search tree),下列敍述何者錯誤?

這一題的完整詳解

核心觀念

本題考查二元搜尋樹(Binary Search Tree, BST)的走訪、搜尋、插入與刪除之時間複雜度。

BST 的基本性質為:

  • 左子樹所有節點的鍵值小於根節點。
  • 右子樹所有節點的鍵值大於根節點。
  • 每個子樹本身也符合二元搜尋樹性質。

時間複雜度主要取決於樹高 hh:

  • 搜尋:Θ(h)\Theta(h)
  • 插入:Θ(h)\Theta(h)
  • 刪除:Θ(h)\Theta(h)
  • 中序走訪全部節點:Θ(n)\Theta(n)

若樹形極度偏斜,樹高可能為 nn;若樹形平衡,樹高約為 log⁡n\log n。最佳狀況則可能只需處理根節點,時間為 Θ(1)\Theta(1)。


解題方法

逐一判斷各操作在題目所指定的最佳或最差狀況下之時間複雜度:

  1. 需要走訪全部 nn 個節點的操作,通常為 Θ(n)\Theta(n)。
  2. 只需沿著樹高搜尋或移動的操作,其複雜度為 Θ(h)\Theta(h)。
  3. 最差狀況使用 h=nh=n。
  4. 最佳狀況若目標節點就在根節點,且刪除不需額外處理,則為 Θ(1)\Theta(1)。

選項分析

(A) 由根節點開始,以中序方式走訪此二元搜尋樹的時間複雜度為 Θ(n)\Theta(n)

此敘述正確。

中序走訪順序為:

  1. 走訪左子樹
  2. 處理根節點
  3. 走訪右子樹

無論 BST 的形狀為何,都必須訪問全部 nn 個節點。每個節點只處理固定次數,因此總時間為:

T(n)=cn=Θ(n)T(n)=cn=\Theta(n)

即使樹形平衡,中序走訪仍需輸出所有節點,不能降為 Θ(log⁡n)\Theta(\log n)。


(B) 在最差狀況下搜尋一個數值的時間複雜度為 Θ(n)\Theta(n)

此敘述正確。

BST 搜尋時,從根節點開始,每次比較後選擇左子樹或右子樹,因此最多沿著一條根到葉節點的路徑進行搜尋,時間複雜度為:

Θ(h)\Theta(h)
🔒

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

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

免費註冊

第 27 題

假設二元樹(binary tree)中節點的深度(depth)定義如下:

  1. 根節點(root)的深度為 0
  2. 如果節點的深度是 ii,則其子節點的深度是 i+1i+1

二元樹的高度(height)定義為樹中所有節點的深度中之最大值。

完滿二元樹(full binary tree)中的節點則需滿足以下兩個條件:

  1. 所有葉節點(leaf nodes)的深度相同
  2. 非葉節點的分支度(degree)為 2

若完滿二元樹的高度為 15,則其具有的節點數量為何?

這一題的完整詳解

核心觀念

本題考查完滿二元樹(perfect binary tree)的結構與節點數量公式。

依題目定義:

  • 根節點深度為 00
  • 每往下一層,深度增加 11
  • 所有葉節點深度相同
  • 每個非葉節點的分支度為 22

因此,高度為 1515 表示樹的節點深度從 00 到 1515,共 1616 層;且每一層的節點數量都是前一層的 22 倍。

解題方法

深度為 ii 的節點數量為:

2i2^i

高度為 1515,所以總節點數為各層節點數量總和:

1+2+22+⋯+2151+2+2^2+\cdots+2^{15}

這是首項為 11、公比為 22 的等比級數:

∑i=0152i=216−12−1=216−1\sum_{i=0}^{15}2^i = \frac{2^{16}-1}{2-1} = 2^{16}-1

計算得:

216−1=65536−1=655352^{16}-1=65536-1=65535

因此,完滿二元樹共有 6553565535 個節點。

也可直接使用完滿二元樹的節點數公式:

N=2h+1−1N=2^{h+1}-1

其中 hh 為高度。代入 h=15h=15:

N=215+1−1=216−1=65535N=2^{15+1}-1=2^{16}-1=65535

選項分析

  • (A) 32767:錯誤

32767=215−132767=2^{15}-1

這是高度為 1414 的完滿二元樹節點數:

🔒

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

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

免費註冊

第 28 題

最短剩餘時間優先(Shortest Remaining Time First, SRTF)排程法是作業系統中一種安排程序執行順序的方法。假設有 5 個程序 P1、P2、P3、P4、P5,分別於時間 0、1、1、2、3 到達工作佇列,其所需的 CPU 執行時間(CPU Burst Time)分別為 4、2、1、2、1,若以 SRTF 法排程,這 5 個程序的等待時間總和為何?

這一題的完整詳解

核心觀念

本題考查作業系統的「最短剩餘時間優先」排程法(Shortest Remaining Time First, SRTF)。

SRTF 是「可搶先式」的最短工作優先排程:

  • 每一時刻選擇剩餘 CPU 執行時間最短的程序。
  • 新程序到達時,若其 CPU Burst Time 小於目前執行程序的剩餘時間,便搶先執行。
  • 若剩餘時間相同,通常採用先到先服務(FCFS)或讓目前程序繼續執行。

程序等待時間公式為:

等待時間=完成時間−到達時間−CPU Burst Time\text{等待時間} = \text{完成時間} - \text{到達時間} - \text{CPU Burst Time}

解題方法

各程序資料如下:

程序到達時間CPU Burst Time
P104
P212
P311
P422
P531

依 SRTF 排程,遇到剩餘時間相同時,依先到先服務處理:

t=0t=0 至 t=1t=1

只有 P1 到達,因此執行 P1。

  • P1 已執行 1 單位
  • P1 剩餘時間為 4−1=34-1=3

t=1t=1 至 t=2t=2

此時 P2、P3 到達:

  • P1 剩餘 3
  • P2 剩餘 2
  • P3 剩餘 1

選擇剩餘時間最短的 P3,執行完畢。

t=2t=2 至 t=4t=4

此時 P4 到達,程序剩餘時間為:

  • P1:3
  • P2:2
  • P4:2

P2 與 P4 剩餘時間相同,P2 較早到達,因此先執行 P2。即使 t=3t=3 時 P5 到達,P2 此時剩餘時間為 1,與 P5 的 CPU Burst Time 同為 1,依同值時讓原程序繼續執行的原則,P2 執行至 t=4t=4 完成。

t=4t=4 至 t=5t=5

剩餘程序:

  • P1:3
  • P4:2
  • P5:1

選擇 P5,於 t=5t=5 完成。

t=5t=5 至 t=7t=7

剩餘:

  • P1:3
  • P4:2

選擇 P4,於 t=7t=7 完成。

t=7t=7 至 t=10t=10

最後執行 P1,於 t=10t=10 完成。

完整排程如下:

🔒

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

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

免費註冊

第 29 題

現今應用程式的計算行為相當複雜,常常要在一段時間內同時執行好幾個不同的執行緒(thread)。在多執行緒的程式中,下列何者是 thread-safe 的函數(function)必要的特性?

這一題的完整詳解

核心觀念

本題考的是多執行緒環境下的 thread-safe(執行緒安全)函數。

若多個執行緒同時執行同一函數,函數仍能維持資料正確性,不產生資料競爭(data race)、不使共享資料遭到不一致的修改,即可稱為具備執行緒安全性。

執行緒安全的核心在於:

  • 共享資料必須受到適當同步機制保護。
  • 同一時間只能讓一個執行緒修改特定共享資料。
  • 常見保護方式包括 mutex、lock、semaphore、atomic operation 等。

因此,本題應從「是否能避免多執行緒同時存取共享資料造成衝突」切入判斷。

解題方法

逐一檢查各選項是否為 thread-safe 函數的必要特性:

  1. 是否完全禁止系統呼叫?
  2. 是否保護共享全域變數?
  3. 是否禁止遞迴?
  4. 是否禁止忙碌等待?

其中只有「妥善處理共享資料」直接涉及執行緒安全的核心定義,因此選擇 B。

選項分析

(A) 在函數中不可以呼叫任何系統呼叫(system calls)

錯誤。

系統呼叫本身不代表函數不具備執行緒安全性。許多系統呼叫可以由多個執行緒安全地使用,例如檔案操作、記憶體配置或執行緒同步相關的系統服務。

是否 thread-safe,取決於系統呼叫所操作的資源,以及是否具有適當的同步控制。例如,多個執行緒同時寫入同一檔案時,必須處理檔案位置與寫入順序;但這不代表函數完全不能呼叫系統呼叫。

因此,「不可呼叫任何系統呼叫」不是必要條件。

(B) 在函數中所有用到的共享全域變數(shared global variables)都會加以保護,以保證一次只有一個執行緒可以修改其值

正確,為本題官方答案。

共享全域變數可被多個執行緒同時存取。若一個執行緒正在修改變數,另一個執行緒也同時讀取或修改,可能產生資料競爭,使結果取決於執行時序。

例如,下列操作並非單一不可分割動作:

x=x+1x = x + 1

它通常包含:

  1. 讀取 xx;
  2. 將 xx 加 11;
  3. 將結果寫回 xx。

若兩個執行緒同時執行,可能發生:

  • 執行緒甲讀取 x=0x=0;
  • 執行緒乙也讀取 x=0x=0;
  • 執行緒甲寫回 11;
  • 執行緒乙寫回 11。

最後結果為 11,而非預期的 22。

🔒

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

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

免費註冊

第 30 題

有一電腦系統支援虛擬記憶體(Virtual Memory)管理,此虛擬記憶體系統之平均分頁錯誤(Page Fault)處理時間為 8 毫秒(ms),記憶體存取時間為 120 奈秒(ns),吾人若希望虛擬記憶體的有效記憶體存取時間(Effective Memory-Access Time)不大於 130 奈秒,試算其分頁錯誤比率(Page Fault Rate)約不能高於多少,若以頻率形式表示,相當於必須約高於每多少次記憶體存取才會發生一次分頁錯誤?(下列何者最接近最小值)

這一題的完整詳解

核心觀念

本題考虛擬記憶體的有效記憶體存取時間(Effective Memory-Access Time, EAT)與分頁錯誤比率(Page Fault Rate)的關係。

設定:

  • 一般記憶體存取時間:120 ns120\text{ ns}
  • 平均分頁錯誤處理時間:8 ms8\text{ ms}
  • 分頁錯誤比率:pp
  • 有效記憶體存取時間上限:130 ns130\text{ ns}

分頁錯誤處理時間遠大於一般記憶體存取時間,因此即使分頁錯誤比率極低,也會明顯增加平均存取時間。

解題方法

先統一時間單位:

8 ms=8,000,000 ns8\text{ ms}=8,000,000\text{ ns}

採用考試常見的近似公式:

EAT=記憶體存取時間+p×分頁錯誤處理時間\text{EAT}=\text{記憶體存取時間}+p\times\text{分頁錯誤處理時間}

代入題目條件:

130=120+p×8,000,000130=120+p\times 8,000,000

因此:

p×8,000,000=10p\times 8,000,000=10 p=108,000,000=1.25×10−6p=\frac{10}{8,000,000}=1.25\times 10^{-6}

這表示分頁錯誤比率約為:

0.000001250.00000125

換算成「平均每幾次記憶體存取發生一次分頁錯誤」:

1p=11.25×10−6=800,000\frac{1}{p}=\frac{1}{1.25\times10^{-6}}=800,000

所以分頁錯誤發生頻率必須約低於每 8080 萬次記憶體存取一次,亦即分頁錯誤比率不能高於約 1/800,0001/800,000。

較精確地將一般存取時間納入加權平均:

EAT=(1−p)×120+p×8,000,000\text{EAT}=(1-p)\times120+p\times8,000,000

令其不大於 130130 ns:

120+p(8,000,000−120)≤130120+p(8,000,000-120)\leq130 p≤107,999,880≈1.25×10−6p\leq\frac{10}{7,999,880}\approx1.25\times10^{-6}

其倒數仍約為 8080 萬次,因此不影響選項判斷。

選項分析

🔒

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

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

免費註冊

第 31 題

如果想透過雲端計算(Cloud Computing)建置一個生物資訊資料庫給網際網路上的研究人員使用,使用的是屬於雲端計算中的那一類服務?

這一題的完整詳解

核心觀念

本題考查雲端計算的服務模式,主要區分:

  • SaaS(Software as a Service,軟體即服務):直接使用雲端供應商提供的完整應用軟體。
  • PaaS(Platform as a Service,平台即服務):使用雲端供應商提供的開發、執行與部署平台,建置並提供自己的應用程式或資料庫服務。
  • IaaS(Infrastructure as a Service,基礎設施即服務):租用虛擬主機、儲存設備、網路等基礎運算資源。
  • TaaS(Test as a Service,測試即服務):由雲端提供軟體測試、效能測試或相容性測試等功能。

本題的關鍵在於「建置一個生物資訊資料庫給研究人員使用」。題目描述的是建構並部署一項資料服務,而非單純使用現成軟體,因此屬於平台即服務。

解題方法

判斷雲端服務模式時,可先看使用者在雲端中扮演的角色:

  1. 若只是直接操作供應商已完成的軟體,屬於 SaaS。
  2. 若使用供應商提供的開發環境、資料庫環境及部署平台,建置自己的系統,屬於 PaaS。
  3. 若自行管理作業系統、應用程式與資料,只租用虛擬硬體資源,屬於 IaaS。
  4. 若主要需求是進行軟體或系統測試,屬於 TaaS。

本題要建立生物資訊資料庫,通常需要使用雲端提供的資料庫引擎、程式執行環境、開發工具與部署機制,再由建置者設計資料結構及服務功能,提供網際網路研究人員查詢。因此符合 PaaS 的定義。

選項分析

(A) SaaS:錯誤

SaaS 是直接使用雲端供應商提供的完整軟體,例如線上文書處理、網路郵件或雲端客戶關係管理系統。

🔒

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

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

免費註冊

第 32 題

某個 200 磁軌(編號 0..199)的磁碟中,其讀寫頭目前的位置在磁軌 100,且磁碟佇列(Disk Queue)中對於磁碟磁軌存取的要求順序如下:65, 87, 4, 106, 187, 31, 145。若分別以 FCFS(First-Come, First-Served)、SSTF(Shortest Seek Time First)、SCAN 演算法(讀寫頭往磁軌 0 的方向移動)來進行磁碟排程,則所有三種方法會造成磁頭移動距離之總和為多少磁軌?

這一題的完整詳解

核心觀念

本題考查磁碟排程演算法及磁頭移動距離。

  • FCFS:依照要求進入磁碟佇列的先後順序服務。
  • SSTF:每次選擇距離目前磁頭位置最近的要求。
  • SCAN:磁頭沿固定方向移動,服務沿途要求;到達磁軌端點後反向移動。本題指定先往磁軌 00 的方向移動,因此需先走到磁軌 00,再反向服務其餘要求。
  • 磁頭移動距離為相鄰兩次磁軌位置差的絕對值:

移動距離=∣目前磁軌−下一個磁軌∣\text{移動距離}=|目前磁軌-下一個磁軌|


解題方法

目前磁頭位於磁軌 100100,要求順序為:

65, 87, 4, 106, 187, 31, 14565,\ 87,\ 4,\ 106,\ 187,\ 31,\ 145

一、FCFS

依原始順序服務:

100→65→87→4→106→187→31→145100\rightarrow65\rightarrow87\rightarrow4\rightarrow106\rightarrow187\rightarrow31\rightarrow145

各段移動距離為:

∣100−65∣+∣65−87∣+∣87−4∣+∣4−106∣+∣106−187∣+∣187−31∣+∣31−145∣|100-65|+|65-87|+|87-4|+|4-106|+|106-187|+|187-31|+|31-145| =35+22+83+102+81+156+114=593=35+22+83+102+81+156+114=593

因此:

FCFS=593\text{FCFS}=593


二、SSTF

每次選擇距離目前位置最近的尚未服務要求。

  1. 目前在 100100:最近為 106106,距離 66
  2. 目前在 106106:最近為 8787,距離 1919
  3. 目前在 8787:最近為 6565,距離 2222
  4. 目前在 6565:最近為 3131,距離 3434
  5. 目前在 3131:最近為 44,距離 2727
  6. 目前在 44:剩餘 145、187145、187,最近為 145145,距離 141141
  7. 目前在 145145:最後為 187187,距離 4242

服務順序為:

100→106→87→65→31→4→145→187100\rightarrow106\rightarrow87\rightarrow65\rightarrow31\rightarrow4\rightarrow145\rightarrow187

總移動距離:

6+19+22+34+27+141+42=2916+19+22+34+27+141+42=291

因此:

SSTF=291\text{SSTF}=291


🔒

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

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

免費註冊

第 33 題

在 UNIX 或 Linux 系統中,假設目前工作目錄是 /usr/include/xorg,執行指令 cd .././.. 之後,工作目錄會變成下列何者?

這一題的完整詳解

核心觀念

本題考查 UNIX/Linux 的路徑表示法與 cd 指令:

  • . 代表目前工作目錄,對路徑位置沒有實質影響。
  • .. 代表目前目錄的上一層(父目錄)。
  • / 是根目錄。
  • cd 會依照指定路徑變更目前工作目錄。

目前工作目錄為:

/usr/include/xorg

解題方法

依序處理指令 cd .././.. 的路徑元件:

  1. 第一個 ..:從 /usr/include/xorg 回到上一層 /usr/include。
  2. 中間的 .:代表目前目錄,位置不變,仍為 /usr/include。
  3. 最後一個 ..:再往上一層,從 /usr/include 回到 /usr。

因此:

/usr/include/xorg→../usr/include→./usr/include→../usr/usr/include/xorg \xrightarrow{..} /usr/include \xrightarrow{.} /usr/include \xrightarrow{..} /usr

執行後的工作目錄為 /usr。

選項分析

🔒

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

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

免費註冊

第 34 題

動態記憶體配置(dynamic memory allocation)的演算法有很多種,如果系統不對可用記憶區塊的鏈接串列(linked list)依區塊大小進行排序,那麼採用下列那一種演算法可以讓系統花在記憶區塊分配(memory allocation)的時間較少?

這一題的完整詳解

核心觀念

動態記憶體配置是從可用記憶區塊(free blocks)中,找出一個大小足以容納申請空間的區塊。常見配置演算法如下:

  • First-fit(最先適合):由可用區塊串列的開頭依序搜尋,找到第一個足夠大的區塊即配置。
  • Best-fit(最佳適合):搜尋所有可用區塊,找出「最小但足夠大」的區塊。
  • Worst-fit(最差適合):搜尋所有可用區塊,找出「最大」的區塊。
  • Random-fit(隨機適合):從可用區塊中以隨機方式選擇適合區塊,並非主流的標準配置策略。

本題特別指出:可用記憶區塊的鏈接串列沒有依區塊大小排序。因此,搜尋時是否能提早停止,是判斷配置時間的關鍵。


解題方法

設可用區塊串列共有 nn 個區塊。

採用 First-fit 時,從串列開頭逐一檢查:

  1. 檢查目前區塊是否足夠大。
  2. 若足夠大,立即配置並停止搜尋。
  3. 只有在前面的區塊都不適合時,才繼續往後搜尋。

因此,First-fit 通常不必檢查完整串列,平均搜尋時間較短;最壞情況雖仍為 O(n)O(n),但實際配置時常能在前段就找到適合區塊。

反之,在區塊大小未排序的情況下:

  • Best-fit 必須檢查所有區塊,才能確認哪一個是最小的適合區塊。
  • Worst-fit 必須檢查所有區塊,才能確認哪一個是最大的區塊。

所以在未排序的鏈接串列中,First-fit 可較早結束搜尋,配置時間通常較少。


選項分析

(A) 最佳適合(best-fit)

🔒

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

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

免費註冊

第 35 題

螢幕的解析度越高是指:

這一題的完整詳解

核心觀念

螢幕的「解析度」(Resolution)是指螢幕畫面能呈現的像素數量,通常以「水平像素 × 垂直像素」表示,例如:

1920×10801920 \times 1080

代表畫面水平方向有 19201920 個像素、垂直方向有 10801080 個像素,總像素數為:

1920×1080=2,073,600 個像素1920 \times 1080 = 2,073,600 \text{ 個像素}

在螢幕尺寸相同的情況下,解析度越高,代表單位面積內可呈現的像素越多,影像通常越細緻、清晰。

解題方法

題目問「螢幕的解析度越高」所代表的意義。判斷重點在於解析度是以畫面的像素數量來衡量,而不是以色彩、亮度或對比度衡量。

因此,解析度越高,表示畫面能排列的像素越多,正確選項為「像素越多」。

選項分析

(A) 色彩越多:錯誤。

色彩多寡主要與「色彩深度」(Color Depth)或每像素使用的位元數有關。例如,色彩深度為 2424 位元時,每個像素可表示:

2242^{24}

🔒

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

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

免費註冊

第 36 題

即時傳輸協定(Real-time Transport Protocol, RTP)一般用於串流媒體系統及視訊會議系統。對於建立在 UDP 協定上的 RTP 而言,下列敘述何者錯誤?

這一題的完整詳解

核心觀念

本題考查即時傳輸協定(RTP)的功能與限制。RTP通常建立在UDP之上,負責即時影音資料的傳送與標記,但不以可靠傳輸為主要目的。

RTP標頭通常包含:

  • Sequence Number(序號):用於判斷封包順序及偵測封包遺失。
  • Timestamp(時間戳記):反映媒體取樣或播放時間,可協助接收端進行媒體同步。
  • Payload Type(酬載型態):指出酬載所使用的編碼格式。
  • SSRC(同步來源識別碼):識別同一串媒體資料的來源。

RTP一般搭配RTCP(RTP Control Protocol)使用,由RTCP傳送傳輸品質、封包遺失、抖動等控制資訊,協助進行串流管理與同步。

解題方法

本題詢問「何者錯誤」,可依序檢查各選項是否符合RTP的基本功能:

  1. RTP是否包含協助同步的資訊?
  2. RTP是否本身提供可靠傳輸與遺失重傳?
  3. RTP酬載是否能承載影音編碼資料?
  4. RTP是否通常搭配RTCP?

其中最關鍵的判斷是:RTP建立在UDP上,RTP本身不負責封包遺失重傳,也不保證資料可靠送達。

因此錯誤選項為(B)。

選項分析

(A)RTP封包具有可以幫助媒體同步的訊息——正確

RTP封包含有時間戳記(Timestamp),可表示影音資料的播放時間或取樣時間。接收端可依據時間戳記安排播放順序,協助音訊與視訊同步。

此外,RTP標頭中的序號也可協助接收端判斷封包排列順序及偵測遺失情形。因此,本選項所述正確。

(B)RTP協定提供封包遺失之重傳服務——錯誤

RTP的主要目標是提供即時媒體傳輸所需的序號、時間戳記及編碼格式資訊,並不負責可靠傳輸。

由於RTP通常使用UDP,UDP本身不提供:

🔒

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

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

免費註冊

第 37 題

下列關於數位隱藏式浮水印(invisible digital watermark)的敘述,何者錯誤?

這一題的完整詳解

核心觀念

數位浮水印(digital watermark)是將特定資訊嵌入數位媒體,例如影像、聲音或影片中,用來辨識著作權、驗證來源或偵測資料是否遭到竄改。

其中,數位浮水印可分為:

  • 可見式浮水印(visible watermark):人眼可以直接看出,例如圖片上的半透明公司標誌。
  • 數位隱藏式浮水印(invisible digital watermark):浮水印嵌入影像資料中,正常觀看時不應被人眼察覺。

本題所問的是「數位隱藏式浮水印」,因此判斷重點在於:

  1. 是否具有保護著作權的功能。
  2. 是否透過修改影像資料來嵌入資訊。
  3. 浮水印是否能被人眼直接看見。
  4. 是否具備抵抗攻擊、壓縮或編輯等處理的能力。

解題方法

題目要求找出「錯誤」的敘述。只要掌握「隱藏式浮水印」的定義,即可逐項判斷:

  • 隱藏式浮水印的設計目標,是讓一般觀看者無法直接察覺。
  • 它仍然會改變影像中的某些資料,只是改變幅度很小,通常不影響人眼觀看品質。
  • 浮水印通常用於著作權保護、來源辨識及防止未授權使用。
  • 良好的浮水印應具備穩健性(robustness),能抵抗常見的壓縮、裁切、濾波或其他攻擊。

因此,宣稱「人眼可看出圖片中所加入的浮水印」與「隱藏式」的定義相矛盾。

選項分析

(A) 浮水印的資訊不應因受到外界攻擊而消失

正確。

數位浮水印的重要特性之一是穩健性。影像可能遭受 JPEG 壓縮、縮放、裁切、濾波、雜訊加入或其他影像處理;若浮水印很容易因此消失,就難以發揮著作權保護及來源辨識的功能。

「不應因受到外界攻擊而消失」描述的是浮水印應具備的理想特性。這並非表示浮水印能抵抗所有攻擊,而是指設計上應盡量提高其抗攻擊能力。

(B) 目的是希望可以保護版權,避免圖片未經授權遭到濫用

正確。

🔒

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

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

免費註冊

第 38 題

有一張 800×600800 \times 600 像素的全彩影像,在不經過壓縮及不包含額外資訊的情況下,其資料量大小為:

這一題的完整詳解

核心觀念

本題考查全彩影像的像素資料量計算。

一般「全彩影像」採用 RGB 色彩模式,每個像素由紅、綠、藍三個色彩通道組成,每個通道通常使用 88 bits,因此:

3×8=24 bits=3 bytes3 \times 8 = 24\text{ bits}=3\text{ bytes}

所以,全彩影像通常視為每像素 2424 bits,也就是 33 bytes。

解題方法

影像共有:

800×600=480000 pixels800 \times 600=480000\text{ pixels}

每個像素需要 33 bytes,因此資料量為:

480000×3=1440000 bytes480000 \times 3=1440000\text{ bytes}

換算成 bits:

1440000×8=11520000 bits1440000 \times 8=11520000\text{ bits}

題目指定影像不經過壓縮,且不包含額外資訊,因此只計算像素本身的 RGB 資料量。故答案為:

1440000 bytes\boxed{1440000\text{ bytes}}

選項分析

  • (A) 1440000 bits:錯誤

14400001440000 是正確的資料量數值,但單位應為 bytes。若換算為 bits,應為:

1440000×8=11520000 bits1440000 \times 8=11520000\text{ bits}

因此此選項少了 88 倍。

🔒

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

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

免費註冊

第 39 題

假設各字母出現的機率 a 為 0.2、b 為 0.4、c 為 0.1、d 為 0.3,使用霍夫曼對 a、b、c、d 編碼後 b 的編碼結果,可能為下列何者?

這一題的完整詳解

核心觀念

本題考查霍夫曼編碼(Huffman Coding)的建構方法:

  1. 每次選取機率最小的兩個節點合併。
  2. 合併後的新節點,其機率為兩者相加。
  3. 重複合併,直到形成完整的二元樹。
  4. 從根節點到葉節點的路徑,即為該符號的編碼;路徑長度越短,代表符號出現機率越高。

解題方法

各字母機率如下:

字母機率
a0.2
b0.4
c0.1
d0.3

依霍夫曼演算法,先合併機率最小的兩個節點:

c(0.1)+a(0.2)=0.3c(0.1)+a(0.2)=0.3

此時節點機率為:

0.3, 0.3, 0.40.3,\ 0.3,\ 0.4

再將其中兩個 0.30.3 節點合併:

(a,c)(0.3)+d(0.3)=0.6(a,c)(0.3)+d(0.3)=0.6

最後合併:

b(0.4)+{a,c,d}(0.6)=1.0b(0.4)+\{a,c,d\}(0.6)=1.0

因此,bb 在霍夫曼樹的根節點下一層,從根走到 bb 只需經過一條邊,所以 bb 的編碼長度為 11。

依本題官方採用的分支標記方式,將 bb 所在分支標記為 11,得到:

🔒

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

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

免費註冊

第 40 題

下列關於 MP3 音訊壓縮技術的敘述,何者錯誤?

這一題的完整詳解

核心觀念

MP3(MPEG-1 Audio Layer III)是一種利用人類聽覺特性進行資料壓縮的數位音訊編碼格式,主要考查以下觀念:

  • 位元率(bit rate):每秒音訊所使用的資料量,常以 kbps 表示。
  • 失真壓縮(lossy compression):壓縮時會捨棄部分人耳較不易察覺的音訊資訊,解碼後無法完全還原原始音訊。
  • 位元率與音質的關係:在其他條件相同下,位元率越高,保留的音訊資料通常越多,回放音質通常越好;位元率越低,壓縮程度越高,音質通常越差。

解題方法

本題詢問「何者錯誤」,可直接利用「MP3 的基本特性」逐項判斷:

  1. MP3 是否能選擇不同位元率?
  2. MP3 是否屬於失真壓縮?
  3. MP3 是否為常見的數位音訊編碼技術?
  4. 低位元率是否會帶來較高音質?

其中第 4 項違反位元率與音質的一般關係,因此為錯誤敘述。

選項分析

(A) 提供不同的編碼位元率(bit rates)

正確。MP3 編碼可使用不同位元率,例如 128 kbps、192 kbps、256 kbps、320 kbps 等。位元率不同會影響檔案大小、壓縮程度與音質。

(B) 是種失真的壓縮方式

🔒

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

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

免費註冊

其他考古題

110 年地方特考四等・其他類科的《計算機概要》