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

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

第 一 題20 分

(一) 你只能利用基本的三種邏輯閘 AND、OR、NOT,設計出一個 11-bit 的比較器(comparator)線路。這個比較器有兩個 11-bit 的輸入 aa 與 bb,一個輸出 cc。當 a>ba>b 時,輸出 cc 的值為 11,否則輸出 cc 的值為 00。(10 分)

(二) 在電腦的數字系統中,假設使用 44-bit 的二補數(2’s complement)方式來儲存整數,則計算 1+71+7 之後的結果是多少?請詳述你的計算過程,並解釋你的理由。(10 分)

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

這一題的完整詳解

核心觀念

  1. 比較器(Comparator)定義:比較兩組二進位數值大小的組合邏輯電路。本題為 11-bit 比較器,輸入為 a,b∈{0,1}a, b \in \{0, 1\},輸出 cc 僅在條件 a>ba > b 成立時為 11,其餘情況為 00。
  2. 真值表(Truth Table)與布林代數(Boolean Algebra):將所有輸入組合列出,找出輸出為 11 的最小項(Minterm),進而導出最簡積之和(Sum of Products, SOP)布林表示式。
  3. 基本邏輯閘集合:限定僅使用 AND\text{AND}、OR\text{OR}、NOT\text{NOT} 三種基本邏輯閘實現電路。

解題方法

步驟一:建立真值表 列出輸入 aa 與 bb 的 4 種組合,並比對大小關係求得輸出 cc:

輸入 aa輸入 bb大小關係判定輸出 cc (a>ba > b)最小項
000=00 = 0(不成立)0m0m_0
010<10 < 1(不成立)0m1m_1
101>01 > 0(成立)1m2=ab‾m_2 = a\overline{b}
111=11 = 1(不成立)0m3m_3

步驟二:推導布林代數表示式 由真值表可知,僅在 a=1a = 1 且 b=0b = 0(即最小項 m2m_2)時,輸出 cc 為 11: c=a⋅b‾c = a \cdot \overline{b}

步驟三:邏輯電路設計 該布林式僅需使用邏輯閘集合 {AND,OR,NOT}\{\text{AND}, \text{OR}, \text{NOT}\} 中的 1 個 NOT\text{NOT} 閘與 1 個 AND\text{AND} 閘即可實現,完全符合題目限制:

  1. 輸入 bb 經由一個 NOT\text{NOT} 閘反向,輸出為 b‾\overline{b}。
  2. 輸入 aa 與反向後的 b‾\overline{b} 同時輸入至一個雙輸入 AND\text{AND} 閘。
  3. 該 AND\text{AND} 閘之輸出端即為 cc。

電路接線圖示意:

a -------------------\
 )--- AND ---> c
b --->[ NOT ]-- b' --/

解題技巧

  • 陷阱注意:題目敘述「只能利用基本的三種邏輯閘 AND、OR、NOT」,意指邏輯閘元件庫僅限於此三者(不得使用 XOR\text{XOR}、NAND\text{NAND}、NOR\text{NOR} 等複合閘)。若電路化簡後只需使用其中的 AND\text{AND} 與 NOT\text{NOT} 即可達成,不需強行加入無意義的 OR\text{OR} 閘(如 c=ab‾+0c = a\overline{b} + 0)。
  • 快速驗算:
  • 代入 a=1,b=0  ⟹  c=1⋅0‾=1⋅1=1a=1, b=0 \implies c = 1 \cdot \overline{0} = 1 \cdot 1 = 1(符合)。
  • 代入其他三種組合,因 a=0a=0 或 b‾=0\overline{b}=0,乘積必為 00(符合)。

第 (二) 小題

