lawpalyer logo

資訊處理 100 年程式語言考古題

民國 100 年(2011)資訊處理「程式語言」考試題目,共 19 題 | 資料來源:考選部

0 題選擇題 + 19 題申論題

下圖為開發程式時常見之Interface 設計模型(Design Pattern),其目的是要透過 一個服務介面來將服務內容區隔出來,以達到使用者(Client)透過介面呼叫服 務的方式不受服務內容修正的影響,試以Java 程式指令將此設計模型實作出來。 (20 分)
簡釋兩個常見的指標問題(Pointer problems)。(10 分) 針對該兩問題,各舉一解決方法,並說明之。(10 分)
請以最近在Apple 及Google 平台上之App 應用程式,說明在嵌入式系統(embedded systems)中發展程式要較非嵌入式系統在系統面與應用面多考慮那些議題?並舉例 說明之。(20 分)
物件導向程式設計的內涵有繼承(inheritance)、函式多型(function polymorphism) 與封裝(encapsulation)等,請分別敘述上述三個項目之要義與優點。(21 分)
試說明Web Service 技術之組成部分及特性。(20 分)對於政府而言,您認為 政府可以如何運用此技術以提升政府的效能或施政滿意度。(10 分)
根據以下表式(Expression)之結合律(Associativity)與優先序(Precedence)規則: 優先序: 高 postfix ++, -- unary +, -, prefix ++, -- *, /, % Binary +, - <, <=, >=, > ==, !=, && 低 || 結合律: 由左而右 將下列的表式以括號展現表式的求值序次,並且在右括號後以上標指示正確的序次。(20 分) 範例:a + b + c 答案為:((a+b)1+c)2  x1-x2/x3-x4/x5%x6  - i-- - j-- -k  a1 >= a2 || a3 == a4 < a5 && a6  a + b * c == x > y - z
政府部門系統委外開發越來越普遍,試從程式語言觀點說明程式/系統開發委外, 其可能問題(含軟體安全)及解決方式。(20 分)
以下是C 語言程式片段:(24 分) int sub1(int x, int *y) { x+=5; *y*=2; return *y+x; } int sub2(int *x, int y) { *x+=5; y*=2; return *x+y; } void main(){ int a=3,b=5,c,d; c=sub1(a,&b)+sub2(&a,b); d=sub2(&a,b)+sub1(a,&b); } 程式執行後,a,b,c 及d 的值為何?
在Web 2.0 相關技術中,AJAX 是一個常被用來建構互動式網頁應用的網頁開發程 式技術,試描述其運作方式並指出其優缺點。(25 分)
簡釋下列名詞:(每小題5 分,共20 分) 靜態變數(Static variable) 堆疊動態變數(Stack-dynamic variable) 明示堆積動態變數(Explicit heap-dynamic variable) 隱性堆積動態變數的定義(Implicit heap-dynamic variable) 100年公務人員特種考試一般警察人員考試、 100年公務人員特種考試警察人員考試及 100年特種考試交通事業鐵路人員考試試題 類 科: 資訊處理 全一張 (背面)
何謂遞迴演算法(recursive algorithm)?試以Fibonacci 序列(1,1,2,3,5,8,13,21,…) 說明之。(10 分) 此類演算法應注意邊界條件(boundary condition),亦請以Fibonacci 序列說明之。 (10 分)
若1 個字元占用1 個位元組(byte),以下程式中p 的位址是OX71F21D,陣列t 的起始位址是OX31C51C,則程式執行結果為何?(16 分) void main(){ char t[7]={ ’d’, ’r’, ’a’, ’g’, ’o’, ’n’, ’\0’}; char *p; p=t; p++; printf(“%X\n“,&p); printf(“%c\n“,*p); (*p)++; printf(“%c\n“,t[1]); printf(“%X\n“,&t[3]); } 100年公務人員高等考試三級考試試題 類 科: 資訊處理 全一張 (背面)
何謂物件導向程式語言(object-oriented programming language )中之多型 (Polymorphism)?試以下列Java 類別定義,透過物件建立與物件內方法呼叫 說明之。(25 分) public class A1 { private int a; public int Compute(int x) { return x * x + 5000; } } public class A2 extends A1 { private int a; public int Compute(int x) { return x * x + 6000; } } public class A3 extends A2 { private int a; public int Compute(int x) { return x * x + 7000; } }
就下列C++程式: void fun(void) {int a,b; /*Def-1 */ …. while (…) {int a,c,d; /* Def-2 */ while (…) {int b,d,e; /* Def-3 */ … /* TestPoint-1 */ } ….. /* TestPoint-2 */ } while (…) {int b,c; /* Def-4 */ … /* TestPoint-3 */ } …. /* TestPoint-4 */ } 請在試卷上自行製作下列表格,以 V、H、X填入所有空格中,分別代表在fun()函 數中各測試點之參考環境(Referencing environment),亦即在各測試點對定義於該 定義敘述的該變數為可視(Visible)、隱藏(Hidden)、不可視。例如表中之V代 表在TestPoint-4,Def-1 定義敘述所定義的變數a為可視變數。(20 分) Def-1 Def-2 Def-3 Def-4 變數 測試點 a b a c d b d e b c TestPoint-1 TestPoint-2 TestPoint-3 TestPoint-4 V
軟體系統開發過程通常包含了需求分析、系統分析、程式設計、測試與維護,試舉 例說明各階段之工作內容,並以此例製作一測試規劃報告。(20 分)
何謂case sensitive?何謂recursive call?大量的使用recursive call 可能造成什麼問 題?(9 分) C++語言是否為case sensitive語言?C++語言是否允許recursive call?(4 分) 程式語言以何種資料結構維護函式呼叫的順序?每一個啟動紀錄(activation record)所記錄的兩個主要內容為何?(12 分)
以物件(Object)技術,設計串列(List)與其相關方法(Method),串列中每一元 素(Element)之資料為一整數;並設計一主程式,利用你所設計的串列,將10 個 整數之陣列adata 中的所有整數依序加入串列中,adata[0]在串列最底端,完成後再 從串列中依序列印。(20 分) 備註1:10 個整數數值可自行任意設定。 備註2:可用任何物件導向程式語言,但必須在答題時先標明所用的程式語言,否 則不予計分。 備註3:沒定義物件與使用其方法者不予計分。
插入排序法(Insertion Sort)做法是假設前i-1 個已經排序完成,在插入第i個數的時 候,就只需要一個一個比較,找到適合的地方放進去,最後輸入完,也就剛好排序 完了。選擇排序法(Selection Sort)則是每次走過整個陣列,在走的過程中記錄最 小的,最後再將它放到後面去,要重複n次。它們的時間複雜度皆為O(n2)。 請問何時最適合使用選擇排序法?何時最適合使用插入排序法?並舉例說明之。 (10 分) 請分別寫出插入排序法與選擇排序法之演算法(可使用任何程式語言或虛擬碼)。 (10 分)
請以C++語言定義以下類別: 類別名稱stu,包含一個整數id,一個整數grade(以上成員之存取層次為public)。 (5 分) 宣告依據stu 類別產生的物件陣列student;此陣列為一維陣列,有30 個元素。 (3 分) 寫出將student 陣列中每個元素的grade 加5 的程式片段。(6 分)