110 公務人員升官等薦任 統計 資料處理 考古題詳解

110 年・公務人員升官等・薦任・統計
試題代碼 資料處理

第 一 題20 分

請完成下列問題:

(一)有二個 8 位元的 BCD 碼,分別是 17(BCD)及 24(BCD),請以二進位的運算方式將此二個 BCD 碼相加,並呈現其結果。(6 分)

(二)一般電腦中都是以 2 的補數來表示有號數的值。目前有二個 8 位元的有號數,分別是 01001001201001001_2 及 00111110200111110_2。如果將這二個數相加,請說明其結果為何?是否正確?原因為何?(14 分)

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

這一題的完整詳解

核心觀念

BCD(Binary-Coded Decimal,二進碼十進數)以 4 位元表示一個十進位數字。題目中的 8 位元 BCD 碼各由兩個十進位數字組成:

17BCD=0001 0111,24BCD=0010 010017_{\text{BCD}}=0001\,0111,\qquad 24_{\text{BCD}}=0010\,0100

每個 4 位元組的合法範圍是 00000000 至 10011001,分別代表十進位數字 00 至 99。兩個 BCD 數字相加時,先按二進位逐位相加;若某個 4 位元組的結果大於 10011001,或產生進位,該組須加上修正值 01100110。

解題方法

先依 8 位元整體做二進位加法:

0001 0111+ 0010 01000011 1011\begin{array}{r} 0001\,0111\\ +\,0010\,0100\\ \hline 0011\,1011 \end{array}

由低 4 位開始檢查:

  • 個位數:0111+0100=10110111+0100=1011。10111011 大於合法 BCD 數字 10011001,故加上修正值 01100110:
1011+0110=1 00011011+0110=1\,0001

結果為個位 00010001,並向高位進位 11。

  • 十位數:原本的高 4 位相加並納入進位:
0001+0010+0001=01000001+0010+0001=0100

因此修正後的 BCD 結果為:

0100 00010100\,0001

十位 01000100 表示 44,個位 00010001 表示 11,即 41BCD41_{\text{BCD}}。

解題技巧

BCD 加法不是把整個 8 位元當作純二進位數字來解讀;須逐個 4 位元數字檢查。任一組出現進位或結果大於 10011001,就加 01100110 修正。可用十進位驗算:17+24=4117+24=41。

(二)8 位元二補數加法

核心觀念

🔒

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

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

免費註冊

第 二 題20 分

在資料庫的應用中,傳統的交易(transaction)為確保是正確可靠的,交易都須具備四個特性:原子性(atomicity)、一致性(consistency)、隔離性(isolation)、持續性(durability)。請試述這四個特性為何?

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

這一題的完整詳解

核心觀念

本題考查資料庫交易的 ACID 四大特性:原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)與持續性(Durability)。它們共同確保交易執行時,資料庫能維持正確與可靠。

解題方法

依序說明每個特性的意義,再用交易執行前、執行中與完成後的狀態來區分:

  • 原子性(Atomicity):交易是不可再分割的工作單位,必須「全部完成」或「全部不做」。若交易中途失敗,系統須復原已完成的部分,使資料回到交易開始前的狀態。
  • 一致性(Consistency):交易執行前後,資料庫都必須符合既定的完整性限制與規則。成功的交易只能讓資料庫從一個合法狀態轉變為另一個合法狀態。
  • 隔離性(Isolation):多個交易同時執行時,各交易的中間結果不應互相干擾;其效果應等同於交易依某種順序逐一執行,避免讀到其他交易尚未完成的資料或產生不一致結果。
  • 持續性(Durability):交易一旦成功提交(commit),其結果就必須持久保存;
🔒

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

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

免費註冊

第 三 題20 分

如果有一個資料表,名稱為「員工薪資(Employee_Salary)」如下,請以 SQL 語法處理下列問題:

DepartmentNameUIDSalary
業務部張三0940645,000
業務部李四0900743,000
組裝部王五1000236,000
組裝部林六1020938,500

(一)請以 SQL 語法計算出這個表中每個人的平均薪資(Salary)多少?(5 分)

(二)請以 SQL 語法找出姓名中所有姓「林」的員工的姓名(Name)及薪資(Salary)為何?(5 分)

(三)請以 SQL 語法找出薪資(Salary)介於 38,00038{,}000~44,00044{,}000 之間的人員姓名(Name)。(5 分)

(四)如果今年公司調薪,每個人都調升 5%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;

依題目資料,平均薪資為:

45,000+43,000+36,000+38,5004=162,5004=40,625\frac{45{,}000+43{,}000+36{,}000+38{,}500}{4} =\frac{162{,}500}{4} =40{,}625

因此,查詢結果的平均薪資為 40,62540{,}625 元。

(二)找出姓「林」員工的姓名及薪資

以 LIKE '林%' 篩選姓名以「林」開頭的員工,再選出 Name 與 Salary:

SELECT Name, Salary
FROM Employee_Salary
WHERE Name LIKE '林%';

依題目資料,符合條件者為林六,薪資為 38,50038{,}500 元。

(三)找出薪資介於 38,00038{,}000~44,00044{,}000 的人員姓名

使用 BETWEEN 38000 AND 44000 篩選薪資範圍,再選出姓名:

🔒

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

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

免費註冊

第 四 題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,位址解析協定)

🔒

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

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

免費註冊

第 五 題20 分

請試述下列問題:

(一)程式設計中遞迴(recursive)是一個很好的技巧,請說明何謂遞迴?遞迴函式(recursive function)中有什麼樣要注意的?(10 分)

(二)請使用任何一種程式語言(答案中請註明哪一種程式語言)撰寫一個主程式去呼叫一個遞迴函式,可以計算 1+2+3+⋯+201+2+3+\cdots+20 的值。(10 分)

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

這一題的完整詳解

核心觀念

本題考查遞迴的定義、遞迴函式的正確設計,以及如何以遞迴計算有限範圍的總和。遞迴是指函式在執行過程中直接或間接呼叫自身,將原問題分解為規模較小、形式相同的子問題,直到到達可直接求解的終止條件。

遞迴函式通常包含兩個部分:

  1. 基底情況(base case):定義何時停止呼叫自身,並直接回傳結果。
  2. 遞迴步驟(recursive case):將目前問題轉化為規模較小的同類問題,並朝基底情況前進。

(一)遞迴函式的設計與注意事項

以計算 1+2+⋯+n1+2+\cdots+n 為例,可將總和定義為:

S(n)={0,n=0,n+S(n−1),n>0.S(n)= \begin{cases} 0, & n=0,\\ n+S(n-1), & n>0. \end{cases}

其中,S(0)=0S(0)=0 是基底情況;S(n)=n+S(n−1)S(n)=n+S(n-1) 是遞迴步驟。每次呼叫都將 nn 減少 11,因此有限次後會到達 n=0n=0 並停止。

設計遞迴函式時應注意:

  • 必須有明確的終止條件,否則函式會持續呼叫,造成無窮遞迴或堆疊溢位。
  • 每次遞迴都要朝終止條件前進,例如本例每次使參數 nn 減少 11。
  • 參數應符合函式定義的範圍。本例預期輸入為非負整數;若需處理負數,應另外定義其行為。
  • 注意呼叫成本與堆疊深度。遞迴呼叫會占用呼叫堆疊;深度過大時,可能耗用較多記憶體或造成堆疊溢位。
🔒

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

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

免費註冊

其他考古題