九九年鐵路特考高員三級程式語言
一、試以 C (或以 C 為基礎) 之程式語言撰寫一函式 (function),以計算一自然數 n 之斐波那契 (Fibonacci) 值 F(n)。
(一)使用遞迴 (recursion) 方式撰寫。(10分)
(二)使用非遞迴方式撰寫。(10分)
提示:Fibonacci function:F(0) = F(1) = 0;當 n > 1 時 F(n) = F(n-1) + F(n-2)

二、下列語法明確 (unambiguous) 或不明確?試證明之。(20分)

→ + |
→ a | b | c

三、一函數 fun 定義如程式 A 所示,若將 fun 使用於程式 B 中,則 sum1 及sum2 之值分別為何?
(一)若各表示式中,由左至右運算。(10分)
(二)若各表示式中,由右至左運算。(10分)
程式A: 程式B:
int fun (int *k) { void main ( ) {
*k += 4; int a =8, b = 16, sum1, sum2;
Return 3 * (*k) – 2; sum1 = (a / 2) + fun (&a);
} sum2 = fun (&b) + (b / 2);
}

四、如下列程式所示:
void swap (int i, int j) {
int temp;
temp = i;
i = j ;
j = temp ;
}
void main ( ) {
int val, arrist[5] = {4, 6, 3, 1, 2};
swap (val, arrlist[0]);
swap (arrlist[0], arrlist[1]);
swap (val, arrlist[val]);
}
(一)若參數之傳遞是依據以值呼叫方式 (call by value),試分別列出各次呼叫(呼叫三次) 後,變數 val 及陣列 arrlist 之值。(10分)
(二)若參數之傳遞是依據以參考地址呼叫方式 (call by reference),試分別列出各次呼叫 (呼叫三次) 後,變數 val 及陣列 arrlist 之值。(10分)

五、正交性 (Orthogonality) 及別名關係 (Aliasing) 均為一般程式語言中具備之重要特性,試就其在程式語言中之用途,分別說明之。(20分)

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 jacksaleok 的頭像
    jacksaleok

    國考資訊處理工作室(高考二級資訊處理/高考三級資訊處理/調查局三等/關務人員三等/地方特考三等)

    jacksaleok 發表在 痞客邦 留言(0) 人氣()