資訊處理 102 年程式語言考古題
題目為考試當年公告版本,實務標準請以現行規範為準。
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 function。SwapAndAdd()要達成 的功能是交換兩個變數,然後建立一個新的整數變數,將兩個變數相加存在該變數 之後,回傳新的變數位址讓呼叫端來使用。以下的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年特種考試地方政府公務人員考試試題 類 科: 資訊處理
以下的語法是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 常用到的縮寫專有名詞。請寫出完整的英文名詞,然後請用數行文字 解釋這個專有名詞所代表的實質意義與技術內容。 ㈠CSS(6 分) ㈡AJAX(6 分) ㈢XML DOM(6 分) ㈣SOAP(7 分)
int c=1;請問下列迴圈內A 的指令會個別執行幾次?(每小題5 分,共15 分) ㈠while (c = 100) {A; c++;} ㈡for(; c++ < 100; c++) A; ㈢for(; ++c < 100; c+=2) A; 六、給定16 個數字如下:int Data[16]={233, 11, 19, 3, 217, 269, 235, 4, 111, 2171, 38, 91, 42, 117, 9, 452},請分別利用Heap sort 的概念,試寫出程式,對這些數字做排序 (從大到小),先描述概念,再寫程式(可使用各種程式語言或虛擬碼)。(16 分)