107 高普考高考三級 電信工程 計算機概論 考古題詳解

107 年・高普考・高考三級・電信工程
試題代碼 計算機概論

第 一 題20 分

中央處理器(CPU)的組成元件有哪些?請詳述元件名稱及其功能。

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

這一題的完整詳解

核心觀念

本題旨在評量考生對電腦系統硬體架構中「馮・紐曼架構(Von Neumann Architecture)」與「中央處理器(CPU)組織與結構」之基本認知。核心重點在於掌握 CPU 內部的三大經典核心單元(控制單元、算術邏輯單元、暫存器組),以及連結元件的內部匯流排與現代處理器普遍內建的高速快取記憶體,並理解各元件在執行「機器週期(Machine Cycle:擷取、解碼、執行、寫回)」時所扮演的具體角色。


解題方法

本題為國家考試典型的「名詞定義與功能論述型」申論題,作答策略應採「先總體架構、後細部元件、輔以具體實例」的層次展開:

  1. 結構界定:以古典馮・紐曼架構結合現代計算機結構,將 CPU 的核心組成劃分為三大主要部分(算術邏輯單元、控制單元、暫存器組),並補充負責資料傳輸的內部匯流排與現代關鍵的快取記憶體。
  2. 規格化詳述:每一元件皆標註「中文名稱」與「英文全稱/縮寫」,功能說明力求明確,點出其在資料流(Data Flow)與控制流(Control Flow)中的具體任務。
  3. 擴充關鍵亮點:針對「暫存器組」,不可僅以「提供暫存」一語帶過,必須條列列舉國考最常考的專屬暫存器(如 PC、IR、MAR、MDR/MBR、AC、PSW),展現專業答題深度。

選項分析

本題為技術類科申論問答題,非選擇題,故無個別選項之對錯辨析。閱卷標準之給分重點在於涵蓋廣度(元件是否齊全)與說明深度(功能定義是否精確、專有名詞是否正確)。


解題技巧

  1. 口訣記憶:利用「算、控、暫、匯、快」五字口訣記憶五大組成結構:
  • 算:算術邏輯單元(ALU)
  • 控:控制單元(CU)
  • 暫:暫存器(Registers)
  • 匯:內部匯流排(Internal Bus)
  • 快:快取記憶體(Cache Memory)
  1. 避開常見陷阱:
  • 主記憶體(RAM)非 CPU 元件:主記憶體屬於 CPU 外部系統架構元件,不可誤列為 CPU 的內部結構;但 L1/L2 快取記憶體(Cache)已內建於現代處理器晶片中,列出屬於加分項。
  • 專屬暫存器功能勿混淆:
  • PCPC(程式計數器)儲存的是「下一道欲執行指令的記憶體位址」,而非「目前正在執行的指令」。
  • IRIR(指令暫存器)儲存的是「目前正在被解碼與執行的指令內容」。
  • MARMAR 存放的是「位址」,MDR/MBRMDR/MBR 存放的是「資料或指令內容」。

【答案】

中央處理器(Central Processing Unit, CPU)為電腦系統的運算與控制中樞,負責解譯程式指令並處理資料。其主要組成元件及功能詳述如下:

一、 控制單元(Control Unit, CU)

  • 功能簡述:扮演 CPU 的「指揮中樞」,負責協調整個電腦系統各部件的運作。
  • 具體任務:
  1. 指令擷取與解碼:依序由記憶體讀取指令,透過指令解碼器(Instruction Decoder)解析指令的操作碼(Opcode)與運算元位址。
🔒

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

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

免費註冊

第 二 題20 分

請詳述編譯器(compiler)將原始程式(source program)轉化為目標程式(object program)所需的步驟。

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

這一題的完整詳解

核心觀念

本題測驗計算機系統核心軟體——編譯器(Compiler)​之系統架構與編譯流程。編譯器是將高階語言撰寫的「原始程式(Source Program)」翻譯成等價之機器語言或組合語言「目標程式(Object Program)」的系統程式。

