108年 公務人員升官等 薦任 資訊處理 程式語言 試卷

pdf
88.72 KB
3 頁
win7 2007
侵權投訴
加載中. ..
PDF
108
年公務、關務人員升官等考試、
108
年交通
事業郵政、公路、港務人員升資考試試題
等 級:薦任
類科(別):資訊處理
科 目:程式語言
考試時間 :2小時 座號:
※注意:
禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
本科目除專門名詞或數理公式外,應使用本國文字作答。
代號:
2
6250
頁次:
3
-
1
一、請寫一個 Python 語言函式(function),reverse_sentence(s),回傳所傳
送進去的字串,逐字翻轉(reverse)結果。例如reverse_sentence(“abc def”)
回傳“def abc”。(20 分)
二、根據下列之 C語言程式,回答下列問題。(每小題 5分,共 15 分)
若參數的傳遞方式是傳值(pass by value),程式執行所輸出數字為何?
若參數的傳遞方式是傳參考(pass by reference),程式執行所輸出數字
為何?
若參數的傳遞方式是傳值與結果(pass by value-result),程式執行所輸
出數字為何?
void add (int x, int y) {
x += x;
y += y;
}
void main() {
int a[2] = {1, 3};
add (a[0], a[1]);
printf (“%d %dn”,
a[0], a[1]);
}
代號:
26250
頁次:
3
-
2
三、定義一個由以下符號所組成的運算式。
二元運算子: *, +, ->, <->
一元運算子:~
變數:X, Y, Z
括號:(, )
運算子的優先順序(precedence)依序為~,{*, +}, {->, <->},
運算都是由左至右(left-associative),括號必須左右對稱且先左後右。
合法的運算式有如:X, Y, ~Y+~X,(Y*X<->Z*X), ~~Y 或
(~(X))->(Z)。而不合法的運算式則如:X~, Z->YZY 或*X)Y+Z(。
請完成以下 BNF grammar,用以產生所有合法的運算式,但不會產生
不合法的運算式。(15 分)
::= X | Y | Z
::= ? | ? | ?
::= ? | ? | ?
::= ? | ? | ?
請畫出 Y*X->Z 的剖析樹(parse tree)。(5分)
四、下列為資料庫中 STAFF 資料表,包含 ID, DEPT, EXAM1, EXAM2,
LEVEL 等5欄位,請依序寫出指定的 SQL 指令。(每小題 5分,共 20 分)
ID DEPT EXAM1 EXAM2 LEVEL
A3452 E_Car 45 72 3
A4152 A_Boat 45 54 2
A2451 E_Car 51 89 4
. . .
寫出「列出所有 DEPT(不可重複)」的 SQL 指令。
寫出「列出 ID, DEPT, LEVEL,但要按照 ID 字母順序排序」的 SQL
指令。
寫出「列出 EXAM1 成績由高至低人員的 ID 及EXAM1 成績,同分時
EXAM2 成績較高者優先列出」的 SQL 指令。
寫出「能依 DEPT 順序,將該 DEPT 所有人員的 DEPT, ID, EXAM1,
EXAM2 資料列出」的 SQL 指令。
代號:
26250
頁次:
3
-
3
五、下列問題請用 Scheme/Lisp 程式語言來回答。
請只用 cons 函式來建出 s-expression (A (B) C)。(5分)
請只用 list 函式來建出 s-expression (A (B) C)。(5分)
給定 x為變數且已執行(setf x ‘(A (B) C)),請只用 car 及cdr 函式來
從x中取得 B。(5分)
請寫一個遞迴函式 sumall 用以加總一個串列(list)中所有數字。例如
(sumall nil)回傳 0,(sumall ‘(100))回傳 100,(sumall ‘(12345))
回傳 15。(10 分)
收藏 ⬇️ 下載