114 身心障礙特考四等 資訊處理類科 程式設計概要 考古題詳解

114 年・身心障礙特考・四等・資訊處理類科
試題代碼 程式設計概要

第 一 題25 分

請說明下列物件導向程式設計的概念:

(一)列出物件導向程式設計的四個核心特性。(5 分)

(二)列出類別(Class)與物件(Object)之間的差異。(10 分)

(三)請說明相較於結構化程式設計,使用物件導向程式設計的優點。(10 分)

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

這一題的完整詳解

核心觀念

本題測驗物件導向程式設計的核心特性,以及類別與物件的關係;最後比較物件導向與結構化程式設計的設計方式和優點。

物件導向程式設計(Object-Oriented Programming, OOP)以「物件」為基本單位,將資料與操作資料的方法組合在一起,並透過類別描述物件的共通結構與行為。

解題方法

(一)四個核心特性通常答:封裝、抽象、繼承、多型。作答時列出名稱,再各用一句話說明,能清楚呈現概念。

(二)比較類別與物件,可從「定義與實例」、「是否占有執行期資源」、「包含內容」三個面向說明。記住:類別是藍圖,物件是依藍圖建立的實例。

(三)比較兩種程式設計方式時,先說明結構化程式設計以程序或函式為組織重心,物件導向則以物件為組織重心;再說明物件導向如何改善資料保護、程式重用、維護與擴充。

(一)物件導向程式設計的四個核心特性

  1. 封裝(Encapsulation):將資料與操作資料的方法集中於同一物件,並透過存取權限控制外部對資料的使用,降低資料遭不當修改的風險。
  2. 抽象(Abstraction):保留使用者需要的功能介面,隱藏內部實作細節,讓使用者專注於「能做什麼」,不必知道「如何做到」。
  3. 繼承(Inheritance):子類別可以承接父類別的屬性與方法,並在此基礎上新增或調整功能,減少重複程式碼。
  4. 多型(Polymorphism):不同類別的物件可以透過相同介面接受操作,並依各自類別提供不同的實際行為。

(二)類別(Class)與物件(Object)的差異

比較面向類別(Class)物件(Object)
定義描述一類事物的共同屬性與行為,是建立物件的藍圖或模板。依類別建立的具體實例,具有該類別定義的屬性與行為。
抽象程度抽象的型別或設計描述。執行期間可操作的具體個體。
內容定義資料欄位、方法及存取規則。持有欄位的實際值,並可呼叫類別所定義的方法。
🔒

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

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

免費註冊

第 二 題25 分

請撰寫下列兩個遞迴函式 findMin() 及 findMax(),分別找出給定的數列中最小及最大數。

Minimum Function

def findMin(arr, n): ____

Maximum Function

def findMax(arr, n): ____

Main Program

arr = [12, 1, 1234, 45, 67, 1]

n = len(arr)

print("Minimum element of array:", findMin(arr, n))

print("Maximum element of array:", findMax(arr, n))

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

這一題的完整詳解

核心觀念

本題考遞迴與陣列最值搜尋。遞迴函式會將原問題縮小為規模更小的同類問題,直到遇到「基本情況」為止。

令 n 表示陣列前 n 個元素的數量:

  • 當 n == 1,唯一的元素就是最小值,也是最大值。
  • 當 n > 1,先找出前 n-1 個元素的最小值或最大值,再與第 n 個元素比較。

解題方法

先處理基本情況:n == 1 時,回傳 arr[0]。接著取出 arr[n-1],也就是目前考慮的最後一個元素,並與前 n-1 個元素的最值比較。

def findMin(arr, n):
 if n == 1:
 return arr[0]

 return min(findMin(arr, n - 1), arr[n - 1])

def findMax(arr, n):
 if n == 1:
 return arr[0]

 return max(findMax(arr, n - 1), arr[n - 1])

以題目陣列 arr = [12, 1, 1234, 45, 67, 1] 為例,最小值的遞迴比較依序為:

🔒

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

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

免費註冊

第 三 題25 分

(一)請說明如何以一個單層迴圈找出下列 numbers 數列內的第二大數字。(10 分)

(二)請說明此問題需處理的特殊狀況。(5 分)

