107 地方特考三等 電子工程 計算機概論 考古題詳解

107 年・地方特考・三等・電子工程
試題代碼 計算機概論

第 一 題25 分

一、一個正整數 nn 的階乘(factorial)函數定義為 Factorial(n)=n!=1×2×3×⋯×nFactorial(n)=n!=1\times2\times3\times\cdots\times n,並且定義 0!=10!=1。(每小題 5 分,共 25 分)

(一) 下列是計算 Factorial(n)Factorial(n) 的一個虛擬碼(pseudocode)。如果我們呼叫 Factorial(6)Factorial(6),那麼這個程式執行到最後「return F」這一行時,FF 的值會等於多少?

🖼️【此處有附圖,請對照原卷】

Algorithm: Factorial(n)

F←1F\leftarrow1

i←1i\leftarrow1

while (i≤n)(i\leq n)

F←F×iF\leftarrow F\times i

i←i+1i\leftarrow i+1

return FF

(二) 承上題,如果我們呼叫 Factorial(6)Factorial(6),那麼這個程式執行到最後「return F」這一行時,ii 的值會等於多少?

(三) 承上題,以上的方法我們將之稱為是一種「iteration solution」,請說明何謂「iteration solution」?

(四) 階乘函數亦可以遞迴(recursion)方式定義:0!=10!=1,n!=n×(n−1)!n!=n\times(n-1)!。以下是計算 Factorial(n)Factorial(n) 的一個 recursive solution 虛擬碼(pseudocode)。請說明何謂「recursive solution」?

🖼️【此處有附圖,請對照原卷】

Algorithm: Factorial(n)

if (n=0)(n=0)

return 11

else

return n×Factorial(n−1)n\times Factorial(n-1)

(五) 承上題,如果 nn 值很大,計算 Factorial(n)Factorial(n) 的 recursive solution 的空間複雜度(space complexity)為何?

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

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

這一題的完整詳解

核心觀念

本題評量程式設計與演算法的兩大基本計算模型——迭代(Iteration)​與遞迴(Recursion),核心考點包含:

  1. 迴圈狀態追蹤(Trace):評估 while 迴圈之終止條件判定時機與狀態變數的最終數值。
  2. 迭代法(Iterative Solution)的本質:利用重複執行結構(迴圈)與變數狀態更新來逐步累計結果。
  3. 遞迴法(Recursive Solution)的結構:透過函式呼叫自身(Self-calling),依循「基本情況(Base Case)」與「遞迴步驟(Recursive Step)」化簡問題。
  4. 系統呼叫堆疊(Call Stack)與空間複雜度:遞迴執行時每層函式呼叫所需的堆疊框架(Stack Frame)佔用與記憶體深度分析。

解題方法

(一) 計算呼叫 Factorial(6)Factorial(6) 時,執行至「return F」時 FF 的值

追蹤變數 FF 與計數器 ii 在迴圈中的變化流程(Trace Table):

  • 初始狀態:F←1F \leftarrow 1,i←1i \leftarrow 1。
  • 第 1 次迴圈:判斷 1≤61 \leq 6(成立),F←1×1=1F \leftarrow 1 \times 1 = 1,i←2i \leftarrow 2。
  • 第 2 次迴圈:判斷 2≤62 \leq 6(成立),F←1×2=2F \leftarrow 1 \times 2 = 2,i←3i \leftarrow 3。
  • 第 3 次迴圈:判斷 3≤63 \leq 6(成立),F←2×3=6F \leftarrow 2 \times 3 = 6,i←4i \leftarrow 4。
  • 第 4 次迴圈:判斷 4≤64 \leq 6(成立),F←6×4=24F \leftarrow 6 \times 4 = 24,i←5i \leftarrow 5。
  • 第 5 次迴圈:判斷 5≤65 \leq 6(成立),F←24×5=120F \leftarrow 24 \times 5 = 120,i←6i \leftarrow 6。
  • 第 6 次迴圈:判斷 6≤66 \leq 6(成立),F←120×6=720F \leftarrow 120 \times 6 = 720,i←7i \leftarrow 7。
  • 迴圈終止判定:判斷 7≤67 \leq 6(不成立,False),跳出 while 迴圈。

執行至 return F 時,FF 的值為 720720(即 6!=7206! = 720)。

(二) 承上題,執行至「return F」時 ii 的值

