110 公務人員升官等薦任 電子工程 計算機概論 考古題詳解
第 一 題10 分
圖 1 為一個 sequential logic circuit,圖中的小圓點表示 not 的意思。
請問:當 值為 、 的值為 、 的值為 時, 的值為何?請詳述計算求解過程。
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
核心觀念
本題考查 交互回授 NOR 閘組成的循序邏輯電路。循序電路的輸出會回授到其他閘的輸入,因此需列出各閘的布林方程式,再求穩定輸出。
圖中的小圓點代表反相;因此右側兩個閘都是 NOR 閘。左側兩個閘為 AND 閘。
解題方法
令下方 NOR 閘的輸出為 。依照圖中的連線,可列出:
先計算兩個 AND 閘的輸出:
第 二 題20 分
(一) 請將 進位的 轉換成 進位。
(二) 假設某台電腦用二補數的方式將 進位的 儲存在 個 bits 的暫存器裡頭,請寫出該暫存器裡頭每個 bit 的內容。
登入後即可作答並保存紀錄。
核心觀念
本題考查進位制轉換,以及負整數在固定位元長度下的二補數表示法。
- 二進位每 個位元可對應一個八進位數字,因此十六進位可先轉成二進位,再由右向左每 位分組。
- 位元二補數的表示範圍為 至 。求負數表示時,可將其絕對值寫成固定長度二進位,再逐位反相並加 。
解題方法
(一)將 轉換成八進位
先將每個十六進位數字轉成 位元二進位:
由右向左每 位分組:
各組轉成八進位數字:
因此:
(二)以 個 bits 儲存十進位
位元二補數的表示範圍為 至 ,因此 可以表示。
第 三 題20 分
給定二個大於 的正整數 和 ,請用程式語言 C 或 pseudo code 寫出 gcd 函式(function),能以 和 為參數,回傳 和 的最大公因數。
(一) 限定用 recursive 函式的方式寫出 gcd 函式。
(二) 限定用「for 迴圈」的方式寫出 gcd 函式。
登入後即可作答並保存紀錄。
核心觀念
本題考最大公因數(GCD)的求法,以及如何分別用遞迴函式與 for 迴圈實作。採用歐幾里得演算法:對正整數 ,若 ,則
當餘數為 時,最後一個非零除數就是最大公因數。此性質成立的原因是: 與 的公因數,恰好也是 與 的公因數。
解題方法
先將兩個輸入整理為 。反覆以較大的數除以較小的數,並以「除數、餘數」取代原來的兩數;餘數成為 時停止。遞迴版以函式呼叫表達反覆更新,迴圈版則以 for 迴圈執行相同更新。
例如 :
最後一個非零餘數前的除數為 ,所以 。
(一)遞迴函式
int gcd_recursive(int x, int y) {
if (x < y) {
return gcd_recursive(y, x);
}
if (y == 0) {
return x;
}
return gcd_recursive(y, x % y);
}
若輸入均大於 ,程式仍會正確處理;函式也將「其中一數為 」設為遞迴終止條件。當 時先交換兩數,使後續計算符合歐幾里得演算法的形式;否則繼續呼叫 gcd_recursive(y, x % y)。
第 四 題15 分
如圖 2 所示,我們假設當行動台(mobile station)X 正傳輸資料給 access point(AP)時,行動台 Y 也想傳輸資料給 AP。由於 Y 偵測不到 X 的訊號,誤以為沒有其它設備在傳送資料,便傳送資料給 AP,如此將導致 AP 無法正常接收 X 和 Y 所傳送的資料。此一現象稱為 hidden terminal problem。
請問 WiFi 的國際標準 IEEE 802.11 如何避免 hidden terminal problem 的發生?
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
核心觀念
本題考查 IEEE 802.11 的 **CSMA/CA(載波感知多重存取/碰撞避免)**與 RTS/CTS 握手。隱藏終端問題是:X、Y 都能與 AP 通訊,但彼此無法偵測對方的訊號,因此 Y 可能在 X 傳送時也開始傳送,造成 AP 收到碰撞資料。
解題方法
IEEE 802.11 可使用 RTS/CTS 機制,在傳送較長資料前先保留無線媒介:
- X 先向 AP 傳送 RTS(Request to Send,要求傳送)。
- AP 收到 RTS 後,回覆 CTS(Clear to Send,允許傳送)。
- CTS 會由 AP 傳送。圖中的 Y 雖然偵測不到 X,卻能收到 AP 的 CTS。
第 五 題20 分
圖 3 為 AVL tree。
(一) 畫出在圖 3 裡頭增加 key 值為 的 node 之後的 AVL tree。(註:此時 AVL tree 裡頭共有 個 nodes。)
(二) 圖 3 為 AVL tree。畫出在圖 3 裡頭刪除 key 值為 的 node 之後的 AVL tree。(註:此時 AVL tree 裡頭共有 個 nodes。)
🖼️【此處有附圖,請對照原卷】
登入後即可作答並保存紀錄。
核心觀念
AVL tree 是符合二元搜尋樹排序規則,且每個節點左右子樹高度差不超過 的二元樹。平衡因子定義為:
每個節點都必須滿足 。插入或刪除節點後,若有節點的平衡因子超出範圍,就沿著失衡方向進行旋轉,恢復平衡。
原樹的結構為:
40
/ \
25 70
\ / \
35 55 80
/ \
75 85
解題方法
(一)插入 key 值 90
依二元搜尋樹規則, 大於 ,因此插入為 的右子節點:
40
/ \
25 70
\ / \
35 55 80
/ \
75 85
\
90
插入後,節點 的右子樹比左子樹高 ,有 。失衡發生在右子樹的右側,屬於 RR 型,因此對 做一次左旋。旋轉後結果為:
40
/ \
25 80
\ / \
35 70 85
/ \ \
55 75 90
共有 個節點,且各節點都符合 AVL 平衡條件。
(二)刪除 key 值 40
第 六 題15 分
解釋下列有關電腦及網路安全的名詞:
(一) 巨集病毒(macro virus)
(二) 特洛伊木馬(Trojan horse)
(三) 字典攻擊(dictionary attack)
登入後即可作答並保存紀錄。
核心觀念
本題考查三種常見的惡意程式或密碼破解方式。作答時要分清楚它們的感染或偽裝方式、主要行為,以及攻擊目標:
- 巨集病毒利用文件中的巨集程式碼散播或執行惡意行為。
- 特洛伊木馬偽裝成正常或有用的程式,誘使使用者執行。
- 字典攻擊以常見單字、慣用密碼或其變形,逐一嘗試登入密碼。
解題方法
本題是名詞解釋題,逐項說明「是什麼、如何運作、造成什麼風險」即可。辨別時可抓住關鍵字:巨集病毒看文件巨集;特洛伊木馬看偽裝與誘騙執行;字典攻擊看候選密碼逐一嘗試。
(一)巨集病毒(macro virus)
巨集病毒是以應用程式的巨集語言撰寫的惡意程式,常見於支援巨集的文書或試算表文件。當使用者開啟受感染文件,並允許或觸發巨集執行時,病毒即可執行其指令;部分巨集病毒也會感染範本或其他文件,使後續文件繼續帶有病毒。
其危害包括竄改或刪除文件內容、複製自身、散播到其他文件,或執行其他惡意操作。防範方式包括停用不必要的巨集、只允許可信來源的巨集,以及使用防毒軟體掃描文件。