
104年公務人員特種考試司法人員、法務部調查
局調查人員、國家安全局國家安全情報人員、
海岸巡防人員及移民行政人員考試試題
 代號:10880 
考 試 別:司法人員 
等    別:三等考試 
類 科 組:檢察事務官電子資訊組 
科    目:程式語言 
考試時間:2小時 座號:  
※注意: 
禁止使用電子計算器。 
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。 
 
(請接背面) 
 
全一張 
(
)
一、請回答下列有關 C++程式的問題:(每小題 10 分,共 20 分) 
如果執行起來,請問執行的螢幕輸出為何? 
請解釋每一行輸出是由那個物件在那個時間點前後(請參考程式所標示的時間點
1, 2 ,3 ,4 ,5)印出的? 
#include "car.h" 
#include <iostream> 
using namespace std ; 
Car::Car() {   cout << "Car is constructed" << endl ;} 
Car::~Car() {      cout << "Car is destroyed!" << endl ;} 
//---------------------------------------------------- 
Car honda ; 
1:main() { 
2: Car bmw ; 
3: Car *camery = new Car() ; 
4:    honda.color = 1 ; 
5:    camery.color = 100 ; 
6:} 
二、程式語言的設計通常會決定採取 strong typing 或weak typing 的設計。 
請運用你所熟知的程式語言舉一例 strong typing。(6分) 
請運用你所熟知的程式語言舉一例 weak typing。(6分) 
有些語言有所謂的 implicit type conversion,請舉例。(8分) 
三、下列是一個簡單的 C遞迴副程式(recursive function)。請用這個例子來解釋編譯器
在處理遞迴的呼叫時,如何在那一種記憶體區塊處理與配置程式中的變數(a, c, d)。
請繪製當 foo(1) 被呼叫之後,並且遞迴到程式結束之間的記憶體(activation record)
配置演進圖,以及 a, c, d 在每一次遞迴的值。(20 分) 
int foo(int a) { 
      int c = 0, d = 0 ; 
      if (a >= 100) return a ; 
      c = a * 10 ; 
   d = foo(c) ; 
   return d ; 
} 
 

104年公務人員特種考試司法人員、法務部調查
局調查人員、國家安全局國家安全情報人員、
海岸巡防人員及移民行政人員考試試題
 代號:10880 
考 試 別:司法人員 
等    別:三等考試 
類 科 組:檢察事務官電子資訊組 
科    目:程式語言 
 
全一張 
(
)
四、物件導向語言 Java 與C++  最大的不同是 Java class 沒有解構子(destructor)。
(每小題 10 分,共 20 分) 
請解釋 Java 採用這項設計的背後成因為何? 
如果沒有 destructor,請問 Java 如何解決 destructor 原本要解決的問題? 
五、下列幾種程式語言是目前 web programming 中比較當紅的程式語言:Java、
Javascript、Node.js、PHP、Ruby in Ruby on Rail 及ASP.net。撰寫 web program 通常
要決定使用那一種語言作為 client side 的程式語言以及那一種語言作為 server side 的
程式語言。請標示上述的每一種語言,是否可以作為 client side programming,或者
是server side programming,或者是兩者皆是。(20 分)