109 鐵路特考高員三級 電力工程 計算機概論 考古題詳解

109 年・鐵路特考・高員三級・電力工程
試題代碼 計算機概論

第 一 題25 分

LZW(Lempel-Ziv-Welch)編碼法是一種無損資料壓縮演算法。編碼是將資料的個別單一字元先建立成一個具有編號之字串編碼表。在隨後的編碼與解碼過程,字串編碼表會隨著逐漸擴大。

若一開始的字串編碼表如下所示:

碼 字串
1 A
2 B
3 C

使用 LZW 編碼法對下列訊息進行編碼,試問編碼後的結果為何?(25 分)

ABCABCABC

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

這一題的完整詳解

核心觀念

LZW 編碼會從初始字典中的字元開始,逐步把「字典中已存在的字串」延伸一個字元,加入新字典項目。

編碼時,每次找出目前尚未輸出的最長字典字串 ww,輸出它的碼;若後面還有字元 kk,就把 wkwk 加入字典,再從 kk 開始處理剩餘訊息。題目初始字典為:

碼字串
1A
2B
3C

因此新字串從碼 44 開始編號。

解題方法

依序掃描訊息 ABCABCABC,每次輸出目前最長的字典字串,並將該字串與下一個字元組合後加入字典:

步驟尚未處理的訊息輸出字串與碼新增字典項目
1ABCABCABCA → 1AB → 4
2BCABCABCB → 2BC → 5
3CABCABCC → 3CA → 6
4ABCABCAB → 4ABC → 7
5CABCCA → 6CAB → 8
6CC → 3—

逐步說明:

🔒

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

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

免費註冊

第 二 題25 分

在現行國際網路協定裡,軟體的部分可以被歸類到 4 個抽象的層中。這 4 個階層為應用層(application layer)、傳輸層(transport layer)、網路層(network layer)和鏈結層(link layer)。請回答下列問題。(每小題 5 分,共 25 分)

(一) TCP(transmission control protocol)是屬於哪一層的協定?

(二) TCP 提供流量控制(flow control)的服務,試論述此流量控制的功能為何?

(三) 安全殼協定(secure shell protocol)是屬於哪一層的協定?

(四) 載波偵聽多路存取(CSMA)是屬於哪一層的協定?

(五) 埠號(port number)存在於哪一層的協定?

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

這一題的完整詳解

核心觀念

本題考查網路協定的分層架構,以及各協定與功能所屬的層級。網路分層的重點是:應用程式透過應用層協定提供網路服務;傳輸層負責端點間的資料傳送;網路層負責跨網路的封包傳遞;鏈結層則處理同一鏈結上的傳送及媒體存取。

解題方法

判斷時先看協定負責的工作,再對應層級:

  • 應用層:提供使用者或應用程式直接使用的網路服務。
  • 傳輸層:提供端點到端點的傳輸服務,例如可靠傳輸、流量控制及埠號。
  • 網路層:負責網路間的封包傳遞與路由。
  • 鏈結層:處理相鄰節點間的傳送,以及共享媒體的存取方式。

各小題解析

(一)TCP 屬於傳輸層。

TCP(Transmission Control Protocol,傳輸控制協定)提供端點間的可靠資料傳輸,並處理排序、重傳、流量控制等工作,因此屬於傳輸層。

(二)TCP 流量控制的功能

流量控制用來協調傳送端與接收端的資料傳送速率,避免傳送端送出的資料超過接收端的處理能力或緩衝區容量,造成接收端緩衝區溢位或資料遺失。

TCP 主要利用接收視窗進行流量控制:接收端告知傳送端目前可接收的資料量,傳送端據此限制尚未獲確認的資料量。接收端可隨緩衝區使用情形調整視窗大小,使資料傳送速率配合接收能力。

(三)安全殼協定 SSH 屬於應用層。

🔒

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

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

免費註冊

第 三 題25 分

請詳細解釋下列 C 語言程式的執行過程,main()main() 執行後將會印出什麼訊息?(25 分)

#include<stdio.h>

int f(int *a1, int *a2){ return *a1=*a1**a2; }

int main(){ int x1=3, x2=2, x3=1; x3=f(&x1,&x2); printf("%d", (x2-x1)*x1/5); return 0; }

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

這一題的完整詳解

核心觀念

本題考查 C 語言的指標與間接取值、賦值運算式的回傳值、整數運算,以及運算子優先順序。

在函式中,a1、a2 是指標;*a1、*a2 分別代表指標所指向的整數。賦值運算式本身會回傳被指定的值,因此:

return *a1=*a1**a2;

依 C 語言運算子優先順序,可讀作:

return (*a1) = ((*a1) * (*a2));

其中相鄰的 ** 並不是單一運算子,而是兩個一元解參考運算子 *,中間再以乘法運算子 * 相乘。

解題方法

先追蹤函式呼叫對 x1、x2 的影響,再把函式回傳值指定給 x3,最後代入 printf 的算式。

初始狀態為:

x1=3,x2=2,x3=1x1=3,\quad x2=2,\quad x3=1

呼叫:

x3=f(&x1,&x2);

傳入的是 x1、x2 的位址,因此函式內的 a1 指向 x1,a2 指向 x2。函式計算:

∗a1=∗a1∗∗a2=3×2=6*a1=*a1**a2=3\times 2=6
🔒

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

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

免費註冊

第 四 題25 分

下列 8 筆英文字母資料依讀入順序為:P、A、N、D、E、M、I、C。請回答下列問題:

(一)創建並畫出對應之二元搜尋樹(binary search tree)。(10 分)

(二)對所造出之樹進行中序遍歷(in-order traversal),所拜訪的節點依序為何?(10 分)

(三)在此樹尋找特定的字母時,最糟的情況需要幾次的搜尋動作?(5 分)

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

這一題的完整詳解

核心觀念

二元搜尋樹(binary search tree, BST)是一種二元樹,對每個節點而言:

  • 左子樹中所有節點的值都小於該節點。
  • 右子樹中所有節點的值都大於該節點。

本題按資料讀入順序逐一插入,依英文字母的字典順序比較大小。中序遍歷的順序為「左子樹、根節點、右子樹」;對 BST 進行中序遍歷,結果會按值由小到大排列。

解題方法

依序插入 P、A、N、D、E、M、I、C:

  1. P 為第一筆資料,設為根節點。
  2. A 小於 P,放在 P 的左子節點。
  3. N 小於 P、但大於 A,放在 A 的右子節點。
  4. D 小於 P、大於 A、小於 N,放在 N 的左子節點。
  5. E 小於 P、大於 A、小於 N、但大於 D,放在 D 的右子節點。
  6. M 小於 P、大於 A、大於 N,放在 N 的右子節點。
  7. I 小於 P、大於 A、小於 N、大於 D、大於 E,放在 E 的右子節點。
  8. C 小於 P、大於 A、小於 N、小於 D,放在 D 的左子節點。

因此,所建立的 BST 為:

 P
 /
 A
 \
 N
 / \
 D M
 / \
 C E
 \
 I

中序遍歷

按照「左子樹 → 根節點 → 右子樹」依序拜訪:

🔒

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

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

免費註冊

其他考古題

109 年鐵路特考高員三級・其他類科的《計算機概論》