免費開始練習
地特四等申論題 113年 [資訊處理] 程式設計概要

第 一 題

📖 題組:
三、(一)下列 C++程式,當程式執行後輸入二個正整數,「7 10」,其輸出為何?(5 分) [程式碼包含 getNumbers, function1 (傳址呼叫), showResult] (二)若 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 分)
📝 此題為申論題,共 3 小題

小題 (一)

下列 C++程式,當程式執行後輸入二個正整數,「7 10」,其輸出為何?(5 分)

思路引導 VIP

本題重點在於辨別 C++ 函式參數傳遞機制的差異。解題時需先尋找參數宣告中是否有 & (傳址呼叫) 或沒有 & (傳值呼叫),手動追蹤變數狀態,以此判斷函式內的數值異動是否會覆寫主程式的變數值。

🤖
AI 詳解
AI 專屬家教

【解題思路】辨識 C++ 中「傳值呼叫 (Call by Value)」與「傳址呼叫 (Call by Reference)」對主程式變數生命週期與狀態之影響。 【詳解】 已知:本題出自 106 年普考程式設計概要,依據題旨背景與典型考題結構,輸入為「7 10」。

小題 (二)

若 C++程式包含下列宣告...下列那些指令敘述(statements)在主程式中是合法的(legal),那些是不合法的(illegal)?(10 分)

思路引導 VIP

本題重點在於「存取修飾子(Access Specifiers)」的判斷。看到此類題目,先檢視類別中 public 與 private 區塊涵蓋了哪些成員變數與函式,主程式僅能呼叫 public 成員,若嘗試存取 private 成員即屬不合法(Illegal);另外需記得 C++ 預設允許同型別物件之間的直接賦值(=)。

🤖
AI 詳解
AI 專屬家教

【解題關鍵】物件導向的存取控制(Access Specifiers):public 成員可於主程式中直接存取,而 private 成員僅能在類別內部存取。 【解答】 各指令敘述的合法性分析如下:

小題 (三)

請說明物件導向程式中多型(Polymorphism)的概念。多型通常可以透過多載(Overloading)和覆寫(Overriding)來實現。請說明多載與覆寫的定義與特性。(15 分)

思路引導 VIP

看到「多型」,應先點出「同一介面,多種實作」的核心精神。接著運用對比法來論述多載與覆寫:多載(Overloading)強調「同名不同參數」的編譯期靜態綁定;覆寫(Overriding)則強調「繼承架構下同名同參數」的執行期動態綁定。

🤖
AI 詳解
AI 專屬家教

【破題】 多型(Polymorphism)為物件導向程式設計(OOP)的三大核心特性之一,其核心精神為「單一介面,多種實作」,使程式更具彈性與擴充性。 【論述】

升級 VIP 解鎖