依據經典編譯器設計理論(Aho et al.,龍書架構),編譯器的運作主要分為兩大主體階段與六大核心步驟,並輔以貫穿全程的兩大支援模組:

  1. 分析階段(Analysis Phase / 前端 Frontend):與來源語言相關,負責剖析原始程式的結構與意圖,包含詞彙分析、語法分析、語意分析。
  2. 合成階段(Synthesis Phase / 後端 Backend):與目標機器硬體相關,負責產生並調校目標程式碼,包含中間碼生成、程式碼最佳化、目標碼生成。
  3. 貫穿輔助機制:符號表管理(Symbol Table Management)​與錯誤處理機制(Error Handling)。

解題方法

回答公職考試「編譯步驟」之申論題型,切入點應採管線化(Pipeline)資訊流程視角切入。閱卷委員評分重點在於考生能否明確交代各階段的​「輸入(Input)」、「處理核心工作(Processing)」​與​「輸出產物(Output)」。

答題開展順序:

  1. 總述:指出前端(機器無關)與後端(機器相依)之切分與銜接。
  2. 分述六大步驟:
  • 詞彙分析(Lexical Analysis):字元串流 →\rightarrow 語彙單元(Tokens)。
  • 語法分析(Syntax Analysis):Tokens →\rightarrow 剖析樹/抽象語法樹(Parse Tree / AST)。
  • 語意分析(Semantic Analysis):AST →\rightarrow 裝飾/具型別資訊之語法樹(Decorated AST)。
  • 中間碼生成(Intermediate Code Generation):語法樹 →\rightarrow 中間表示碼(IR,如三位址碼 Three-Address Code)。
  • 程式碼最佳化(Code Optimization):提升執行效能、縮減程式碼體積。
  • 目標碼生成(Code Generation):IR →\rightarrow 目標機器碼或組合語言程式碼(Object / Assembly Code)。
  1. 橫向支援模組:說明符號表與錯誤處理於全流程之角色。

選項分析

本題為申論問答題,無客觀選項。針對歷屆考生在相關概念上最常混淆之盲點進行對比分析:

  • 語法分析 vs. 語意分析:
  • 語法分析僅檢查結構是否符合上下文無關文法(CFG),例如括號是否對稱、運算子與運算元排列是否正確;不檢查變數是否有定義、型別是否相容。
  • 語意分析則深入檢查靜態語意規則,如陣列索引是否為整數、變數是否重複宣告或未宣告即使用、型別轉換是否合法。
  • 直譯器(Interpreter)vs. 編譯器(Compiler):
  • 編譯器採「批次翻譯」,一次性將整份原始程式轉化為目標程式並儲存,後續可重複獨立執行;直譯器則是「邊讀取、邊分析、邊執行」,不產生獨立的目標碼檔案。
  • 目標碼(Object Code)vs. 執行檔(Executable Code):
  • 編譯器生成的目標檔案(通常為 .obj 或 .o)內部可能包含尚未解析的外部函式參照(External References)與相對位址,尚需經由鏈結器(Linker)​結合函式庫與其他模組,方能輸出為最終可在作業系統上執行的檔案(如 .exe)。

解題技巧

  1. 口訣記憶法:六大步驟可記為「詞、法、意、中、佳、標」(詞彙、語法、語意、中間碼、最佳化、目標碼)。
  2. 三要素答題模板:說明每一個階段時,務必強制寫出「輸入」、「核心功能」、「輸出」,版面清晰整齊,閱卷老師能在 10 秒內抓到關鍵給分點。
  3. 避開失分陷阱:許多考生常漏寫「符號表」與「錯誤處理」,這兩個模組貫穿所有階段,是區分「及格卷」與「高分卷」的重要關鍵。

【答案】

編譯器將原始程式轉化為目標程式的完整過程,依序包含以下六大核心步驟及兩項全域支援工作:

