102年 地方特考 三等 資訊處理 程式語言 試卷

pdf
170.14 KB
2 頁
Administrator
侵權投訴
加載中. ..
PDF
102年特種考試地方政府公務人員考試試題 代號34160
三等考試
資訊處理
程式語言
考試時間: 2 小時
注意:
禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
(請接背面)
全一張
正面
一、A君寫了以下的物件導向程式碼:
class employee : public listcontainer {
public:
string getName();
Address GetAddress();
PhoneNumber getWorkPhone() ;
bool isZipCodeValid(Addrss address);
// given an address, this function check if the address’s zip
// code is valid or not
bool isPhonenumberValid(PhoneNumber phone);
// given a phone number, this function check if the phone no.
// is valid or not.
public:
static string _name ;
static Address addr ;
static PhoneNumber phoneno ;
}
A君寫程式的思維是這樣子的,他想要用 linked list 來儲存姓名、住址以及電話
尤其是住址的部分,由於需要切割住址內容然後儲存到 linked list 中,所以
他繼承了 listcontainer(系統提供的 list library)。另外 A君實做了幾
method 來幫忙判定住址與電話號碼的格式是否合法。
請問上述的物件導向程式碼,犯了那一些違反物件導向原則的錯誤?(25 分)
二、以下的 C程式碼需要實作一個 SwapAndAdd functionSwapAndAdd()要達成
的功能是交換兩個變數,然後建立一個新的整數變數,將兩個變數相加存在該變數
之後,回傳新的變數位址讓呼叫端來使用。以下的 main()顯示如何使用這個
SwapAndAdd() function
int main() {
int x, y, *result ;
x = 100 ;
y = 50 ;
result= SwapAndAdd(......);
// 請填寫參數 x,y 應如何傳遞來使用 SwapAndAdd
printf(“%d %d %d”, x, y,(*result));
}
在這個 main()中,我們會將 x,y 變數作為參數傳到 SwapAndAdd()。如果
SwapAndAdd()實作正確,這個 main()會印出
50 100 150
請以 C語言完成 SwapAndAdd()的程式碼,並且將 main()當中的呼叫參數填入。(25 分)
102年特種考試地方政府公務人員考試試題 代號34160
三等考試
資訊處理
程式語言
全一張
背面
三、以下的語法是 ambiguous
string string + string
| string string
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
這個文法針對 9-5+2 可以產生兩個剖析樹(parsing tree),請畫出這兩個剖析樹。
10 分)
為了糾正這樣的問題,請將上述的語法改寫成左結合(Left Associativity)來產生
單一的剖析樹。以 9-5+2 為例,你的左結合語法所產生的剖析樹,將可以單一的
解釋 9-5+2 ((9-5)+2)。(15 分)
四、Internet and web programming 其實結合了許多的技術與標準,請解釋下列幾個 web
programming 常用到的縮寫專有名詞。請寫出完整的英文名詞,然後請用數行文字
解釋這個專有名詞所代表的實質意義與技術內容。
CSS6分)
AJAX6分)
XML DOM6分)
SOAP7分)
收藏 ⬇️ 下載