(三)請以 Python 語法寫一個單層 while 迴圈,找出下列 numbers 數列中的第二大數字。(10 分)

numbers = [41, 134, 24, 189, …, 127] # 假設已經有多個數值

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

這一題的完整詳解

核心觀念

本題考查單層迴圈與串流式追蹤最大值。從左到右各讀取一次數列,以兩個變數分別記錄目前最大值與第二大值,不必排序,也不需要巢狀迴圈。

以下將「第二大」定義為第二大的不同數值。因此,若最大值重複出現,重複的最大值不算第二大;例如 [9, 9, 5] 的第二大數字是 5。

解題方法

設定 largest 記錄目前最大值、second 記錄目前第二大值。逐一檢查每個數字 x:

  • 若 x>largestx > \text{largest},原本的最大值降為第二大值,再以 xx 更新最大值。
  • 否則,若 second<x<largest\text{second} < x < \text{largest},以 xx 更新第二大值。
  • 其他情況不更新;尤其 x=largestx = \text{largest} 時,因為相同數值不算第二大,不應更新 second。

例如依序讀取 41, 134, 24, 189:

讀入數字largestsecond
4141尚未取得
13413441
2413441
189189134

每個數字只檢查一次,時間複雜度為 O(n)O(n);只使用固定數量的變數,額外空間複雜度為 O(1)O(1)。

特殊狀況

  • 數列少於兩個不同數值:不存在第二大的不同數字,應回報「無第二大值」。
  • 最大值重複:重複的最大值不能當成第二大值,例如 [7, 7, 3] 的第二大值是 3。
  • 全部數值相同:例如 [7, 7, 7],沒有第二大值。
  • 負數或零:不能直接把 largest、second 初始化為 0,否則全為負數時會出錯。應以第一個數字初始化最大值,第二大值則用 None 表示尚未取得。
  • 空數列:沒有第一個數字可初始化,因此不存在第二大值。

Python 單層 while 迴圈

🔒

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

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

免費註冊

第 四 題25 分

下列 HTML 程式有一些錯誤,請列出錯誤的行號並更正成正確的語法。(25 分)

(a) <!DOCTYPE html>

(b) <html>

(c) <head>

(d) <title>Test Page

(e) </head>

(f) <body>

(g) <h1>Welcome to this Info Page</h2>

(h) <p>This should be <b>bold text.<p>

(i) <a href="www.more.com">More Examples</a>

(j) <img src="image.jpg" alt="Test Image">

(k) <ul>

(l) <li>Item 1

(m) <li>Item 2

(n) <li>Item 3

(o) </ul>

(p) <form action="submit.php" method="post">

(q) Name: <input type="text" name="go">

(r) <input type="submit" value="Submit">

(s) </form>

(t) </body>

(u) </html>

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

這一題的完整詳解

核心觀念

本題考查 HTML 文件的基本結構與標籤配對,包括文件標頭、標題、標題文字、段落、粗體文字、超連結、清單項目及表單欄位。HTML 標籤通常以起始標籤與結束標籤包住內容,例如 <title>標題</title>;結束標籤須使用斜線,並與起始標籤的名稱相同。

解題方法

由上而下檢查標籤是否完整配對、巢狀順序是否正確,以及標籤屬性是否符合用途。題目中的行號代表各行位置;需要更正的行號為 (d)、(g)、(h)、(i)、(l)、(m)、(n)。

  • (d) 標題未結束: <title> 的文字內容缺少 </title>。
  • (g) 結束標籤不相符: 起始標籤是 <h1>,卻以 </h2> 結束,應改為 </h1>。
  • (h) 標籤未正確巢狀閉合: <b> 未結束,段落也以另一個 <p> 開頭而未結束。應先關閉粗體,再關閉段落。
  • (i) 超連結網址缺少通訊協定: href 應使用完整網址,例如以 ` 開頭。
  • (l)、(m)、(n) 清單項目未結束: 每個 <li> 項目都應以 </li> 結束。

其餘行的 HTML 標籤在本題所要求的基本語法檢查中無須更正。

錯誤行更正

行號原因更正後語法
(d)<title> 缺少結束標籤<title>Test Page</title>
🔒

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

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

免費註冊

其他考古題