🔒

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

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

免費註冊

第 三 題20 分

符記環(token ring)是區域網路(local area network, LAN)常用的通訊協定之一。請試述符記環的工作原理。

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

這一題的完整詳解

核心觀念

本題評量區域網路(LAN)通訊協定中的媒介存取控制(MAC, Medium Access Control)機制,核心規範為 IEEE 802.5 標準。涉及之關鍵定義與概念如下:

  1. 邏輯環狀拓撲(Logical Ring Topology):節點在邏輯上串接成閉合單向環路,訊號與訊框僅能沿單一方向逐站轉發。實體上常透過多站存取單元(MAU, Multistation Access Unit)連接成實體星狀、邏輯環狀之架構。
  2. 符記傳遞機制(Token Passing):屬於確定型(Deterministic)​媒介存取控制協定。唯有持有「自由符記(Free Token)」的節點方具備資料發送權,因此網路中在正常狀況下完全不會發生訊號碰撞(Collision-Free),與乙太網路(IEEE 802.3)採用的 CSMA/CD 競爭型機制形成強烈對比。
  3. 符記與訊框格式:
  • 自由符記(Free Token):由起始定界符(Starting Delimiter, SD)、存取控制(Access Control, AC)與結束定界符(Ending Delimiter, ED)組成的 3 位元組控制訊框。
  • 資料訊框(Data Frame):包含目的位址(DA)、來源位址(SA)、協定資料單元(PDU/Data)、訊框檢查序列(FCS)以及訊框狀態(Frame Status, FS)。

解題方法

本題為公職高普考標準申論問答題。解答切入點應依循​「通訊時序與生命週期」​展開,從靜態架構定義到動態傳輸四部曲,最後補充例外控制機制,層次井然:

  1. 結構切入:先定義符記環的基本拓撲及存取控制屬性(無碰撞、輪流持有)。
  2. 時序展開(工作原理核心):以單向資料傳輸流程為軸心,劃分四個標準步驟:
  • 步驟一:閒置巡迴(符記傳遞)
  • 步驟二:攔截符記與產生資料訊框(發送端)
  • 步驟三:轉發、辨識與複製(目的端)
  • 步驟四:繞行回傳、剝除訊框與釋放符記(來源端回收)
  1. 機制補強:點出主監控站(Active Monitor, AM)的角色,展現專業深度以爭取高分。

選項分析

本題為申論問答題,非選擇題,故無個別選項。閱卷給分重點在於考生是否能精確寫出「符記狀態轉換」、「來源端負責剝除(Stripping)」以及「確認機制(A、C 位元)」等關鍵技術細節。


解題技巧

  1. 答題結構化口訣:「一圈、兩牌、四步、一監控」:
  • 一圈:單向封閉邏輯環。
  • 兩牌:自由符記(Free Token)與忙碌符記(Busy Token / Data Frame)。
  • 四步:傳符記 →\rightarrow 發資料 →\rightarrow 收資料 →\rightarrow 拆資料釋符記。
  • 一監控:主監控站(Active Monitor)處理掉牌或死循環問題。
  1. 閱卷得分關鍵與常見陷阱:
  • 陷阱一(致命錯誤):誤以為是由「目的端(接收端)」把訊框吃掉。正確運作是目的端複製資料後繼續轉發,由「來源端(發送端)」負責將訊框從環上移除(Frame Stripping)。
  • 陷阱二:誤寫為有碰撞偵測(CSMA/CD)。
🔒

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

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

免費註冊

第 四 題20 分

請分別以陣列表達法(array representation)及鏈結表達法(linked representation)來表示圖一所示之二元樹(binary tree)。

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

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

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

這一題的完整詳解

核心觀念

