參考答案 / 清大 / 108 年 計算機概論

國立清華大學資訊系統與應用研究所

清大 108 年資應所 計算機概論 參考答案

共 17 題

參考答案 PDF各校參考答案的 PDF,訂閱考試資源分享信後會寄到您的信箱。訂閱領取 PDF

參考答案由作者與 AI 討論後逐題確認,不是各校公布的標準答案;若與各校公布不同,以各校為準。
最後更新:2026 年 11 月 3 日。發現錯誤歡迎來信。

1(a)七位元二補數的表示範圍

考點:二進位補數表示法(2's Complement):範圍、加減法與優點

最大 +63(0111111),最小 −64(1000000)。

1(b)七位元二補數加法並轉回十進位

考點:二進位補數表示法(2's Complement):範圍、加減法與優點

00000102,即十進位 2。

2(a)錯誤更正碼可偵測與可更正的錯誤位元數

考點:漢明距離(Hamming Code Distance)

最小 Hamming Distance 為 3,最多可偵測 2 個錯誤、更正 1 個錯誤。

2(b)以最近碼字解碼訊息

考點:漢明距離(Hamming Code Distance)

ACBD。

3(a)右循環位移與左循環位移的換算

考點:位元遮罩(Bit Mask)技巧:以 AND 清除(Clear)、以 OR 設定(Set)特定位元

6 個位元。

3(b)CF 右循環位移 2 位元

考點:位元遮罩(Bit Mask)技巧:以 AND 清除(Clear)、以 OR 設定(Set)特定位元

F3。

4(a)OS Kernel 的四個主要軟體元件與功能

考點:OS Kernel 核心職責

  1. File Manager(檔案管理程式):記錄大容量儲存裝置上的檔案位置與目錄結構,管理檔案的建立、刪除、存取權限,並配置儲存空間。
  2. Device Driver(裝置驅動程式):與特定周邊裝置的控制器溝通,把 OS 的一般性要求轉成該裝置能執行的操作。
  3. Memory Manager(記憶體管理程式):配置與回收主記憶體,記錄各行程使用的區域,並以分頁等方式提供虛擬記憶體。
  4. Scheduler(排程程式)與 Dispatcher(分派程式):Scheduler 維護行程表,把新行程加入、移除已完成的行程;Dispatcher 依時間片把 CPU 分配給就緒的行程並做上下文交換(Context Switch)。

4(b)Kernel 取回控制權的情境與機制

考點:CPU 中斷機制運作流程

例子:時間片用完需要切換行程;程式發生除以零、非法記憶體存取等例外。機制:中斷,由硬體計時器發出計時器中斷強制把控制權交回 kernel。

5(a)網際網路軟體四層與功能

考點:OSI 七層與 TCP/IP 四層對照

層 功能
Application Layer(應用層) 提供網路應用(HTTP、SMTP、FTP),產生要傳送的訊息,並透過 DNS(Domain Name System,網域名稱系統)取得目的端位址
Transport Layer(傳輸層) 把訊息切成 segment,以 port 交給目的端對應的應用程式;TCP 另負責編序號、依序重組、確認與重傳
Network Layer(網路層) 為封包加上 IP 位址,由路由器決定封包在網際網路中的轉送路徑
Link Layer(鏈結層) 在單一網路上實際傳送 frame,處理實體位址(MAC)與傳輸媒介的存取

5(b)CSMA/CD 與 TCP 重送的原因與偵測方式

考點:TCP 三向交握、流量控制與壅塞控制、CSMA/CD 與 CSMA/CA 碰撞處理機制、RTS/CTS 解決 Hidden Terminal Problem

CSMA/CD(鏈結層) TCP(傳輸層)
(1) 為何重送 共用傳輸媒介上兩台以上的裝置同時傳送,訊號發生碰撞,frame 被破壞 端對端路徑上的 segment 遺失或損毀(路由器壅塞丟棄、傳輸錯誤),接收端沒有收到正確的資料
(2) 如何偵測 傳送端一邊傳送一邊監聽媒介,聽到的訊號與送出的不一致即判定碰撞,停止傳送、依二元指數退避(binary exponential backoff)隨機等待後重送 傳送端等待接收端的確認(ACK):重傳計時器逾時仍未收到 ACK,或連續收到 3 個重複 ACK,即判定 segment 遺失而重傳

6(a)以陣列與指標結構儲存及走訪二元樹

考點:Binary Tree 的陣列表示法(Array Representation)與親子節點索引公式

(1) 陣列:依 level-order 存放,root 在索引 1,節點 i 的左右子節點在 2i、2i+1,空節點留空格;走訪時以索引計算子節點,例如前序先處理 i 再走 2i、2i+1。

(2) 指標:節點含資料與 left、right 指標,空子樹為 NULL;從 root 沿指標遞迴走訪(或以 stack、queue 改寫成迴圈)。

6(b)陣列與指標結構儲存二元樹的記憶體比較

考點:Binary Tree 的陣列表示法(Array Representation)與親子節點索引公式

陣列需 (2L−1)A bytes,指標結構需 N(A+2B) bytes;當 (2L−1)A<N(A+2B) 時陣列較省,也就是空格少(樹接近 full binary tree),且資料欄位 A 相對指標 B 越小越容易成立。

7(a)以定義證明 5n^2-6n 為 Θ(n^2)

考點:漸近符號正式定義(O、Θ、o)

正確。取 c1=4、c2=5、n0=6:n≥6 時 4n2≤5n2−6n≤5n2,故 5n2−6n=Θ(n2)。

7(b)以定義否證 n^2 log n 為 Θ(n^2)

考點:漸近符號正式定義(O、Θ、o)

錯誤。若 n2logn≤c2n2 對所有 n≥n0 成立,則 logn≤c2;但取 n=max(⌈n0⌉,⌈2c2+1⌉) 時 logn>c2,矛盾,故不是 Θ(n2)。

8階乘遞迴改寫為迴圈

考點:遞迴(Recursion)基本概念:分而治之與 Base Case

int fact (int N){
  int result = 1;
  for (int i = 2; i <= N; i++)
    result = result * i;
  return result;
}

9for 迴圈改寫為 while 迴圈

考點:迭代結構(Iterative Structure):前測與後測迴圈、迴圈三要件與追蹤除錯法

i = 0;
while (i < 100) {
  if (i % 2 == 0){
    print (i)
  }
  i++;
}

10設計將正整數減 1 的 Turing Machine

考點:圖靈機(Turing Machine):組成、狀態表與設計範例

假設:tape 上以二進位存放數值,左右兩端各有一個 *;machine 從 START 狀態開始,讀寫頭位於右端的 *。

目前狀態 目前格內容 寫入 移動方向 下一個狀態
START * * 左 SUBTRACT
SUBTRACT 1 0 右 RETURN
SUBTRACT 0 1 左 SUBTRACT
RETURN 0 0 右 RETURN
RETURN 1 1 右 RETURN
RETURN * * 不移動 HALT

例:*101*(5)執行後為 *100*(4);*100*(4)執行後為 *011*(3)。

清大其他年份