while (i <= n) 迴圈必須等到條件判斷為「偽(False)」時才會終止。 由 (一) 之追蹤過程可知,當 ii 遞增至 77 時,條件 7≤67 \leq 6 為 False,程式隨即跳出迴圈並前進至 return F。 因此,執行到 return F 這一行時,ii 的值等於 77。

(三) 何謂「iteration solution」

迭代解法(Iteration Solution)​是指利用迴圈控制結構(如 for、while、do-while)重複執行某一段特定的程式碼區塊,藉由在每次執行過程中持續更新一組或多組狀態變數(State Variables),逐步逼近或直接累計求得問題解答的方法。

🔒

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

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

免費註冊

第 二 題25 分

二、下圖是將一個 10 進位的小數 0.1250.125 轉換為 2 進位的小數 0.0010.001 的過程示意圖,其結束條件為「乘上 2 後小數部分等於 0」。(每小題 5 分,共 25 分)

🖼️【此處有附圖,請對照原卷】

(一) 如果要將一個 10 進位的小數 0.68750.6875 轉換為 2 進位的小數,請你也同上圖一樣,繪圖表示這個過程。

(二) 如果要將一個 10 進位的小數 0.30.3 轉換為 2 進位的小數,請你也同上圖一樣,繪圖表示這個過程。請問會發生什麼困難?

(三) 請問使用 IEEE-754 的實數表示法後,會不會有誤差?為什麼?

(四) 上述方法可以推廣轉換到其它進位。如果要將一個 10 進位的小數 0.656250.65625 轉換為 16 進位的小數,請你也同上圖一樣,繪圖表示這個過程。

(五) 上述方法的結束條件若為「乘上 2 後小數部分等於 0」顯然會造成問題,請問結束條件應該如何修正?

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

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

這一題的完整詳解

核心觀念

  1. 小數進位制轉換(連乘基數取整數法,Successive Multiplication Method): 十進位小數轉換為 RR 進位小數時,將小數部分連續乘以基數 RR。每次相乘後,取出整數部分作為該位數的數碼(由最高有效位 MSB 向最低有效位 LSB 依序排列),再取剩餘的小數部分重複此步驟,直到小數部分為 00 或達到所需精度為止。
  2. 有限小數與循環小數的數學條件: 十進位既約分數 PQ\frac{P}{Q} 在 RR 進位下能表示為有限小數的充要條件為:分母 QQ 的所有質因數皆為基數 RR 質因數的子集。若分母含有無法被 RR 整除的質因數,轉換後必為「無限循環小數」。
  3. IEEE-754 浮點數表示法的精度極限: 計算機硬體內部使用有限長度的位元儲存浮點數(如單精度 32 位元之尾數佔 23 位元,雙精度 64 位元之尾數佔 52 位元)。無法以有限二進位位元完全表示的無限循環小數,必會因捨入(Rounding)或截斷(Truncation)而產生表示誤差(Representation Error)。
  4. 數值演算法終止條件設計: 單一判定「小數部分等於 00」在面對無限循環小數時會導致無窮迴圈(Infinite Loop),必須引入「最大精度位數」或「循環偵測」等複合終止機制。

解題方法

(一) 將十進位小數 0.68750.6875 轉換為二進位小數之過程

計算推導步驟:

  1. 0.6875×2=1.3750.6875 \times 2 = 1.375 →\rightarrow 整數部分為 11(十分位 2−12^{-1},MSB),剩餘小數部分為 0.3750.375。
  2. 0.375×2=0.750.375 \times 2 = 0.75 →\rightarrow 整數部分為 00(百分位 2−22^{-2}),剩餘小數部分為 0.750.75。
  3. 0.75×2=1.50.75 \times 2 = 1.5 →\rightarrow 整數部分為 11(千分位 2−32^{-3}),剩餘小數部分為 0.50.5。
  4. 0.5×2=1.00.5 \times 2 = 1.0 →\rightarrow 整數部分為 11(萬分位 2−42^{-4},LSB),剩餘小數部分為 0.00.0。
  5. 小數部分已為 00,符合結束條件,停止計算。

過程示意圖:

 [ 0.6875 ]
 × 2
 --------
 = 1.375 ──── 取整數部分 ───> 1 (第 1 位小數,2⁻¹,MSB)
 │ (取小數 0.375)
 ▼
 [ 0.375 ]
 × 2
 --------
 = 0.75 ──── 取整數部分 ───> 0 (第 2 位小數,2⁻²)
 │ (取小數 0.75)
 ▼
 [ 0.75 ]
 × 2
 --------
 = 1.5 ──── 取整數部分 ───> 1 (第 3 位小數,2⁻³)
 │ (取小數 0.5)
 ▼
 [ 0.5 ]
 × 2
 --------
 = 1.0 ──── 取整數部分 ───> 1 (第 4 位小數,2⁻⁴,LSB)
 │
 └──────> 小數部分為 0 ───> [ 結束 ]