本題旨在評量資料結構中「二元樹(Binary Tree)」的兩種基本實作方式:陣列表達法(Array Representation / 循序表達法)​與鏈結表達法(Linked Representation)。

  1. 二元樹定義:二元樹為有限節點之集合,可以為空集合;若不為空,則由一個根節點(Root)及兩棵互不相交的左子樹(Left Subtree)與右子樹(Right Subtree)所組成,且子樹具備嚴格的左右方向性。
  2. 陣列表達法(Array Representation):
  • 將二元樹以階層順序(Level-order,由上而下、由左至右)映射至一維陣列。
  • 1-based 索引公式(根節點置於索引 11,最符合學理公式):
  • 位於索引 ii 的節點,其父節點(Parent)位於 ⌊i/2⌋\lfloor i / 2 \rfloor(i>1i > 1)。
  • 其左子節點(Left Child)位於 2i2i。
  • 其右子節點(Right Child)位於 2i+12i + 1。
  • 0-based 索引公式(根節點置於索引 00,符合現代程式語言):
  • 位於索引 ii 的節點,其父節點位於 ⌊(i−1)/2⌋\lfloor (i - 1) / 2 \rfloor(i>0i > 0)。
  • 其左子節點位於 2i+12i + 1。
  • 其右子節點位於 2i+22i + 2。
  • 若節點不存在,陣列對應位置必須保留空位(以 NULL\text{NULL}、∅\emptyset 或標記號「−-」表示),以維持父子索引數學關係。
  1. 鏈結表達法(Linked Representation):
  • 動態配置記憶體,每個節點包含三個欄位:左子指標(LChild)、資料欄位(Data)、右子指標(RChild)。
  • 若一棵二元樹擁有 nn 個節點,總指標數為 2n2n 個,其中有效子節點指標為 n−1n - 1 個,為空的指標(NULL)恰有 n+1n + 1 個。

解題方法

本題題目文字未提供「圖一」之實體影像,缺漏二元樹節點名稱與連接拓撲;依公職考試命題慣例,設定典型且具代表性之非完全二元樹(Non-complete Binary Tree)為合理假設進行作答:

假設「圖一」之二元樹包含 6 個節點 {A,B,C,D,E,F}\{A, B, C, D, E, F\},結構如下:

  • 根節點為 AA。
  • AA 之左子節點為 BB,右子節點為 CC。
  • BB 之左子節點為 DD,右子節點為 EE。
  • CC 無左子節點,其右子節點為 FF。

樹狀拓撲示意如下:

 A
 / \
 B C
 / \ \
 D E F

一、陣列表達法(Array Representation)

依據階層由上而下、由左至右之規則編號:

  1. 1-based 索引推導:
  • 根節點 AA 置於索引 11。
  • 節點 BB 為 AA 的左子節點,位置為 2×1=22 \times 1 = 2。
  • 節點 CC 為 AA 的右子節點,位置為 2×1+1=32 \times 1 + 1 = 3。
  • 節點 DD 為 BB 的左子節點,位置為 2×2=42 \times 2 = 4。
  • 節點 EE 為 BB 的右子節點,位置為 2×2+1=52 \times 2 + 1 = 5。
  • 節點 CC 之左子節點不存在,索引位置 2×3=62 \times 3 = 6 必須保留為空值(NULL 或 —)。
  • 節點 FF 為 CC 的右子節點,位置為 2×3+1=72 \times 3 + 1 = 7。

一維陣列儲存內容:

陣列索引 (ii)1234567
節點資料AABBCCDDEE— (NULL\text{NULL})FF

(備註:若採 0-based 索引,陣列索引為 0∼60 \sim 6,節點 AA 置於 00,BB 於 11,CC 於 22,DD 於 33,EE 於 44,索引 55 為空值,節點 FF 於 66)。


二、鏈結表達法(Linked Representation)

以鏈結結構定義節點型態:

struct TreeNode {
 struct TreeNode *left; // 指向左子節點之指標
 char data; // 節點資料
 struct TreeNode *right; // 指向右子節點之指標
};

