/s5-ict-programming-modular-oop-databases-practice-paper/
/s5-ict-programming-modular-oop-databases-practice-paper/
一般查詢: info@TutorZone.com.hk
辦公時間: 星期一至六 - 上午 9 時至下午 6 時
WhatsApp 星期一至日 - 24 小時
人手接聽: +852 6828 1809
即時客服: +852 9061 3106

中五資訊及通訊科技練習卷:程式編寫、物件導向與資料庫應用(100 分)

中五資訊及通訊科技練習卷:程式編寫、物件導向與資料庫應用(100 分)

  • 2026-11-12

練習卷 · 資訊及通訊科技 程式編寫與資料庫

中五資訊及通訊科技練習卷:全卷 6 題 24 部分、100 分、75 分鐘,涵蓋二進制與二補碼換算、點陣圖檔案大小、線性與二分搜尋、泡沫排序比較次數、函數與遞歸追蹤、物件導向的類別與封裝、SQL 連接與查詢、正規化,以及等價類與演算法效率比較,每題附評分要點及完整計算步驟。

卷面資料 年級:S5 | 科目:資訊及通訊科技 | 時限:75 分鐘 | 總分:100 分 | 題數:24

第 1 題 數據表示:二進制、補碼與點陣圖(16 分)

各分題獨立作答,須列出換算過程或計算式。

# 題目 答案與評分要點
1 把二進制數 10110110 轉換為十進制數。 答案:10110110 = 128 + 32 + 16 + 4 + 2 = 182。(4 分:位值展開 2 分、結果 2 分)
2 把十進制數 200 分別轉換為 8 位二進制數及十六進制數。 答案:200 = 11001000(二進制);200 = C8(十六進制)。(4 分:二進制 2 分、十六進制 2 分)
3 以 8 位二補碼表示負數,寫出 −90 的 8 位二補碼。 答案:256 − 90 = 166,即 10100110。(4 分:先求 256 − 90 給 2 分、二進制結果 2 分)
4 一幅 1024 × 768 像素、每個像素 24 位元色彩的未壓縮點陣圖,求其檔案大小(以 byte 及 MiB 表示,1 MiB = 1 048 576 byte)。 答案:786432 × 3 = 2359296 byte,即 2.25 MiB。(4 分:計算式 2 分、兩個單位各 1 分)

第 2 題 演算法與程式碼追蹤(18 分)

只寫出最終數值,不用抄寫程式碼。

# 題目 答案與評分要點
5 程式以迴圈由 1 累加至 10(包含 10),求累加器的最終值及迴圈執行次數。 答案:總和 = 55,迴圈執行 10 次。(4 分:總和 3 分、次數 1 分)
6 在列表 [3, 8, 5, 12, 7] 中以線性搜尋找 12,共需比較多少次? 答案:需比較 4 次(3、8、5、12)。(4 分:答案 3 分、指出比較次序 1 分)
7 對已排序的 16 項資料及 100 項資料分別使用二分搜尋,最壞情況下最多比較多少次? 答案:16 項最多 4 次;100 項最多 7 次。(5 分:16 項 2 分、100 項 2 分、說明每次減半 1 分)
8 泡沫排序處理 6 項及 10 項資料,最壞情況下各需比較多少次?寫出比較次數與項數的公式。 答案:6 項需 15 次,10 項需 45 次;公式為 n(n − 1) ÷ 2。(5 分:兩個數值各 2 分、公式 1 分)

第 3 題 函數、遞歸與模組化(18 分)

須寫出運算結果或解釋,答案須指明變數的範圍。

# 題目 答案與評分要點
9 函數 fact(n) 回傳 n 的階乘。求 fact(5) 的回傳值及函數被呼叫的次數(只計 fact 本身一次)。 答案:fact(5) = 120;fact 只被呼叫 1 次(以迴圈實作)。(4 分:數值 3 分、次數 1 分)
10 遞歸函數 fib(1) = 1、fib(2) = 1、fib(n) = fib(n − 1) + fib(n − 2)。求 fib(7)。 答案:數列為 1、1、2、3、5、8、13,故 fib(7) = 13。(5 分:列出數列 3 分、結果 2 分)
11 主程式設 x = 12,函數內另有區域變數 x = 30。主程式在呼叫函數後印出 x,求印出的值並解釋原因。 答案:印出 12;函數內的 x 屬區域變數,只在函數內生效,不改變主程式的 x。(4 分:數值 2 分、解釋 2 分)
12 把程式分成多個模組有甚麼好處?寫出兩項,並各舉一個例子。 答案:①易於除錯與維護,例如只修改負責計算成績的模組;②可重複使用,例如同一輸入驗證模組供多個程式引用。(5 分:每項 2 分、例子共 1 分)