由上往下讀取整數部分,轉換結果為:0.1011₂

(二) 將十進位小數 0.30.3 轉換為二進位小數之過程與困難

計算推導步驟:

  1. 0.3×2=0.60.3 \times 2 = 0.6 →\rightarrow 整數部分為 00,剩餘小數部分為 0.60.6。
  2. 0.6×2=1.20.6 \times 2 = 1.2 →\rightarrow 整數部分為 11,剩餘小數部分為 0.20.2。
  3. 0.2×2=0.40.2 \times 2 = 0.4 →\rightarrow 整數部分為 00,剩餘小數部分為 0.40.4。
  4. 0.4×2=0.80.4 \times 2 = 0.8 →\rightarrow 整數部分為 00,剩餘小數部分為 0.80.8。
  5. 0.8×2=1.60.8 \times 2 = 1.6 →\rightarrow 整數部分為 11,剩餘小數部分為 0.60.6(小數部分 0.60.6 重複出現,進入循環)。
  6. 0.6×2=1.20.6 \times 2 = 1.2 →\rightarrow 整數部分為 11,剩餘小數部分為 0.20.2。

過程示意圖:

 [ 0.3 ]
 × 2
 -------
 = 0.6 ──── 取整數部分 ───> 0
 │
 ▼
 [ 0.6 ] ◄─────────────────────────┐
 × 2 │
 ------- │
 = 1.2 ──── 取整數部分 ───> 1 │
 │ │
 ▼ │
 [ 0.2 ] │
 × 2 │
 ------- │ (小數部分 0.6 重複出現)
 = 0.4 ──── 取整數部分 ───> 0 │ (產生週期為 4 的循環節)
 │ │
 ▼ │
 [ 0.4 ] │
 × 2 │
 ------- │
 = 0.8 ──── 取整數部分 ───> 0 │
 │ │
 ▼ │
 [ 0.8 ] │
 × 2 │
 ------- │
 = 1.6 ──── 取整數部分 ───> 1 │
 │ (取小數 0.6) │
 └───────────────────────────────┘

產生循環序列:0.0100110011001...₂ = 0.01001₂ (循環節為 1001)

發生的困難:

  1. 陷入無窮迴圈(無法滿足終止條件): 十進位小數 0.3=3100.3 = \frac{3}{10},其分母含有質因數 55(非 22 的冪次),在二進位下為無限循環小數(循環節為 100121001_2)。
  2. 其乘積的小數部分永遠不可能等於 00。若演算法僅以「乘上 2 後小數部分等於 0」作為結束條件,程式將陷入無窮迴圈(Infinite Loop)​而無法終止。

(三) 使用 IEEE-754 實數表示法是否會有誤差及其原因

結論:會產生誤差。

原因剖析:

  1. 二進位循環小數無法以有限長度精確表達: 十進位數值 0.30.3 轉換為二進位科學記號為: 0.310=1.00110011001100110011001…2×2−20.3_{10} = 1.00110011001100110011001\dots_2 \times 2^{-2} 其尾數(Mantissa / Fraction)為無窮循環序列。
  2. 硬體儲存位元數受限(有限精確度): IEEE-754 標準中,浮點數的有效位數是固定的:
🔒

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

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

免費註冊

第 三 題25 分

三、JPEG 是一種影像壓縮法,它有三個步驟:DCT、Quantization、Lossless Compression,如下圖所示。(每小題 5 分,共 25 分)

🖼️【此處有附圖,請對照原卷】

(一) JPEG 演算法先將影像切割成較小的圖像區塊「Blocked Image」來一一處理。請問這個較小的圖像區塊的像素數量是多少?

(二) 請寫出 DCT 的英文全名。

(三) 第三個步驟稱為 Lossless Compression,請問「Lossless」意思為何?

(四) JPEG 的壓縮比率可大可小,請說明其理由。

(五) 請說明 Quantization 這步驟做了什麼計算。

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

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

這一題的完整詳解

核心觀念

