107 高普考普通考試 工業行政 計算機概要 考古題詳解

107 年・高普考・普通考試・工業行政
試題代碼 計算機概要

第 1 題2 分

關於資料容量的單位,下列何者的大小排列順序正確?

這一題的完整詳解

核心觀念

本題測驗計算機系統中資料儲存容量單位(Data Capacity Units)​之階層關係與倍數進位概念。

在資訊科學中,資料計量的最基本單位為位元組(Byte,簡寫為 BB),1 Byte=8 bits1\text{ Byte} = 8\text{ bits}。為了表示較龐大的資料量,會加上度量衡前綴(Prefixes)。在二進位系統(以 210=10242^{10} = 1024 為進位基準)或十進位 SI 制(以 103=100010^3 = 1000 為基準)中,各級前綴的大小先後順序完全一致,定義如下:

  • KBKB(Kilobyte,千位元組):1 KB=210 Bytes=1,024 Bytes1\text{ KB} = 2^{10}\text{ Bytes} = 1,024\text{ Bytes}
  • MBMB(Megabyte,百萬位元組):1 MB=220 Bytes=1,024 KB1\text{ MB} = 2^{20}\text{ Bytes} = 1,024\text{ KB}
  • GBGB(Gigabyte,吉位元組/十億位元組):1 GB=230 Bytes=1,024 MB1\text{ GB} = 2^{30}\text{ Bytes} = 1,024\text{ MB}
  • TBTB(Terabyte,兆位元組):1 TB=240 Bytes=1,024 GB1\text{ TB} = 2^{40}\text{ Bytes} = 1,024\text{ GB}

依據其所代表的數量級,各單位容量由小至大的關係為: 1 Byte<1 KB<1 MB<1 GB<1 TB1\text{ Byte} < 1\text{ KB} < 1\text{ MB} < 1\text{ GB} < 1\text{ TB}


解題方法

本題主要檢驗考生對常用單位前綴大小的熟練度,以及對不等號方向(大於「>>」與小於「<<」)的判讀能力。

  1. 確認階層量級:
  • KK(Kilo)為 10310^3 或 2102^{10} 級別。
  • MM(Mega)為 10610^6 或 2202^{20} 級別。
  • GG(Giga)為 10910^9 或 2302^{30} 級別。
  • TT(Tera)為 101210^{12} 或 2402^{40} 級別。
  1. 建立大小排序:
  • 若採「由小至大(遞增)」排列,應使用小於符號「<<」:
🔒

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

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

免費註冊

第 2 題2 分

下列計算機語言中,何者可用於合成(Synthesize)數位電路?

這一題的完整詳解

核心觀念

本題主要測驗硬體描述語言(Hardware Description Language, HDL)​之定義及其在數位電路邏輯合成(Logic Synthesis)​中的應用。

  1. 硬體描述語言(HDL):用以描述數位硬體架構、行為、時序以及並行(Concurrency)特性的專用語言。不同於傳統軟體語言描述的是 CPU 循序執行的指令,HDL 描述的是實際的電子線路結構與邏輯轉移。
  2. 邏輯合成(Logic Synthesis):利用電子設計自動化(EDA)工具,將以暫存器傳輸級(Register-Transfer Level, RTL)撰寫的硬體描述程式碼,轉換為特定製程庫(Cell Library)所支援的閘階層網表(Gate-level Netlist),進而實作於 FPGA(現場可程式化邏輯閘陣列)或 ASIC(特定應用積體電路)中。

解題方法

解題切入點在於區分「通用軟體程式語言」與「硬體描述語言」:

  1. 目標平台:通用程式語言(如 C++、Java、Python)旨在編譯或直譯為處理器執行的指令集,無法直接對應硬體閘電路;而硬體描述語言則專門用於建立數位邏輯閘與正反器的拓撲結構。
  2. 關鍵動作「合成(Synthesize)」:在電子工程與計算機架構中,「合成」特指由硬體語法產生數位電路網表的過程。檢視四個選項,唯有 Verilog 屬於標準硬體描述語言(IEEE 1364),具備可合成子集(Synthesizable Subset),能直接用於電路合成。

選項分析

🔒

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

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

免費註冊

第 3 題2 分

在多媒體的壓縮技術中,為了減少數據所佔空間,多採用 entropy coding 來達成目的。假設有 6 個字母 M、N、O、P、Q、R 出現的頻率為:前兩個字母 0.250.25,後四個字母 0.1250.125。請利用 Huffman 編碼計算其 entropy:

這一題的完整詳解

核心觀念

  1. 資訊熵(Shannon Entropy): 在資訊理論中,夏農熵用以量化資訊源平均每個符號所產生的資訊量(不確定性),其定義公式為: H(X)=−∑i=1nP(xi)log⁡2P(xi)H(X) = - \sum_{i=1}^{n} P(x_i) \log_2 P(x_i) 單位通常為位元/符號(bits/symbol)。
  2. 霍夫曼編碼(Huffman Coding)與平均碼長: 霍夫曼編碼為一種經典的無失真統計熵編碼(Entropy Coding)技術,其建樹原則是「出現頻率高的符號賦予較短的碼長,出現頻率低的符號賦予較長的碼長」,其平均碼長計算公式為: L=∑i=1nP(xi)×liL = \sum_{i=1}^{n} P(x_i) \times l_i 其中 lil_i 為符號 xix_i 的編碼位元長度。
  3. 夏農第一極限定理(無失真原始碼編碼定理): 任何無失真編碼的平均碼長 L≥H(X)L \ge H(X)。當所有符號的出現機率恰好為 22 的負整數次方(即機率分佈為二進制冪次 P(xi)=2−kP(x_i) = 2^{-k})時,每個符號的最佳碼長剛好等於其自資訊量(li=−log⁡2P(xi)=kl_i = -\log_2 P(x_i) = k),此時霍夫曼編碼的平均碼長精確等於夏農熵(L=H(X)L = H(X)),達到理論極限。

解題方法

本題給定 6 個字母的出現機率如下:

  • P(M)=0.25=2−2P(M) = 0.25 = 2^{-2}
  • P(N)=0.25=2−2P(N) = 0.25 = 2^{-2}
  • P(O)=0.125=2−3P(O) = 0.125 = 2^{-3}
  • P(P)=0.125=2−3P(P) = 0.125 = 2^{-3}
  • P(Q)=0.125=2−3P(Q) = 0.125 = 2^{-3}
  • P(R)=0.125=2−3P(R) = 0.125 = 2^{-3}

檢驗總機率:2×0.25+4×0.125=0.5+0.5=1.02 \times 0.25 + 4 \times 0.125 = 0.5 + 0.5 = 1.0,分佈完整。

方法一:直接計算資訊源夏農熵(Entropy)

代入夏農熵公式: H(X)=−[∑i∈{M,N}P(i)log⁡2P(i)+∑j∈{O,P,Q,R}P(j)log⁡2P(j)]H(X) = - \left[ \sum_{i \in \{M, N\}} P(i) \log_2 P(i) + \sum_{j \in \{O, P, Q, R\}} P(j) \log_2 P(j) \right]

計算各對數項:

  • log⁡2(0.25)=log⁡2(2−2)=−2\log_2(0.25) = \log_2(2^{-2}) = -2
  • log⁡2(0.125)=log⁡2(2−3)=−3\log_2(0.125) = \log_2(2^{-3}) = -3

代入數值: H(X)=−[2×(0.25×(−2))+4×(0.125×(−3))]H(X) = - \left[ 2 \times (0.25 \times (-2)) + 4 \times (0.125 \times (-3)) \right] H(X)=−[2×(−0.5)+4×(−0.375)]H(X) = - \left[ 2 \times (-0.5) + 4 \times (-0.375) \right] H(X)=−[−1.0−1.5]=2.5 (bits/symbol)H(X) = - \left[ -1.0 - 1.5 \right] = 2.5 \text{ (bits/symbol)}

方法二:依霍夫曼演算法建樹並求平均碼長(Average Code Length)

  1. 初始節點集合:{O:0.125,P:0.125,Q:0.125,R:0.125,M:0.25,N:0.25}\{O:0.125, P:0.125, Q:0.125, R:0.125, M:0.25, N:0.25\}
  2. 第一次合併:取最小的兩節點 Q(0.125)Q(0.125) 與 R(0.125)R(0.125),生成新節點 T1(0.25)T_1(0.25)。
🔒

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

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

免費註冊

第 4 題2 分

