中五資訊及通訊科技練習卷:程式編寫、物件導向與資料庫應用(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 練習卷|題目與文章為原創,並非任何學校或出版社的教材。