本題評量多媒體系統中經典靜態影像壓縮標準 JPEG(Joint Photographic Experts Group) 的核心運作機制與壓縮管線(Compression Pipeline)。主要涵蓋以下核心觀念與定義:

  1. 空間分塊(Image Blocking):JPEG 標準基準模式(Baseline JPEG)以 8×88 \times 8 的像素矩陣作為基本處理單元(Data Unit)。
  2. 離散餘弦轉換(Discrete Cosine Transform, DCT):將空間域(Spatial Domain)的像素強度轉換至頻域(Frequency Domain),分離出直流成分(DC Coefficient,代表區塊平均亮度)與交流成分(AC Coefficients,代表不同頻率之紋理與細節),達到能量集中(Energy Compaction)效果。
  3. 失真/無失真壓縮(Lossy vs. Lossless Compression):
  • 無失真(Lossless):資料壓縮還原後與原始輸入完全相同,無任何資訊損失(消除統計冗餘)。
  • 破壞性/失真(Lossy):捨棄人類視覺系統(HVS)不敏感的資訊,解壓縮後無法百分之百還原原始數值(消除心理視覺冗餘)。
  1. 量化(Quantization)與壓縮比控制:量化為 JPEG 演算法中唯一的失真來源。利用人類視覺對低頻敏感、對高頻遲鈍的生理特性,透過量化矩陣進行除法與四捨五入截斷,將大量高頻係數歸零,並藉由調整量化矩陣步階(品質因子 Quality Factor)來動態調整壓縮比。

解題方法

本題為標準的觀念問答題,各小題之解題論述脈絡如下:

  1. 第 (一) 小題(分塊大小計算): 依據 JPEG 規範,影像各通道(如 Y、Cb、Cr)在輸入轉換前會被切分為 8×88 \times 8 的像素區塊,像素總數即為面積相乘: 8×8=64 像素(Pixels)8 \times 8 = 64 \text{ 像素(Pixels)}

  2. 第 (二) 小題(DCT 英文全名): 寫出標準專有名詞 Discrete Cosine Transform,注意拼字與大小寫慣例。

  3. 第 (三) 小題(Lossless 意涵): 從資訊理論與編碼角度切入,明確定義「還原資料與原始資料完全一致(Bit-for-bit identical)」,並指出 JPEG 流程中的無失真步驟主要為熵編碼(如 Run-Length Encoding 與 Huffman Coding)。

  4. 第 (四) 小題(壓縮比率可變之理由): 聚焦於「量化(Quantization)」步驟中量化表(Quantization Table)與品質係數(Quality Factor)的縮放機制。量化矩陣的數值越大(粗量化),被截斷為 00 的高頻交流係數越多,遊程長度越長,使熵編碼的壓縮比大幅提高,但畫質隨之降低;反之量化矩陣數值越小(細量化),保留細節越多,壓縮比降低但畫質提升。

  5. 第 (五) 小題(量化之計算內容): 寫出量化運算的數學公式。對於 DCT 轉換後的頻率係數矩陣 F(u,v)F(u, v) 與對應的量化矩陣 Q(u,v)Q(u, v),其計算本質為「逐元素相除並取四捨五入整數」: Fq(u,v)=round(F(u,v)Q(u,v))F_q(u, v) = \text{round}\left( \frac{F(u, v)}{Q(u, v)} \right) 說明其目的在於抑制高頻成分並產生大量連零,為不可逆的失真運算。


選項分析

本題為非選擇題(申論問答題),無選項可供拆解。各小題的評分要點與答題關鍵剖析如下:

  • 第 (一) 小題: 若僅回答「8×88 \times 8」可能被扣除計算結果分數,必須明確寫出算式及總數「8×8=648 \times 8 = 64 個像素」。
  • 第 (二) 小題: 必須完整寫出「Discrete Cosine Transform」,若單字拼錯(如 Cosine 誤拼為 Cosin 或 Transform 拼錯)將依評分標準斟酌扣分。
🔒

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

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

免費註冊

第 四 題25 分

四、下圖顯示典型的作業系統組成的元件。(每小題 5 分,共 25 分)

🖼️【此處有附圖,請對照原卷】

圖中元件包括:Operating System、User Interface、Memory Manager、Process Manager、Device Manager、File Manager。

(一) 何謂作業系統的 kernel?

(二) 何謂作業系統的 shell?

(三) 有一類型的 User Interface,簡稱為 GUI,請寫出其英文全名。

(四) Process Manager 是用來管理 Process。請問 Process 和 Job 有何差別?

(五) 在 paging system 中,Memory Manager 需處理 page fault interrupt。何謂 page fault interrupt?

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

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

這一題的完整詳解

核心觀念

