所屬科目:程式設計
一、(一)請針對 C++, Java 及 Python 三種程式語言,以列表方式比較四種特 性:執行方式(編譯或直譯)、物件導向繼承機制、性能(執行速 度)、應用場景領域。(15 分)
二、(一)請將下列 C++語言的迴圈程式以 for 迴圈方式改寫,並寫出此程式 片段輸出的結果。(5 分)int i=1;while (i <= 10){if (i < 5 && i !=2)std::cout << 'X';i ++;}
(三)執行下列 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;}
(三)請說明物件導向程式中多型(Polymorphism)的概念。多型通常可 以透過多載(Overloading)和覆寫(Overriding)來實現。請說明多 載與覆寫的定義與特性。(15 分)
四、(一)請說明下列二個 PHP 程式的輸出結果。(8 分)1.<!DOCTYPE html><html><body><?php$i = 1;while ($i < 6) {if($i == 3) break;echo $i;$i++;}?></body></html>2.<!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>