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

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

第 一 題25 分

下圖顯示作業系統(Operating System)組成的五大元件:

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

圖中元件包括:

  • User Interface
  • Memory Manager
  • Process Manager
  • Device Manager
  • File Manager

(一) 其中的 User Interface 主要有兩種類型:command-line interface(如 Unix 作業系統所用的)及 graphical user interface(如 Windows 作業系統所用的)。請問這兩種 interface 的主要差別為何?(5 分)

(二) 其中的 Memory Manager 需針對兩種可能的技術加以管理記憶體:paging 及 partitioning,請問這兩種技術的主要差別為何?(5 分)

(三) 其中的 Process Manager 需針對 process 兩個可能的問題加以解決:deadlock 及 starvation,請問這兩個問題的主要差別為何?(5 分)

(四) 其中的 Device Manager 通常會為每一個輸出入裝置準備一個 I/O queue,並使用 FIFO 或 shortest length first 策略來存取輸出入裝置,請問這兩種策略的主要差別為何?(5 分)

(五) 其中的 File Manager 通常要處理 archiving 及 backups 兩種工作,請問這兩種工作的主要差別為何?(5 分)

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

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

這一題的完整詳解

核心觀念與解題方法

本題考查作業系統五項管理功能中的五組基本概念。作答時抓住每組的管理對象、執行方式與主要目的,再說明兩者差異即可。

(一)命令列介面與圖形使用者介面

**命令列介面(CLI)**以文字為主。使用者在命令提示字元輸入指令,系統解析指令後執行;熟悉指令後,操作快速,也容易將指令組合成批次工作,但使用者須記住指令及其語法。

**圖形使用者介面(GUI)**以視窗、圖示、選單及指標操作為主。使用者透過點選或拖曳來下達操作,通常較直覺、容易上手,但較依賴圖形顯示與互動設備。

**判斷技巧:**CLI 的核心是「輸入文字指令」;GUI 的核心是「操作圖形物件」。

(二)分頁與分割區

**分頁(paging)**將虛擬記憶體切成固定大小的頁(page),將實體記憶體切成相同大小的頁框(frame)。一個程序的各頁可放在不連續的頁框中,透過頁表進行對應。分頁可避免外部碎裂,但最後一頁未用滿時仍會產生內部碎裂。

**分割區(partitioning)**將記憶體劃分成區塊,供程序配置使用。分割區可採固定大小,也可依程序需求劃分大小;程序通常須配置在連續的記憶體區域。可變大小分割區容易產生外部碎裂,固定大小分割區則可能有內部碎裂。

**判斷技巧:**分頁是「固定大小、可分散配置」;分割區是「以區塊配置,通常要求連續空間」。比較碎裂時,須注意分割區的固定式與可變式會有不同結果。

(三)死結與飢餓

**死結(deadlock)**是多個程序彼此等待對方持有的資源,形成循環等待,導致相關程序都無法繼續執行。

**飢餓(starvation)**是程序長期得不到所需資源或處理機時間,因而一直無法獲得服務;其他程序仍可能持續執行。排程偏好、資源分配不公平等情形都可能造成飢餓。

🔒

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

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

免費註冊

第 二 題25 分

下圖是 Huffman encoding 的一個例子:

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

各符號及其出現次數如下:

  • A=17A=17
  • B=12B=12
  • C=12C=12
  • D=27D=27
  • E=32E=32

Huffman encoding 過程中的合併節點包括:

  • B+C=24B+C=24
  • A+24=41A+24=41
  • 24+17=4124+17=41
  • D+E=59D+E=59
  • 41+59=10041+59=100

Code 如下:

  • A:00A:00
  • B:010B:010
  • C:011C:011
  • D:10D:10
  • E:11E:11

(一) 請說明其中步驟 b 為何是選擇節點 B 及 C 來合併?(5 分)

(二) 請說明最後 Code 部分 B 的編碼為何是 010010?(5 分)

(三) 這個例子如果原本的 A、B、C、D、E 等符號各自使用 3 個位元來編碼,則使得整個檔案總容量為 300 個位元。請問改用此 Huffman encoding 後整個檔案總容量變為多少位元?(5 分)

(四) Huffman encoding 是一種 lossless compression method,請問 lossless 意思為何?(5 分)

(五) Huffman encoding 是一種 greedy algorithm,請問如何判別它是 greedy algorithm?(5 分)

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

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

這一題的完整詳解

核心觀念

Huffman encoding(霍夫曼編碼)依照符號出現頻率建立二元樹:每次取出頻率最低的兩個節點合併,將合併後的頻率總和放回候選集合,直到形成一棵樹。頻率高的符號通常會得到較短的編碼,頻率低的符號通常會得到較長的編碼。

在二元樹中,從根節點走到符號葉節點的路徑就是該符號的編碼;依圖中的標記,左分支記為 00,右分支記為 11。

解題方法與各小題

(一)步驟 b 為何合併 B 與 C?

