
106年公務人員特種考試司法人員、法務部
調查局調查人員、國家安全局國家安全情報
人員、海岸巡防人員及移民行政人員考試試題 代號:10980  全一張
(正面)
考試別: 司法人員 
等別: 三等考試 
類科組: 檢察事務官電子資訊組
科目: 程式語言 
考試時間 : 2 小時 座號: 
※注意: 
禁止使用電子計算器。 
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。 
本科目除專門名詞或數理公式外,應使用本國文字作答。 
 
(請接背面) 
 
 
一、程式在計算機裡執行的時候,必須妥善安排變數的放置區塊。不同種類的變數應安
置於不同的區塊,以便管理,增進程式執行的效率。下列程式裡的七個變數 a, b, c, d, 
e, f, *f 各應置於何處?(20 分) 
#include <stdlib.h> 
int a; 
static int b; 
int foo (int c) { 
int d , *f; 
static int e; 
b = 2 * c; 
d = a + b + c; 
e = d * 3; 
f = (int *)malloc(sizeof(int)); 
*f = e + 7 ; 
return e * 5 ; 
} 
int main(){ 
a = 5; 
b = 4; 
a = foo(b); 
} 
二、請用下面的「與前後文無關的文法」(context-free grammar)為下面的程式畫出程式
結構樹(concrete syntax tree)。(20 分) 
program var a, b : int; a := 0; b := a + 1; end. 
P ::= program Declist Stmtlist end . 
Declist ::= Dec Declist 
Declist ::=   
Dec ::= var Varlist : Type; 
Varlist  ::= id 
Varlist  ::= id, Varlist 
Type  ::= real 
Type  ::= int 
Stmtlist  ::= Stmt Stmtlist 
Stmtlist  ::= 
Stmt  ::= id := Exp ; 
Exp  ::= Const 
Exp  ::= Exp + Const 
Exp  ::= id 
Const  ::= 0 
Const  ::= 1 
 

106年公務人員特種考試司法人員、法務部
調查局調查人員、國家安全局國家安全情報
人員、海岸巡防人員及移民行政人員考試試題 代號:10980  全一張
(背面)
考試別: 司法人員 
等別: 三等考試 
類科組: 檢察事務官電子資訊組
科目: 程式語言 
 
 
 
 
三、幾乎所有的程式都需要一些支援程式,例如輸出輸入、數學函式、記憶體管理等。
這些支援程式一般都是放在支援程式庫(libraries)裡面,然後在適當的時機和主程
式連結(linking)。連結的時機可以分為兩大類:靜態連結(static linking)及動態連
結(dynamic linking)。請舉例解釋靜態連結及動態連結,並請說明產生與使用相關
程式庫的方法。(20 分) 
四、請問下面的 C++  程式經由編譯器編譯時,是否有錯誤發生?若有錯誤,錯誤為何?
若無錯誤,執行此程式印出的結果為何?(10 分) 
#include <stdio.h> 
class A{ 
protected: 
int X; 
public: 
A(){ X = 1; } 
}; 
class B : public A { 
private: 
int X; 
public: 
B(){ X = 200; } 
}; 
class C : public B { 
public: 
void printC() { printf("X is %d.n", X); } 
}; 
五、Continuation是函數式程式語言的程式技巧。下面這個Scheme程式展示了continuation
的使用方法。請問執行此程式的結果為何?並請說明計算的過程。(20 分) 
(define qq (lambda ( co t)nn  
(ma  (x) (if (negative? x) (cont (* -1 x)) x)) p(lambda   
'(54 0 37 -30 -28 83)))) 
(+ 100 (call-with-current-continuation 
(lambda (exit) (qq 5 exit)))) 
六、現今網路愈來愈發達,人們常由手機或是平板電腦造訪網頁,並且下載應用程式
(Application, App)來執行程式。這樣做會遇上兩項重大的問題。請問此兩大問題為
何?如何由電腦系統來解決或是預防此二問題?(回答程式語言與系統方面相關的
問題,請勿回答網路速度、基地台、通信協定等網路與通信的因素。)(10 分)