資訊處理 113 年程式設計概要考古題(共 5 題)
資料來源:考選部歷屆試題|法律人 LawPlayer 整理
https://lawplayer.com/exam/information-processing/113-%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88%E6%A6%82%E8%A6%81
第 1 題
㈠請針對C++, Java 及Python 三種程式語言,以列表方式比較四種特
性:執行方式(編譯或直譯)、物件導向繼承機制、性能(執行速
度)、應用場景領域。(15 分)
㈡請用C, C#, C++, Java 或Python 程式語言撰寫一個程式,定義一個
100 元素的陣列,每一個元素可以儲存的資料包含10 個字元長度
的字串,用以儲存姓名,一個整數用以儲存薪資,及一個浮點數用
以儲存年資,提供使用者一筆一筆輸入這些資料。(15 分)
第 2 題
㈠請將下列C++語言的迴圈程式以for 迴圈方式改寫,並寫出此程式
片段輸出的結果。(5 分)
int i=1;
while (i <= 10)
{
if (i < 5
&&
i !=2)
std::cout << 'X';
i ++;
}
㈡下列C++程式有一行錯誤,使得編譯無法通過。請列出那一行錯
誤,並寫出正確程式碼。修正後執行此程式,使用者輸入153 後輸
出為何?(5 分)
1
2
第 3 題
請就如下的Java 程式,說明程式中各方法(包括建構子)執行的順序,
及最後顯示的結果。註:執行程序說明,如class LinkedList 建構子
(head, tail)→ ……(30 分)
第 4 題
請撰寫HTML 程式,執行後可以呈現如下的頁面,其中"Year"是最多四
位數的整數值,Submit 按鈕後,以POST 形式傳送表單的資料到後端
"addMovie.php"處理。(20 分)
第 8 題
9
10
11
12
13
14
15
16
17
#include
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
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
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 分)
Variable x inside function is: $x
";
}
myTest();
echo "Variable x outside function is: $x
";
?>
㈡請寫一個PHP 程式,隨機產生一個0-100 的數。若該數小於等於
50,則輸出該數及「小」,若大於50 小於100,則輸出該數及「大」。
例如當產生65 時,輸出為「65 大」。(7 分)
題目為考試當年公告版本,實務標準請以現行規範為準。