
年特種考試地方政府公務人員及
離 島 地 區 公 務 人 員 考 試 試 題
考 試 別
地方政府公務人員、離島地區公務人員考試
等 別
四等考試
類 科
資訊處理
科 目
程式設計概要
考試時間
小時
分 座號:
※注意:
禁止使用電子計算器。
不必抄題,作答時請將試題題號及答案依照順序寫在試卷上,於本試題上作答者,不予計分。
本科目除專門名詞或數理公式外,應使用本國文字作答。
代號
頁次
-
一、請針對 C++, Java 及Python 三種程式語言,以列表方式比較四種特
性:執行方式(編譯或直譯)、物件導向繼承機制、性能(執行速
度)、應用場景領域。(15 分)
請用 C, C#, C++, Java 或Python 程式語言撰寫一個程式,定義一個
100 元素的陣列,每一個元素可以儲存的資料包含 10 個字元長度
的字串,用以儲存姓名,一個整數用以儲存薪資,及一個浮點數用
以儲存年資,提供使用者一筆一筆輸入這些資料。(15 分)
二、請將下列 C++語言的迴圈程式以 for 迴圈方式改寫,並寫出此程式
片段輸出的結果。(5分)
int i=1;
while (i <= 10)
{if (i < 5 && i !=2)
std::cout << 'X';
i ++;
}
下列 C++程式有一行錯誤,使得編譯無法通過。請列出那一行錯
誤,並寫出正確程式碼。修正後執行此程式,使用者輸入 153 後輸
出為何?(5分)
 

代號:
頁次:
-
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
using namespace std;
int main()
{int number, originalNumber, remainder, result = 0;
cout <<"請輸入三位數: ";
cin >> number;
originalNumber = number;
while (originalNumber != 0)
{remainder = originalNumber%10;
result += remainder*remainder*remainder
originalNumber /= 10;
}
cout << "輸出為:"<< result;
return 0;
}
執行下列 C++程式,當使用者輸入 32,其輸出結果為何?(5分)
#include <iostream>
using namespace std;
int main()
{int x;
cout << "請輸入一個正整數:";
cin >> x;
for (int i = 1; x > 0; i++)
{if (x % i == 0)
cout << i << " ";
if (x == i)
{i = 0;
cout << "n";
cout << "請輸入一個正整數:" ;
cin >> x;
}
}
return 0;
}
請利用 C, C#, C++, Java 或Python 程式語言寫一個副程式,求二個
正整數的最大公因數(GCD)及最小公倍數(LCM)。(10 分)
 

代號:
頁次:
-
三、下列 C++程式,當程式執行後輸入二個正整數,「7 10」,其輸
出為何?(5分)
#include <iostream>
using namespace std;
void getNumbers(int& input1, int& input2);
void function1(int& var1, int& var2);
void function2(int var1, int var2);
void showResult(int result1, int result2);
int main()
{
int first, second;
getNumbers(first, second);
function1(first, second);
showResult(first, second);
return 0;
}
void getNumbers(int& input1, int& input2)
{
cout <<"輸入二個正整數: ";
cin >> input1 >> input2;
}
void function1(int& var1, int& var2)
{
int temp;
temp = var1;
var1 = var2;
var2 = temp;
}
void showResult(int result1, int result2)
{
cout << "二個數輸出結果為:" << result1 << " " << result2 << endl;
}
 

代號:
頁次:
-
若C++程式包含下列宣告:
class Automobile
{
public: void setPrice(double newPrice);
void setProfit(double newProfit);
double getPrice();
private: double price;
double profit;
double getProfit();
}
且主程式(main function)包含下列宣告,並設定完成其 member 變
數中的值。
Automobile Toyota, Nissan;
下列那些指令敘述(statements)在主程式中是合法的(legal),那些
是不合法的(illegal)?(10 分)
Toyota.price = 5233.99;
Nissan.setPrice(4000.24);
double aPrice, aProfit;
aPrice = Nissan.getPrice();
aProfit= Nissan.getProfit();
aProfit= Toyota.getProfit();
Toyota = Nissan;
請說明物件導向程式中多型(Polymorphism)的概念。多型通常可
以透過多載(Overloading)和覆寫(Overriding)來實現。請說明多
載與覆寫的定義與特性。(15 分)
 

代號:
頁次:
-
四、請說明下列二個 PHP 程式的輸出結果。(8分)
<!DOCTYPE html>
<html>
<body>
<?php
$i = 1;
while ($i < 6) {
if($i == 3) break;
echo $i;
$i++;
}
?>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<?php
$x = 5;
function myTest() {
echo "<p>Variable x inside function is: $x</p>";
}
myTest();
echo "<p>Variable x outside function is: $x</p>";
?>
</body>
</html>
請寫一個 PHP 程式,隨機產生一個 0-100 的數。若該數小於等於
50,則輸出該數及「小」,若大於 50 小於 100,則輸出該數及「大」。
例如當產生 65 時,輸出為「65 大」。(7分)