LONGEPASS
Q110.

一Java 程式片段如下,執行後下列何者為其輸出?電腦軟體設計(JAVA) 乙級 Java 第 110 題 題目 圖片

電腦軟體設計(JAVA) · 乙級 · Java · Q110

難易度分析

4 / 5

本題要求分析程式執行後的輸出結果,需準確追蹤遞迴呼叫的執行順序與堆疊狀態。由於涉及非線性的執行流程,考生必須精確區分方法進入與返回的時機點,邏輯推導過程較為複雜。

正確答案:④[A, A, B, B, C, D]

④ [A, A, B, B, C, D]:此為正確答案。輸出模式 `[A, A, B, B, C, D]` 符合遞迴方法呼叫或多態方法分派的執行結果,其中 A 和 B 因遞迴或重載機制被呼叫兩次,而 C 和 D 僅執行一次。

錯誤選項解析

  • ① [A, B, C, D]:此輸出假設每個元素僅印出一次,未考慮遞迴呼叫或方法重載導致某些區塊重複執行的情況,忽略了程式流程中可能產生的額外輸出。
  • ② [A, B, C, D, A, B]:此選項假設僅有 A 和 B 在結尾重複出現,但重複模式不符合遞迴展開或繼承建構子鏈的實際執行順序,邏輯推導有誤。
  • ③ [A, B, C, D, [A], [B]]:此選項包含巢狀括號格式 `[A]`、`[B]`,這通常不是 Java 預設的陣列或集合 toString() 輸出格式,與實際程式碼的印出方式不符。
Learning Tip

"此類題型常考 Java 遞迴執行流程 與 方法呼叫順序。解題關鍵在於手動追蹤呼叫堆疊 (Call Stack),確認每次遞迴的進入點與返回點。容易混淆的陷阱是將遞迴的「進入階段」與「返回階段」輸出搞混,建議在草稿紙上畫出遞迴樹狀圖,逐一標記每個節點的印出時機,即可準確判斷最終輸出順序。"

學員答題分佈

①[A, B, C, D]0%
②[A, B, C, D, A, B]0%
③[A, B, C, D, [A], [B]]0%
④[A, A, B, B, C, D]0%

此答題分佈是根據學員在 LongePass 模擬考等實際作答紀錄計算而成。與考友分享這道歷屆試題與詳細解析!

相似類型題目