112 調查局特考三等 電子科學組 計算機概論 考古題詳解
第 一 題20 分
有關 IP 位址與 MAC 位址,請回答下列問題:
(一) 請說明 IPv4 位址的設計方式。(10 分)
(二) IP 位址與 MAC 位址的差異為何?(5 分)
(三) IP 位址與 MAC 位址的對應問題可藉由哪些協定來處理?(5 分)
登入後即可作答並保存紀錄。
核心觀念
IPv4 位址是網際網路層的邏輯位址,長度為 32 位元,用來識別網路上的介面,並支援封包跨越不同網路傳送。它採用階層式設計,概念上分為「網路部分」與「主機部分」:前者識別網路,後者識別該網路中的主機或介面。
解題方法
說明 IPv4 設計時,可依序交代位址長度與表示法、網路與主機部分的區分方式,以及傳統分類位址與現行無類別位址的差別:
- **位址長度與表示法:**IPv4 位址由 32 個二進位位元組成,分成 4 個 8 位元組(octet),以點分十進位表示。例如
192.168.1.10;每個十進位數值範圍為 0 至 255。 - **網路部分與主機部分:**以子網路遮罩(subnet mask)或前綴長度(prefix length)界定兩部分。例如
/24表示前 24 位元是網路前綴,剩餘 8 位元用於該子網路中的主機位址。 - **傳統分類位址:**早期依位址前綴分為 A、B、C 類,並以固定界線區分網路與主機部分;D 類供多點傳送使用,E 類保留作特殊用途。這種固定分類不利於彈性分配位址。
- **無類別網域間路由(CIDR):**現行採用 CIDR,以可變長度前綴表示網路範圍,例如
192.168.1.0/24。前綴長度可依需求調整,改善位址分配彈性,也有助於路由彙總。 - **特殊位址:**網路位址(主機部分全為 0)用來識別網路;廣播位址(主機部分全為 1)用來向該子網路廣播。另有私有位址與迴路位址等特殊用途位址。
解題技巧
答題時應明確指出 IPv4 為 32 位元,並說明網路/主機部分由遮罩或前綴長度決定。若提及 A、B、C 類,應交代這是傳統分類方式,並補充現行以 CIDR 為主,避免把傳統分類誤寫成現行分配方式。
(二)IP 位址與 MAC 位址的差異(5 分)
核心觀念
IP 位址與 MAC 位址分屬不同網路層次,功能並不相同:IP 位址主要用於網際網路層的邏輯定址與跨網路路由;MAC 位址主要用於資料鏈結層,在同一個區域網路鏈結上識別網路介面。
| 比較項目 | IP 位址 | MAC 位址 |
|---|---|---|
| 所屬層級 | 網際網路層(網路層) | 資料鏈結層 |
| 主要用途 | 識別網路與主機,供路由器跨網路轉送封包 | 在區域網路鏈結上識別介面,供資料框傳送 |
第 二 題30 分
某十進位數字為 ,其整數部位為 75,小數部位為 625。請回答下列問題,並列出算式或計算過程。(每小題 10 分,共 30 分)
(一) 將以上十進位數字 轉換為二進位數字後,其整數部位為 ,小數部位為 。則 為何? 為何?
(二) 若某二進位數字其整數部位為第(一)子題之 ,小數部位為第(一)子題之 ,則其轉換為八進位後的數字,整數部位為 ,小數部位為 。則 為何? 為何?
(三) 若某十六進位數字其整數部位為第(二)子題之 ,小數部位為第(二)子題之 ,則其轉換為十進位後的數字,整數部位為 ,小數部位為 。則 為何? 為何?
登入後即可作答並保存紀錄。
核心觀念
進位轉換時,整數部與小數部要分別處理:
- 整數部:連續除以目標進位數,記下餘數,再由下往上排列。
- 小數部:連續乘以目標進位數,每次取乘積的整數部分,依序排列。
- 二進位與八進位可每三個位元分組轉換;十六進位與十進位則依位值展開計算。
題目後續使用前一小題的結果作為新數字的整數部或小數部,須注意該數字所在的位置及其進位制。
解題方法
(一)將 轉換為二進位
整數部 :連續除以 ,由下往上讀取餘數。
由下往上讀取餘數,得 。
小數部 :連續乘以 ,依序記下整數部分。
依序排列,得 。因此 。
(二)整數部為 、小數部為 ,轉換為八進位
本題的二進位數字為 的部位指定:整數部取第(一)題的 中位於小數點後的數字 ,小數部取第(一)題的
第 三 題10 分
某一藏寶箱上有三個鎖,只有當半數以上的鎖同時開啟時,始能將藏寶箱打開。請為此藏寶箱設計一邏輯電路,以滿足「當半數以上的鎖同時開啟時,始能將藏寶箱打開」之需求。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查組合邏輯電路與多數決函數。三個鎖中「半數以上」代表至少開啟兩個鎖,因此藏寶箱在恰有兩個鎖開啟或三個鎖全開時打開。
令 分別表示三個鎖的狀態,開啟為 ,關閉為 ;令輸出 表示藏寶箱打開。
解題方法
依照「至少兩個輸入為 1」列出會打開寶箱的情形:
| 0 | 0 | 0 | 0 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 1 | 0 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 1 |
由輸出為 的組合可得:
整理後可得到較簡潔的多數決邏輯式:
第 四 題10 分
近來人工智慧盛行,而圖靈測試(Turing Test)則提供了一個判斷機器是否具備智慧的方式。何謂圖靈測試?(10 分)
登入後即可作答並保存紀錄。
核心觀念
圖靈測試(Turing Test)是英國數學家艾倫・圖靈提出的機器智慧判斷方法。其核心不在於檢查機器內部如何運作,而是觀察機器能否在對話中展現出與人類難以區分的表現。
解題方法
測試通常由一位人類評審透過文字對話,分別與一名人類受試者及一台機器互動。評審不知道各自的身分,並根據對話內容判斷誰是機器。
第 五 題30 分
為一二元樹(Binary Tree),可以是空的,或是每一個節點儲存著一個數值且與其他節點的數值不重複。假設 起始為空的,即 。樹中節點(node)的定義如下:
struct node {
int data;
struct node *l_link, *r_link;
}
其中,節點包含以下欄位:
datal_linkr_link
(一) 插入一節點,其 data 欄位為 value 的演算法如下:
Procedure Insert(T, value)
Begin
If (T == null)
建立一個新節點,並將 data 欄位設為 value;
Elseif (T->data > value)
Insert(T->l_link, value);
Else
Insert(T->r_link, value);
Endif
End
請根據以上插入節點的演算法,依序插入節點,其值分別為:
23,56,12,19,42,4,98,36。
請以圖示的方式呈現完整的插入過程。(10 分)
(二) 請設計一演算法,以在樹中搜尋一給定鍵值(key),如:Search(T, key)。若 key 存在 中,回傳 found;若 key 不存在 中,回傳 not found。(10 分)
(三) 若 中有 個節點,最糟的情況下,需要搜尋幾次?(5 分)
(四) 承第(三)子題,此最糟的情況是什麼?請舉例說明。(5 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查二元搜尋樹(Binary Search Tree, BST)的:
- 插入規則
- 搜尋規則
- 樹高與搜尋時間複雜度
- 最糟情況:二元搜尋樹退化成單鏈結串列
BST 的基本性質為:
- 左子樹所有節點值小於根節點值。
- 右子樹所有節點值大於根節點值。
- 本題所有節點值均不重複,因此可直接依大小決定往左或往右。
(一)依序插入節點
插入規則:
- 若目前位置為
null,建立新節點。 - 若
value < T->data,插入左子樹。 - 若
value > T->data,插入右子樹。
1. 插入 23
樹為空,因此 23 成為根節點。
23
2. 插入 56
,往右插入。
23
\
56
3. 插入 12
,往左插入。
23
/ \
12 56
4. 插入 19
比較路徑:
因此 19 插入於 12 的右子樹。
23
/ \
12 56
\
19
5. 插入 42
比較路徑:
因此 42 插入於 56 的左子樹。
23
/ \
12 56
\ /
19 42
6. 插入 4
比較路徑:
因此 4 插入於 12 的左子樹。
23
/ \
12 56
/ \ /
4 19 42
7. 插入 98
比較路徑:
因此 98 插入於 56 的右子樹。
23
/ \
12 56
/ \ / \
4 19 42 98
8. 插入 36
比較路徑:
因此 36 插入於 42 的左子樹。
23
/ \
12 56
/ \ / \
4 19 42 98
/
36
完整插入結果
23
/ \
12 56
/ \ / \
4 19 42 98
/
36
(二)搜尋演算法
搜尋時,先比較目前節點的 data 與 key:
- 相等:表示找到,回傳
found。 key較小:依 BST 性質,只需搜尋左子樹。key較大:只需搜尋右子樹。- 遇到
null:表示樹中不存在此值,回傳not found。