112 關務特考三等 電機工程 計算機概論 考古題詳解

112 年・關務特考・三等・電機工程
試題代碼 計算機概論

第 一 題20 分

假設有兩個整數 AA 與 BB,在記憶體各占 8 個位元,A=(10001010)2A=(10001010)_2 與 B=(00011011)2B=(00011011)_2。(每小題 10 分,共 20 分)

(一)若 AA 與 BB 都是以「符號及值(sign-and-magnitude)」格式儲存的整數,則 A−BA-B 的結果以 8 個位元的「符號及值」格式表示是多少?以十進位表示是多少?請詳細說明計算過程。

(二)若 AA 與 BB 都是以「二補數(2’s complement)」格式儲存的整數,則 A−BA-B 的結果以 8 個位元的「二補數」格式表示是多少?以十進位表示是多少?請詳細說明計算過程。

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

這一題的完整詳解

核心觀念

本題比較 8 位元整數的兩種表示法:

  • 符號及值(sign-and-magnitude):最高位是符號位,00 表示正、11 表示負;其餘 7 位表示數值大小。
  • 二補數(2’s complement):正數以一般二進位表示;負數可由正數位元逐位反相再加 11 得到。8 位元二補數的範圍為 −128-128 至 127127。

減法可改寫為加法:

A−B=A+(−B)A-B=A+(-B)

(一)符號及值格式

解題方法

先依符號位與數值位解讀 AA、BB,再計算十進位的 A−BA-B,最後轉換成符號及值格式。

A=(10001010)2A=(10001010)_2

AA 的符號位為 11,代表負數;數值位為 00010100001010:

A=−(0001010)2=−10A=-\left(0001010\right)_2=-10 B=(00011011)2B=(00011011)_2

BB 的符號位為 00,代表正數;數值位為 00110110011011:

B=+(0011011)2=27B=+\left(0011011\right)_2=27

因此:

A−B=(−10)−27=−37A-B=(-10)-27=-37

3737 的二進位為 1001012100101_2,補足為 7 位數值欄位:

37=(0100101)237=(0100101)_2

結果為負數,符號位設為 11,故 8 位元符號及值表示為:

(1 0100101)2=(10100101)2(1\ 0100101)_2=(10100101)_2

解題技巧

符號及值格式的最高位只負責標示正負,不能把整個 8 位元字串直接當作一般二進位數計算。先拆出符號位與數值位,再進行十進位運算,可避免混淆。


(二)二補數格式

解題方法

先將 AA、BB 解讀為二補數,再將 A−BA-B 改寫為 A+(−B)A+(-B)。

🔒

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

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

免費註冊

第 二 題20 分

(一)假設有某一個無階級(classless)IP 位址為 167.177.187.135/30167.177.187.135/30,則下列 IP 位址何者與前述 IP 位址是在同一個子網域(subnet)?詳細說明理由。(10 分)

這一題的完整詳解

(一)子網域判斷

核心觀念

/30 表示子網路遮罩前 30 個位元為 1,後 2 個位元為 0:

/30=255.255.255.252/30 = 255.255.255.252

每個子網有 22=42^2=4 個位址,子網網路位址以最後一個八位元組每 4 為一個區段遞增。

解題方法

將 IP 位址最後一個八位元組 135135 除以區段大小 44,取所在區段的起點:

⌊1354⌋×4=33×4=132\left\lfloor \frac{135}{4} \right\rfloor \times 4 =33\times4 =132

因此,167.177.187.135/30167.177.187.135/30 所屬子網的範圍是 167.177.187.132167.177.187.132 至 167.177.187.135167.177.187.135;網路位址為 167.177.187.132167.177.187.132,廣播位址為 167.177.187.135167.177.187.135。可供主機使用的位址是 167.177.187.133167.177.187.133 與 167.177.187.134167.177.187.134。

選項分析

  • (A) 167.177.187.128167.177.187.128:錯誤。 位於網路位址 167.177.187.128167.177.187.128 至廣播位址 167.177.187.131167.177.187.131 的另一個 /30 子網。
  • (B) 167.177.187.132167.177.187.132:正確。 是題目所給 IP 位址所屬子網的網路位址。
  • (C) 167.177.187.165167.177.187.165:錯誤。 所在子網為 167.177.187.164167.177.187.164 至 167.177.187.167167.177.187.167,與題目所給位址不同網段。
  • (D) 167.177.188.135167.177.188.135:錯誤。 第三個八位元組已由 187187 變為 188188,屬於不同的子網。

解題技巧

/30 的區段大小為 256−252=4256-252=4,所以直接把最後一個八位元組分成 00–33、44–77、……的區段,即可快速判斷。選項中的網路位址、主機位址或廣播位址,只要落在同一個四位址區段,都屬於同一子網。

🔒

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

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

免費註冊

第 三 題20 分

(一)假設有下列三個二元樹走訪的結果:

  1. 用中序走訪(Inorder traversal)得到的結果是 BEDFAGCHBEDFAGCH。

  2. 用前序走訪(Preorder traversal)得到的結果是 ABDEFCGHABDEFCGH。

  3. 用後序走訪(Postorder traversal)得到的結果是 FEDBGHCAFEDBGHCA。