各符號的頻率為 A=17A=17、B=12B=12、C=12C=12、D=27D=27、E=32E=32。步驟 b 要從目前的節點中選出頻率最低的兩個合併。

其中 BB 與 CC 的頻率都是 1212,是目前最低的兩個頻率,因此先合併成頻率為

12+12=2412+12=24

的新節點。這是 Huffman encoding 每一步的選擇規則。

(二)為何 B 的編碼是 010010?

由根節點走到 BB:

  1. 根節點往左,記為 00。
  2. 到頻率為 4141 的左子樹後往右,記為 11。
  3. 到頻率為 2424 的節點後往左,記為 00。

因此路徑編碼為

B=010B=010

(三)改用 Huffman encoding 後的檔案大小

每個符號的編碼長度,等於它在 Huffman 樹中從根節點到葉節點的路徑長度。由題圖的 Code 可得:

符號出現次數編碼編碼長度所需位元數
A170000217×2=3417\times2=34
B12010010312×3=3612\times3=36
C12011011312×3=3612\times3=36
🔒

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

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

免費註冊

第 三 題25 分

樹(Tree)是一種常見的資料結構,可用來表示階層式(Hierarchical)的資料集合。下圖是 Tree 的一個例子:

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

(一) 此例子中,那個節點是 root node?(5 分)

(二) 此例子中,那些節點是 leaf node?(5 分)

(三) 此例子中,節點 D 的 degree 為何?(5 分)

(四) 請列出此例子的 preorder traversal 其拜訪節點的順序。(5 分)

(五) 請列出此例子的 postorder traversal 其拜訪節點的順序。(5 分)

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

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

這一題的完整詳解

核心觀念

樹的 root node(根節點) 是沒有父節點的節點;leaf node(葉節點) 是沒有子節點的節點。節點的 degree(度數) 是該節點的子節點數量。

遍訪順序依定義如下:

  • Preorder traversal(前序走訪):先訪問目前節點,再依序走訪各子樹。
  • Postorder traversal(後序走訪):先依序走訪各子樹,再訪問目前節點。

依圖中由左至右的順序,A 的子節點是 B、C、D;B 的子節點是 E、F,E 的子節點是 K;C 的子節點是 G,G 的子節點是 L、M;D 的子節點是 H、I、J。

解題方法

(一)Root node

找出沒有父節點的節點。圖中 A 位於樹的最上層,沒有父節點,因此根節點是 A。

(二)Leaf node

逐一找出沒有子節點的節點。圖中 F、K、L、M、H、I、J 都沒有子節點,因此它們是葉節點。

(三)節點 D 的 degree

計算 D 直接連接的子節點數。D 的子節點為 H、I、J,共 3 個,因此 degree 為 3。

(四)Preorder traversal

🔒

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

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

免費註冊

第 四 題25 分

一般程式設計師在建立一支 C++ 程式的過程通常如下圖所示:

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

(一) 上圖 C++ 程式中,#include <iostream.h> 這一行的作用為何?(5 分)

(二) 上圖 C++ 程式中,cin>> 這一個指令的作用為何?(5 分)

(三) 上圖 Compiler 中有兩個部分 Preprocessor 及 Translator,請問它們的功能有何差別?(5 分)

(四) 上圖中 Linker 的功能為何?(5 分)

(五) 在 Microsoft Windows 的作業系統中,假設已有一個檔名為 test1.exe 的文件,請問這文件對應到上圖中何者?(5 分)

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

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

這一題的完整詳解

核心觀念

本題考查 C++ 程式從原始碼到可執行檔的建置流程,以及輸入輸出指令的用途。流程可整理為:

原始程式碼 → 前處理 → 編譯/轉譯成目的檔 → 連結程式庫 → 可執行檔

解題方法

依圖中各階段產生的檔案與箭頭判斷:前處理器處理程式中的前置處理指令;Translator 將程式轉成目的碼;Linker 將目的檔與所需程式庫組合,產生可執行檔。接著依 C++ 語法判斷 #include 與 cin >> 的用途。

各小題解析

(一)#include <iostream.h> 的作用

#include 是前置處理指令,要求前處理器引入 iostream.h 標頭檔中的宣告,讓程式能使用相關的輸入輸出功能,例如 cin、cout。它的作用是提供程式所需的宣告,不是直接執行輸入或輸出。

此題使用的是舊式 C++ 標頭檔寫法;現代 C++ 通常寫成 #include <iostream>,並使用 std::cin、std::cout。

(二)cin >> 的作用

cin 代表標準輸入串流,通常從鍵盤讀取資料;>> 是輸入運算子,會把讀入的資料轉換成目標變數的型別,再存入該變數。例如:

int a;
cin >> a;

此程式會從標準輸入讀取一個整數,存入變數 a。

(三)Preprocessor 與 Translator 的功能差別

🔒

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

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

免費註冊

其他考古題

108 年電子工程的其他科目

電子工程《計算機概論》其他年度

108 年高普考高考三級・其他類科的《計算機概論》