110 公務人員升官等薦任 統計 資料處理 考古題詳解
第 一 題20 分
請完成下列問題:
(一)有二個 8 位元的 BCD 碼,分別是 17(BCD)及 24(BCD),請以二進位的運算方式將此二個 BCD 碼相加,並呈現其結果。(6 分)
(二)一般電腦中都是以 2 的補數來表示有號數的值。目前有二個 8 位元的有號數,分別是 及 。如果將這二個數相加,請說明其結果為何?是否正確?原因為何?(14 分)
登入後即可作答並保存紀錄。
核心觀念
BCD(Binary-Coded Decimal,二進碼十進數)以 4 位元表示一個十進位數字。題目中的 8 位元 BCD 碼各由兩個十進位數字組成:
每個 4 位元組的合法範圍是 至 ,分別代表十進位數字 至 。兩個 BCD 數字相加時,先按二進位逐位相加;若某個 4 位元組的結果大於 ,或產生進位,該組須加上修正值 。
解題方法
先依 8 位元整體做二進位加法:
由低 4 位開始檢查:
- 個位數:。 大於合法 BCD 數字 ,故加上修正值 :
結果為個位 ,並向高位進位 。
- 十位數:原本的高 4 位相加並納入進位:
因此修正後的 BCD 結果為:
十位 表示 ,個位 表示 ,即 。
解題技巧
BCD 加法不是把整個 8 位元當作純二進位數字來解讀;須逐個 4 位元數字檢查。任一組出現進位或結果大於 ,就加 修正。可用十進位驗算:。
(二)8 位元二補數加法
核心觀念
第 二 題20 分
在資料庫的應用中,傳統的交易(transaction)為確保是正確可靠的,交易都須具備四個特性:原子性(atomicity)、一致性(consistency)、隔離性(isolation)、持續性(durability)。請試述這四個特性為何?
登入後即可作答並保存紀錄。
核心觀念
本題考查資料庫交易的 ACID 四大特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)與持續性(Durability)。它們共同確保交易執行時,資料庫能維持正確與可靠。
解題方法
依序說明每個特性的意義,再用交易執行前、執行中與完成後的狀態來區分:
- 原子性(Atomicity):交易是不可再分割的工作單位,必須「全部完成」或「全部不做」。若交易中途失敗,系統須復原已完成的部分,使資料回到交易開始前的狀態。
- 一致性(Consistency):交易執行前後,資料庫都必須符合既定的完整性限制與規則。成功的交易只能讓資料庫從一個合法狀態轉變為另一個合法狀態。
- 隔離性(Isolation):多個交易同時執行時,各交易的中間結果不應互相干擾;其效果應等同於交易依某種順序逐一執行,避免讀到其他交易尚未完成的資料或產生不一致結果。
- 持續性(Durability):交易一旦成功提交(commit),其結果就必須持久保存;
第 三 題20 分
如果有一個資料表,名稱為「員工薪資(Employee_Salary)」如下,請以 SQL 語法處理下列問題:
| Department | Name | UID | Salary |
|---|---|---|---|
| 業務部 | 張三 | 09406 | 45,000 |
| 業務部 | 李四 | 09007 | 43,000 |
| 組裝部 | 王五 | 10002 | 36,000 |
| 組裝部 | 林六 | 10209 | 38,500 |
(一)請以 SQL 語法計算出這個表中每個人的平均薪資(Salary)多少?(5 分)
(二)請以 SQL 語法找出姓名中所有姓「林」的員工的姓名(Name)及薪資(Salary)為何?(5 分)
(三)請以 SQL 語法找出薪資(Salary)介於 ~ 之間的人員姓名(Name)。(5 分)
(四)如果今年公司調薪,每個人都調升 的薪資,請以 SQL 語法將每個人的薪資調整後並存回。(5 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查 SQL 的彙總函數、條件篩選、範圍判斷與資料更新:
AVG(欄位):計算欄位平均值。WHERE:篩選符合條件的資料列。LIKE:依照樣式比對文字;'林%'表示以「林」開頭。BETWEEN 下限 AND 上限:判斷數值是否落在指定範圍內,且包含上下限。UPDATE ... SET ...:更新資料表中的欄位值。
題目未指定資料庫系統;以下使用常見 SQL 語法,並假設資料表名稱為 Employee_Salary。
解題方法
(一)計算每個人的平均薪資
「每個人的平均薪資」在此是計算 Salary 欄位的平均值,使用 AVG:
SELECT AVG(Salary) AS Average_Salary
FROM Employee_Salary;
依題目資料,平均薪資為:
因此,查詢結果的平均薪資為 元。
(二)找出姓「林」員工的姓名及薪資
以 LIKE '林%' 篩選姓名以「林」開頭的員工,再選出 Name 與 Salary:
SELECT Name, Salary
FROM Employee_Salary
WHERE Name LIKE '林%';
依題目資料,符合條件者為林六,薪資為 元。
(三)找出薪資介於 ~ 的人員姓名
使用 BETWEEN 38000 AND 44000 篩選薪資範圍,再選出姓名:
第 四 題20 分
請試述下列問題:
(一)電腦網路中常有一些方式來找到所要傳送資訊的目的端。在 TCP/IP 的協定中,常有三種位址來定址到目的端,請說明此三種位址,並分屬在 OSI 模型的哪一層中。(10 分)
(二)請說明 ARP(Address Resolution Protocol)及 RARP(Reverse Address Resolution Protocol)二個協定的目的及作法。(10 分)
登入後即可作答並保存紀錄。
核心觀念
資料從來源端送到目的端時,會依傳輸範圍與網路層級使用不同位址。常見的三種位址是應用程式位址(名稱)、邏輯位址(IP 位址)及實體位址(MAC 位址);它們分別協助識別目的服務、目的主機,以及區域網路上的目的網路介面。
| 位址種類 | 功能與例子 | OSI 模型層級 |
|---|---|---|
| 應用程式位址/名稱 | 識別使用者所要連接的主機或服務,例如網域名稱 www.example.com;DNS 可將網域名稱解析為 IP 位址。若以 TCP/UDP 通訊埠表示目的應用程式,通訊埠屬於傳輸層的定址資訊。 | 網域名稱屬應用層;通訊埠屬傳輸層 |
| 邏輯位址 | IP 位址,用來識別來源端及目的端在網際網路中的主機或介面,供路由器跨網路轉送封包,例如 IPv4 位址。 | 網路層 |
| 實體位址 | MAC 位址,用來識別同一個區域網路鏈路上的網路介面,供乙太網路等資料鏈結技術傳送訊框。 | 資料鏈結層 |
解題方法
依資料傳送的流程區分位址用途:先由應用程式名稱指出要連接的主機或服務;接著以 IP 位址跨網路尋找目的主機;封包抵達目的地所在區域網路後,再以 MAC 位址送到該鏈路上的網路介面。因此,IP 位址負責跨網路的邏輯定址,MAC 位址負責鏈路上的實體定址。
題目所稱「三種位址」常見教材會列為名稱/應用程式位址、IP 位址、MAC 位址。若把 TCP/UDP 通訊埠納入說明,應補充它屬於傳輸層,用來識別主機內的應用程式端點;它不取代上述三類中常見的主機名稱、IP 與 MAC 定址說明。
解題技巧
記憶順序為「名稱找服務、IP 找主機、MAC 找鏈路介面」。答題時要把「用途」與「OSI 層級」成對寫出;尤其不可把 IP 誤列為資料鏈結層,也不可把 MAC 誤列為網路層。
(二)ARP 與 RARP 的目的及作法
核心觀念
ARP 與 RARP 都與 IP 位址和硬體位址的對應有關,但方向相反:
- ARP:已知目的端 IP 位址,查詢其 MAC 位址。
- RARP:已知本機 MAC 位址,向伺服器查詢本機 IP 位址。
解題方法
ARP(Address Resolution Protocol,位址解析協定)
第 五 題20 分
請試述下列問題:
(一)程式設計中遞迴(recursive)是一個很好的技巧,請說明何謂遞迴?遞迴函式(recursive function)中有什麼樣要注意的?(10 分)
(二)請使用任何一種程式語言(答案中請註明哪一種程式語言)撰寫一個主程式去呼叫一個遞迴函式,可以計算 的值。(10 分)
登入後即可作答並保存紀錄。
核心觀念
本題考查遞迴的定義、遞迴函式的正確設計,以及如何以遞迴計算有限範圍的總和。遞迴是指函式在執行過程中直接或間接呼叫自身,將原問題分解為規模較小、形式相同的子問題,直到到達可直接求解的終止條件。
遞迴函式通常包含兩個部分:
- 基底情況(base case):定義何時停止呼叫自身,並直接回傳結果。
- 遞迴步驟(recursive case):將目前問題轉化為規模較小的同類問題,並朝基底情況前進。
(一)遞迴函式的設計與注意事項
以計算 為例,可將總和定義為:
其中, 是基底情況; 是遞迴步驟。每次呼叫都將 減少 ,因此有限次後會到達 並停止。
設計遞迴函式時應注意:
- 必須有明確的終止條件,否則函式會持續呼叫,造成無窮遞迴或堆疊溢位。
- 每次遞迴都要朝終止條件前進,例如本例每次使參數 減少 。
- 參數應符合函式定義的範圍。本例預期輸入為非負整數;若需處理負數,應另外定義其行為。
- 注意呼叫成本與堆疊深度。遞迴呼叫會占用呼叫堆疊;深度過大時,可能耗用較多記憶體或造成堆疊溢位。