100年公務人員高等考試三級考試試題 代號:35840 類 科: 資訊處理
科 目: 程式語言
考試時間: 2 小時 座號:
※注意: 禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(請接背面)
全一張
(正面)
一、物件導向程式設計的內涵有繼承(inheritance)、函式多型(function polymorphism)
與封裝(encapsulation)等,請分別敘述上述三個項目之要義與優點。(21 分)
二、以下是 C 語言程式片段:(24 分)
int sub1(int x, int *y) { x+=5;
*y*=2;
return *y+x;
}
int sub2(int *x, int y) { *x+=5;
y*=2;
return *x+y;
}
void main(){
int a=3,b=5,c,d;
c=sub1(a,&b)+sub2(&a,b);
d=sub2(&a,b)+sub1(a,&b);
}
程式執行後,a,b,c 及 d 的值為何?
三、若 1 個字元占用 1 個位元組(byte),以下程式中 p 的位址是 OX71F21D,陣列 t 的起始位址是 OX31C51C,則程式執行結果為何?(16 分)
void main(){
char t[7]={ ’d’, ’r’, ’a’, ’g’, ’o’, ’n’, ’\0’};
char *p;
p=t;
p++;
printf(“%X\n“,&p);
printf(“%c\n“,*p);
(*p)++;
printf(“%c\n“,t[1]);
printf(“%X\n“,&t[3]);
}
100年公務人員高等考試三級考試試題 代號:35840 類 科: 資訊處理
科 目: 程式語言
全一張
(背面)
四、何謂 case sensitive?何謂 recursive call?大量的使用 recursive call 可能造成什麼問 題?(9 分)
C++語言是否為case sensitive語言?C++語言是否允許recursive call?(4 分)
程式語言以何種資料結構維護函式呼叫的順序?每一個啟動紀錄(activation record)所記錄的兩個主要內容為何?(12 分)
五、請以C++語言定義以下類別:
類別名稱 stu,包含一個整數 id,一個整數 grade(以上成員之存取層次為 public)。
(5 分)
宣告依據 stu 類別產生的物件陣列 student;此陣列為一維陣列,有 30 個元素。
(3 分)
寫出將 student 陣列中每個元素的 grade 加 5 的程式片段。(6 分)