設 \(A\) 和 \(B\) 為兩個以二補碼表示的 8 位元有符號整數,其中 \(A = 01011011_2\) 且 \(B = 10100100_2\)。以下哪項關於運算 \(A + B\) 的描述是正確的? (1) 結果是負數。 (2) 沒有發生溢位。 (3) 結果的十六進制表示為 \(\text{FF}_{16}\)。
- A.僅 (1)
- B.僅 (1) 及 (2)
- C.僅 (2) 及 (3)
- D.(1)、(2) 及 (3)
解題
\(A = 01011011_2 = 91_{10}\)。\(B = 10100100_2\),其二補碼為 \(01011100_2 = 92_{10}\),因此 \(B = -92_{10}\)。兩者相加 \(A + B = 91 + (-92) = -1_{10}\)。 (1) \(-1_{10}\) 是負數,因此 (1) 正確。 (2) 由於正數與負數相加,絕不會發生溢位,因此 (2) 正確。 (3) \(-1_{10}\) 的 8 位元二進制為 \(11111111_2\),對應十六進制為 \(\text{FF}_{16}\),因此 (3) 正確。故 (1)、(2) 及 (3) 皆正確。
某主機的 IP 地址為 192.168.10.45,子網遮罩為 255.255.255.224。以下哪項是該主機所屬的網絡地址(子網地址)?
- A.192.168.10.0
- B.192.168.10.32
- C.192.168.10.45
- D.192.168.10.63
解題
若要找出網絡地址,需將 IP 地址與子網遮罩進行按位與(AND)運算。IP 地址的第四個八位位組為 45(二進制為 00101101)。子網遮罩的第四個八位位組為 224(二進制為 11100000)。進行按位與運算:00101101 AND 11100000 = 00100000,即十進制的 32。因此,網絡地址為 192.168.10.32。
考慮一個包含兩個數據表的文件資料庫:Student(StudentID, Name, Class),其中 StudentID 為主鍵;以及 Enrollment(StudentID, CourseID, EnrollDate),其中 (StudentID, CourseID) 為複合主鍵,且 StudentID 為參照 Student(StudentID) 的外鍵。以下哪項操作不會違反任何完整性約束?
- A.在 Enrollment 中插入一條記錄,其 StudentID 的值在 Student 中並不存在。
- B.從 Student 中刪除一條記錄,其 StudentID 目前正被 Enrollment 參照。
- C.在 Enrollment 中插入一條記錄,其中 StudentID 的值為空值(null)。
- D.在 Student 中插入一條記錄,其 StudentID 的值在 Student 中目前並不存在。
解題
選項 A 違反了參照完整性,因為 Enrollment 中的外鍵 StudentID 必須指向 Student 中已存在的主鍵。選項 B 在 Enrollment 中存在匹配外鍵時會違反參照完整性(除非配置了級聯刪除,否則默認不允許)。選項 C 違反了實體完整性,因為 StudentID 是 Enrollment 複合主鍵的一部分,主鍵的任何部分都不能為空值(null)。選項 D 是在主表 Student 中插入具有唯一主鍵的新記錄,這不會違反任何完整性約束。
數據庫表 Sales 包含數據行 SaleID、ProductID、Region 和 Amount。以下 SQL 查詢的輸出是什麼? SELECT Region, COUNT(SaleID) FROM Sales GROUP BY Region HAVING AVG(Amount) > 1100。 [Sales 數據:(1, 'P01', 'North', 1500), (2, 'P02', 'South', 2000), (3, 'P01', 'South', 1200), (4, 'P03', 'North', 800), (5, 'P02', 'North', 1000), (6, 'P01', 'North', 500)]
- A.Region: South, COUNT(SaleID): 2
- B.Region: North, COUNT(SaleID): 4
- C.Region: North, COUNT(SaleID): 4; Region: South, COUNT(SaleID): 2
- D.沒有返回任何記錄
解題
首先,按 Region(地區)分組:North(北部)有 4 條記錄,金額分別為 1500、800、1000、500。其平均值(AVG)為 (1500+800+1000+500)/4 = 3800/4 = 950。South(南部)有 2 條記錄,金額分別為 2000、1200。其平均值為 (2000+1200)/2 = 3200/2 = 1600。HAVING 子句會篩選掉 AVG(Amount) <= 1100 的分組。因此,North 被排除(950 <= 1100),僅保留 South(1600 > 1100)。查詢返回該組的 Region(South)和記錄總數(2)。
某關係數據庫關係 R(A, B, C, D) 的複合主鍵為 (A, B)。以下哪項函數依賴會違反第二範式 (2NF)?
- A.(A, B) -> C
- B.C -> D
- C.A -> D
- D.(A, B) -> D
解題
要使關係達到 2NF,它必須先達到 1NF,且每個非主屬性都必須完全函數依賴於整個主鍵。如果 A -> D,則非主屬性 D 僅依賴於 A,而 A 是主鍵 (A, B) 的真子集。這屬於部分依賴,違反了 2NF 的要求。
考慮以下虛擬碼:A 是一個索引從 1 開始、包含 5 個整數的陣列:[4, 7, 2, 9, 5]。For i from 1 to 4 do: For j from 1 to 5 - i do: If A[j] > A[j+1] then Swap A[j] and A[j+1]。當外層循環完成第一次迭代(即 i = 1 時),陣列 A 的內容是什麼?
- A.[2, 4, 5, 7, 9]
- B.[4, 2, 7, 5, 9]
- C.[4, 2, 5, 7, 9]
- D.[2, 7, 4, 5, 9]
解題
當 i = 1 時,內層循環變量 j 的範圍是 1 到 4。 1) j = 1:比較 A[1] (4) 與 A[2] (7)。不交換。陣列:[4, 7, 2, 9, 5]。 2) j = 2:比較 A[2] (7) 與 A[3] (2)。因 7 > 2,進行交換。陣列變為:[4, 2, 7, 9, 5]。 3) j = 3:比較 A[3] (7) 與 A[4] (9)。不交換。陣列:[4, 2, 7, 9, 5]。 4) j = 4:比較 A[4] (9) 與 A[5] (5)。因 9 > 5,進行交換。陣列變為:[4, 2, 7, 5, 9]。這是第一次外層循環結束後的最終狀態。
在機器週期的指令提取階段,以下哪項正確描述了程式計數器 (PC) 和記憶體地址暫存器 (MAR) 的角色?
- A.PC 存放下一條待提取指令的地址,而 MAR 存放目前正在讀取的記憶體地址。
- B.MAR 存放從記憶體提取的數據,而 PC 存放已解碼的指令。
- C.PC 存放目前正在讀取的記憶體地址,而 MAR 存放下一條指令。
- D.MAR 存放下一條指令的地址,而 PC 存放算術運算的累積結果。
解題
程式計數器 (PC) 用於追蹤下一條待提取指令的記憶體地址。在提取階段,該地址會從 PC 複製到記憶體地址暫存器 (MAR) 中,MAR 直接與地址總線相連,用於訪問當前正在讀取的物理記憶體單元。因此,選項 A 正確。
小麗想向小明發送一條機密訊息,並確保小明能夠驗證該訊息確實是由小麗發出的(真確性及不可否認性)。在使用公鑰密碼學時,小麗應該分別使用什麼密鑰來 (1) 簽署訊息,以及 (2) 加密訊息?
- A.(1) 小麗的私鑰; (2) 小明的公鑰
- B.(1) 小麗的公鑰; (2) 小明的私鑰
- C.(1) 小明的公鑰; (2) 小麗的私鑰
- D.(1) 小明的私鑰; (2) 小麗的公鑰
解題
要簽署訊息並保證真確性/不可否認性,發送方(小麗)必須使用自己的私鑰對訊息(或其雜湊值)進行加密。由於只有小麗擁有自己的私鑰,使用小麗的公鑰成功解密即可證明是由小麗發送的。要確保機密性,小麗必須使用接收方(小明)的公鑰對訊息進行加密,這樣只有小明才能用自己的私鑰進行解密。因此,正確的順序是 (1) 小麗的私鑰 和 (2) 小明的公鑰。
某學校希望託管其學生管理系統。學校決定從雲端服務供應商處租用虛擬伺服器和存儲空間,而不是維護實體伺服器,但學校的 IT 員工仍將自行安裝和管理操作系統、數據庫及應用軟件。該學校使用的是哪種雲端服務模式?
- A.軟件即服務 (SaaS)
- B.平台即服務 (PaaS)
- C.架構即服務 (IaaS)
- D.數據庫即服務 (DBaaS)
解題
架構即服務 (IaaS) 通過互聯網提供虛擬化的計算資源,例如虛擬伺服器、存儲和網絡。客戶需要負責安裝和管理操作系統、中間件、數據庫以及應用程序。由於學校租用了虛擬伺服器和存儲空間,但自行管理操作系統和數據庫,這屬於 IaaS 模式。
以下哪些關於編譯器與解譯器的比較描述是正確的? (1) 編譯器在執行前將整個原始碼翻譯成機器碼,而解譯器則是逐行翻譯並執行代碼。 (2) 解譯型程序通常比編譯型程序運行得更快,因為它不需要編譯步驟。 (3) 若代碼中間存在語法錯誤,編譯器會在生成任何可執行文件前報錯,而解譯器可能會先執行錯誤之前的代碼,然後在錯誤處停止。
- A.僅 (1)
- B.僅 (1) 及 (2)
- C.僅 (1) 及 (3)
- D.僅 (2) 及 (3)
解題
描述 (1) 正確:編譯器先翻譯整個程序,而解譯器在運行時逐行進行翻譯。描述 (2) 錯誤:編譯型程序比解譯型程序運行速度顯著更快,因為它們已被轉換為原生機器碼,而解譯型程序在執行時有額外的翻譯開銷。描述 (3) 正確:編譯器會先分析整個程序,語法錯誤會阻止可執行文件的生成;解譯器逐行運行,因此只有在實際執行到錯誤行時才會停止。因此,(1) 和 (3) 正確。
在 8 位元二補碼表示法中,十進位數 \(-37\) 的二進位表示法是什麼?
- A.11011011
- B.11011010
- C.10100101
- D.11100101
解題
要在 8 位元二補碼中表示 \(-37\):
1. 將絕對值 \(37\) 表示為二進位:\(37 = 32 + 4 + 1 \Rightarrow 00100101_2\)。
2. 將所有位元取反以求得一補碼:\(11011010_2\)。
3. 加 1 以求得二補碼:\(11011010_2 + 1 = 11011011_2\)。
因此,正確選項為 A。
評分準則
選擇正確選項得 1 分。選錯或選擇多個選項不給分。
下列關於快取記憶體(Cache Memory)的敘述,哪一個/些是正確的?
(1) 它的速度比 CPU 內部的暫存器更快。
(2) 它儲存常用數據與指令,以加快 CPU 的存取速度。
(3) 它的容量通常比主記憶體(RAM)大。
- A.只有 (2)
- B.只有 (1) 及 (2)
- C.只有 (2) 及 (3)
- D.(1)、(2) 及 (3)
解題
敘述 (1) 錯誤,因為 CPU 內部的暫存器是速度最快的記憶體組件,比快取記憶體更快。
敘述 (2) 正確,因為快取記憶體保留了常用或活躍的指令和數據,以縮短存取延遲。
敘述 (3) 錯誤,因為快取記憶體成本高、空間有限,其容量遠小於主記憶體 (RAM)。
因此,只有敘述 (2) 是正確的。
評分準則
選擇正確選項得 1 分。選錯或選擇多個選項不給分。
下列哪些 IP 地址可以分配給私有區域網絡(LAN)上的主機,而不需要在公共互聯網上進行路由?
(1) 10.150.23.45
(2) 172.20.100.2
(3) 192.168.1.254
(4) 168.192.0.1
- A.只有 (1) 及 (3)
- B.只有 (2) 及 (3)
- C.只有 (1)、(2) 及 (3)
- D.(1)、(2)、(3) 及 (4)
解題
私有 IP 地址範圍是專為本地網絡保留的:
- A 類:10.0.0.0 至 10.255.255.255
- B 類:172.16.0.0 至 172.31.255.255
- C 類:192.168.0.0 至 192.168.255.255
因此:
(1) 10.150.23.45 屬於 A 類私有範圍。
(2) 172.20.100.2 屬於 B 類私有範圍。
(3) 192.168.1.254 屬於 C 類私有範圍。
(4) 168.192.0.1 超出私有範圍,是公共 IP 地址。
因此,(1)、(2) 及 (3) 是私有 IP 地址。
評分準則
選擇正確選項得 1 分。選錯或選擇多個選項不給分。
在公開金鑰密碼學中,當愛麗絲(Alice)想發送一封經數位簽署的訊息給鮑伯(Bob),以確保不可否認性及完整性時,愛麗絲應該:
- A.使用愛麗絲的私鑰加密訊息雜湊值。
- B.使用鮑伯的公鑰加密訊息雜湊值。
- C.使用愛麗絲的公鑰加密訊息雜湊值。
- D.使用鮑伯的私鑰加密訊息雜湊值。
解題
數位簽署是先計算訊息的雜湊值,然後使用發送者(愛麗絲)的私鑰將該雜湊值加密而產生的。接收者(鮑伯)可以使用愛麗絲的公鑰來解密以驗證簽名。這能確保訊息的完整性(訊息被篡改會導致雜湊值不匹配)和不可否認性(只有持有私鑰的愛麗絲才能產生該簽名)。
評分準則
選擇正確選項得 1 分。選錯或選擇多個選項不給分。
在關聯式資料庫中,有兩個資料表:
`STUDENT(StudentID, StudentName, ClassID)` 及 `CLASS(ClassID, ClassName, RoomNo)`。
`StudentID` 是 `STUDENT` 的主鍵,`ClassID` 是 `CLASS` 的主鍵。`STUDENT` 中的 `ClassID` 是參照 `CLASS` 的外鍵。下列哪項操作會違反參照完整性?
- A.在 CLASS 中插入一筆具有新 ClassID 的新記錄。
- B.在 STUDENT 中插入一筆其 ClassID 不存在於 CLASS 中的新記錄。
- C.從 STUDENT 中刪除一筆記錄。
- D.修改 CLASS 資料表中某班級的 ClassName。
解題
參照完整性要求資料表中的外鍵值必須與被參照資料表中的主鍵值相匹配(或為 NULL)。
- 選項 A:在父資料表 CLASS 中插入新記錄不會違反參照完整性。
- 選項 B:在 STUDENT 中插入一筆其 ClassID 不存在於 CLASS 中的記錄,會導致外鍵指向一個無效的主鍵值,進而違反參照完整性。
- 選項 C:從子資料表 STUDENT 中刪除記錄不會影響參照完整性。
- 選項 D:修改某班級的 ClassName 不會影響關鍵的主鍵 ClassID 的匹配性。
評分準則
選擇正確選項得 1 分。選錯或選擇多個選項不給分。
考慮資料表 `Sales(SalesID, ItemID, Quantity, Price)`。
以下 SQL 語句的目的是什麼?
```sql
SELECT ItemID, SUM(Quantity * Price) AS TotalRevenue
FROM Sales
GROUP BY ItemID
HAVING SUM(Quantity * Price) > 1000;
```
- A.尋找任何單次交易中單價大於 1000 的產品 ID 列表。
- B.計算每種產品的總銷售數量,並顯示總數量大於 1000 的產品。
- C.尋找在所有交易中總銷售額(Quantity * Price)大於 1000 的產品 ID。
- D.顯示所有銷售金額大於 1000 的銷售記錄,並按 ItemID 分組。
解題
該查詢按 ItemID 對銷售記錄進行分組。`SUM(Quantity * Price)` 計算每種產品產生的總銷售金額。`HAVING` 子句對分組後的結果進行篩選,僅保留總銷售金額大於 1000 的產品群組。
評分準則
選擇正確選項得 1 分。選錯或選擇多個選項不給分。
資料表 `ProjectMember(ProjectID, EmployeeID, EmployeeName, HoursWorked)` 的複合主鍵為 `(ProjectID, EmployeeID)`。
其函數相依性為:
- `(ProjectID, EmployeeID) -> HoursWorked`
- `EmployeeID -> EmployeeName`
此資料表滿足哪一個正規形式,原因為何?
- A.僅第一正規化 (1NF),因為存在部分相依性。
- B.僅第二正規化 (2NF),因為不存在遞移相依性。
- C.第三正規化 (3NF),因為所有非鍵屬性都完全函數相依於主鍵。
- D.它甚至不符合 1NF,因為它有重複鍵。
解題
1. 資料表包含原子值,因此符合第一正規化 (1NF)。
2. 主鍵為複合主鍵:`(ProjectID, EmployeeID)`。
3. 存在部分相依性:`EmployeeID -> EmployeeName`。`EmployeeName` 僅相依於主鍵的一部分(`EmployeeID`),而不是整個複合主鍵。這違反了第二正規化 (2NF)。
因此,該資料表僅符合第一正規化 (1NF)。
評分準則
選擇正確選項得 1 分。選錯或選擇多個選項不給分。
考慮以下虛擬碼:
```
Set A to [3, 8, 2, 7, 5]
Set N to 5
For i from 0 to N - 2:
For j from 0 to N - 2 - i:
If A[j] > A[j+1] Then
Swap A[j] and A[j+1]
EndIf
EndFor
EndFor
```
在外部循環剛好完成 2 次疊代(即 `i = 0` 和 `i = 1`)後,陣列 `A` 的狀態是什麼?
- A.[3, 2, 7, 5, 8]
- B.[2, 3, 5, 7, 8]
- C.[2, 3, 7, 5, 8]
- D.[2, 3, 5, 8, 7]
解題
該虛擬碼表示升序的冒泡排序演算法。
追蹤過程如下:
初始狀態:`A = [3, 8, 2, 7, 5]`
- **第一次外部疊代 (i = 0)**:
- `j = 0`:`A[0] > A[1]` (3 > 8 爲假) -> `[3, 8, 2, 7, 5]`
- `j = 1`:`A[1] > A[2]` (8 > 2 爲真) -> 交換 -> `[3, 2, 8, 7, 5]`
- `j = 2`:`A[2] > A[3]` (8 > 7 爲真) -> 交換 -> `[3, 2, 7, 8, 5]`
- `j = 3`:`A[3] > A[4]` (8 > 5 爲真) -> 交換 -> `[3, 2, 7, 5, 8]`
在 `i = 0` 結束後,最大元素 (8) 已正確放置在末尾。
- **第二次外部疊代 (i = 1)**:
- `j = 0`:`A[0] > A[1]` (3 > 2 爲真) -> 交換 -> `[2, 3, 7, 5, 8]`
- `j = 1`:`A[1] > A[2]` (3 > 7 爲假) -> `[2, 3, 7, 5, 8]`
- `j = 2`:`A[2] > A[3]` (7 > 5 爲真) -> 交換 -> `[2, 3, 5, 7, 8]`
在 `i = 1` 結束後,陣列變為 `[2, 3, 5, 7, 8]`。
評分準則
選擇正確選項得 1 分。選錯 or 選擇多個選項不給分。
考慮以下遞迴函數:
```
Function f(n, k)
If n == 0 Then
Return 0
Else If n % 2 == 1 Then
Return k + f(n // 2, k * 2)
Else
Return f(n // 2, k * 2)
EndIf
EndFunction
```
註:`//` 爲整數除法。調用函數 `f(11, 3)` 的返回值是多少?
- A.33
- B.13
- C.15
- D.48
解題
追蹤遞迴函數調用 f(11, 3):
1. `f(11, 3)`:由於 `11 % 2 == 1`(奇數),返回 `3 + f(5, 6)`。
2. `f(5, 6)`:由於 `5 % 2 == 1`(奇數),返回 `6 + f(2, 12)`。
3. `f(2, 12)`:由於 `2 % 2 == 0`(偶數),返回 `f(1, 24)`。
4. `f(1, 24)`:由於 `1 % 2 == 1`(奇數),返回 `24 + f(0, 48)`。
5. `f(0, 48)`:由於 `n == 0`,返回 `0`。
逆向計算:
- `f(1, 24) = 24 + 0 = 24`
- `f(2, 12) = f(1, 24) = 24`
- `f(5, 6) = 6 + 24 = 30`
- `f(11, 3) = 3 + 30 = 33`
返回值為 33。(該函數實際計算 \(n \times k\) 的二進位乘法)。
評分準則
選擇正確選項得 1 分。選錯或選擇多個選項不給分。
某學校希望託管自己的虛擬學習環境(VLE)網站。IT 部門決定向雲端服務商租用虛擬機器(VM)和儲存空間。他們將自行安裝及維護作業系統、網頁伺服器軟體和 VLE 應用程式。該學校使用的是哪種雲端服務模式?
- A.基礎設施即服務 (IaaS)
- B.平台即服務 (PaaS)
- C.軟體即服務 (SaaS)
- D.資料庫即服務 (DBaaS)
解題
基礎設施即服務 (IaaS) 通過網際網路提供虛擬化的運算資源(如虛擬機器、儲存和網絡)。用戶可以控制作業系統、儲存空間以及部署的應用程式。本情境中,學校租用最基礎的虛擬機器和儲存空間並自行配置作業系統及應用,符合 IaaS 的定義。
評分準則
選擇正確選項得 1 分。選錯或選擇多個選項不給分。
一個 8 位元的暫存器使用二補碼表示法儲存一個帶符號整數。若該暫存器的內容為 \(10101100_2\),它的十進制值是多少?
- A.-84
- B.-44
- C.-83
- D.172
解題
在二補碼表示法中,最高有效位(MSB)是符號位。由於 MSB 為 1,此數為負數。\n求其數值大小:\n1. 將所有位元反轉:\(10101100 \rightarrow 01010011\)\n2. 將結果加 1:\(01010011 + 1 = 01010100_2\)\n3. 轉換為十進制:\(01010100_2 = 64 + 16 + 4 = 84\)。\n因此,該值為 \(-84\)。
考慮以下兩個數據庫數據表:`STUDENT` 和 `CLASS`。\n`STUDENT` 表:`StudentID`(主鍵)、`Name`、`ClassID`(參照 `CLASS.ClassID` 的外鍵)\n`CLASS` 表:`ClassID`(主鍵)、`TeacherInCharge`\n\n以下哪項操作必定會違反參照完整性(referential integrity)?\nI. 插入一個新的學生記錄,其 `ClassID` 在 `CLASS` 表中並不存在。\nII. 從 `CLASS` 表中刪除一個班級記錄,而 `STUDENT` 表中仍有一些學生記錄具有該 `ClassID`。\nIII. 將某個學生的 `Name` 更新為空值(null)。
- A.只有 I
- B.只有 I 及 II
- C.只有 II 及 III
- D.I、II 及 III
解題
I 違反了參照完整性,因為外鍵值必須存在於被參照數據表的主鍵列中。\nII 違反了參照完整性,因為刪除被參照的行會在參照表中留下孤立的外鍵。\nIII 沒有違反參照完整性,因為它只涉及 `Name` 屬性,而該屬性並非外鍵。
考慮以下偽代碼段:\n\n```\nX = 15\nY = 6\nWhile X != Y Do\n If X > Y Then\n X = X - Y\n Else\n Y = Y - X\n EndIf\nEndWhile\n```\n\n`X` 的最終值是多少?
- A.3
- B.6
- C.9
- D.15
解題
此偽代碼實現了求 X 和 Y 的最大公因數(GCD)的歐幾里得算法(輾轉相除法)。\n追蹤 X 和 Y 的值如下:\n- 初始:X = 15, Y = 6\n- 循環 1:X > Y (15 > 6),因此 X = 15 - 6 = 9\n- 循環 2:X > Y (9 > 6),因此 X = 9 - 6 = 3\n- 循環 3:X < Y (3 < 6),因此 Y = 6 - 3 = 3\n- 現在 X = 3 且 Y = 3。因為 X == Y,循環終止。\nX 的最終值為 3。
一部電腦的 IP 地址為 `192.168.10.45`,子網掩碼(subnet mask)為 `255.255.255.224`。以下哪一個 IP 地址與這部電腦屬於同一個子網?
- A.192.168.10.15
- B.192.168.10.30
- C.192.168.10.60
- D.192.168.10.65
解題
子網掩碼為 `255.255.255.224`。子網區段大小為 \(256 - 224 = 32\)。\n最後一個八位組的子網增量為 32:\n- 子網 1:.0 至 .31(可用地址:.1 至 .30)\n- 子網 2:.32 至 .63(可用地址:.33 至 .62)\n- 子網 3:.64 至 .95(可用地址:.65 至 .94)\n\n由於該電腦 IP 地址的最後一個八位組為 45,它屬於子網 2(.32 至 .63)。\n在選項中,`192.168.10.60` 的最後一個八位組(60)在此範圍內,因此它與該電腦屬於同一個子網。
Alice 想使用公開金鑰密碼學發送一條機密訊息給 Bob。她還希望確保 Bob 能夠驗證該訊息確實是由她發送的(身份驗證)。以下哪項描述了正確的加密過程?
- A.Alice 用 Bob 的公開金鑰加密訊息,然後用她自己的公開金鑰加密結果。
- B.Alice 用她自己的私有金鑰加密訊息,然後用 Bob 的公開金鑰加密結果。
- C.Alice 用 Bob 的私有金鑰加密訊息,然後用她自己的私有金鑰加密結果。
- D.Alice 用 Bob 的公開金鑰加密訊息,然後用她自己的私有金鑰加密結果。
解題
要同時達到機密性和身份驗證:\n1. Alice 用她自己的私有金鑰加密訊息。由於只有 Alice 擁有自己的私有金鑰,任何能夠使用 Alice 的公開金鑰解密該訊息的人,就知道該訊息必定來自她(身份驗證)。\n2. 然後,Alice 用 Bob 的公開金鑰加密所產生的密文。由於只有 Bob 擁有其私有金鑰,因此只有 Bob 可以進行第一階段解密,從而確保沒有其他人可以閱讀該訊息(機密性)。
考慮以下數據庫數據表 `SALES`:\n\n| SaleID | Product | Category | Amount |\n|---|---|---|---|\n| 1 | Laptop | IT | 8000 |\n| 2 | Mouse | IT | 150 |\n| 3 | Desk | Furniture | 1200 |\n| 4 | Chair | Furniture | 800 |\n| 5 | Phone | IT | 5000 |\n\n以下 SQL 查詢的輸出是什麼?\n\n```sql\nSELECT Category, AVG(Amount) FROM SALES\nGROUP BY Category\nHAVING COUNT(*) > 1 AND AVG(Amount) > 1000;\n```
- A.Category | AVG(Amount)
IT | 4383.33 - B.Category | AVG(Amount)
IT | 4383.33
Furniture | 1000.00 - C.Category | AVG(Amount)
Furniture | 1000.00 - D.空集合(沒有返回任何行)
解題
首先,查詢按 `Category` 分組:\n1. `IT` 類別分組包含金額為:8000, 150, 5000 的記錄。\n - `COUNT(*)` = 3\n - `AVG(Amount)` = (8000 + 150 + 5000) / 3 = 13150 / 3 = 4383.33\n2. `Furniture` 類別分組包含金額為:1200, 800 的記錄。\n - `COUNT(*)` = 2\n - `AVG(Amount)` = (1200 + 800) / 2 = 1000.00\n\n接下來,`HAVING` 子句過濾這些分組:\n- 對於 `IT`:`COUNT(*) > 1`(3 > 1,真)且 `AVG(Amount) > 1000`(4383.33 > 1000,真)。因此該分組被選中。\n- 對於 `Furniture`:`COUNT(*) > 1`(2 > 1,真)且 `AVG(Amount) > 1000`(1000 > 1000,假,因為 1000 不大於 1000)。因此該分組被過濾掉。\n\n因此,只會返回 `IT` 這一行。
關於虛擬記憶體中「抖動」(thrashing)的敘述,以下哪些是正確的?\n\nI. 當操作系統花費在輔助存儲器與內存之間交換頁面(swapping)的時間多於執行實際程序指令的時間時,就會發生抖動。\nII. 增加物理內存(RAM)的容量有助於解決抖動問題。\nIII. 重組硬碟是消除抖動最有效的方法。
- A.只有 I
- B.只有 I 及 II
- C.只有 II 及 III
- D.I、II 及 III
解題
敘述 I 是虛擬記憶體管理中「抖動」的定義。\n敘述 II 是正確的,因為增加物理記憶體可以減少操作系統進行頁面交換的需求,從根本上解決抖動問題。\n敘述 III 是錯誤的,因為硬碟重組與文件存儲佈局有關,而抖動是由於物理內存不足以容納運行中程序的活躍頁面所致。重組硬碟並不能解決抖動問題。
在 CPU 的「讀取-解碼-執行」週期中,在讀取一條指令後,哪一個暫存器會立即更新,以儲存下一條待讀取指令的地址?
- A.記憶體地址暫存器 (MAR)
- B.程序計數器 (PC)
- C.指令暫存器 (IR)
- D.累加器 (ACC)
解題
在「讀取」階段,指令地址是從程序計數器(PC)讀取的。在從記憶體讀取當前指令後,PC 會自動遞增/更新,以指向順序中的下一條指令的地址。
考慮關係 `BOOK_LOAN`,其屬性為:\n`{LoanID, StudentID, StudentName, BookID, BookTitle, LoanDate}`\n\n假設:\n- `LoanID` 為主鍵。\n- 每個學生都有唯一的 `StudentID` 和單一的 `StudentName`。\n- 每本書都有唯一的 `BookID` 和單一的 `BookTitle`。\n\n此關係滿足以下哪些正規形式(normal forms)?\n\nI. 第一正規化 (1NF)\nII. 第二正規化 (2NF)\nIII. 第三正規化 (3NF)
- A.只有 I
- B.只有 I 及 II
- C.只有 II 及 III
- D.I、II 及 III
解題
1. 1NF:所有屬性均包含原子值,因此它滿足 1NF。\n2. 2NF:主鍵為單一屬性(`LoanID`),因此不存在部分相依性(部分相依性僅在複合主鍵中才可能存在)。因此,它滿足 2NF。\n3. 3NF:我們有函數相依性:`LoanID -> StudentID` 且 `StudentID -> StudentName`。由於 `StudentID` 不是超鍵,且 `StudentName` 不是主屬性,因此存在遞移相依性:`LoanID -> StudentName`(透過 `StudentID`)。同理,`LoanID -> BookTitle` 也是遞移相依性(透過 `BookID`)。因此,它不滿足 3NF。\n因此,它僅滿足 I 和 II。
一家軟件開發公司希望開發並部署一個新的網頁應用程式。他們希望完全專注於編寫代碼和管理應用程式,而無需擔心管理底層的操作系統、硬件伺服器、存儲或網絡基礎設施。哪種雲端計算服務模式最適合他們?
- A.基礎設施即服務 (IaaS)
- B.平台即服務 (PaaS)
- C.軟件即服務 (SaaS)
- D.數據庫即服務 (DBaaS)
解題
平台即服務 (PaaS) 提供了一個預先配置好的環境(包括操作系統、數據庫、運行時和伺服器環境),這使開發人員可以構建、測試和運行其代碼,而無需管理底層的硬件和操作系統基礎設施。
考慮以下偽代碼:
```
Integer Array A[0..5] = {3, 8, 2, 9, 5, 4}
Integer i, temp
For i = 0 To 4 Do:
If A[i] > A[i+1] Then:
temp = A[i]
A[i] = A[i+1]
A[i+1] = temp
EndIf
EndFor
```
執行該偽代碼後,陣列 `A` 的內容是什麼?
- A.{2, 3, 4, 5, 8, 9}
- B.{3, 2, 8, 5, 4, 9}
- C.{3, 8, 2, 5, 4, 9}
- D.{3, 2, 5, 4, 8, 9}
解題
讓我們逐步追蹤演算法:
- 初始狀態下,A = {3, 8, 2, 9, 5, 4}。
- i = 0:比較 A[0] (3) 和 A[1] (8)。由於 3 > 8 為假,不進行交換。A 保持為 {3, 8, 2, 9, 5, 4}。
- i = 1:比較 A[1] (8) 和 A[2] (2)。由於 8 > 2 為真,交換兩者。A 變為 {3, 2, 8, 9, 5, 4}。
- i = 2:比較 A[2] (8) 和 A[3] (9)。由於 8 > 9 為假,不進行交換。A 保持為 {3, 2, 8, 9, 5, 4}。
- i = 3:比較 A[3] (9) 和 A[4] (5)。由於 9 > 5 為真,交換兩者。A 變為 {3, 2, 8, 5, 9, 4}。
- i = 4:比較 A[4] (9) 和 A[5] (4)。由於 9 > 4 為真,交換兩者。A 變為 {3, 2, 8, 5, 4, 9}。
因此,最終的陣列內容為 {3, 2, 8, 5, 4, 9}。
數據庫資料表 `STUDENT` 包含欄位 `StudentID`、`Name`、`Class` 和 `Score`。以下哪一個 SQL 查詢能正確顯示每個班別中取得 60 分或以上的人數,並同時顯示班別名稱?
- A.`SELECT Class, COUNT(*) FROM STUDENT WHERE Score >= 60 GROUP BY Class;`
- B.`SELECT Class, COUNT(*) FROM STUDENT GROUP BY Class HAVING Score >= 60;`
- C.`SELECT Class, COUNT(Score) FROM STUDENT WHERE Score >= 60 GROUP BY StudentID;`
- D.`SELECT Class, SUM(Score) FROM STUDENT WHERE Score >= 60 GROUP BY Class;`
解題
要尋找每個班別中分數為 60 分或以上的學生人數:
1. 我們首先使用 `WHERE` 子句篩選出 `Score >= 60` 的個人學生記錄。
2. 然後使用 `GROUP BY Class` 按照班別對篩選出的記錄進行分組。
3. 最後使用 `COUNT(*)` 計算每個分組中的學生人數。
選項 B 錯誤,因為 `HAVING` 只能用於篩選聚合函數的結果,而不能用於篩選個別列(除非該列在 GROUP BY 子句中)。選項 C 按 `StudentID` 進行分組,這無法按班別進行聚合。選項 D 使用了 `SUM(Score)`,這會計算分數的總和,而不是計算學生人數。
在關係數據庫中,資料表 `PROJECT` 具有複合主鍵 `(ProjID, MemberID)`。資料表 `MEMBER` 的主鍵為 `MemberID`。以下關於參照完整性(referential integrity)的敘述中,哪一項/些是正確的?
(1) `PROJECT` 中的 `MemberID` 是參照 `MEMBER` 中 `MemberID` 的外鍵。
(2) `PROJECT` 中的 `MemberID` 不能包含重複的值。
(3) 若 `MemberID` 不存在於 `MEMBER` 中,則不能將該記錄新增至 `PROJECT`。
- A.只有 (1)
- B.只有 (1) 及 (3)
- C.只有 (2) 及 (3)
- D.(1)、(2) 及 (3)
解題
- 敘述 (1) 正確:`PROJECT` 中的 `MemberID` 是一個外鍵,它參照 `MEMBER` 資料表的主鍵 `MemberID`。
- 敘述 (2) 錯誤:`MemberID` 是 `PROJECT` 中複合主鍵 `(ProjID, MemberID)` 的一部分。因此,單獨的 `MemberID` 允許出現重複值,只要每個 `(ProjID, MemberID)` 的組合是唯一的即可。
- 敘述 (3) 正確:在參照完整性約束下,外鍵的值必須存在於被參照的資料表中。因此,若 `MemberID` 不存在,則無法將該記錄新增到 `PROJECT` 中。
考慮以下表示圖書館系統的實體關係(ER)圖:
`[Reader] <---- (1:N) ---- [Borrow] ---- (N:1) ----> [Book]`
以下關於 `Reader` 與 `Book` 之間關係的描述,哪一項是正確的?
- A.一位讀者可以借閱多本書,且一本書可以在不同時間被多位讀者借閱。
- B.每位讀者只能借閱一本書,且每本書只能被一位讀者借閱。
- C.關係資料表 `Borrow` 的複合主鍵必須僅由 `Reader` 和 `Book` 的主鍵組成,不允許包含其他任何欄位。
- D.Reader 與 Book 之間的關係是一對一(1:1)關係。
解題
關係 `Borrow` 作為一個關聯實體表,用於解決 `Reader` 和 `Book` 之間的多對多(N:M)關係。因此,一位讀者可以借閱多本書,且一本書也可以在不同時間被不同的讀者借閱,這使得選項 A 正確,而選項 B 和 D 錯誤。選項 C 錯誤,因為關聯表 `Borrow` 可以(且通常)包含其他欄位(例如 `BorrowDate`、`DueDate`)。
一部電腦的 IP 地址為 `192.168.10.75`,子網掩碼為 `255.255.255.240`。以下哪一個是該電腦所屬子網的網絡地址(或子網 ID)?
- A.`192.168.10.0`
- B.`192.168.10.64`
- C.`192.168.10.72`
- D.`192.168.10.80`
解題
要尋找網絡地址,我們需要將 IP 地址與子網掩碼進行按位與(AND)運算。由於子網掩碼的前三個八位位組是 `255.255.255`,因此網絡地址的前三個八位位組保持為 `192.168.10`。
對於最後一個八位位組:
- IP 地址的最後一個八位位組:\(75 = 01001011_2\)
- 子網掩碼的最後一個八位位組:\(240 = 11110000_2\)
- 按位與運算:\(01001011_2 \text{ AND } 11110000_2 = 01000000_2\),即十進制的 \(64\)。
因此,網絡地址為 `192.168.10.64`。
一個音頻檔案以下列規格進行錄製:
- 採樣率:\(44.1 \text{ kHz}\)
- 採樣大小:\(16\text{-bit}\)
- 聲道:雙聲道(2 聲道)
- 長度:\(2\text{ 分鐘}\)
在不進行壓縮的情況下,該音頻檔案的估算大小是多少百萬字節(MB)?(假設 \(1 \text{ MB} = 10^6 \text{ 字节}\))
- A.\(5.3 \text{ MB}\)
- B.\(10.6 \text{ MB}\)
- C.\(21.2 \text{ MB}\)
- D.\(42.3 \text{ MB}\)
解題
檔案大小(位元)= 採樣率 \(\times\) 採樣大小 \(\times\) 聲道數 \(\times\) 長度
- 採樣率 = \(44,100 \text{ Hz}\)
- 採樣大小 = \(16 \text{ bits} = 2 \text{ bytes}\)
- 聲道 = \(2\)
- 長度 = \(2 \text{ 分鐘} = 120 \text{ 秒}\)
檔案大小(字節)= \(44,100 \times 2 \text{ bytes} \times 2 \times 120 \text{ seconds} = 21,168,000 \text{ 字節}\)。
由於 \(1 \text{ MB} = 10^6 \text{ 字節}\),檔案大小為 \(21,168,000 / 10^6 = 21.168 \text{ MB}\),約為 \(21.2 \text{ MB}\)。
以下關於不同類型電腦記憶體的描述,哪一項/些是正確的?
(1) 高速緩衝記憶體(Cache memory)比主記憶體(RAM)更快,用於儲存經常存取的數據。
(2) ROM 是非易失性的(non-volatile),通常用於儲存 BIOS/UEFI 啟動程式。
(3) RAM 是易失性的(volatile),這意味著當電源關閉時其內容會丟失。
- A.只有 (1) 及 (2)
- B.只有 (1) 及 (3)
- C.只有 (2) 及 (3)
- D.(1)、(2) 及 (3)
解題
這三個描述都是正確的:
- 描述 (1) 正確:高速緩衝記憶體(Cache memory)是一種高速靜態隨機存取記憶體(SRAM),可幫助 CPU 比從動態隨機存取記憶體(DRAM / 主記憶體)更快地存取常用數據。
- 描述 (2) 正確:唯讀記憶體(ROM)是非易失性的,斷電後仍能保留其內容,因此適合儲存系統韌體或啟動載入程式。
- 描述 (3) 正確:隨機存取記憶體(RAM)是易失性的,需要電源才能維持其數據。
Alice 想要通過互聯網向 Bob 發送一份機密文件。為了確保**機密性**(只有 Bob 能閱讀該文件)和**真實性**(Bob 能驗證 Alice 是發送者),Alice 應該使用以下哪一種加密方法?
- A.先使用 Alice 的私鑰加密文件,再使用 Bob 的公鑰加密其結果。
- B.先使用 Bob 的私鑰加密文件,再使用 Alice 的公鑰加密其結果。
- C.先使用 Alice 的公鑰加密文件,再使用 Bob 的私鑰加密其結果。
- D.先使用 Bob 的公鑰加密文件,再使用 Alice 的公鑰加密其結果。
解題
為了同時實現機密性和真實性:
1. **真實性/完整性**:Alice 使用她自己的私鑰對文件進行加密(簽署)。因為只有 Alice 擁有她自己的私鑰,任何使用 Alice 的公鑰解密該文件的人都可以確認該文件必然源自 Alice。
2. **機密性**:Alice 隨後使用 Bob 的公鑰對前一步的結果進行加密。因為只有 Bob 擁有對應的私鑰,所以只有 Bob 可以解密外層。
因此,選項 A 是正確的。(註:在實際應用中,為了優化性能,通常會對主體文件使用對稱加密,但非對稱密鑰封裝的邏輯是相同的)。
一家軟件公司想要部署一個網頁應用程式。他們決定不管理實體伺服器,而是向雲端服務供應商租用虛擬機和儲存空間,以允許他們安裝自己的操作系統、數據庫和應用軟件。他們正在使用哪一種雲端服務模型?
- A.軟件即服務(SaaS)
- B.平台即服務(PaaS)
- C.基礎設施即服務(IaaS)
- D.數據庫即服務(DBaaS)
解題
基礎設施即服務(IaaS)通過互聯網提供虛擬化的計算資源(伺服器、虛擬機、儲存空間和網絡)。客戶對操作系統、數據庫和運行時環境保持完全控制權。相比之下,平台即服務(PaaS)抽象化了操作系統和伺服器管理,而軟件即服務(SaaS)則直接提供即用型軟件應用程式。
以下哪一項/些是操作系統(OS)執行的典型任務?
(1) 分配記憶體空間給不同的運行中應用程式。
(2) 使用裝置驅動程式管理輸入/輸出裝置。
(3) 掃描檔案以檢測並清除電腦病毒。
- A.只有 (1) 及 (2)
- B.只有 (1) 及 (3)
- C.只有 (2) 及 (3)
- D.(1)、(2) 及 (3)
解題
- 描述 (1) 和 (2) 正確:記憶體管理(分配 RAM 給程序)和裝置管理(通過驅動程式與硬體組件進行通訊)是操作系統的基本任務。
- 描述 (3) 錯誤:掃描和清除電腦病毒是由防毒軟體執行的,防毒軟體被歸類為實用工具軟體(utility software),而不是操作系統核心本身的基本服務或任務。