本題評量作業系統(Operating System, OS)的基礎架構與核心模組運作機制,出自經典作業系統階層式模型(Layered Architecture):

  1. 雙重模式運作(Dual-Mode Operation)與核心(Kernel):作業系統區分為核心模式(Kernel Mode / Supervisor Mode)與使用者模式(User Mode)。Kernel 為最底層且常駐記憶體的核心程式,具備特權指令執行權限。
  2. 命令解譯器(Shell)與使用者介面(User Interface):Shell 屬於使用者層級(User Space)的介面程式,負責接收並解析使用者指令,透過系統呼叫(System Call)向 Kernel 請求服務。
  3. 處理元管理(Process Management):區分「外存靜態工作(Job)」與「記憶體中動態執行單元(Process)」的生命週期、控制區塊(PCB)與排程階層(長程 vs. 短程排程)。
  4. 虛擬記憶體與隨選分頁(Demand Paging):分頁系統中利用分頁表(Page Table)之有效/無效位元(Valid/Invalid Bit)實作虛擬記憶體,當存取未載入實體記憶體的分頁時觸發分頁缺失中斷(Page Fault Interrupt)。

解題方法

本題為典型之申論問答題,解題切入點如下:

  1. (一) 與 (二) 核心與外殼之對比:從「記憶體常駐性」、「執行模式(特權級別)」及「主要職責」精確定義 Kernel 與 Shell,並強調 Shell 運作於使用者空間,並非 Kernel 本身。
  2. (三) 名詞全稱與概念:精確拼寫 GUI 之英文全名,並補述其人機互動本質(圖形元素與直覺操作)。
  3. (四) 比較題型切入法:建立多維度比較指標(抽象層次、存在媒體、資源配置、管理排程器),剖析 Job 與 Process 的本質差異。
  4. (五) 中斷機制與流程推導:先給出 Page Fault 的精確觸發定義(硬體 MMU 檢查無效位元產生之 Trap/Exception),再依序條列作業系統 Page Fault Handler 的標準處理步驟,展現扎實的系統觀念。

各小題深入解析

本題為申論問答題,無選擇題選項,各小題逐一深入分析如下:

  • 第 (一) 小題:作業系統的 Kernel Kernel(核心)是作業系統的心臟與最基礎軟體模組。電腦開機完成引導(Bootstrap)後即常駐於主記憶體中,運作於 CPU 的特權模式(Kernel Mode)。其核心職責為抽象化底層硬體,統一管理與調度系統實體資源(CPU、主記憶體、I/O 裝置、儲存系統),並透過系統呼叫(System Calls)提供應用程式安全、受控的硬體存取服務。

  • 第 (二) 小題:作業系統的 Shell Shell(命令解譯器/命令直譯器)是包覆於 Kernel 外部的使用者介面程式,運作於使用者模式(User Mode)。其功能在於提供人機互動介面,讀取使用者輸入的字元指令或腳本,解析語法後,轉換為相對應的系統呼叫或呼叫外部執行檔傳遞給 Kernel 執行,最後將執行結果呈現給使用者。常見實作如 Unix/Linux 環境下的 Bash、Zsh,以及 Windows 環境下的 Command Prompt 與 PowerShell。

  • 第 (三) 小題:GUI 的英文全名 GUI 的英文全名為 Graphical User Interface(圖形使用者介面)。相較於傳統命令列介面(CLI),GUI 透過視窗(Windows)、圖示(Icons)、選單(Menus)與指標(Pointers)等視覺化圖形元素(WIMP 架構),讓使用者能以滑鼠或觸控等直覺動作與系統溝通。

  • 第 (四) 小題:Process 與 Job 的差別

  • Job(工作/作業):屬於較高層次、使用者導向(User-oriented)的靜態概念。源自批次處理系統,指使用者提交給系統等待執行的整套任務,通常包含程式、資料與控制命令(如 JCL)。Job 尚未載入主記憶體前存放於次級儲存體(磁碟)的佇列中,由長程排程器(Job Scheduler)調配進入系統的資格。

  • Process(行程/進程):屬於較低層次、系統導向(OS-oriented)的動態概念。定義為「正在執行中的程式實體(a program in execution)」。當 Job 被選取載入主記憶體、分配專屬的記憶體空間(包含 Text、Data、Heap、Stack)並由作業系統建立行程控制區塊(PCB)後,即成為 Process,由 CPU 排程器(短程排程器)直接調派 CPU 執行。

🔒

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

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

免費註冊

其他考古題

107 年地方特考三等・其他類科的《計算機概論》