106年 一般警察特考 三等 警察資訊管理人員 物件導向程式設計 試卷

pdf
142.07 KB
2 頁
win7 2007
侵權投訴
加載中. ..
PDF
106年公務人員特種考試警察人員一般警察
人員考試及106年特種考試交通事業鐵路
人員、退除役軍人轉任公務人員考試試題 代號:30570 全一張
(正面)
考試別 一般警察人員考試
等別 三等考試
類科別 警察資訊管理人員
科目 物件導向程式設計
考試時間 2 小時
※注意:
禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(請接背面)
一、以 C++語言建立如下圖所示之鏈結串列linked list再以下列各子題程式碼執行串
列操作。
class node{
public:
node():next(NULL){};
node(char x):data(x),
next(NULL){};
char data;
node * next;
};
void insert_end(char x,node * L){
node* p=L, * q;
while (p->next != NULL) p=p->next;
q=new node(x);
p->next=q;
}
int main(){
int i;
char s[4 ]={ 'R', 'S', 'T', 'U'};
node * List=new node();
node *a,*b,*c,*d,*p;
for (i=0;i<4;i++)
insert_end(s[i],List);
a=List->next; b=a->next;c=b->next;
d=c->next;
//下列各小題程式碼插入此處
}
List a b c d
假設下列各子題皆獨立,從原建立鏈結串列重新開始。畫出各子題程式碼執行後
之鏈結串列圖形,亦需畫出各指標(List, a, b, c, d)位置。20 分)
(1) p = List->next->next;
b = p->next;
delete (p);
a->next = b;
(3) c->data = b->data;
c->next = b->next;
p = b;
b = c->next;
delete (p);
List->next->next=d->next;
a = b->next;
(2)a->data= List->next->next->next->data;
a->next->data= c->next->data; (4) p = new node(&apos;A&apos;);
List->next->next = p;
c = p;
p->next = b->next;
C++語言寫出函式 find_data(),找到鏈結串列中 node data 具有值 x之節點,
並回傳指向此節點之指標。若找不到,則回傳 NULL10 分)
S
R T U
106年公務人員特種考試警察人員一般警察
人員考試及106年特種考試交通事業鐵路
人員、退除役軍人轉任公務人員考試試題 代號:30570 全一張
(背面)
考試別 一般警察人員考試
等別 三等考試
類科別 警察資訊管理人員
科目 物件導向程式設計
二、繪製 UML 類別圖Class Diagram表示關於排球聯盟league以下之資訊元件:
聯盟(league)由至少 4個球隊(team)組成。每個球隊(team)由 612 名球員
player組成且皆有 1名球員擔任隊長captain每個球隊team皆有其隊名
name及記錄record每名球員player皆有號碼number及其位置position
球隊(team)倆倆相互(play)比賽(game。每場比賽(game)都有比數(score
及比賽地點location各球隊team可能有教練coach導,但
每名教練(coach皆有認證等級(accreditation level 及年資(year experience。每
名教練coach)可導(lead多個球隊team。教練(coach)及員(player
皆是人員person人員皆有名字name及地址address類別圖中必須使用適
當的標籤標記所有關聯(Association20 分)
三、請寫出下列 C++程式執行後之輸出。10 分)
#include <iostream>
using namespace std;
class AA {
public:
int x;
AA(int x=0){this->x=x;}
virtual void g()=0;
void h(){
x=6;
cout << endl << "AA h:x= " << x ;
}
} ;
class BB : public AA {
public:
int x;
BB(int x1=0,int x2=0):AA(x2){
this->x=x1;
}
void g(){
x=10;
cout<< endl<< "BB g:x= "<< x ;
}
void h(){
x=20;
cout<<endl<< "BB h:x= " << x ;
}
};
int main(){
AA *ap = new BB(-7,-9) ;
ap->g();
ap->h();
BB *bp= static_cast<BB*>(ap);
cout<<endl<< "bp-> x= "<< bp->x;
bp->g();
bp->h();
}
請建立 C++程式,可首先寫入 2字串"第一列文字""第二列文字"至檔案"example.txt"
中成為 2列文字再由檔案"example.txt"中讀出此 2列文字將之顯示於螢幕10 分)
五、可寫為 a+bi 之數稱為複數Complex Number), ab均為實數i表示虛數,
亦即 i2=
-
1a稱為複數的實部(real part),b稱為複數的虛部(imaginary part
複數四則運算如下:
‧加法: idbcadicbia )()()()( +++=+++
‧減法: idbcadicbia )()()()( =++
‧乘法: )( bia +ibcadbdacdic )()()( ++=+
‧除法: i
dc
adbd
dc
bdac
dicdic dicbia
dic bia 2222
)()( )()(
+
+
+
+
=
+
+
=
+
+
請以 C++語言,
宣告 complex(複數)class包含宣告為 float 型式之成員變數:實部real)與虛部
imag;將實部與虛部皆預設為 0.0 之建構子(constructor;可進行四則運算之成
員運算符operator+
-
*/將實部與虛部各乘以
-
1之成員運算符
-
10 分)
寫出於複數 class 外部,定義成員 operator *之程式碼。5分)
寫出於複數 class 外部,定義成員 operator /之程式碼。加入例外處理(exception
handle)避免分母為 010 分)
寫出定義 operator <<之程式碼,使得於主函式中可直接使用 cout<<將複數顯示於
螢幕為(real+imag i,例如:(2+3i)5分)
收藏 ⬇️ 下載