各節點之三欄位 [ LChild | Data | RChild ] 配置如下:

  • 由外在指標變數 root 指向根節點 AA。
  • 節點 AA:[ &B | 'A' | &C ]
🔒

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

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

免費註冊

第 五 題20 分

請詳細解釋下列 C 語言程式的執行過程,最後寫出程式的輸出。

#include <stdio.h>

int main() { int i;

for (i=0; i<=8; i=i+2) {
    switch (i) {
        case 0: printf("0");    break;
        case 1: printf("1");    break;
        case 4: printf("4");
        case 5: printf("5");    break;
        case 6: printf("6");
        case 7: printf("7");    continue;
        default: printf("8");   break;
    }
    printf("\n");
}
return(0);

}

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

這一題的完整詳解

核心觀念

本題旨在測驗 C 語言程式控制結構的執行流程,核心評量點涵蓋以下四項重要觀念:

  1. for 迴圈的控制流程:包含初值設定(i=0i=0)、終止條件判定(i≤8i \le 8)以及自訂累加步進式(i=i+2i = i + 2)。
  2. switch-case 分支結構與 default:依據運算式之整數值比對對應標籤(label),若無相符之 case 則跳轉至 default 標籤執行。
  3. 貫穿現象(Fall-through):在 switch 陳述式中,若某一 case 區塊結尾未加上 break;,程式不會自動跳出 switch,而是會無條件順序執行下一個 case 或 default 區塊中的敘述,直到遇見 break;、return、跳轉敘述或整個 switch 區塊結束為止。
  4. continue 敘述的作用範圍(關鍵陷阱):
  • break; 可用於跳出最內層的迴圈(for、while、do-while)或 switch。
  • continue; 僅能作用於迴圈結構(Iteration Statements),無法單獨作用於 switch。因此,當 continue; 出現在巢狀置於迴圈內的 switch 中時,其控制權會直接跳至外層 for 迴圈的更新步進式(i=i+2i = i + 2),並略過該次迴圈中後續未執行的所有敘述(包含本題位於 switch 外部的 printf("\n");)。

解題方法

本題解題切入點為變數追蹤表(Trace Table)。透過按步走訪迴圈變數 ii 的變化,逐一分析每一次疊代(iteration)進入 switch 後的分支走向、Fall-through 情況與輸出結果。

迴圈條件為 for (i=0; i<=8; i=i+2),故 ii 依序走訪偶數序列:0,2,4,6,80, 2, 4, 6, 8。當 i=10i=10 時條件不成立,結束迴圈。

詳細執行過程追蹤:

  1. 第 1 次疊代(i=0i = 0):
  • 條件檢查:0≤80 \le 8 成立,進入迴圈。
  • switch (0):
  • 比對符合 case 0,執行 printf("0");,螢幕輸出 0。
  • 遇到 break;,中斷並跳出 switch。
  • 迴圈後續敘述:執行 printf("\n"); 進行換行。
  • 目前輸出:
0
  1. 第 2 次疊代(i=2i = 2):
  • 步進與檢查:執行 i=0+2=2i = 0 + 2 = 2;2≤82 \le 8 成立,進入迴圈。
  • switch (2):
  • 比對所有 case(0, 1, 4, 5, 6, 7),均不相符。
  • 進入 default 分支,執行 printf("8");,螢幕輸出 8。
  • 遇到 break;,跳出 switch。
  • 迴圈後續敘述:執行 printf("\n"); 進行換行。
  • 目前輸出:
0
8
  1. 第 3 次疊代(i=4i = 4):
  • 步進與檢查:執行 i=2+2=4i = 2 + 2 = 4;4≤84 \le 8 成立,進入迴圈。
  • switch (4):
  • 比對符合 case 4,執行 printf("4");,螢幕輸出 4。
  • 注意:case 4 末端無 break;,引發貫穿(Fall-through),程式順序向下執行。
  • 進入 case 5,執行 printf("5");,螢幕輸出 5。
🔒

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

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

免費註冊

其他考古題