lawpalyer logo

資訊處理 104 年程式設計概要考古題

民國 104 年(2015)資訊處理「程式設計概要」考試題目,共 14 題 | 資料來源:考選部

0 題選擇題 + 14 題申論題

參考GradeBook.java, GradeBookTest.java 檔案,試問GradeBook 的建構子(Constructor) 在那裡?作用為何?(10 分)
請舉例說明⑴輸入方式限制⑵數值資料檢查⑶執行時期例外處理⑷資料存取權限控 制等四種程式設計技巧,如何防止使用者輸入的資料,或程式執行過程產生的資料, 發生資料值錯誤、不合理現象、執行錯誤程式中斷、或未符合資料限制等狀況。 (20 分)
參考GradeBook.java, GradeBookTest.java 檔案,試問執行GradeBookTest 後的輸出 結果?(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 (請接第二頁) 104年公務人員普通考試試題 全三頁 第二頁
參考GradeBook.java, GradeBookTest.java 檔案,試撰寫“GradeBook”class 內編號 39 行的成績分布列印功能 public void outputBarChart() { int[] frequency=new int[11]; … } 其中frequency 變數的宣告不得改變,且不得使用任何Java 類別程式庫。假如 取消編號29 行”outputBarChart()”的註解(亦即processGrades()最後一行會呼叫 outputBarChart()),再次執行GradeBookTest,則outputBarChart()必須印出如下結果。 (20 分) Grade distribution: 00-09: 10-19: 20-29: 30-39: 40-49: 50-59: 60-69: * 70-79: ** 80-89: **** 90-99: ** 100: * 104年公務人員特種考試關務人員考試、 104年公務人員特種考試身心障礙人員考試及 104年國軍上校以上軍官轉任公務人員考試試題 全三頁 第三頁 考 試 別: 身心障礙人員考試
如下程式碼所構成的方法/ 函數(method/function ),在呼叫時,使用 recursiveFlowControl(3, "ss", "dd", "aa"),請問該方法被呼叫執行後,顯示結果為何? 如為語法有誤或執行時期發生中斷,請說明原因,並請修正錯誤或引起中斷的程式, 讓程式可以正常執行結束並顯示結果。註:System.out.println();會將小括號中的字 串顯示到螢幕輸出裝置。(15 分) void recursiveFlowControl(int num, String s1, String s2, String s3) { System.out.println("... I am here ..."); if (num == 1) { System.out.println("num==1, Move from " + s1 + " to " + s2); } else { recursiveFlowControl(num-1, s1, s3, s2); System.out.println("num!=1, Move from " + s1 + " to " + s2); recursiveFlowControl(num-1, s3, s2, s1); } } / / End of recursiveFlowContorl
參考GradeBook.java, GradeBookTest.java 檔案,試以遞迴(recursive)方式重新撰寫 “GradeBook”class 內編號31 行的getAverage(),撰寫時必須遵循下列宣告: public double getAverage(int n) { … } 其中n 為修課學生人數。(20 分)
請使用C-like 程式語言(C, C++, C#, Java…),撰寫一方法接受兩個已經由小到大 排序好,但長度不等的整數型資料序列,回傳合併所傳入的兩個資料序列為一個由 大到小排序好的新資料序列。限制:所撰寫的方法內,不可以使用所使用語言內建 的排序方法輔助兩個排序好資料序列的合併。(20 分)
試以遞迴的方式撰寫指數函數integerPower,宣告如下: public static int integerPower(int base, int exponent) 其中base 為底數,exponent 為指數。呼叫範例為integerPower(2,5)=32。(15 分)
如下的HTML 程式執行後,執行頁面為何?請以圖示解釋執行結果。又當按下 "Submit"動作按鈕後,會將帳號、密碼等資料,以不透過URL 的方式,傳送給 login.php 程式來處理,請問應於表單標記中加入那些屬性,及相對應的資料值。 (15 分) <html> <head> <title> Log in </title> </head> <body> <center><h1><strong>網際網路應用</strong></h1></center> <hr /> <form id="Login" name="Login"> <p> <label for="account"> Account </label> <input name="account" type="text" id="account" /> </p> <p> <label for="Password"> Password </label> <input name="Password" type="password" id="Password" /> </p> <p> <input type="reset" name="Reset" id="Reset" value="Reset" /> <input type="submit" name="Submit" id="Submit" value="Submit" /> </p> </form> </body> </html> (請接第三頁) 104年公務人員普通考試試題 全三頁 第三頁
試說明下列程式碼在瀏覽器上的呈現為何?(15 分) <!DOCTYPE html> <html> <body> <p> line 1 </p> <p id="demo"></p> <p> line 2 </p> <script> var cars = ["BMW", "Volvo", "Saab", "Ford"]; var i = 0; var text = ""; while (cars[i]) { text += cars[i] + "<br>"; i++; } document.getElementById("demo").innerHTML = text; </script> </body> </html>
就物件導向程式而言,現有如下的繼承關係的類別。(15 分) class GrandFather { String name = "GrandFather"; String getName() { return name; } String whereIam() { return "class GrandFather"; } } // End of GrandFather class class Father extends GrandFather { String getName() { return name; } String whereIam() { return "class Father"; } } // End of Father class class Son extends Father { String name = "Son"; String getName() { return name; } String whereIam() { return "class Son"; } } // End of Son class class Daughter extends Father { String getName() { return name; } String whereIam() { return "class Daughter"; } } // End of Daughter class 於其他類別方法中使用如下的 statement: Father f1 = new GrandFather(); Father f2 = new Son(); Father f3 = new Daughter(); System.out.println(f2.getName()); System.out.println(f3.getName()); System.out.println(f2.whereIam()); System.out.println(f3.whereIam()); 請問編譯執行後,會顯示什麼結果?如為語法有誤或執行時期發生中斷,請說明原 因,並將該statement 予以忽視,然後說明可以正確執行statement 所產生的結果。
請用非遞迴的方式,寫出一副程式gcd(int m, int n),藉以求出兩整數m 與n 之間的 最大公因數。(8 分)
給定一個二元樹T,它的inorder sequence 為“maxengbyc”;它的preorder sequence 為 “gamexncby”。 請將T 構建出來。(5 分) 為何只給preorder 與postorder 的結果,無法唯一決定出一棵二元樹?(3 分) 104年特種考試地方政府公務人員考試試題 全一張 (背面) 等 別: 四等考試 類 科: 資訊處理 科 目: 程式設計概要 九、請依下列程式求出x 與y 的值。(9 分) int x=0, y=0; for(int i=0;i<100;i++) for(int j=i+1;j<100;j++) { x++; for(int z=j+1; z<=100;z++) y++; } 十、請用遞迴的方式,寫出quicksort(int *A, 0, n-1)的副程式,利用quicksort 的演算法, 將A 陣列裡的n 筆資料,從小排到大。(12 分)