核心觀念

  1. nn-bit 二補數(2's Complement)數值表示範圍: [−2n−1, 2n−1−1][-2^{n-1}, \, 2^{n-1}-1] 當 n=4n=4 時,可表示之整數範圍為 [−23, 23−1]=[−8, +7][-2^3, \, 2^3-1] = [-8, \, +7]。
  2. 正整數之二補數編碼:正數的二補數表示法與一般無號二進位相同,最高位元(Most Significant Bit, MSB)為符號位元(Sign Bit),正數之符號位元必為 00。
  3. 二補數加法溢位(Overflow)判斷:
  • 符號判別法:兩同號數相加,若運算結果之符號位元與加數相反,代表發生溢位。
🔒

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

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

免費註冊

第 二 題20 分

Scheme 是一種函式程式語言(functional programming language),其中定義了一個函式如下:

(define (mystery input-list) (cond ((null? input-list) 0) (else (+ 1 (mystery (cdr input-list))))))

(一) 執行下列函式的呼叫,結果為何?(5 分)

(mystery (list 4 5 6))

(二) 解釋這個 mystery 函式,在計算什麼?(5 分)

(三) 用 Scheme 語法,定義出一個函式 factorial nn,這個函式要算出 n!n!。(10 分)

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

這一題的完整詳解

核心觀念

  1. 函式程式語言(Functional Programming)與 Scheme 語法特性:
  • S-運算式(S-expression)與前序表示法(Prefix Notation):運算子或函式名稱置於最前端,緊接運算元,形式為 (function arg1 arg2 ...)。
  • 條件分支指令:
  • cond 語法:(cond (條件1 傳回值1) (條件2 傳回值2) ... (else 預設值))。
  • if 語法:(if 條件 成立傳回值 不成立傳回值)。
  1. 串列(List)核心操作函式:
  • null?:述詞函式(Predicate),判斷串列是否為空串列('),若是則回傳真值 #t,否則回傳假值 #f。
  • car:取出串列的第一個元素(Head)。
  • cdr:取出除去第一個元素後剩下的其餘子串列(Tail)。
  1. 結構性遞迴(Structural Recursion):
  • 串列處理的標準遞迴架構包含:
  • 基準條件(Base Case):當串列為空時停止遞迴並回傳初值(此處為 0)。
  • 遞迴條件(Recursive Case):透過 (cdr input-list) 縮小問題規模,逐步向空串列逼近。
  1. 階乘(Factorial)的數學遞迴定義: n!={1,若 n=0 或 n=1n×(n−1)!,若 n>1n! = \begin{cases} 1, & \text{若 } n = 0 \text{ 或 } n = 1 \\ n \times (n-1)!, & \text{若 } n > 1 \end{cases}

解題方法

(一) 函式呼叫追蹤(Trace)

欲求 (mystery (list 4 5 6)) 之結果,將引數代入遞迴展開如下:

  1. 第一層呼叫:input-list 為 (4 5 6)
  • (null? '(4 5 6)) 為 #f。
  • 進入 else 分支:(+ 1 (mystery (cdr '(4 5 6))))
  • 因 (cdr '(4 5 6)) 得到 (5 6),展開為:(+ 1 (mystery '(5 6)))
  1. 第二層呼叫:input-list 為 (5 6)
  • (null? '(5 6)) 為 #f。
  • 展開為:(+ 1 (+ 1 (mystery '(6))))
  1. 第三層呼叫:input-list 為 (6)
  • (null? '(6)) 為 #f。
  • 展開為:(+ 1 (+ 1 (+ 1 (mystery '))))
  1. 第四層呼叫(終止條件):input-list 為 ``(空串列)
🔒

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

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

免費註冊

第 三 題20 分

(一) 電腦的作業系統使用虛擬記憶體來管理記憶體。假設每個分頁(page)大小為 44 KB,總共有邏輯位址(logical address)空間共 256256 分頁,而此電腦的實體記憶體總共有 6464 框(frame)。則此電腦的邏輯位址、實體位址(physical address)分別是多少 bits?(10 分)

(二) 假設使用只有三個分頁框(frame)的需求分頁法(demand paging)機制,且使用 LRU(Least Recently Used)取代演算法,則下列分頁參考(page reference)的順序:

7,2,3,1,2,5,3,4,6,7,7,1,0,5,4,6,2,3,0,17, 2, 3, 1, 2, 5, 3, 4, 6, 7, 7, 1, 0, 5, 4, 6, 2, 3, 0, 1

會導致多少次的分頁錯誤(page fault)?詳述說明整個過程。假設一開始的分頁表(page table)內容是空的。(10 分)

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

這一題的完整詳解

核心觀念

本題評量作業系統(Operating System)中「虛擬記憶體(Virtual Memory)」管理機制之兩大經典考點:

  1. 分頁定址架構(Paging Address Translation):
  • 電腦通常以位元組(Byte)為基本定址單位(Byte-addressable)。
  • 分頁大小(Page Size) 決定頁內位移量(Page Offset, dd)之位元數,且分頁與實體框(Frame)大小相等,故邏輯位址與實體位址之位移量位元數完全相同。
  • 邏輯位址(Logical Address) 由「分頁編號(Page Number, pp)」與「位移量(dd)」組成;分頁編號位元數由邏輯分頁總數決定。
  • 實體位址(Physical Address) 由「框編號(Frame Number, ff)」與「位移量(dd)」組成;框編號位元數由實體記憶體框總數決定。
  1. 需求分頁(Demand Paging)與 LRU 取代演算法:
  • 需求分頁在分頁被存取且尚未載入實體記憶體時,會觸發分頁錯誤(Page Fault),作業系統需將該分頁從輔助記憶體(磁碟)載入實體框中。
  • LRU(Least Recently Used,最近最少使用演算法):當實體框已滿又發生分頁錯誤時,選擇「最長時間未被存取」的分頁作為犧牲者(Victim Page)淘汰。

解題方法

(一) 計算邏輯位址與實體位址位元數

  1. 計算位移量(Offset, dd)位元數:
  • 每個分頁大小為 4 KB=4×1024 Bytes=4096 Bytes=212 Bytes4\text{ KB} = 4 \times 1024\text{ Bytes} = 4096\text{ Bytes} = 2^{12}\text{ Bytes}。
  • 頁內位移量所需位元數為: d=log⁡2(4096)=12 bitsd = \log_2(4096) = 12\text{ bits}
  • 分頁大小等於框大小,因此邏輯位址與實體位址之位移量皆為 12 bits12\text{ bits}。
  1. 計算分頁編號(Page Number, pp)與邏輯位址大小:
  • 邏輯位址空間共有 256256 個分頁: p=log⁡2(256)=log⁡2(28)=8 bitsp = \log_2(256) = \log_2(2^8) = 8\text{ bits}
  • 邏輯位址總位元數為分頁編號與位移量之和: 邏輯位址=p+d=8+12=20 bits\text{邏輯位址} = p + d = 8 + 12 = 20\text{ bits}
  1. 計算框編號(Frame Number, ff)與實體位址大小:
  • 實體記憶體共有 6464 個框: f=log⁡2(64)=log⁡2(26)=6 bitsf = \log_2(64) = \log_2(2^6) = 6\text{ bits}
  • 實體位址總位元數為框編號與位移量之和: 實體位址=f+d=6+12=18 bits\text{實體位址} = f + d = 6 + 12 = 18\text{ bits}

(二) 追蹤需求分頁與 LRU 取代過程

系統具備 33 個分頁框,初始為空。分頁參考序列共 2020 次存取: 7,2,3,1,2,5,3,4,6,7,7,1,0,5,4,6,2,3,0,17, 2, 3, 1, 2, 5, 3, 4, 6, 7, 7, 1, 0, 5, 4, 6, 2, 3, 0, 1

以下逐步追蹤記憶體內 3 個框之內容變化與 LRU 淘汰決策:

步驟參考分頁框 1框 2框 3結果淘汰分頁 (Victim) / 說明
177--Page Fault初始空框載入(冷啟動)
2272-Page Fault初始空框載入(冷啟動)
33723Page Fault初始空框載入(冷啟動,框已滿)
41123Page Fault框已滿,最久未使用為 7,淘汰 7
52123Hit2 已在記憶體中,更新 2 為最新存取
65125Page Fault過去存取順序為 3(步3) < 1(步4) < 2(步5),最久未使用為 3,淘汰 3
73325Page Fault過去存取順序為 1(步4) < 2(步5) < 5(步6),最久未使用為 1,淘汰 1
🔒

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

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

免費註冊

第 四 題20 分

(一) 一個無階級(classless)IP 位址為 167.188.170.83/27167.188.170.83/27,它所屬的子網域(subnet)範圍為多少?(10 分)

(二) 在一個區域網路內,多個使用者共用同一個通道(channel),使用下列那些媒介存取控制(Medium Access Control)協定,會讓當使用者站台數目很多時,因為通道碰撞(collision)嚴重,而使得系統的吞吐量驟降,甚至癱瘓掉?解釋原因。(10 分)

這一題的完整詳解

核心觀念

  1. 無階級網際網域路由(CIDR)與子網路遮罩(Subnet Mask):
  • 符號 /27/27 代表前 27 個位元為網路識別碼與子網路識別碼(Network/Subnet ID),後續剩餘位元為主機識別碼(Host ID)。
  • IPv4 位址長度共 32 位元,因此主機位元數為 32−27=532 - 27 = 5 個位元。
  1. 區塊大小(Block Size / Increment):
  • 每一個子網域所容納的總 IP 數量(區塊大小)為 25=322^5 = 32 個。
  1. 位址類型定義:
  • 子網路位址(Network Address):主機位元全為 00,代表該網段本身。
  • 廣播位址(Broadcast Address):主機位元全為 11,用於該網段內的所有主機廣播。
  • 可用主機 IP 範圍(Usable Host IP Range):介於子網路位址與廣播位址之間的 IP,數量為 25−2=302^5 - 2 = 30 個。

解題方法

  1. 求子網路遮罩:
  • 前 24 位元皆為 1(即前三組數字為 255.255.255255.255.255)。
  • 第四個八位元組(4th octet)佔用 3 個位元: 111000002=128+64+32=22411100000_2 = 128 + 64 + 32 = 224
  • 故子網路遮罩為 255.255.255.224255.255.255.224。
  1. 計算第四個八位元組的子網路區間:
  • 區塊增量為 232−27=25=322^{32 - 27} = 2^5 = 32。
  • 第四個八位元組的子網路起始點依序為:0,32,64,96,128,160,192,2240, 32, 64, 96, 128, 160, 192, 224。
  • 題目給定 IP 為 167.188.170.83167.188.170.83,其第四個數字為 8383。
  • 由於 64≤83<9664 \le 83 < 96,該 IP 落於起點為 6464 的子網段中。
  • 亦可透過二進位逐位元 AND 運算驗證: 83=01010011283 = 01010011_2 224=111000002224 = 11100000_2 83 AND 224=010000002=6483 \text{ AND } 224 = 01000000_2 = 64
  1. 推導網段界限:
  • 子網路位址:167.188.170.64167.188.170.64
  • 廣播位址:167.188.170.64+32−1=167.188.170.95167.188.170.64 + 32 - 1 = 167.188.170.95(主機位元全為 1:010111112=9501011111_2 = 95)
  • 完整子網域位址範圍:167.188.170.64∼167.188.170.95167.188.170.64 \sim 167.188.170.95
  • 可用主機 IP 範圍:167.188.170.65∼167.188.170.94167.188.170.65 \sim 167.188.170.94

解題技巧

  • 魔術數字法(Magic Number):直接以 256−遮罩最後一組數值=256−224=32256 - \text{遮罩最後一組數值} = 256 - 224 = 32。接著用 IP 最後一碼除以 3232:83÷32=2…1983 \div 32 = 2 \dots 19,商數為 2,故子網路起點為 32×2=6432 \times 2 = 64,終點為 64+32−1=9564 + 32 - 1 = 95。10 秒內即可快速驗算完畢。
  • 作答完整性:國家考試中問及「子網域範圍」,務必同時列出「完整網段範圍(含網路與廣播位址)」以及「可用主機 IP 範圍」,確保不被閱卷委員扣分。

第二題:媒介存取控制(MAC)協定分析

核心觀念

  1. 隨機存取協定(Random Access / Contention-based Protocols):
  • 節點隨時可能嘗試存取通道,沒有中央控制器協調,亦無事先保留時間或頻率。
  • 當站台數極多且負載沉重時,多個節點同時傳輸的機率急遽上升,造成**大量封包碰撞(Collision)**與重傳。通道充斥無效訊號與退避等待,導致吞吐量雪崩式驟降,甚至發生「壅塞崩潰(Congestion Collapse)」。
  1. 通道劃分協定(Channel Partitioning Protocols):
  • 將通道頻寬在時間、頻率或編碼上靜態切割並專屬分配給各節點(如 TDMA、FDMA、CDMA)。
  • 節點只在專屬資源內傳輸,完全不會發生碰撞,系統吞吐量在高負載時仍能維持穩定。

解題方法

檢視各選項協定之運作架構,辨別何者屬於「無預先劃分通道、依賴競爭之隨機存取協定」,並針對高站台數量下的碰撞行為進行分析。


🔒

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

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

免費註冊

第 五 題20 分

(一) 下列式子是用後序(postfix)表示式,計算出它的答案。(5 分)

2 3 4 + ∗ 5 +2\ 3\ 4\ +\ *\ 5\ +

(二) 假設一個二元樹的走訪(binary tree traversal),用後序走訪(postorder)得到的是 HGDBFECA,用中序走訪(inorder)的結果是 HDGBA CFE,畫出這個二元樹。(15 分)

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

這一題的完整詳解

核心觀念

  1. 後序表示式(Postfix / Reverse Polish Notation, RPN)求值: 後序表示式的運算子位於運算元之後,具有無需括號即可唯一確定運算順序的特性。計算機底層通常利用**堆疊(Stack)**資料結構來實作:由左至右依序讀入符號,若為運算元則推入(Push)堆疊;若為二元運算子則從堆疊彈出(Pop)兩個運算元進行計算,並將結果推回(Push)堆疊。

  2. 二元樹(Binary Tree)走訪與重構:

  • 後序走訪(Postorder: Left →\to Right →\to Root):最後走訪的節點必為該樹(或子樹)之根節點(Root)。
  • 中序走訪(Inorder: Left →\to Root →\to Right):根節點左側的所有節點必屬於左子樹,右側的所有節點必屬於右子樹。
  • 藉由「後序定根節點、中序切分左右子樹」的遞迴原則,可唯一還原出原始二元樹結構。

解題方法

(一) 後序表示式求值

給定後序算式:2 3 4 + ∗ 5 +2\ 3\ 4\ +\ *\ 5\ +

運算規則: 由左至右依序掃描算式,遇到數值即 Push 入堆疊;遇到運算子時,Pop 兩元素 op2op_2(先彈出者,右運算元)與 op1op_1(後彈出者,左運算元),計算 op1 運算子 op2op_1 \text{ 運算子 } op_2,將計算結果 Push 回堆疊。

堆疊追蹤步驟表:

步驟讀入符號動作說明堆疊內容(由底至頂)
12運算元,Push 2[2][2]
23運算元,Push 3[2,3][2, 3]
34運算元,Push 4[2,3,4][2, 3, 4]
4+彈出 4 與 3,計算 3+4=73 + 4 = 7,Push 7[2,7][2, 7]
5*彈出 7 與 2,計算 2×7=142 \times 7 = 14,Push 14[14][14]
65運算元,Push 5[14,5][14, 5]
7+彈出 5 與 14,計算 14+5=1914 + 5 = 19,Push 19[19][19]

式子處理完畢,堆疊頂端之數值即為最終計算結果:1919。


(二) 二元樹重構

給定走訪順序:

  • 後序走訪(Postorder):H G D B F E C A
  • 中序走訪(Inorder):H D G B A C F E

推導步驟:

  1. 確定整棵樹之樹根與左右子樹分割:
  • 由後序最後一個字母可知,整棵樹的根節點為 AA。
  • 對照中序 H D G B A C F E,以 AA 為中心分割:
  • 左子樹節點集合:{H,D,G,B}\{H, D, G, B\}(共 4 個節點)
  • 右子樹節點集合:{C,F,E}\{C, F, E\}(共 3 個節點)
🔒

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

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

免費註冊

其他考古題

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