
107年公務人員普通考試試題 代號:44650  全三頁
第一頁
類科: 資訊處理 
科目: 程式設計概要
考試時間: 1 小時 30 分座號: 
※注意: 
禁止使用電子計算器。 
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。 
本科目除專門名詞或數理公式外,應使用本國文字作答。 
 
 
 
一、請回答以下對 C/C++程式語言的敘述正確與否?如果敘述是錯誤的,需說明正確敘
述為何。(每小題 3分,共 30 分) 
程式執行的結果與預期的不同,這種錯誤稱為執行期錯誤(Runtime Error)。 
屬自由格式(Free-Form)、隱含型別宣告(Implicit Type Declaration)程式語言。 
switch 選擇結構中,default 敘述為選擇性,故可省略。 
陣列(Array)無法存放一連串資料型別不同的相關資料。 
當&&運算子中的只要有一個運算元為真時,則該運算式的結果為真。 
可使用結構(Structure)陣列變數的名稱指向該陣列中的任一個資料。 
程式在編譯階段即配置完成其所需記憶體的方式稱為動態記憶體配置(Dynamic 
Memory Allocation)。 
當不同的物件收到相同的訊息時,會以各自的方法作處理的特點稱為多載
(Overloading)。 
子類別將繼承自父類別的方法重新定義,而且不會影響到父類別的方法,這個特
點稱為多載(Overloading)。 
子類別可多重繼承自父類別內所有的資料成員與成員函數。 
二、請問以下程式輸出的結果為何?(10 分) 
#include <iostream> 
#include <cstdlib> 
using namespace std; 
int main(void){       
    int i=0, sum=0; 
    while(i < 21) { 
        if(i % 3 != 0) { 
            i++; 
            continue;  
        } 
        sum += i++; 
    } 
    cout<< "i=" <<i<< ", SUM=" << sum <<endl;  
 
    return 0; 
}   
 
 
(請接第二頁) 
 

107年公務人員普通考試試題 代號:44650  全三頁
第二頁
類科: 資訊處理 
科目: 程式設計概要
 
 
 
三、請問以下程式輸出的結果為何?(10 分) 
#include <iostream> 
#include <cstdlib> 
using namespace std; 
void fun1(int, int);    
void fun2(int *, int *);   
void fun3(int *, int, int);   
int main(void){ 
    int a[]={1, 2, 3, 4, 5}, i; 
    fun1(a[1], a[3]);  
    fun2(a, a+2); 
    fun3(a, 5, 0);   
    cout<< "執行所有函數後,陣列的內容為:" << endl; 
    for(i=0; i<5; i++) 
        cout<< “a[” << i << “]=” << a[i] <<endl; 
 
    return 0; 
} 
 
void fun1(int x, int y){ 
int tmp;  
   tmp=y; 
   y=x; 
   x=tmp;  
} 
 
void fun2(int *x, int *y){ 
   int tmp;  
   tmp=*y; 
   *y=*x; 
   *x=tmp;  
} 
 
void fun3(int *ptr, int n, int num){ 
    *(ptr+n-1) = num; 
} 
四、以下是一個完整的 Python 程式,請問執行後的結果為何?(10 分) 
for i in range(1, 7): #產生一個 1,2,3,4,5,6 的整數序列 
    for j in range(i, 1, -1): #-1 表示階值(step value) 
        print(" ", end="") 
 
    for j in range(1, 7-i+1): 
        print(j, end="") 
 
    print()   
(請接第三頁) 
 

107年公務人員普通考試試題 代號:44650  全三頁
第三頁
類科: 資訊處理 
科目: 程式設計概要
 
(請接背面) 
 
 
name 代表姓名
quiz 代表小考
midterm 代表
final 代表期末
建構函數可將
設計 calScore()
Grade()公有方法計算成績等第(grade)的私有字元資料項目 
設計 printReport()
計算公式與成績等第標準同第五題 
讓使用者輸入資料以驗證程式的正確性,直到使用者輸入’n’或’N’時
程式。 
五、撰寫一個完整的 C/C++、Java 或Python 程式,讓使用者輸入姓名(name)、小考成
績(quiz)、期中考成績(midterm)與期末考成績(final)後,將這三個成績傳入呼
叫函數 calScore(),該函數需傳回所計算後的學期成績;程式再將學期成績傳入呼叫
函數 calGrade(),該函數需傳回成績等第結果;最後程式需從螢幕顯示出使用者所輸
入的姓名、學期成績與成績等第結果。程式顯示結果後,需再詢問使用者是否繼續
輸入,當使用者輸入’Y’或’y’時則繼續輸入,否則結束離開程式。(20 分) 
學期成績計算公式為:小考成績*0.15+期中考成績*0.35+期末考成績*0.5 
成績等第標準如下: 
學期成績 成績等第 
學期成績≧90  A 
89≧學期成績≧80  B 
79≧學期成績≧70  C 
69≧學期成績≧60  D 
學期成績≦59  F 
六、撰寫一個完整的 C/C++、Java 或Python 程式,以物件導向方式設計一個名為 transcript
的類別,此類別包括以下屬性與方法:(20 分) 
¾ 的私有(private)字串資料項目 
¾ 成績的私有數值資料項目 
¾ 期中考成績的私有數值資料項目 
¾ 考成績的私有數值資料項目 
¾ 新建立物件之姓名作初始化 
¾ 公有方法計算學期成績(score)的私有數值資料項目 
¾ 設計 cal
¾ 方法從螢幕顯示出學生姓名、學期成績與成績等第結果 
¾ 學期成績
 
程式需設計迴圈
結束