
104
年公務人員普通考試試題 代號:44450
類 科: 資訊處理
科 目: 程式設計概要
考試時間: 1小時 30 分 座號:
※注意:
禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
全三頁
一、請舉例說明⑴輸入方式限制⑵數值資料檢查⑶執行時期例外處理⑷資料存取權限控
制等四種程式設計技巧,如何防止使用者輸入的資料,或程式執行過程產生的資料,
發生資料值錯誤、不合理現象、執行錯誤程式中斷、或未符合資料限制等狀況。
(20 分)
二、如下程式,使用堆疊(Stack)的概念來存放數字基底轉換的結果,轉換完成後,再
將Stack 內的資料一一取出,作結果的顯示;請依程式中標號的說明,於程式中填
入適當的程式碼,以完成十進位數字轉換為二、四、八、十六等四種進位制的數值。
(每小題 3分,共 15 分)
創造 ArrayList 物件
設定迴圈起始狀態
改變控制變數
加入餘數 0~F 的字元到 ArrayList
從最後加入的資料開始,一一取出存放在 ArrayList 中的資料(ArrayList 資料的
長度在 Java 中可使用 size()方法取得)
void base10toBaseNum(int sourceNum, int targetBase)
{ String ss = "";
if (sourceNum < 0)
{ ss = ("轉換基底的數字必須大於等於零"); }
else if ((targetBase == 2) || (targetBase == 4) ||
(targetBase == 8) || (targetBase == 16))
{ char [] base16 = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
ArrayList result = /*
創造 ArrayList 物件 */;
for (int rr = /*
設定迴圈起始狀態 */; rr > 0;
rr = /*
改變控制變數 */)
{ result.add(/*
加入餘數 0~F 的字元到 ArrayList */); }
ss = ("轉換" + sourceNum + "到基底" + targetBase + ": ");
for(int i = /*
由後往前取出 ArrayList 內容資料 */; i--)
{ ss += ("" + result.get(i));
if ((i%4) == 0) { ss += (" "); }
}
ss += "n";
}
else { ss = ("轉換至的基底只能是 2, 4, 8, 16"); }
/* print out ss */
} // End of base10toBaseNum
(請接第二頁)