第 4 題 物件導向設計(16 分)

以類別、屬性、方法及物件等詞語作答。

# 題目 答案與評分要點
13 類別 Student 有 3 個屬性及 2 個方法。若建立 4 個 Student 物件,共有多少個屬性值? 答案:每個物件 3 個屬性值,4 個物件共 12 個。(4 分:計算式 2 分、結果 2 分)
14 父類 Person 有 3 個方法,子類 Teacher 新增 2 個方法並覆寫 1 個父類方法。Teacher 物件可呼叫多少個不同的方法? 答案:5 個(父類 3 個中 1 個被覆寫,仍算 1 個方法,加上新增 2 個)。(4 分:結果 3 分、解釋 1 分)
15 解釋「封裝」的意思,並說明為何要把屬性設為私有。 答案:封裝是把資料與操作資料的方法包在同一類別內,只透過公開方法存取;屬性設為私有可防止外部程式直接改動資料,確保資料經檢查後才更新。(4 分:定義 2 分、理由 2 分)
16 一個程式有 3 個類別,每個類別有 2 個公開方法,另有 1 個主程式呼叫這些方法。若每個公開方法都被呼叫 2 次,求方法呼叫總次數。 答案:3 × 2 × 2 = 12 次。(4 分:計算式 2 分、結果 2 分)

第 5 題 資料庫與 SQL(18 分)

資料表 Student(SID, Name) 有 4 列,資料表 Score(SID, Mark) 有 7 列,每列分數均對應 Student 內的一位學生。

# 題目 答案與評分要點
17 指出 Student 資料表的主鍵,並說明 Score 資料表中的 SID 是甚麼鍵。 答案:Student 的主鍵是 SID;Score 的 SID 是外鍵,參照 Student 的主鍵。(4 分:主鍵 2 分、外鍵及參照說明 2 分)
18 兩表以 SID 連接(join)後,結果共有多少列?解釋原因。 答案:7 列;因每列分數只對應一位學生,一對多連接後列數等於 Score 的列數。(5 分:列數 3 分、解釋 2 分)
19 執行 SELECT COUNT(*) FROM Score WHERE Mark 大於或等於 60;分數依次為 82、57、65、48、90、73、60。求結果。 答案:結果為 5(合資格分數:82、65、90、73、60)。(5 分:結果 3 分、列出合資格分數 2 分)
20 一個未正規化的成績表同時記錄學生姓名、科目名稱及分數,並出現重複組。把它正規化至第三正規形,最少要分成多少個資料表?寫出各表名稱。 答案:最少 3 個表,即 Student、Subject 及 Score(Score 存放 SID、SubjectID 及分數)。(4 分:數量 2 分、表名及分工 2 分)

第 6 題 系統開發、測試與效率(14 分)

答案須寫出計算過程或比較理由。

# 題目 答案與評分要點
21 一個程式有 3 個有效等價類及 2 個無效等價類,每個等價類測試上界與下界兩個邊界值。求最少測試個案數目。 答案:(3 + 2) × 2 = 10 個測試個案。(4 分:計算式 2 分、結果 2 分)
22 比較黑箱測試與白箱測試,各寫出一項用途。 答案:黑箱測試只看輸入與輸出,用於核對功能是否符合需求;白箱測試檢查程式內部路徑與分支,用於確保每條路徑都被執行。(4 分:每項 2 分)
23 寫出一項能減低程式日後難以維護的做法,並說明它如何幫助測試。 答案:在關鍵步驟加上註釋及使用有意義的變數名稱,測試人員可據此判斷每段程式的作用,較易找出錯誤所在。(3 分:做法 2 分、與測試的關聯 1 分)
24 演算法甲的時間複雜度為 n 的平方,演算法乙為 n log2 n。當 n = 1000 時,求兩者的運算次數,並求甲是乙的多少倍。 答案:甲 = 1000000 次,乙 = 10000 次,甲為乙的 100 倍。(3 分:每項 1 分)

立即免費搵導師導師登記 →

TutorZone 練習卷|題目與文章為原創,並非任何學校或出版社的教材。

招募導師及興趣班教練|學術、樂器、體育、藝術、STEM,免費登記,招生與配對交給平台。 了解詳情 →