資訊處理 113 年程式設計概要考古題
題目為考試當年公告版本,實務標準請以現行規範為準。
㈠請針對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
請就如下的Java 程式,說明程式中各方法(包括建構子)執行的順序, 及最後顯示的結果。註:執行程序說明,如class LinkedList 建構子 (head, tail)→ ……(30 分)
請撰寫HTML 程式,執行後可以呈現如下的頁面,其中"Year"是最多四 位數的整數值,Submit 按鈕後,以POST 形式傳送表單的資料到後端 "addMovie.php"處理。(20 分)
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 分)