則上述二元樹中,何者的根(root)一定是相同的節點?說明其理由。(5 分)

(二)又假若上述第 1 項與第 2 項是針對同一個二元樹各別進行中序走訪與前序走訪的結果,請建構出此二元樹。(15 分)

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

這一題的完整詳解

核心觀念

  • 前序走訪(Preorder):根 →\rightarrow 左子樹 →\rightarrow 右子樹。
  • 中序走訪(Inorder):左子樹 →\rightarrow 根 →\rightarrow 右子樹。
  • 後序走訪(Postorder):左子樹 →\rightarrow 右子樹 →\rightarrow 根。

因此,前序走訪的第一個節點是根;後序走訪的最後一個節點也是根。中序走訪的根則位於左、右子樹走訪序列的分界處。

解題方法

(一)判斷根節點

前序結果為 ABDEFCGHABDEFCGH,第一個節點是 AA,故根為 AA。

後序結果為 FEDBGHCAFEDBGHCA,最後一個節點也是 AA,故根同樣為 AA。

中序結果為 BEDFAGCHBEDFAGCH,其中 AA 位於左、右子樹序列之間,也與根為 AA 相符。

所以三種走訪結果中的根相同,都是 AA。

(二)由中序與前序建構二元樹

前序第一個節點是根,因此根為 AA。在中序序列 BEDFAGCHBEDFAGCH 中,AA 左側的 BEDFBEDF 是左子樹,右側的 GCHGCH 是右子樹。

🔒

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

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

免費註冊

第 四 題20 分

(一)假設一個網球單打公開賽採單敗淘汰賽,亦即在每一場比賽中輸的人就出局且無法晉級,贏的人繼續下一場比賽,如此直到最後勝出的一人即是比賽的冠軍者。若此次賽事共有 342 人報名,請問總共要安排幾場賽事,才能決定出最後的冠軍者?請詳細說明理由或計算過程。(10 分)

(二)下列的函式是 C 語言的 function:

int xyz(int x, int y) { if (y == 0) return x; else return (xyz(y, x % y)); }

則呼叫 xyz(60, 45) 會得到什麼結果?詳細列出程式碼的執行過程。(10 分)

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

這一題的完整詳解

核心觀念

單敗淘汰賽中,每場比賽恰有一人落敗並出局。要從 342342 名參賽者中決出一位冠軍,最後必須淘汰其餘 341341 人。

解題方法

每安排一場比賽,就有一名參賽者出局,因此總場數等於需要淘汰的人數:

342−1=341342-1=341

無論各輪如何安排對戰,決出冠軍都必須讓其餘每位參賽者各輸一場,故共需 341341 場。

解題技巧

可用「參賽人數減一」快速計算單敗淘汰賽場數。參賽者即使是輪空晉級,也不會增加淘汰人數,因此不影響總場數。

(二)函式 xyz(60, 45) 的結果

核心觀念

函式使用遞迴與取餘數運算,實作的是輾轉相除法,用來求兩個整數的最大公因數。當第二個參數 yy 為 00 時,回傳第一個參數 xx,遞迴即告結束。

解題方法

依照函式呼叫順序逐步計算:

🔒

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

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

免費註冊

第 五 題20 分

(一)電腦作業系統使用虛擬記憶體的概念。假設每個分頁(page)大小為 4KB,而此電腦的實體記憶體總共有 1024 框(frame),且邏輯位址(logical address)有 24 位元。則該電腦的實體位址(physical address)有多少個位元?且此電腦系統總共有幾個分頁?(10 分)

(二)若對比於常見的資訊安全三原則,下列案例各別是屬於何種攻擊?請說明理由。(10 分)

  1. 針對使用者的桌機螢幕,偷偷將其螢幕畫面拍下來。

  2. 到服飾店購買衣服,偷偷將價錢標籤替換成較便宜的標籤去結帳。

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

這一題的完整詳解

核心觀念

位址由「分頁號」與「頁內位移」組成。頁面大小決定頁內位移的位元數;邏輯位址總位元數扣除頁內位移位元數,即為分頁號位元數。實體位址則由「框號」與「框內位移」組成。

解題方法

每頁大小為 4 KB=4×1024=4096=2124\text{ KB}=4\times 1024=4096=2^{12} 位元組,因此頁內位移需要 1212 位元。

邏輯位址為 2424 位元,故分頁號占:

24−12=12 位元24-12=12\text{ 位元}

因此邏輯位址空間共有:

212=4096 個分頁2^{12}=4096\text{ 個分頁}

實體記憶體共有 1024=2101024=2^{10} 個框,框號需要 1010 位元。每框大小與每頁相同,框內位移需要 1212 位元,所以實體位址長度為:

10+12=22 位元10+12=22\text{ 位元}

解題技巧

先由頁面大小換算頁內位移,再分別計算邏輯位址中的分頁號與實體位址中的框號。分頁數由邏輯位址空間決定,框數則用來計算實體位址中的框號位元數,兩者不要混淆。

(二)資訊安全三原則中的攻擊類型

核心觀念

🔒

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

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

免費註冊

其他考古題