
年公務人員特種考試司法人員、法務部調查局
調查人員、海岸巡防人員、移民行政人員考試及110年
未具擬任職務任用資格者取得法官遴選資格考試試題
※注意:禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
本科目除專門名詞、數理公式或程式碼外,應使用本國文字作答。
代號:
頁次:
-
一、以下為 C++定義類別 Student 與Class 的程式碼,請撰寫一「班級成績計
算」的 C++程式,首先讓使用者輸入兩班學生(每班各有 3位學生)的
姓名與國文、英文、數學課的成績,並符合以下的要求:(25 分)
為類別 Class 撰寫一建構元函式,將班上 3位學生的國文、英文、數
學的成績、該班學生成績的平均分數與最高總分設為 0
為類別 Class 撰寫一方法 cal( ),計算該班學生的平均分數
為類別 Class 撰寫一方法 findTop( ),找出該班學生的最高總分與其
所在位置
撰寫運算子>多載(overloading)功能,可以比較兩班的最高總分,
並回傳是那一班的最高總分較高
撰寫主程式 main( )以驗證此程式的正確性
類別 Student 與Class 的程式碼如下:
class Student { //學生類別定義
public:
string name; //學生姓名
int chn,eng,math; //學生國英數成績
};
class Class { //班級類別定義
public:
Student student[3]; //每班 3位學生
double avg; //該班學生的平均分數
int top, top_index; //該班學生的最高總分與其所在位置
public:
Class(); //建構元函式將類別內變數初值設為 0
int operator>(Class &win); //定義運算子>的多載,以回傳最高
//總分班級
void cal(void); //計算該班學生的平均分數
void findTop(void); //找出該班學生的最高總分與其所在位置
};

代號:
頁次:
-
程式執行範例如下:
第1班第 1位學生名字:大明
請依序輸入他的國英數成績:85 66 92
第1班第 2位學生名字:阿美
請依序輸入他的國英數成績:92 85 78
第1班第 3位學生名字:小凱
請依序輸入他的國英數成績:96 92 90
第2班第 1位學生名字:大雄
請依序輸入他的國英數成績:65 82 72
第2班第 2位學生名字:阿吉
請依序輸入他的國英數成績:98 92 99
第2班第 3位學生名字:小文
請依序輸入他的國英數成績:90 92 95
第1班平均成績:86.22
第2班平均成績:87.22
最高分在第 2班是阿吉,總分為 289 分
二、變數的種類可概分為區域變數(Local Variable)、全域變數(Global
Variable)與靜態變數(Static Variable),請就宣告方式、有效範圍
(Scope)、程式碼維護比較其差異。(15 分)
遞迴函式(Recursive Function)通常也可以改用迴圈(Loop)方式來
撰寫,請就程式碼撰寫難易度、理解性、執行效能、記憶體使用比較
其差異。(10 分)
三、請使用 C/C++、Java 或Python 任一程式語言撰寫一支加密演算法程式,
讓使用者輸入一語句,然後將語句中的每個大小寫字母轉換成其反序的
字母(A↔Z、B↔Y、C↔X、…、x↔c、y↔b、z↔a),若所輸入的語句
中有不是英文字母的字元則以原字元輸出。例如:所輸入的語句為
「abcd6ZYXW$」,則輸出應為「zyxw6ABCD$」;所輸入的語句為「R olev
blf!」,則輸出應為「I love you!」。(25 分)

代號:
頁次:
-
四、中華民國的身分證字號共有 10 個字元,其編碼原則如下:第一個字元為
大寫的英文字母,代表出生地區,其餘 9個字元皆為數字。在套用編碼
原則時,第一個大寫英文字母須先依下表轉換為數字:
字母 A B C D E F G H I J K L M
數字 10 11 12 13 14 15 16 17 34 18 19 20 21
字母 N O P Q R S T U V W X Y Z
數字 22 35 23 24 25 26 27 28 29 32 30 31 33
轉換後的身分證字號共有 11 位數字,每一位數字均有固定的權重
(Weight),由左往右依序為 1, 9, 8, 7, 6, 5, 4, 3, 2, 1, 1。判斷身分證字號
是否正確的方法為:各位數字與其相對應的權重相乘後再加總,加總後
的結果若為 10 的倍數,則該身分證字號即屬有效。請使用 C/C++、Java
或Python 任一程式語言撰寫一支中華民國身分證字號的驗證程式。例如
所輸入的身分證字號為「A123456789」,則輸出應為「A123456789 為有
效的身分證字號」;所輸入的身分證字號為「Z987654321」,則輸出應為
「Z987654321 為無效的身分證字號」。(25 分)