以八位元、二進位表示十位數值 −40-40 的二補數(2's complement)為何?

這一題的完整詳解

核心觀念

本題測驗計算機系統中帶號整數(Signed Integer)的二進位表示法,特別是二補數(2's complement)​的運算規則與特性:

  1. 數值範圍:在 nn 位元的二補數系統中,可表示的十進位整數範圍為 −2n−1∼2n−1−1-2^{n-1} \sim 2^{n-1}-1。本題 n=8n=8,範圍為 −128∼+127-128 \sim +127。−40-40 落在可表示範圍內。
  2. 正負數編碼原則:
  • 最高有效位元(MSB)為符號位元:0 代表正數,1 代表負數。
  • 正整數以一般的無號二進位表示。
  • 負整數 −X-X 之二補數求法:先寫出正整數 +X+X 的二進位碼,求其一補數(反相)​後再加 1,即: 二補數=一補數+1\text{二補數} = \text{一補數} + 1

解題方法

將十進位數值 −40-40 轉換為八位元二補數表示法,依正規步驟推導如下:

  • 步驟一:求十進位 +40+40 的八位元二進位表示 利用 2 的冪次分解:40=32+8=25+2340 = 32 + 8 = 2^5 + 2^3。 補足至 8 位元: (+40)10=(00101000)2(+40)_{10} = (00101000)_2

  • 步驟二:取一補數(位元反相) 將所有位元反轉(0 變 1,1 變 0): 一補數=(11010111)2\text{一補數} = (11010111)_2

  • 步驟三:加 1 得到二補數 在一補數的最低位加 11: 110101112+12=11011000211010111_2 + 1_2 = 11011000_2

因此,−40-40 的八位元二補數為 1101100011011000。


選項分析

  • (A) 011001011001:錯誤。 位元數僅有 6 位元,未滿足題目要求的「八位元」;
🔒

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

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

免費註冊

第 5 題2 分

為了檢查資料是否正確,電腦常在每筆資料後增加一個位元核對,這個位元稱為同位核對位元(Parity Check Bit)。請問當資料為 0110101101101011 時,若採用偶數同位核對,則該同位核對位元應為:

這一題的完整詳解

核心觀念

本題測驗電腦網路與資料通訊領域中最基礎的錯誤控制技術——同位檢查(Parity Check)。

  1. 同位位元(Parity Bit):又稱同位核對位元,是附加在原始資料後的額外「單一位元(1 bit)」,用以檢查資料傳輸過程中是否有單一位元發生反轉錯誤(單一位元偵錯)。
  2. 偶同位檢查(Even Parity Check):傳送端附加同位位元後,必須確保「原始資料位元與同位位元中,『11』的總個數為偶數」。
  • 若原始資料中的「11」已有偶數個,則同位位元填 00。
  • 若原始資料中的「11」為奇數個,則同位位元填 11,使總數補足為偶數。
  1. 奇同位檢查(Odd Parity Check):傳送端附加同位位元後,必須確保「原始資料位元與同位位元中,『11』的總個數為奇數」。

解題方法

步驟一:計算原始資料中「11」的個數 題目給定的原始資料為 0110101101101011。 將所有位元中的「11」進行累加: 0+1+1+0+1+0+1+1=50 + 1 + 1 + 0 + 1 + 0 + 1 + 1 = 5 原始資料中共有 55 個「11」,屬於奇數。

步驟二:依據「偶數同位」規則決定同位位元 本題指定採用「偶數同位核對」,設同位位元為 PP。 傳送時「資料位元加上同位位元」中「11」的總個數必須為偶數: 5+P=偶數5 + P = \text{偶數} 因此,同位位元 PP 必須為 11,使整體「11」的總數達到 5+1=65 + 1 = 6(偶數)。


選項分析

🔒

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

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

免費註冊

第 6 題2 分

下列哪一選項不屬於 UNIX 系統呼叫(system call)?

這一題的完整詳解

核心觀念

本題的核心考點在於​「系統呼叫(System Call)」與「標準函式庫函式(Library Function)」的分層架構與本質差異:

  1. 作業系統的雙重模式(Dual-Mode Operation): 現代作業系統為保護硬體與核心資料結構,將 CPU 運作劃分為「使用者模式(User Mode)」與「核心模式(Kernel Mode)」。
  2. 系統呼叫(System Call): 作業系統核心(Kernel)對外提供的標準程式化介面。使用者程式若需存取受保護的硬體資源(如檔案 I/O、行程控制、網路通訊),必須透過引發軟體中斷(Trap)切換至核心模式,由作業系統核心代為執行。
  3. 標準函式庫函式(Library Function): 由高階語言執行環境(如 C 語言標準函式庫 libc)提供的使用者層級(User Space)函式。主要提供高階資料結構、格式化解析或緩衝區(Buffer)管理。函式本身執行於使用者模式,底層視需要再呼叫對應的系統呼叫以完成硬體操作。

解題方法

判定一個函式是否屬於 UNIX 系統呼叫,切入點為檢視其執行層級與底層封裝關係:

  1. 判斷是否為直接的 Kernel 介面: UNIX/POSIX 標準中,直接操作核心資源(如依賴檔案描述子 File Descriptor 進行無緩衝 I/O、直接控制行程生命週期)的介面皆為系統呼叫。
  2. 辨析 C 語言 I/O 函式庫的封裝層次: 高階格式化 I/O 函式(如 printf、scanf)屬於應用層與標準函式庫,負責將變數依照格式字串(Format Specifier)轉為字元陣列並存入緩衝區,其本身不直接與終端機硬體通訊,而是透過呼叫底層的 write 系統呼叫輸出。因此它屬於「函式庫函式」,非「系統呼叫」。

選項分析

  • (A) printf:正確(本選項不屬於系統呼叫,故選 A) printf 是 C 語言標準 I/O 函式庫(<stdio.h>)所提供的使用者層級函式。其功能是解析格式化字串並進行暫存區(Buffer)管理,全程在使用者模式下運作;
🔒

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

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

免費註冊

第 7 題2 分

關於計算機輔助儲存設備(auxiliary storage devices)之敘述,下列何者正確?

這一題的完整詳解

核心觀念

本題測驗電腦硬體架構中「輔助儲存設備(Auxiliary Storage Devices)」的運作原理與技術規格,主要涵蓋以下重點:

  1. 光學儲存媒體之規格演進:CD、DVD 與 BD(藍光)在雷射波長(λ\lambda)、物鏡數值孔徑(NANA)與儲存容量的物理限制關係。
  2. 光碟編碼與錯誤更正架構:CD-DA(紅皮書)與 CD-ROM(黃皮書)在扇區結構、編碼機制(CIRC vs. 額外 EDC/ECC)之差異。
  3. 可複寫光碟(CD-RW)之相變技術(Phase-Change Technology):利用不同雷射功率產生「非晶質(Amorphous)」與「結晶質(Crystalline)」的相態切換,以完成資料寫入、清除與讀取。
  4. 光碟與磁碟之實體磁軌結構:光碟的單一連續螺旋軌道(Continuous Spiral Track)與傳統磁碟的同心圓軌道(Concentric Tracks)之結構差異。

解題方法

解答本題需自「物理層(光學系統與材料特性)」與「邏輯/資料層(格式與編碼)」切入判斷:

  1. 區分 CD 與 DVD 的容量提升成因:光碟容量的增加源於聚焦光點大小(Spot Size ∝λNA\propto \frac{\lambda}{NA})的縮小,屬於光學硬體升級,而非單純的資料壓縮軟體技術。
  2. 分析 CD-RW 的熱相變機制:寫入與清除皆需加熱材料使其熔化或退火,必須使用較高功率的雷射;讀取僅需感測光線反射率差異,故使用不破壞相態的低功率雷射。
  3. 比對光碟與磁碟的幾何排列:磁碟磁軌由內而外為獨立封閉的同心圓,光碟則仿效黑膠唱片自內圈向外延伸為單一連續螺旋線,二者儲存幾何格式截然不同。

選項分析

  • (A) 錯誤:

  • 音樂光碟(CD-DA,規範於 Red Book)與電腦資料光碟(CD-ROM,規範於 Yellow Book)雖然使用相同的 780 nm780\text{ nm} 近紅外線雷射與基礎的八比十四調變(Eight-to-Fourteen Modulation, EFM),但在資料編碼與錯誤更正(Error Correction Code)架構上並不相同。

  • 音樂播放對些微暫態位元錯誤容忍度較高,僅採用單層交叉交錯里德-所羅門碼(Cross-Interleaved Reed-Solomon Code, CIRC);而電腦資料不能容忍任何位元錯誤,CD-ROM 額外規劃了扇區(Sector)標頭與第二層錯誤偵測與更正碼(EDC/ECC,即 Layered ECC / Reed-Solomon Product Code),因此兩者之編碼架構不同。

  • (B) 錯誤:

  • DVD 的容量大幅提升(由 CD 的約 700 MB700\text{ MB} 提升至單面單層的 4.7 GB4.7\text{ GB})並非透過「壓縮技術」,而是採用了不同的光學雷射技術與更緊密的物理結構。

  • CD 使用波長 λ=780 nm\lambda = 780\text{ nm} 的紅外線雷射,物鏡數值孔徑 NA≈0.45NA \approx 0.45;

🔒

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

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

免費註冊

第 8 題2 分

在記憶體的階層式(memory hierarchy)架構中,下列哪一個存取時間最短?

這一題的完整詳解

核心觀念

本題測驗計算機組織中「記憶體階層架構」(Memory Hierarchy)的核心概念與特性。

現代電腦架構受限於製造成本與物理特性,無法兼顧「超大容量」與「極致速度」,因此採用階層式設計,依據局部性原理(Principle of Locality,包含時間局部性與空間局部性)將不同特性的儲存元件分層配置:

  • 越靠近 CPU 運算核心的階層:存取速度越快(存取時間 TaccessT_{\text{access}} 越短)、單位位元成本越高、容量越小。
  • 越遠離 CPU 運算核心的階層:存取速度越慢(存取時間 TaccessT_{\text{access}} 越長)、單位位元成本越低、容量越大。

記憶體階層由頂層至底層的標準排列順序為: CPU 內部暫存器 (Register)→快取記憶體 (Cache)→主記憶體 (Main Memory)→輔助記憶體 (Secondary Storage)\text{CPU 內部暫存器 (Register)} \to \text{快取記憶體 (Cache)} \to \text{主記憶體 (Main Memory)} \to \text{輔助記憶體 (Secondary Storage)}

解題方法

題目詢問「存取時間最短」,即代表「存取速度最快」(存取時間與存取速度成反比)。從各儲存元件之實體構造與典型存取時間(Access Time)進行比較:

  1. CPU 暫存器(Register):直接內建在 CPU 處理器內部,與算術邏輯單元(ALU)緊密相連,存取僅需不到一個或數個時脈週期(Clock Cycle),存取時間通常小於 1 ns1 \text{ ns}。
  2. 快取記憶體(Cache Memory):多採用靜態隨機存取記憶體(SRAM)製作,分為 L1、L2、L3 快取,存取時間約在數奈秒(1∼15 ns1 \sim 15 \text{ ns})。
  3. 主記憶體(Main Memory):主要由動態隨機存取記憶體(DRAM)構成,存取時間約數十奈秒(30∼100 ns30 \sim 100 \text{ ns})。
🔒

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

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

免費註冊

第 9 題2 分

當新產生的程序(Process)進入作業系統時,會先被放在下列何種佇列(Queue)?

這一題的完整詳解

核心觀念:作業系統之程序排程佇列(Process Scheduling Queues)

本題測驗作業系統中程序排程(Process Scheduling)​的佇列結構與程序生命週期(Process Life Cycle)​的初始階段。

依據經典作業系統權威教科書(Silberschatz 等著《Operating System Concepts》,俗稱恐龍書)的經典定義,系統在管理程序時主要維護以下三種排程佇列:

  1. 工作佇列(Job Queue):當程序剛進入系統時,會先存放於工作佇列中,該佇列包含系統中的所有程序(通常暫存於次級儲存體的 Job Pool 中)。
  2. 就緒佇列(Ready Queue):已載入主記憶體(Main Memory),且已具備執行所需之所有資源、僅等待配發 CPU 運算時間的程序集合。
  3. 設備/輸出入佇列(Device Queue / I/O Queue):正在等待特定 I/O 設備(如磁碟、印表機、網路)完成服務的程序集合。

解題方法

解析本題的關鍵切入點在於區分​「程序的建立與接納(Admission)」​流程:

  1. 新程序進入系統(New State): 當一個新程序(Process)剛被建立時,它最初被置於次級儲存體(輔助記憶體)的批次集或集區中,此時存放該程序的佇列即為工作佇列(Job Queue)。
  2. 長程排班程式(Long-Term Scheduler / Job Scheduler)之調度: 長程排班程式負責控制「多元程式規劃度(Degree of Multiprogramming)」。它會從「工作佇列」中挑選適量的工作,將其程式碼與控制資料結構(PCB)載入主記憶體,並轉移至​「就緒佇列(Ready Queue)」。
  3. 題意判定: 題目詢問的是「新產生的程序進入作業系統時,會『先』被放在何種佇列」,依據上述流程,最先進入的佇列必然為工作佇列(Job Queue),而非已進入主記憶體的就緒佇列。

選項分析

  • (A) 工作佇列(Job Queue):正確。 依作業系統經典理論,程序剛被系統接收時,先進入工作佇列暫存於磁碟;待長程排班程式(Job Scheduler)審核並配置主記憶體資源後,才正式接納(Admit)轉移至就緒佇列。故「最先被放置」的佇列為工作佇列。
🔒

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

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

免費註冊

第 10 題2 分

關於資料庫主鍵(Primary Key)之敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

本題測驗關聯式資料庫(Relational Database)中鍵值(Keys)之定義與特性,核心概念涵蓋:

  1. 主鍵(Primary Key, PK):在關聯表(Relation / Table)中選定用來唯一識別每筆紀錄(Tuple / Record)的屬性(Attribute / Column)或屬性集合。
  2. 單一主鍵與複合主鍵(Composite Key):主鍵可由單一屬性構成,亦可由兩個或多個屬性共同組成。
  3. 實體完整性限制(Entity Integrity Constraint):主鍵的屬性值必須具備唯一性(Uniqueness),且不可為空值(NOT NULL)。
  4. 參照完整性限制(Referential Integrity Constraint):外來鍵(Foreign Key, FK)需對應至其他表格(或同表格)的主鍵或候選鍵,藉以建立關聯性。

解題方法

由關聯式資料庫理論切入,檢視主鍵的「組成型態」、「約束條件」與「跨表關聯機制」:

  • 主鍵來自於候選鍵(Candidate Key),候選鍵在數學定義上為關聯綱要(Relation Schema)屬性集合的子集合(Sub-schema)。因此,該子集合之元素個數(Cardinality)可以是 1 個,亦可以是多個(大於等於 1 個)。
  • 檢驗各選項敘述是否符合標準定義,並找出對主鍵特性描述過於狹隘或有誤的項目。

選項分析

🔒

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

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

免費註冊

第 11 題2 分

下列哪項敘述是用遮罩(mask)去反轉一個 8 位元樣式最左邊 3 個位元,但不改變其他位元?

這一題的完整詳解

核心觀念

本題測驗微處理機與組合語言中基礎的位元邏輯運算(Bitwise Operation)與遮罩(Masking)應用。

利用遮罩對特定二進位樣式(Bit Pattern)進行操作時,三種最常見的布林邏輯運算特性如下:

  1. XOR(互斥或,⊕\oplus)——用於「反轉位元」(Toggle / Invert)
  • 任何位元與 11 做 XOR,值會被反轉:x⊕1=x‾x \oplus 1 = \overline{x}(若 x=0x=0,則 0⊕1=10 \oplus 1 = 1;若 x=1x=1,則 1⊕1=01 \oplus 1 = 0)。
  • 任何位元與 00 做 XOR,值保持不變:x⊕0=xx \oplus 0 = x。
  1. OR(或,++)——用於「設定位元為 11」(Set bits)
  • 任何位元與 11 做 OR,強制變成 11:x+1=1x + 1 = 1。
  • 任何位元與 00 做 OR,值保持不變:x+0=xx + 0 = x。
  1. AND(且,⋅\cdot)——用於「清除位元為 00」(Clear bits)或「遮蔽擷取」
  • 任何位元與 00 做 AND,強制清為 00:x⋅0=0x \cdot 0 = 0。
  • 任何位元與 11 做 AND,值保持不變:x⋅1=xx \cdot 1 = x。

解題方法

  1. 確認目標需求:
  • 樣式長度為 88 位元,設為 P=b7b6b5b4b3b2b1b0P = b_7 b_6 b_5 b_4 b_3 b_2 b_1 b_0。
  • 題目要求將「最左邊 3 個位元」(即高位元 b7,b6,b5b_7, b_6, b_5)進行反轉,目標為 b7‾,b6‾,b5‾\overline{b_7}, \overline{b_6}, \overline{b_5}。
  • 其餘 5 個位元(b4,b3,b2,b1,b0b_4, b_3, b_2, b_1, b_0)必須保持不變。
  1. 選擇邏輯運算子與建構遮罩:
  • 欲達成「反轉」效果,必須選用 XOR 運算。
  • 欲反轉的位元位置,遮罩對應位置必須放置 11(因 x⊕1=x‾x \oplus 1 = \overline{x})。
  • 欲保持不變的位元位置,遮罩對應位置必須放置 00(因 x⊕0=xx \oplus 0 = x)。
  • 因此,最左邊 3 個位元設為 11,右邊 5 個位元設為 00,遮罩值即為二進位的 1110000011100000。
🔒

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

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

免費註冊

第 12 題2 分

一個 512K×8512K \times 8 的 SRAM 記憶體,通常具有多少條位址線接腳?

這一題的完整詳解

核心觀念

  1. 記憶體規格表示法: 記憶體容量規格通常以 字組數(Words)×字組大小(Bits)\text{字組數(Words)} \times \text{字組大小(Bits)} 表示。
  • 前項代表該晶片具有多少個獨立可定址的「儲存單元(位址數)」。
  • 後項代表每個儲存單元能容納的「資料位元數(Data Width)」。
  1. 位址線與定址空間之關係: 若記憶體具有 nn 條位址線(Address Lines),每條線路具有高/低電位(0 或 1)兩種狀態,則 nn 條位址線最多可組合出 2n2^n 個不同的二進位位址: 位址數量=2n  ⟺  n=log⁡2(位址數量)\text{位址數量} = 2^n \iff n = \log_2(\text{位址數量})

  2. 二進位數量單位換算: 在計算機結構中,1K=210=10241\text{K} = 2^{10} = 1024。常見 22 的次方數值需熟記,例如 512=29512 = 2^9。


解題方法

  1. 解析規格: 題目給定之 SRAM 規格為 512K×8512\text{K} \times 8:
  • 位址數(儲存單元總數):512K512\text{K} 個。
  • 資料寬度:8 bits8\text{ bits}(對應晶片的資料線接腳,共 88 條,即 D0∼D7D_0 \sim D_7)。
  1. 計算位址線數: 求位址線接腳數只需針對「位址數」進行以 22 為底的對數運算。將 512K512\text{K} 轉換為 22 的次方: 512K=512×1K=29×210=29+10=219512\text{K} = 512 \times 1\text{K} = 2^9 \times 2^{10} = 2^{9 + 10} = 2^{19} 因為共有 2192^{19} 個可定址單元,故所需位址線數量 nn 為:
🔒

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

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

免費註冊

第 13 題2 分

對兩個空堆疊(empty stacks)S1S1 及 S2S2 分別執行下列步驟後,何者的最後一個 S2.pop()S2.pop() 之回傳值為 B?

註:push 為加入一元素到 stack 之動作,pop 為由 stack 取出一元素之動作。

這一題的完整詳解

核心觀念

本題主要測驗資料結構中堆疊(Stack)​的基本操作原理與狀態追蹤:

  1. 後進先出(Last-In, First-Out, LIFO):最後被推入堆疊的元素,會最先被取出。
  2. 基本操作定義:
  • push(x):將元素 xx 置入堆疊頂端(Top)。
  • pop:將堆疊頂端的元素取出並回傳其值。
  1. 巢狀操作語法:例如 S1.push(S2.pop)S1.push(S2.pop),依照運算順序,會先執行內層的 S2.popS2.pop 取出 S2S2 頂端元素,接著將該元素作為引數傳給外層的 S1.push(⋅)S1.push(\cdot),亦即完成「將 S2S2 頂端元素移至 S1S1 頂端」的轉移動作。

解題方法

解此類題目最適用的方法為逐步追蹤法(Trace Method):

  • 堆疊狀態以串列符號表示,約定由左至右為「底端 →\to 頂端」,右側為可進行存取的堆疊頂端(Top)。
  • 對各選項的每一個指令進行循序推導,詳細記錄每次操作後 S1S1 與 S2S2 的內容變化,最後檢視最後一個指令 S2.popS2.pop 所彈出的元素。

選項分析

(A) 選項

  1. S1.push(A)S1.push(A):S1=[A]S1 = [A],S2=[]S2 = []
  2. S1.push(B)S1.push(B):S1=[A,B]S1 = [A, B],S2=[]S2 = []
  3. S2.push(C)S2.push(C):S1=[A,B]S1 = [A, B],S2=[C]S2 = [C]
  4. S1.push(S2.pop)S1.push(S2.pop):S2S2 彈出 CC 並推入 S1S1,此時 S1=[A,B,C]S1 = [A, B, C],S2=[]S2 = []
  5. S2.push(S1.pop)S2.push(S1.pop):S1S1 彈出頂端元素 CC 並推入 S2S2,此時 S1=[A,B]S1 = [A, B],S2=[C]S2 = [C]
  6. S2.popS2.pop:彈出 S2S2 頂端元素,回傳值為 C。(錯誤)

(B) 選項

  1. S1.push(A)S1.push(A):S1=[A]S1 = [A],S2=[]S2 = []
  2. S1.push(B)S1.push(B):S1=[A,B]S1 = [A, B],S2=[]S2 = []
  3. S2.push(S1.pop)S2.push(S1.pop):S1S1 彈出頂端元素 BB 並推入 S2S2,此時 S1=[A]S1 = [A],S2=[B]S2 = [B]
  4. S2.push(C)S2.push(C):S1=[A]S1 = [A],S2=[B,C]S2 = [B, C]
🔒

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

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

免費註冊

第 14 題2 分

分別以循序搜尋法及二元搜尋法處理 15 筆資料,所需進行比較次數之最大值分別為?

這一題的完整詳解

核心觀念

本題評量搜尋演算法(Search Algorithms)之最差時間複雜度與最大比較次數分析,包含兩大基礎搜尋方法:

  1. 循序搜尋法(Sequential Search / Linear Search):
  • 特性:資料無需預先排序,由第一筆資料開始逐一向後比對。
  • 比較次數:在最差情況(Worst Case)下,若目標資料位於陣列最後一個位置,或者目標資料根本不在陣列中,必須將全部 nn 筆資料皆比對完畢,故最大比較次數為 nn 次。
  1. 二元搜尋法(Binary Search):
  • 特性:資料必須事先經過排序。每次選取搜尋區間的正中間元素與目標鍵值比對,若不相符則捨棄半數資料,將問題規模縮減為 n2\frac{n}{2}。
  • 比較次數:每次比較後搜尋空間減半,在最差情況下相當於二元搜尋樹(Decision Tree)的樹高。處理 nn 筆資料時,所需之最大比較次數公式為: Max Comparisons=⌊log⁡2n⌋+1=⌈log⁡2(n+1)⌉\text{Max Comparisons} = \lfloor \log_2 n \rfloor + 1 = \lceil \log_2 (n + 1) \rceil 亦即滿足 2k>n2^k > n 之最小正整數 kk。

解題方法

本題已知資料筆數 n=15n = 15,分別推導兩種搜尋法的最大比較次數:

  1. 循序搜尋法: 若欲搜尋之資料不存在於清單中,演算法必須從第 1 筆一路比對至第 15 筆才能判定失敗。因此: 最大比較次數=n=15 次\text{最大比較次數} = n = 15\text{ 次}

  2. 二元搜尋法: 每次比對中間鍵值後排除一半的資料,其資料範圍逐次縮減過程如下:

  • 第 1 次比較:從 15 筆中比對中間元素,未命中後剩餘 15−12=7\frac{15 - 1}{2} = 7 筆。
  • 第 2 次比較:從 7 筆中比對中間元素,未命中後剩餘 7−12=3\frac{7 - 1}{2} = 3 筆。
  • 第 3 次比較:從 3 筆中比對中間元素,未命中後剩餘 3−12=1\frac{3 - 1}{2} = 1 筆。
🔒

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

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

免費註冊

第 15 題2 分

一個完全二元樹有 48 個節點,請問這棵樹的高度為何?

這一題的完整詳解

核心觀念

  1. 完全二元樹(Complete Binary Tree): 一棵高度為 hh 的完全二元樹,除最底層(第 hh 層)外,其餘各層(第 11 層至第 h−1h-1 層)之節點數均達到最大容量;且最底層的節點皆由左至右緊密排列,中間不留任何空隙。
  2. 樹高與層數定義慣例: 在台灣國家考試(如公職高普考、各類特考)的計算機概要與資料結構考題中,普遍遵循經典教科書(如 Horowitz 等著之《Fundamentals of Data Structures》)之定義:
  • 樹的「根節點(Root)」位於第 11 層(Level 1),亦即單一節點之樹高定義為 11。
  1. 節點數與高度關係式: 若樹高為 hh(根節點高度為 11),則:
  • 第 ii 層最多可容納 2i−12^{i-1} 個節點。
  • 高度為 hh 的二元樹,節點總數最大值(即滿二元樹 Full Binary Tree)為: ∑i=1h2i−1=2h−1\sum_{i=1}^{h} 2^{i-1} = 2^h - 1
  • 高度為 hh 的完全二元樹,其第 hh 層至少有 11 個節點,前 h−1h-1 層全滿,故節點總數 nn 的合理範圍為: 2h−1≤n≤2h−12^{h-1} \le n \le 2^h - 1
  • 反推高度公式為: h=⌊log⁡2n⌋+1=⌈log⁡2(n+1)⌉h = \lfloor \log_2 n \rfloor + 1 = \lceil \log_2 (n + 1) \rceil

解題方法

題目給定完全二元樹的節點數 n=48n = 48。

方法一:公式推導法

將 n=48n = 48 代入高度公式 h=⌊log⁡2n⌋+1h = \lfloor \log_2 n \rfloor + 1: 因為 25=32≤48<64=262^5 = 32 \le 48 < 64 = 2^6,得知: 5≤log⁡248<6  ⟹  ⌊log⁡248⌋=55 \le \log_2 48 < 6 \implies \lfloor \log_2 48 \rfloor = 5 因此,樹高為: h=5+1=6h = 5 + 1 = 6

方法二:逐層累計夾擠法

計算各層全滿時的累計節點數:

  • 第 11 層:20=12^0 = 1 個,累計 11 個
  • 第 22 層:21=22^1 = 2 個,累計 1+2=31 + 2 = 3 個
  • 第 33 層:22=42^2 = 4 個,累計 3+4=73 + 4 = 7 個
  • 第 44 層:23=82^3 = 8 個,累計 7+8=157 + 8 = 15 個
🔒

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

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

免費註冊

第 16 題2 分

下列關於堆積(heap)資料結構之敘述,何者正確?

這一題的完整詳解

核心觀念

二元堆積(Binary Heap,常簡稱為堆積)在資料結構中有兩大核心定義:

  1. 結構性質(Shape Property):堆積必須是一棵完全二元樹(Complete Binary Tree),國內部分教材與考題亦譯為完整樹。其特徵為除最後一層外,其餘各層均完全填滿;最後一層的所有節點則由左至右緊密排列。因為這個特性,堆積可以直接用連續的一維陣列(Array)高效實作,不需額外儲存指標。
  2. 堆積性質(Heap Property,亦稱順序性質):
  • 最大堆積(Max Heap):任何節點的鍵值均大於或等於其子節點的鍵值(根節點為最大值)。
  • 最小堆積(Min Heap):任何節點的鍵值均小於或等於其子節點的鍵值(根節點為最小值)。

解題方法

本題為觀念定義題,解題切入點在於區分「堆積的結構定義」與「堆積操作之時間複雜度」:

  1. 結構辨析:檢驗堆積是否屬於二元搜尋樹(BST),以及它本質上屬於哪種樹狀結構(完整樹/完全樹)。
  2. 效率分析:具 nn 個節點的完全二元樹,其樹高必為 h=⌊log⁡2n⌋=O(log⁡n)h = \lfloor \log_2 n \rfloor = O(\log n)。插入與刪除的最糟情況均由樹高決定,藉此評估其最壞時間複雜度。

選項分析

  • (A) 二元搜尋樹(BST):錯誤。 二元搜尋樹(Binary Search Tree)要求任一節點之左子樹所有鍵值皆小於根節點、右子樹所有鍵值皆大於根節點(全域由小到大的排序關係)。而堆積僅維持「父子節點間」的偏序關係(Partial Order),左右子節點之間或跨子樹之間並無特定大小順序。因此,堆積並非二元搜尋樹。
🔒

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

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

免費註冊

第 17 題2 分

下列關於排序之敘述,何者錯誤?

這一題的完整詳解

核心觀念

  1. 內部排序(Internal Sort)與外部排序(External Sort)的定義:
  • 內部排序:待排序之資料量可完全容納於主記憶體(RAM)內,排序過程全部在記憶體中進行,存取速度主要取決於 CPU 與記憶體速度。
  • 外部排序:待排序之資料量過大,超出主記憶體可用容量,必須藉由次級儲存裝置(如硬碟、磁帶等外存)輔助儲存與分批處理。外部排序的主要效能瓶頸在於外部 I/O 傳輸次數。
  1. 存取模式(Access Pattern)與外部儲存特性:
  • 外部儲存媒體(特別是傳統磁帶或機械硬碟)進行「循序存取」(Sequential Access)的傳輸效率極高,而「隨機存取」(Random Access)則會造成大量的磁頭尋道時間(Seek Time)或無法回溯尋道,效能極差。
  • 合併排序(Merge Sort):合併過程只需依照順序由前往後讀取多個已排序好的區塊(Runs),輸出亦為循序寫入,具有天生優良的循序存取特性,是外部排序的核心架構(如外部多路合併排序,External kk-way Merge Sort)。
  • 快速排序(Quick Sort):分割(Partitioning)階段需使用指標從序列兩端頻繁跨位置掃描與交換元素,高度依賴隨機存取,若應用於外存會造成嚴重的隨機 I/O 瓶頸。

解題方法

本題為資料結構與演算法之觀念題,解題切入點如下:

  1. 先由主記憶體容量限制判定內部排序與外部排序的劃分標準(檢視選項 A、B)。
  2. 再以外存裝置的 I/O 成本為評估基礎,分析排序演算法是否支援「非隨機存取(循序存取)」的資料處理流程(檢視選項 C、D)。

選項分析

🔒

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

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

免費註冊

第 18 題2 分

使用雜湊(Hashing)法時,以 ff 表示雜湊函式(Hash function),以 htht 表示雜湊表(Hash table),且 htht 分為 ht[0]ht[0]、ht[1]ht[1]、…\ldots、ht[b−1]ht[b-1] 等共計 bb 個桶(Bucket),每桶可存入 ss 筆資料。若 TT 為所有可能資料鍵(Key)值之總數,nn 為實際存入 htht 之資料筆數,定義 htht 之負載密度(Loading density)α=n/(s×b)\alpha=n/(s\times b),htht 之鍵值密度(Key density)ρ=n/T\rho=n/T,則:

① 0<α<10<\alpha<1,0<ρ<10<\rho<1 且 ρ<α\rho<\alpha

② 若 α=ρ\alpha=\rho,則不會發生碰撞(Collision),但可能發生滿溢(Overflow)

③ 若 α<ρ\alpha<\rho,則不會發生滿溢,但可能發生碰撞

④ 若 s>bs>b 且 α<ρ\alpha<\rho,則不會發生滿溢,亦不會發生碰撞

⑤ 理想之雜湊函式 ff 設計應滿足 α≈1\alpha\approx1 且 ρ≈0\rho\approx0

請由下列選項中選出最適合者:

這一題的完整詳解

核心觀念

本題考查資料結構中雜湊法(Hashing)​的基礎架構與數學定義,主要包含以下核心概念:

  1. 基本架構參數:
  • 桶數(Buckets):bb
  • 每個桶所具備的槽位數(Slots):ss
  • 雜湊表總容量(Capacity):C=s×bC = s \times b
  • 所有可能鍵值總數(Key Space):TT
  • 實際存入雜湊表之資料筆數:nn
  1. 密度指標定義:
  • 負載密度(Loading Density, α\alpha):α=ns×b\alpha = \frac{n}{s \times b},代表雜湊表空間的填滿比例。
  • 鍵值密度(Key Density, ρ\rho):ρ=nT\rho = \frac{n}{T},代表所有可能的鍵值空間中,實際使用之資料比例。
  1. 碰撞(Collision)與滿溢(Overflow):
  • 碰撞:相異鍵值 k1≠k2k_1 \neq k_2,經雜湊函式映射至同一個桶,即 f(k1)=f(k2)f(k_1) = f(k_2)。
  • 滿溢:欲存入某個桶的資料筆數超過該桶容量上限 ss。
  • 當 s=1s = 1 時,碰撞與滿溢同時發生;當 s>1s > 1 時,碰撞不一定立即滿溢,但滿溢必定起因於多次碰撞。
  1. 理想雜湊函式之目標:
  • 追求均勻雜湊(Uniform Hashing),使各鍵值均勻分散在各個桶中,以最大幅度降低碰撞發生率。

解題方法

解題關鍵在於辨別各參數間的代數意涵,以及碰撞與滿溢發生的充要條件:

  • 雜湊表是否發生碰撞或滿溢,本質上取決於「雜湊函式 ff 的映射分佈」與「落入同一個桶的資料筆數」,不能單憑巨觀的容量大小或密度大小(如 α<ρ\alpha < \rho 或 s>bs > b)推斷為「絕不發生」。
  • 透過反例檢驗各敘述是否存在邏輯漏洞(特別是帶有絕對肯定語氣者)。

選項分析

一、題幹五項敘述逐一檢驗

  • 敘述 ①:0<α<10 < \alpha < 1,0<ρ<10 < \rho < 1 且 ρ<α\rho < \alpha

  • 分析:

  • 一般情況下,可能鍵值總數遠大於雜湊表容量(T≫s×bT \gg s \times b),因此通常有 ρ<α\rho < \alpha。

  • 然而,若雜湊表為空(n=0n = 0),則 α=ρ=0\alpha = \rho = 0;若雜湊表完全填滿(n=s×bn = s \times b),則 α=1\alpha = 1;若採鏈結法(Chaining)處理溢位,α\alpha 甚至可大於 1。

  • 嚴格來說,α\alpha 與 ρ\rho 之定義域為閉區間,並非絕對滿足開區間 0<α<10 < \alpha < 1。此敘述在嚴謹定義下存在瑕疵。

  • 敘述 ②:若 α=ρ\alpha = \rho,則不會發生碰撞(Collision),但可能發生滿溢(Overflow)

  • 分析:

  • α=ρ  ⟹  ns×b=nT  ⟹  s×b=T\alpha = \rho \implies \frac{n}{s \times b} = \frac{n}{T} \implies s \times b = T。

  • 即使雜湊表總槽位數等於所有可能鍵值總數,除非 ff 為一對一的「完美雜湊函式(Perfect Hash Function)」,否則任意雜湊函式依然可能將多個鍵值對應至同一桶而發生碰撞。

🔒

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

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

免費註冊

第 19 題2 分

下圖最少花費擴張樹(Minimum Cost Spanning Tree)的成本總和為何?

【原卷圖示】 文字層擷取僅保留部分圖示標示:「4」、「6」,完整圖形請參考原卷。

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

核心觀念

  1. 最少花費擴張樹(Minimum Cost Spanning Tree, MCST / MST)之定義:
  • 給定一個具有 VV 個頂點(Vertices)與 EE 條邊(Edges)的連通無向加權圖 G=(V,E)G = (V, E)。
  • 擴張樹(Spanning Tree):為包含圖中所有 VV 個頂點,且恰好由 V−1V - 1 條邊構成的連通無環(Acyclic)子圖。
  • 最少花費擴張樹:在所有可能的擴張樹中,所有邊之權重(Cost / Weight)總和為最小者,其成本定義為: Cost(T)=∑e∈Tw(e)\text{Cost}(T) = \sum_{e \in T} w(e)
  1. 經典求解演算法:
  • Kruskal 演算法:以「邊」為基礎的貪婪演算法(Greedy Algorithm)。將圖中所有邊依權重由小至大排序,每次挑選權重最小且不與已挑選邊形成環路(Cycle)的邊加入,直到選滿 V−1V - 1 條邊。
  • Prim 演算法:以「頂點」為基礎的貪婪演算法。任選一頂點為起點,每次從連接「已拜訪頂點集合」與「未拜訪頂點集合」的所有邊中,選取權重最小者加入,直到所有頂點皆被涵蓋(共選入 V−1V - 1 條邊)。

解題方法

本題原卷圖示之頂點與完整邊權重未於文字層完整呈現,依考選部公布之官方標準答案 (C)(C),可知該圖經演算法挑選不形成環路之最小權重邊後,所求得之最少花費擴張樹成本總和為 1414。

以 Kruskal 演算法 進行推導與求解之標準步驟如下:

  1. 邊的權重排序: 將圖中所有邊依權重大小由小到大遞增排列。
  2. 貪婪選取與防環檢驗:
  • 由最小權重邊依序選入。若該邊兩端頂點尚未在同一連通分支(不構成環路),則將該邊納入擴張樹邊集 TT。
  • 若該邊兩端頂點已被其他已選取的較小權重邊連通(加入會形成環路),則捨棄該邊。
🔒

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

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

免費註冊

第 20 題2 分

若某一無向圖(undirected graph)GG,含有 VV 個頂點(vertices)與 EE 個邊(edges),則所有頂點的分支度(degree)的總和等於?

這一題的完整詳解

核心觀念

本題旨在測驗圖形理論(Graph Theory)中無向圖(Undirected Graph)​的結構特性,以及頂點分支度(Degree of a Vertex)​與邊數(Edges)​的對應關係。

  • 分支度(Degree)的定義:在無向圖中,與某頂點相連的邊的數目,記為 deg⁡(v)\deg(v)。
  • 握手定理(Handshaking Lemma):在任何無向圖中,所有頂點的分支度總和恰好等於邊數的兩倍。 數學公式為: ∑v∈Vdeg⁡(v)=2E\sum_{v \in V} \deg(v) = 2E

解題方法

從「邊對分支度的貢獻量」進行推導:

  1. 設無向圖 G=(V,E)G = (V, E),其中頂點集合大小為 ∣V∣=V|V| = V,邊集合大小為 ∣E∣=E|E| = E。
  2. 無向圖中的每一條邊 e=(u,v)e = (u, v) 都由兩個端點所組成,連接頂點 uu 與頂點 vv。
  3. 當我們計算所有頂點的分支度總和時,每一條邊 ee 都會同時為其兩端的頂點各貢獻 11 個分支度(即使是自我迴圈 self-loop,該條邊的兩端亦皆連接在同一個頂點上,依圖論定義同樣為該頂點貢獻 22 個分支度)。
  4. 因此,圖中每一條邊對整體分支度總和的累加貢獻皆恰好為 22。
  5. 全圖共有 EE 條邊,所有頂點的分支度總和即為: ∑v∈Vdeg⁡(v)=2×E=2E\sum_{v \in V} \deg(v) = 2 \times E = 2E

選項分析

🔒

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

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

免費註冊

第 21 題2 分

下圖中共有多少個節點為關節點(Articulation Point)?

【原卷圖示】 節點標示包含 aa、bb、cc、dd、ee、ff、gg、hh、ii;完整圖形與連線請參考原卷。

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

核心觀念

  1. 關節點(Articulation Point / Cut Vertex)之定義: 在一個無向連通圖 G=(V,E)G = (V, E) 中,若存在某個頂點 v∈Vv \in V,使得從圖中移除 vv 及其所有相連的邊後,剩餘的子圖 G−vG - v 所包含的連通分支(Connected Components)數量增加(即圖形分裂為兩個或更多不連通的部分),則稱節點 vv 為該圖的關節點(或稱割頂)。
  2. 雙連通元件(Biconnected Component)之性質:
  • 一個沒有任何關節點的連通圖稱為雙連通圖。
  • 任意兩個雙連通元件之間至多僅能共享一個頂點,且該共享頂點必然是原圖的關節點。
  • 長度大於等於 33 的簡單環(Cycle)本身屬於雙連通結構,環內部未向外延伸分支的節點皆非關節點。
  1. DFS 生成樹判別準則(Tarjan 準則):
  • 樹根節點:在深度優先搜尋(DFS)生成樹中,樹根為關節點的充分必要條件是它擁有至少 22 個子節點。
  • 非樹根節點 uu:為關節點的充分必要條件是存在至少一個子節點 vv,滿足 low[v]≥dfn[u]low[v] \ge dfn[u](代表 vv 及其子樹節點沒有任何返回邊連至 uu 的祖先節點)。

解題方法

題目文字未列出具體邊集合清單,依原卷圖示之連通拓撲結構,全圖共由 99 個節點 a∼ia \sim i 所組成,判定關節點採用節點移除檢驗法(Vertex Removal Test):

  1. 非關節點(共 4 個)的特徵與判定:
  • 度數為 11 的葉節點(端點):移除該節點後,僅減少一個頂點與一條懸掛邊,其餘節點仍然彼此連通,因此不是關節點。
  • 獨立環上的非分岔節點:位於閉合迴圈上且僅有環內連線、無額外對外分支的節點,因環上任兩點間存在雙向替代路徑,移除該節點後環退化為簡單路徑,全圖仍保持連通,因此不是關節點。
  • 經檢驗,圖中共有 44 個節點符合上述非關節點特徵。
🔒

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

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

免費註冊

第 22 題2 分

已知在使用二分搜尋法(Binary Search)對排序過的 nn 個數字陣列(Array)做搜尋時,前三次比對之陣列數值依序為 8.58.5、6.56.5、4.54.5。則下列何者不可能為搜尋值?

這一題的完整詳解

核心觀念

本題測驗「二分搜尋法(Binary Search)」在已排序陣列中的搜尋搜尋路徑與判斷邏輯:

  1. 二分搜尋法特性:每次比對均取目前搜尋區間的中間元素(midmid)與目標搜尋值(xx)比較。
  2. 分支移動規則(以由小到大遞增排序為例):
  • 若搜尋值 x<陣列中值x < \text{陣列中值},代表目標值位於左半部,下一步搜尋範圍將縮小至左側區間,隨後比對的數值必定小於當前比對值。
  • 若搜尋值 x>陣列中值x > \text{陣列中值},代表目標值位於右半部,下一步搜尋範圍將縮小至右側區間,隨後比對的數值必定大於當前比對值。
  • 若搜尋值 x=陣列中值x = \text{陣列中值},則搜尋成功終止。

解題方法

假設該已排序陣列為常見的遞增排序(由小到大排序;若為遞減排序推導結果亦完全相同):

  1. 第一次比對值為 8.58.5: 第二次比對之數值為 6.56.5。因 6.5<8.56.5 < 8.5,表示搜尋演算法選擇往數值較小的一側(左半部)繼續搜尋,可知搜尋值 xx 必須滿足: x<8.5x < 8.5

  2. 第二次比對值為 6.56.5: 第三次比對之數值為 4.54.5。因 4.5<6.54.5 < 6.5,表示搜尋演算法再次選擇往數值較小的一側(左半部)縮小區間,可知搜尋值 xx 必須滿足: x<6.5x < 6.5

  3. 綜合推導: 根據前兩次比對後的轉向決策,目標搜尋值 xx 必須同時滿足 x<8.5x < 8.5 與 x<6.5x < 6.5,即: x<6.5x < 6.5 若搜尋值大於等於 6.56.5(如 x=7x = 7),在第二次比對時因 7>6.57 > 6.5,演算法必然會向右搜尋,第三次比對的數值應介於 6.56.5 至 8.58.5 之間,絕不可能出現小於 6.56.5 的數值 4.54.5。

🔒

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

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

免費註冊

第 23 題2 分

下列的 Java 程式執行後輸出為何?

import java.lang.*;

class test { public static void main(String[] argv) { int x=0, y=0; String a=new String("test"); String b=new String("test");

    if (a==b) x++;
    if (a.compareTo(b)==0) y++;

    System.out.println(x+" "+y);
}

}

這一題的完整詳解

核心觀念

本題主要測驗 Java 程式語言中 「字串物件的記憶體配置」 與 「字串比較機制」:

  1. 物件參考(Reference)與記憶體配置:使用 new 關鍵字建立物件時,系統會在堆積區(Heap)配置獨立的記憶體空間,各變數存放的是該實體的記憶體位址(Reference)。
  2. 關係運算子 == 的意義:用於比較兩個物件型態(Reference Type)變數時,比較的是「記憶體位址是否相同」(Reference Equality),而非比較其內容。
  3. 字串內容比較(compareTo 方法):
  • 實作自 Comparable<String> 介面。
  • 依字典順序(Lexicographical order)逐一比對字元的 Unicode 編碼值。
  • 若兩字串字元序列與長度完全相同,回傳整數 00;若呼叫者小於引數字串回傳負數,大於則回傳正數。

解題方法

本題採用「程式碼逐行追蹤(Trace)法」,逐步分析記憶體狀態與條件判斷:

  1. 初始狀態:
int x=0, y=0;

此時整數變數 x=0x = 0,y=0y = 0。

  1. 物件實體建立:
String a = new String("test");
String b = new String("test");
  • 關鍵在於運算子 new:每執行一次 new String,JVM 必定會在 Heap 區配置一塊全新的記憶體區塊。
  • 因此,變數 a 與變數 b 各自指向堆積區中不同的記憶體位址(即位址 a≠a \neq 位址 bb),即便兩者內部儲存的字元序列皆為 "test"。
  1. 第一個條件判斷(位址比對):
if (a == b) x++;
  • 運算子 == 比對 a 與 b 所持有的物件位址。
  • 由於兩者位址不同,條件式結果為 false。
  • x++ 不被執行,變數 xx 維持為 00。
  1. 第二個條件判斷(內容比對):
if (a.compareTo(b) == 0) y++;
  • a.compareTo(b) 比對字串實際內容。
  • 兩物件內容皆為 "test",長度與各位置字元皆完全一致,因此 a.compareTo(b) 的回傳值為 00。
  • 判斷式 0 == 0 結果為 true。
  • 執行 y++,變數 yy 遞增為 0+1=10 + 1 = 1。
🔒

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

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

免費註冊

第 24 題2 分

執行以下 C 指令將產生的輸出為何?

printf("%d",0x12);

這一題的完整詳解

核心觀念

本題主要測驗 C 語言中整數常數的進位制前綴表示法、進位制數值轉換(十六進位轉十進位)​以及 printf 函式的格式指定字(Format Specifier):

  1. 整數進位制前綴:
  • 十六進位(Hexadecimal):以 0x 或 0X 為前綴。
  • 八進位(Octal):以 0 為前綴(如 012)。
  • 十進位(Decimal):非 0 開頭的常規數字(如 12)。
  1. 進位制權重展開:十六進位數值 (d1d0)16(d_1 d_0)_{16} 轉換為十進位時,公式為: d1×161+d0×160d_1 \times 16^1 + d_0 \times 16^0
  2. 格式指定字:%d 代表將引數以「十進位帶正負號整數(Signed Decimal Integer)」的形式格式化輸出。

解題方法

解題關鍵分為「辨識常數進位制」、「數值轉換」與「格式化輸出」三個步驟:

  1. 辨別常數數值與進位制: 程式碼中的引數為 0x12,開頭前綴為 0x,代表這是一個十六進位的整數常數(即 121612_{16})。
  2. 將十六進位轉換為十進位: 將十六進位數值 121612_{16} 依權重展開轉換為十進位: 1×161+2×160=16+2=181 \times 16^1 + 2 \times 16^0 = 16 + 2 = 18 因此,常數 0x12 在記憶體中實際儲存的數值等同於十進位的 1818。
  3. 對應 printf 格式化字串: printf 使用的格式指定字為 "%d",要求將該整數轉換為十進位數字文字輸出,因此印出螢幕的結果為 18。

🔒

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

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

免費註冊

第 25 題2 分

執行下列 C++ 程式碼後,螢幕會印出幾個 'Y'?

int main() { for (int i=1; i<=6; i++) { if (i%2==0) continue;

    for (int j=1; j<=10; j++) {
        if (j%5==0) break;
        cout << 'Y';
    }
}

return 0;

}

這一題的完整詳解

核心觀念

本題評量 C++ 程式語言中巢狀迴圈(Nested Loops)​與流程跳轉控制陳述句(Jump Statements)​的綜合應用能力,核心要點如下:

  1. continue 陳述句:立即略過當前迴圈本體中剩餘的程式碼,直接進入該迴圈的下一次迭代(先執行變數更新式,再重新評估條件式)。
  2. break 陳述句:立即強制終止其「所屬的最內層迴圈」,程式控制權直接跳至該迴圈區塊之外接續執行。
  3. 模數運算子(%):求整數相除後的餘數。i % 2 == 0 用於判定偶數;j % 5 == 0 用於判定 55 的倍數。

解題方法

本題為巢狀迴圈,應採用「由外而內、分別統計」的乘法原理進行分析與推導:

1. 外層迴圈分析(變數 ii)

  • 迴圈控制範圍為 i=1i = 1 到 i≤6i \le 6,每次遞增 11。
  • 條件判斷式:if (i%2==0) continue;
  • 當 ii 為偶數(i∈{2,4,6}i \in \{2, 4, 6\})時,條件成立並執行 continue,直接跳過後續所有敘述(不進入內層迴圈),進入下一個 ii。
  • 當 ii 為奇數(i∈{1,3,5}i \in \{1, 3, 5\})時,條件不成立,正常進入內層迴圈。
  • 外層有效觸發內層迴圈的次數為 33 次(即 i=1,3,5i = 1, 3, 5)。

2. 內層迴圈分析(變數 jj)

  • 迴圈初值為 j=1j = 1,每次遞增 11。
  • 條件判斷式:if (j%5==0) break;,印出敘述 cout << 'Y'; 位於其後。
  • j=1j = 1:1(mod5)≠0→1 \pmod 5 \ne 0 \to 印出第 1 個 'Y'。
  • j=2j = 2:2(mod5)≠0→2 \pmod 5 \ne 0 \to 印出第 2 個 'Y'。
  • j=3j = 3:3(mod5)≠0→3 \pmod 5 \ne 0 \to 印出第 3 個 'Y'。
  • j=4j = 4:4(mod5)≠0→4 \pmod 5 \ne 0 \to 印出第 4 個 'Y'。
  • j=5j = 5:5(mod5)=0→5 \pmod 5 = 0 \to 觸發 break,立即跳離內層迴圈。
🔒

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

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

免費註冊

第 26 題2 分

下列有關 Java 程式語言的敘述何者正確?

這一題的完整詳解

核心觀念

本題旨在測驗 Java 程式語言的基本語法與物件導向程式設計(OOP)核心概念,涵蓋以下重點:

  1. 指標與參考(Pointer vs. Reference):Java 隱藏了記憶體位址運算,不提供 C/C++ 風格的顯式指標運算子(如 * 與 ->),而是使用「物件參考」(Object Reference)。
  2. 抽象類別(Abstract Class)與建構子(Constructor):抽象類別不能直接透過 new 實體化,但允許且常包含建構子,用以供子類別透過 super 呼叫,完成繼承屬性的初始化。
  3. 覆寫(Overriding)與多載(Overloading)之辨析:
  • 覆寫(Override):子類別重新定義父類別的方法,具有相同的方法簽名(Method Signature)​與回傳型態相容性。
  • 多載(Overload):同一個類別內(或繼承關係中)定義同名方法,但具有不同的參數列(參數個數、型態或順序不同)。
  1. 大小寫敏感性(Case Sensitivity):Java 語言嚴格區分大小寫(Case-sensitive),不同大小寫的識別字(Identifier)代表不同變數。

解題方法

依據 Java 語言規範(JLS)與物件導向基本設計原則,逐一檢驗各選項之語法及觀念:

  • 先排除具有 C/C++ 專用語法(顯式指標運算子 *)的選項 (A)。
  • 檢驗抽象類別的特性,釐清「不可直接實體化」與「有無建構子」的差異,判定選項 (B)。
  • 檢視方法覆寫與多載的定義,比對方法簽名是否一致,確認選項 (C)。
  • 根據識別字規則確認大小寫敏感性,檢視選項 (D)。

選項分析

  • (A) 錯誤:Java 不支援 C/C++ 的指標語法,程式碼中不存在 * 指標宣告運算子。在 Java 中,建立物件參考的正確語法為:
🔒

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

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

免費註冊

第 27 題2 分

下列關於結構處理之指令,何者語法正確?

struct { int data; } a, b;

struct { int data; } c;

這一題的完整詳解

核心觀念

本題測驗 C 語言中結構(struct)之變數宣告、型態相容性(Type Compatibility)及合法運算:

  1. 匿名結構與型態相容性:
  • 結構宣告若未指定標籤名稱(Tag Name)或未透過 typedef 定義型態名稱,稱為「匿名結構(Anonymous Struct)」。
  • 在 C 語言標準規範中,每一個未命名的結構宣告都會產生一個全新且獨立的結構型態。
  • 在同一個陳述式中一起宣告的變數(如本題的 a 與 b),屬於「相同型態」;分開在不同陳述式中宣告的變數(如 c),即使其成員名稱、型態與排列順序完全一致,編譯器仍認定為「不同的、不相容的型態(Incompatible Types)」。
  1. 結構變數的合法運算:
  • 指派運算(=):C 語言支援同型態結構變數之間的整體指派(Assignment),會自動將右側變數的所有成員值複製給左側變數(淺層複製 Shallow Copy)。
  • 比較運算(==、!=):C 語言不支援直接使用關係或相等運算子比較兩個結構變數。因為結構內部常存在記憶體對齊造成的填充位元組(Padding Bytes),且 C 語言標準並未為結構定義整體比較行為。若要比對兩結構是否相等,必須逐一比對各個成員。

解題方法

  1. 辨識變數型態:
  • struct { int data; } a, b;:變數 a 與 b 屬於同一匿名結構型態。
  • struct { int data; } c;:變數 c 屬於另一獨立之匿名結構型態。
  • 因此,aa 與 bb 型態相容;cc 與 aa、bb 型態不相容。
  1. 檢視運算合法性:
  • 檢查是否使用了結構不支援的比較運算子(如 ==)。
  • 檢查指派運算(=)的兩端變數是否為相同型態。
🔒

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

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

免費註冊

第 28 題2 分

關於 C++ 程式語言之敘述,下列何者錯誤?

這一題的完整詳解

核心觀念

  1. 類別(Class)與物件(Object)的定義:類別是物件導向程式設計(OOP)的核心,扮演「藍圖」或「範本」的角色。類別包含兩大要素:
  • 屬性(Attributes/Properties):在 C++ 中稱為資料成員(Data Members),用以定義相似物件所共有的狀態或特性。
  • 行為/運算(Operations/Methods):在 C++ 中稱為成員函式(Member Functions),用以定義該群物件所能執行的操作與運算。
  1. C++ 的多典範(Multi-paradigm)語言特徵:C++ 兼具「程序導向(Procedural)」與「物件導向(Object-Oriented)」特性,並非純物件導向語言(Pure OOP)。其設計理念向下相容 C 語言,支援內建基本資料型態(Primitive Data Types),且允許程式僅以全域函式與結構構成。

解題方法 本題要求選出「錯誤」的敘述,解題切入點在於區分「類別的標準定義」與「C++ 的語言架構規範」:

  1. 先檢驗 (A)、(B) 是否符合物件導向中「類別」的基本定義(屬性與方法)。
  2. 再檢驗 (C)、(D) 是否符合 C++ 程式架構與型態系統的實務運作(是否強制全部使用類別、基本型態是否為類別、是否可單純以程序導向撰寫)。

選項分析

  • (A) 正確:類別(Class)抽象化了一組具有相同特性的實體(物件),在類別內部宣告的資料成員(如變數 int age;、string name;),即是用來定義該類別產生的物件所共有的「特性」或狀態。
🔒

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

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

免費註冊

第 29 題2 分

宣告一浮點數陣列 float A[20][10]float\ A[20][10],sizeof(float)=4sizeof(float)=4,此陣列共占多少位元組?

這一題的完整詳解

核心觀念

  1. 二維陣列元素總數計算: 在 C 語言等高階程式語言中,宣告為 A[M][N]A[M][N] 的二維陣列,代表包含 MM 個列(Rows)、每列有 NN 個行(Columns),其所包含的元素總個數為: 元素總個數=M×N\text{元素總個數} = M \times N
  2. 陣列佔用記憶體空間公式: 陣列在記憶體中為連續配置之空間,其總佔用位元組數(Bytes)等於「元素總個數」乘上「單一元素所佔的位元組數」: 總空間(Bytes)=元素總個數×sizeof(資料型態)\text{總空間(Bytes)} = \text{元素總個數} \times sizeof(\text{資料型態})

解題方法

  1. 計算陣列元素總個數: 題目宣告陣列為 float A[20][10]float\ A[20][10],維度大小分別為 2020 與 1010: 元素總數=20×10=200(個)\text{元素總數} = 20 \times 10 = 200\text{(個)}

  2. 計算總佔用記憶體大小: 題目已知單精度浮點數大小為 sizeof(float)=4 bytessizeof(float) = 4\ \text{bytes},將元素總數乘上單一元素大小: 總佔用位元組數=200×4=800 bytes\text{總佔用位元組數} = 200 \times 4 = 800\text{ bytes}

因此,該陣列共佔用 800 bytes800\ \text{bytes}。


選項分析

  • (A) 錯誤:200 bytes200\ bytes 僅為陣列的「元素總個數」(20×10=20020 \times 10 = 200),忽略了每個浮點數元素需佔用
🔒

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

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

免費註冊

第 30 題2 分

在程式語言中,只能在一個副程式(Subroutine)中被使用的資料,稱之為何?

這一題的完整詳解

核心觀念 本題測驗程式語言中變數的作用域(Scope)​與可見性(Visibility)​的基本定義。 在程序導向(Procedural Programming)或結構化程式設計中,變數依其宣告位置與可見存取範圍,主要區分為:

  1. 區域變數(Local Variable):於特定區塊或副程式(Subroutine / Function / Procedure)內部宣告,其有效作用範圍僅限於該副程式內部。
  2. 全域變數(Global Variable):於所有副程式之外宣告,其有效作用範圍涵蓋整個程式,各副程式皆可直接存取與修改。

解題方法 抓住題幹的關鍵字「只能在一個副程式(Subroutine)中被使用」:

  • 「副程式」是程式中執行特定功能的獨立程式區塊。
  • 當資料或變數是在副程式內部定義、配置記憶體(通常存放於系統的呼叫堆疊 Call Stack 中),且其名稱與存取權限僅於該副程式執行期間有效、外部無法直接參照,此種變數的標準術語即為區域變數(Local Variable)。

選項分析

  • (A) 正確:區域變數(local variable)​在副程式內部進行宣告,其作用域(Scope)封閉在該副程式內,其他副程式或主程式無法直接存取該變數,完全符合題幹「只能在一個副程式中被使用」之敘述。
🔒

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

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

免費註冊

第 31 題2 分

函數 AA 是以 C 語言實作:

int A(int m, int n) { if (m<2) return n+1; else return A(m-2,n/3); }

請問 A(5,729)A(5,729) 所回傳的值應為下列何者?

這一題的完整詳解

核心觀念

本題測驗 C 語言程式設計中遞迴函數(Recursive Function)​的追蹤能力,涉及以下關鍵觀念:

  1. 遞迴基底條件(Base Case / 終止條件):判斷條件 if (m < 2) 何時成立,以結束遞迴呼叫並開始回傳結果。
  2. 遞迴關係式(Recursive Step):每次呼叫 A(m-2, n/3) 時,引數 mm 每次減 22、nn 每次進行整數除法除以 33。
  3. 整數運算與回傳值:觸發終止條件時,回傳的數值為當前層級的 n+1n + 1。

解題方法

採用逐層遞迴追蹤法(Call Stack Trace),由外向內展開函數呼叫,直到滿足終止條件後再由內向外回傳值:

  1. 第 1 次呼叫:A(5,729)A(5, 729)
  • 檢查條件:m=5m = 5,因為 5<25 < 2 為假(False)。
  • 執行 else:呼叫並回傳 A(5−2,729/3)=A(3,243)A(5 - 2, 729 / 3) = A(3, 243)。
  1. 第 2 次呼叫:A(3,243)A(3, 243)
  • 檢查條件:m=3m = 3,因為 3<23 < 2 為假(False)。
  • 執行 else:呼叫並回傳 A(3−2,243/3)=A(1,81)A(3 - 2, 243 / 3) = A(1, 81)。
  1. 第 3 次呼叫:A(1,81)A(1, 81)
  • 檢查條件:m=1m = 1,因為 1<21 < 2 為真(True)。
  • 觸發終止條件:執行 return n + 1,此時 n=81n = 81,因此回傳: 81+1=8281 + 1 = 82
  1. 逐層回傳結果:
  • A(1,81)=82A(1, 81) = 82
  • A(3,243)=A(1,81)=82A(3, 243) = A(1, 81) = 82
🔒

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

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

免費註冊

第 32 題2 分

執行下列 C++ 程式碼後,螢幕印出的數字為何?

#define f(z) zzz

int main() { cout << f(1+2) << endl; return 0; }

這一題的完整詳解

核心觀念

本題測驗 C/C++ 語言中前置處理器巨集(Preprocessor Macro)​的文字代換機制與運算子優先順序(Operator Precedence):

  1. 巨集的文字替換特性:以 #define 定義的帶參數巨集,在編譯的前置處理(Preprocessing)階段僅進行單純的「語彙文字替換」(Textual Substitution),並不會先計算引數運算式的值,也不會自動替參數加上括號。
  2. 運算子優先順序:C++ 中乘法運算子(*)的優先權高於加法運算子(+),因此展開後的運算式須依「先乘除、後加減」之規則求值。

解題方法

本題求解分為「巨集文字展開」與「運算子求值」兩步驟:

  1. 文字代換(前置處理階段): 巨集定義為:
#define f(z) z*z*z

程式碼呼叫 f(1+2),此時引數為 1+2。前置處理器直接將出現 z 的位置原封不動替換為文字 1+2: f(1+2)  ⟹  1+2∗1+2∗1+2f(1+2) \implies 1+2*1+2*1+2

  1. 依優先順序求值(編譯與執行階段): 乘法(*)優先於加法(+),因此運算式在語法樹中的結合方式為: 1+(2∗1)+(2∗1)+21 + (2 * 1) + (2 * 1) + 2 循序計算各乘積項: 1+2+2+2=71 + 2 + 2 + 2 = 7

程式執行 cout << f(1+2) << endl; 將在螢幕輸出數字 77。


🔒

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

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

免費註冊

第 33 題2 分

這一題的完整詳解

核心觀念

  1. HTTPS 的架構與原理:HTTPS(HyperText Transfer Protocol Secure,安全超文字傳輸協定)並非全新的應用層協定,而是將傳統明文傳輸的 HTTP 協定封裝在加密通道中傳輸,其運作本質為「HTTP over SSL/TLS」,預設通訊埠(Port)為 TCP 443。
  2. 傳輸層安全協定(SSL/TLS):SSL(Secure Sockets Layer)最初由網景公司(Netscape)開發,後續由網際網路工程任務組(IETF)標準化並更名為 TLS(Transport Layer Security)。其運作於應用層與傳輸層(TCP)之間,透過混合加密機制(非對稱加密用於身分驗證與金鑰交換、對稱加密用於內容加解密、訊息鑑別碼 MAC 確保資料完整性)來建立安全加密連線。

解題方法

  1. 題意判讀:題幹說明瀏覽器網址列由 變更為
  2. 協定對應:網頁由 HTTP 升級為安全傳輸的 HTTPS 時,底層負責進行伺服器憑證認證、金鑰交換及資料加密傳輸的安全通訊協定即為 SSL/TLS。因此直接對應選項 (A)。

選項分析

  • (A) SSL/TLS(Secure Sockets Layer/Transport Layer Security):【正確】。HTTPS 即是藉由 SSL 或 TLS 協定在客戶端(瀏覽器)與伺服器之間建立加密通道,能防止資料在傳輸途中遭竊聽、竄改或偽冒。
  • (B) SET(Secure Electronic Transaction):【錯誤】。
🔒

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

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

免費註冊

第 34 題2 分

下列何者為以公鑰為基礎的加密演算法?

這一題的完整詳解

核心觀念

本題測驗密碼學中對稱式加密(Symmetric Encryption)與非對稱式加密/公鑰加密(Asymmetric Encryption / Public-Key Cryptography)之分類與常見演算法代表:

  1. 對稱式加密(Symmetric Encryption):加密與解密使用「同一把金鑰」(或可輕易互推的成對金鑰),亦稱秘密金鑰密碼系統(Secret-Key Cryptography)。特點是運算速度快、適合大量資料傳輸。常見演算法包含:DES、3DES、AES、IDEA、RC4、Blowfish 等。
  2. 公鑰加密(Public-Key Cryptography / 非對稱式加密):使用一對在數學上有關聯的「金鑰對」(Key Pair)——公鑰(Public Key)​對外公開、私鑰(Private Key)​由擁有者妥善保密。公鑰加密之密文僅能以對應之私鑰解密;私鑰簽署之資料亦僅能由公鑰驗證。常見演算法包含:RSA、ECC(橢圓曲線密碼)、ElGamal、Diffie-Hellman(金鑰交換)等。

解題方法

題目詢問「以公鑰為基礎的加密演算法」(即非對稱式加密系統),切入步驟如下:

  1. 逐一檢視各選項演算法所屬的加密架構類別。
  2. 選項中 AES、DES 與 IDEA 皆屬於「對稱式區塊加密演算法」(Block Cipher)。
  3. RSA 由 Ron Rivest、Adi Shamir 與 Leonard Adleman 於 1977 年提出,其安全性奠基於「大整數質因數分解」之數學難題,為公鑰密碼學最具代表性的演算法。
  4. 故應選擇 (D) RSA。

選項分析

  • (A) AES(Advanced Encryption Standard,進階加密標準):錯誤。
🔒

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

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

免費註冊

第 35 題2 分

所謂「公平資訊慣例(FIP, Fair Information Practices)」為一系列管理個人資訊的使用與蒐集的原則,為美國和歐洲隱私法規的基礎,請問下列何者不屬於 FIP 原則?

這一題的完整詳解

核心觀念

本題考查資訊管理與法規中關於個人資料隱私保護的基石——公平資訊慣例原則(Fair Information Practice Principles, 簡稱 FIP 或 FIPPs)。

公平資訊慣例最早源於 1973 年美國衛生、教育與福利部(HEW)的報告,後經經濟合作暨發展組織(OECD)於 1980 年採納發展為隱私保護指引,並由美國聯邦貿易委員會(FTC)於 1998 年正式歸納為五大核心原則,成為美歐各國隱私權法令(如歐盟早期《資料保護指令》與後續 GDPR、台灣《個人資料保護法》)之法理架構基礎。

FTC 提出的五大公平資訊慣例核心原則如下:

  1. 通知/認知(Notice/Awareness):資料蒐集者在蒐集個人資料之前,必須明確告知當事人資料蒐集之目的、範圍、利用方式及可能揭露之第三方。
  2. 選擇/同意(Choice/Consent):當事人對於其個人資料是否被蒐集,以及是否被用於主要交易目的以外的用途(如次級利用、廣告行銷),擁有同意與否的選擇權(常透過 Opt-in 徵求同意或 Opt-out 退出機制呈現)。
  3. 存取/參與(Access/Participation):當事人有權查閱已被蒐集的個人資料,並在發現內容不正確或不完整時,有權要求更正或刪除。
  4. 完整性/安全(Integrity/Security):資料管理者必須採取合理的管理與技術措施,確保個人資料的正確性,並防止未經授權的存取、毀損、竄改或外洩。
  5. 執行/救濟(Enforcement/Redress):必須建立實質機制以確保上述原則受到落實與監督,且當個人隱私權受到侵害時,當事人能獲得適當的法律救濟或損害賠償。

解題方法

本題之解題切入點在於區分​「隱私保護的法理原則」​與​「資訊安全系統的技術機制」:

  1. 題目主旨為「隱私權法規基礎(FIP)」:FIP 旨在界定「資料主體(個人)」與「資料控制者(企業/政府)」之間的權利與義務關係(如知情、同意、查閱權利),屬於政策與法律規範層次。
  2. 對比五大核心原則:逐一檢視選項與 FTC 五大原則(Notice、Choice、Access、Security、Enforcement)之對應關係。
🔒

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

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

免費註冊

第 36 題2 分

下列哪個過程可視為數位簽章?

這一題的完整詳解

核心觀念

本題測驗「公鑰密碼學(非對稱式密碼系統)」應用於「數位簽章(Digital Signature)」與「資料加密(Data Encryption)」的基本運作原理與金鑰搭配機制。

在非對稱式密碼系統中,每位使用者皆持有一對數學上相互關聯的金鑰:

  1. 公開金鑰(Public Key):向大眾公開,任何人皆可取得。
  2. 私有金鑰(Private Key):由本人絕對保管與獨佔,不可外洩。

兩大核心應用情境的運作差異如下:

  • 資料加密(確保機密性 Confidentiality):傳送者使用「接收者的公開金鑰」將訊息加密,只有持有對應私鑰的接收者才能解密,確保傳輸過程中不被竊聽。
  • 數位簽章(確保身分驗證 Authentication 與不可否認性 Non-repudiation):傳送者使用「自己的私有金鑰」對訊息(或其雜湊摘要)進行加密/簽署;接收者則使用「傳送者的公開金鑰」進行驗證。由於私鑰僅傳送者本人擁有,因此只要能成功解開,便能證實該訊息確實由傳送者發出且事後無法否認。

解題方法

判斷「數位簽章」必須掌握「誰在簽名」以及「使用何種金鑰」:

  1. 確認發送端與簽署主體:本題由「小李傳給小王」,欲產生的簽章主體為發信人「小李」。
  2. 對應金鑰的角色機制:
  • 簽名代表個人身分之背書,如同蓋用個人印鑑,必須使用「只有自己擁有」的金鑰。
  • 小李欲證明訊息出自其手,必須使用「小李之私有金鑰」對訊息加密(簽署)。
🔒

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

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

免費註冊

第 37 題2 分

我們通常會使用 ping 指令測試網路是否通順,請問 ping 所送出的封包屬於下列何者?

這一題的完整詳解

核心觀念

本題考查網際網路協定套組(TCP/IP)的分層架構與常用網路診斷工具之底層運作協定。

  1. ICMP(Internet Control Message Protocol,網際網路控制訊息協定):定義於 RFC 792,屬於 OSI 模型第三層(網路層,Network Layer)的輔助協定。主要用途是回報 IP 封包傳送過程中的錯誤(如目的地無法到達、TTL 逾時),以及提供網路狀態的測試與診斷訊息。
  2. ping 指令運作原理:ping(Packet Internet Groper)指令透過作業系統發送 ICMP Echo Request(型態 Type 8, 代碼 Code 0) 訊息至目標主機;若網路暢通且目標主機正常運作,目標主機會回應 ICMP Echo Reply(型態 Type 0, 代碼 Code 0)。透過計算來回往返時間(Round-Trip Time, RTT)與封包遺失率,即可評估網路通訊品質與連通性。

解題方法

本題的解題切入點在於區分網路工具所使用的協定層級與協定類型:

  1. 檢視傳輸模式:ping 指令的目的僅在於「測試底層 IP 節點之間是否可達」,不需要建立傳輸層的可靠虛擬電路(非連線導向),亦不需要傳輸層的埠號(Port Number)來區分特定的應用程式處理程序(Process)。
  2. 檢驗封包結構:ping 是直接利用網路層的 ICMP 協定進行封裝。在 IPv4 標頭中,當協定欄位(Protocol Field)的值為 11 時,即代表其裝載的負載資料為 ICMP 封包,而非傳輸層的 TCP(Protocol 66)或 UDP(Protocol 1717)。
  3. 由此可知,ping 所送出的測試封包屬於 ICMP 協定。

選項分析

  • (A) ICMP(正確):全名為 Internet Control Message Protocol。ping 工具直接建立於 ICMP 之上,利用 Echo Request(查詢請求)與 Echo Reply(查詢回覆)訊息來檢驗端對端連線狀態,故為正確選項。
🔒

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

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

免費註冊

第 38 題2 分

公司有 30 台電腦,同時需要用到某個套裝軟體。你(妳)如果是主管,則應該要:

這一題的完整詳解

核心觀念

本題測驗「軟體授權模式(Software Licensing)」與「資訊倫理及智慧財產權法規」。

  1. 站點許可(Site License)與單機授權:
  • 單機授權(Single-User License):每一份授權僅允許安裝並使用於單一台電腦。
  • 站點許可(Site License / 大量授權 Volume License):著作權人授權特定組織或特定地理位置(站點,Site)內的電腦,可在約定數量上限內或無限制地安裝與執行該軟體。
  1. 著作權法規範(以命題當年民國 107 年法規為準):
  • 依我國《著作權法》規定,電腦程式著作受法律保障,其合法使用範圍受限於「軟體授權合約(EULA)」。
  • 未經著作財產權人同意或授權,將取得之正版軟體超額安裝至多台電腦,或借用他人軟體複製安裝,均構成侵害著作財產權人之「重製權」(《著作權法》第 22 條)。

解題方法

本題切入點為「軟體安裝數量與授權額度必須維持 1:11:1 或具備對應的大量授權合約」。 題目明確指出公司有 30 台電腦「同時」需要用到該套裝軟體,企業主管在資訊資產管理與法律遵循上,必須確保所有電腦上的軟體均具備合法使用權利:

  1. 方式一(單機累計):若購買一般單機版軟體,電腦有 30 台,就必須購買 30 份版權。
🔒

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

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

免費註冊

第 39 題2 分

網際網路通訊協定堆疊中,下列何者主要以連接埠(Port)來支援應用程式的多工與解多工?

這一題的完整詳解

核心觀念

本題測驗 網際網路通訊協定堆疊(TCP/IP 模型)之階層職責,特別是 傳輸層(Transport Layer)的核心功能——連接埠(Port)與多工/解多工機制(Multiplexing and Demultiplexing):

  1. 通訊範圍的階層劃分:
  • 網路層(Network Layer)提供主機對主機(Host-to-Host)​的邏輯通訊,依賴 IP 位址識別目標主機。
  • 傳輸層(Transport Layer)提供程序對程序(Process-to-Process)​的邏輯通訊,依賴 連接埠號碼(Port Number)​識別主機內的特定應用程式程序(Process)。
  1. 多工與解多工(Multiplexing and Demultiplexing):
  • 多工(Multiplexing):在傳送端,傳輸層從不同的應用程式通訊端點(Sockets)收集資料,並封裝包含來源與目的「連接埠號碼」的傳輸層標頭,將資料傳遞給網路層。
  • 解多工(Demultiplexing):在接收端,傳輸層檢視接收到的封包標頭中的「目的連接埠號碼」,將資料準確派送給對應的應用程式或通訊端點。

解題方法

題目詢問「以連接埠(Port)來支援應用程式的多工與解多工」屬於哪一層:

  • 一台主機上通常會同時運行多個需要連網的應用程式(例如同時開啟瀏覽器網頁、電子郵件軟體與通訊軟體)。網路層僅能將封包送達該台「主機」(透過 IP 位址),但無法分辨該封包是屬於哪一個應用程式。
  • 為了解決單一網路介面與多個應用程式共用傳輸管道的問題,TCP/IP 在傳輸層(如 TCP、UDP)定義了 16 位元的「連接埠(Port Number)」,用以區分不同的應用程式處理程序。
  • 透過連接埠號碼,傳輸層在傳送端執行「匯整各程式封包送入網路(多工)」,在接收端執行「將封包拆分派送至各程式(解多工)」。因此該功能明確歸屬於傳輸層。

選項分析

  • (A) 應用層(Application Layer):錯誤。 應用層負責直接提供使用者或軟體特定的網路服務功能與應用協定(如 HTTP、FTP、SMTP、DNS 等)。
🔒

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

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

免費註冊

第 40 題2 分

下列何者定義網路資料傳輸的速率?

這一題的完整詳解

核心觀念

本題主要測驗計算機網路與硬體架構中「計量單位」與「名詞定義」的辨析,核心重點如下:

  1. 資料傳輸速率(Data Transmission Rate):指單位時間內在通訊線路中所傳輸的數位資料量。網路通訊以「位元(bit)」為傳輸最小單位,標準度量單位為 bps\text{bps}(bits per second,位元/秒)。常見量級前綴(十進制):
  • 1 Kbps=103 bps1\text{ Kbps} = 10^3\text{ bps}(千位元/秒)
  • 1 Mbps=106 bps1\text{ Mbps} = 10^6\text{ bps}(百萬位元/秒)
  • 1 Gbps=109 bps1\text{ Gbps} = 10^9\text{ bps}(十億位元/秒)
  1. 常見計量單位區分:
  • 容量/空間單位:Byte(位元組)、KB、MB、GB、TB(1 Byte=8 bits1\text{ Byte} = 8\text{ bits})。
  • 時間/頻率單位:Hz\text{Hz}(赫茲,每秒週期數)、MHz\text{MHz}、GHz\text{GHz}。
  • 傳輸速率單位:bps\text{bps}、B/s\text{B/s}(或 Bps\text{Bps})。

解題方法

  1. 由題幹關鍵字切入:題目要求尋找「網路資料傳輸」的「速率(Rate)」。
  2. 檢視物理量維度:
  • 凡稱「速率」,其因次必然為「資料量時間\frac{\text{資料量}}{\text{時間}}」。
  • 檢視四個選項,唯有帶有「ps\text{ps}(per second,每秒)」時間維度的度量單位,才符合「傳輸速率」的定義。

選項分析

  • (A) 正確: Kbps 是 Kilobits per second(千位元/秒)的縮寫,表示每秒傳輸 10310^3 個位元,是計算機網路與電信通訊中定義傳輸頻寬與速率的標準單位。
  • (B) 錯誤:
🔒

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

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

免費註冊

其他考古題

107 年高普考普通考試・其他類科的《計算機概要》