lawpalyer logo

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

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

0 題選擇題 + 9 題申論題

下列是以C、Java 及Javascript 三種語言撰寫存取陣列(array)的程式片斷,請問 此程式片斷執行後,會產生什麼結果?如果結果錯誤,錯誤訊息為何?各用什麼方 法可避免錯誤。請寫出完整的程式來說明你的方法。(25 分) C: int a[] = {0, 1, 2, 3}; for (i=0; i<=sizeof(a); i++) printf(“%d”, a[i]); Java: int[] a = {0, 1, 2, 3}; for (i=0; i<=a.length; i++) System.out.println(a[i]); Javascript: var a = [0, 1, 2, 3]; for(i=0; i<=a.length; i++) document.write(a[i]);
服務導向架構(Service-oriented architecture, SOA)是一種事件驅動(Event-driven) 的程式結構(Programming paradigms),試畫出服務導向建模框架(Service- Oriented Modeling Framework),並以此框架說明SOA 之優點。(20 分)
變數、繫結和資料型態:(25 分) #include<iostream> using namespace std; int counter; ……… void test(); main(){ int i; ……… for(i=0; i<5; i++) { test(); cout<<counter <<endl; } } void test(){ int *i= new int; … static int counter=0; … counter = counter +1; cout<< counter <<" "; } 變數a 變數b 變數c 變數d 請說明變數型態的繫結(Type Binding)和記憶體配置的繫結(Storage Binding) 的種類。 請比較變數a、b、c、d 四個變數之型態的繫結(Type Binding),記憶體配置的 繋結(Storage Binding)以及有效範圍(Scoping)。 程式的執行結果為何? 99年特種考試地方政府公務人員考試試題 類 科: 資訊處理 全一張 (背面)
請指出下列敘述為“真"或為“假",並說明之。(20 分) C++語言的識別符號(identifiers)是context-free。 有限語言(finite language)都是regular。 函數型語言(Functional languages)是基於lambda calculus。 ++(x+y)的錯誤可由編譯程式(compiler)中的語法分析程式(syntax analyzer) 偵測得知。
下面是一個使用Scheme functional language 寫成之程式。回答下列問題:(25 分) (define unknown (lambda (L) (cond ((null? L) L) ((null? (cdr L)) L) ((eqv? (car L) (car (cdr L))) (unknown (cdr L))) (else (cons (car L) (unknown (cdr L))))))) 請說明Functional Language 之主要優缺點。 請說明上述程式之功能。 請說明 (unknown ‘(3 3 2 2 2 4 4 3 4 2 2 1 0)) 之執行結果為何?
下列是UNIX 系統以process 為單位的並行處理方式,其中fork()是用來產生另一個 process,請依序寫出其執行結果。(20 分) #include <stdio.h> int sum; void main() { sum = 0; fork(); for ( int j = 0; j < 4; j++) { printf(" j = %d\n", j); fflush(stdout); sum += j; } printf("sum = %d\n", sum); exit(0); }
(0)
設g, h, n為正整數,定義x ≡ gh mod n,其中x為gh除以n的餘數。請寫一個遞迴( recursive)的C/C++函式在給定的g, h, n下來計算x,其中h, n可以達到226 - 1。在計 算的過程中,你必須考慮到你暫時的運算結果可以儲存在變數int or long中。(25 分)
請重寫下述文法使其成為right linear(右側遞迴)文法。(20 分) <E> → <T> │ <E> * <T> <T> → <V> │ <V> + <T> <V> → a
何謂捷徑計算(short-circuit evaluation)?(10 分) 若語言本身不提供捷徑計算,則下列程式片段會出現什麼錯誤訊息?(10 分) index : = 1; while(index <= listlen) and (list[index] <> key) do index : = index + 1; (假設list [1..listlen]為被查詢之陣列,而key 為要查詢之值)