資訊處理 111 年程式設計概要考古題(共 5 題)
資料來源:考選部歷屆試題|法律人 LawPlayer 整理
https://lawplayer.com/exam/information-processing/111-%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88%E6%A6%82%E8%A6%81
第 1 題
有關C++物件導向程式設計,請回答下列問題:
㈠基底類別的成員中,何者可以在基底類別和衍生類別中定義,使基底類
別和衍生類別的朋友可以存取?請試舉二者。(6 分)
㈡請解釋運算符號<< 的多重含義。(6 分)
㈢那個運算子可以用於安全地向下轉換(downcast)基底類別指標?(3 分)
㈣當類別成員指定為何者時,只能由類別的成員函數和類別的朋友來存
取?(3 分)
㈤運算子中,何者用於動態分配記憶體和建構物件,且此運算子可回傳一
個指向物件的指標?(3 分)
第 2 題
有關Java 程式設計,請回答下列問題:
㈠說明下列class Test2_B 程式之功能。(8 分)
㈡說明funcA 程式的功能。(5 分)
㈢說明funcB 程式的功能。(5 分)
㈣說明funcC 程式的功能。(5 分)
㈤說明main 程式的功能。(5 分)
第 3 題
有關C 程式設計,請回答下列問題:
㈠說明下列程式之功能。(6 分)
㈡說明funcA 程式的功能。(5 分)
㈢說明funcB 程式的功能。(5 分)
㈣說明funcC 程式的功能。(5 分)
㈤說明main 程式的功能。(5 分)
第 4 題
有關Python 程式設計,請回答下列問題:
㈠下列程式執行結果為何?(7 分)
㈡下列程式執行結果為何?(4 分)
㈢請寫一個python 程式,它可以隨機產生500 個0 到9 之間的整數,並
能顯示每個數字出現的次數。(10 分)
㈣下列程式執行結果為何?(4 分)
第 8 題
9
10
11
12
13
let iconList = [];
for (const extId of fs.ls("/extension")) {
let extension = fs.read(`/extension/${extId}/extension.js`);
ext = eval(extension);
iconList.push(fs.read(`/extension/${extId}/${ext.icon}`));
}
for (const [index, element] of Object.entries($("span .treeIcon"))) {
if (typeof element === "object") {
$(element).append(`
`);
}
}
㈡以下程式碼請依執行先後說明執行的結果。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
三、請使用C, C++, C#, Java 或Python 程式語言撰寫一支完整的程式將班級
學生的百分制成績轉換為等第制成績,轉換的規則如下:(20 分)
百分制成績
等第制成績
成績≥(平均數+2個標準差)
A
(平均數+1個標準差)≤成績<(平均數+2個標準差)
B
平均數≤成績<(平均數+1個標準差)
C
(平均數–1個標準差)≤成績<平均數
D
(平均數–2個標準差)≤成績<(平均數–1個標準差)
E
成績<(平均數–2個標準差)
F
程式執行需讓使用者輸入班級所有學生的百分制成績,成績以空白格隔
開,程式再將班級的平均成績、變異數與標準差、每位學生的編號、百
分制成績與等第制成績列印出。程式可使用所採用之程式語言的統計函
數、模組或套件來求算平均成績、變異數與標準差,以下為程式執行之
參考範例。(備註:斜體加外框線之整數為使用者所輸入,其餘皆為程式
執行的輸出。)
請輸入班級修課學生的百分制成績(以空白格隔開):100 90 80 70 60 50
40 30 20 10
班級平均成績=55
班級變異數成績=825
班級標準差成績=28.72
第1 位學生的百分制成績=100, 等第制成績=B
第2 位學生的百分制成績=90, 等第制成績=B
第3 位學生的百分制成績=80, 等第制成績=C
第4 位學生的百分制成績=70, 等第制成績=C
第5 位學生的百分制成績=60, 等第制成績=C
第6 位學生的百分制成績=50, 等第制成績=D
第7 位學生的百分制成績=40, 等第制成績=D
第8 位學生的百分制成績=30, 等第制成績=D
第9 位學生的百分制成績=20, 等第制成績=E
第10 位學生的百分制成績=10, 等第制成績=E
四、問卷常被使用來進行服務滿意度調查,以下數據是某單位資訊中心新系
統使用的滿意度調查結果,數值為人次。請以Python 程式製作一張圓餅
圖,圖上須顯示出百分比及標籤。(20 分)
非常滿意
:65
滿意
:97
普通
:103
不滿意
:45
非常不滿意
:51
五、以下二小題是完整的物件導向程式碼,請回答以下各小題。
(每小題10 分,共20 分)
㈠以下為Python 完整程式碼,請回答執行的結果為何?
class Employee:
all = []
def __init__(self, idno, first_name, last_name):
self.id = idno
self.first_name = first_name
self.last_name = last_name
Employee.all.append(self)
def __repr__(self):
return f"(ID={self.id}, Name={self.first_name} {self.last_name})"
if __name__ == "__main__":
e1 = Employee('001', 'Peter', 'Lee')
e2 = Employee('002', 'Ann', 'Lo')
print(Employee.all)
㈡以下為C#的類別程式碼,類別Employee 內的欄位不可以由非繼承的
類別讀取或寫入,請檢視此程式是否可以正確執行?若無法正確執行
的話,請寫出正確的程式碼。
public abstract class Employee {
private string id;
private string name;
private int age;
public Employee() {
}
}
public class Staff : Employee {
public Staff(string _id, string _name, int _age) {
this.id = _id;
this.name = _name;
this.age = _age;
}
}
題目為考試當年公告版本,實務標準請以現行規範為準。