民國115年 普通考試 資訊處理 程式設計概要

第2題

請說明如下C#程式,正確執行時的輸出結果為何?如若無法正確執行 (即會出現執行時期的錯誤),請說明應如何修正才能正常執行及輸出 結果為何。(20 分)

題目

請說明如下C#程式,正確執行時的輸出結果為何?如若無法正確執行 (即會出現執行時期的錯誤),請說明應如何修正才能正常執行及輸出 結果為何。(20 分)

參考解答(AI 生成,非官方)

  • 一、前提說明:本題 C# 程式碼未隨題目附上,無法據以逐行推算唯一輸出,僅能提供標準的解題程序與判定規則。考生作答時應先確認程式完整列表,再依下列步驟追蹤,切勿憑印象猜測數值。
  • 二、逐行追蹤法:建立「行號/敘述/變數目前值/輸出」四欄表格,自 Main 進入點開始,遇到迴圈即展開每一次迭代,遇到方法呼叫則進入方法體內記錄區域變數與回傳值。C# 陣列索引由 0 起算,長度為 Length,故迴圈條件應為 i < arr.Length,若寫成 i <= arr.Length 即會超出上限。
  • 三、常見執行期錯誤型態:IndexOutOfRangeException(索引越界)、NullReferenceException(對 null 呼叫成員)、DivideByZeroException(整數除以零)、InvalidCastException 或 FormatException(型別轉換失敗)、InvalidOperationException(在 foreach 迭代中修改集合)。此類錯誤編譯期不會攔阻,僅於執行時擲出例外並中止程式。
  • 四、修正原則:索引越界改為嚴格小於;物件使用前加 null 檢查或改用 ?. 運算子;整數除法前先判斷除數,或改為 double 運算;字串轉數值改用 int.TryParse 或 double.TryParse 以避免例外;集合走訪改以 for 迴圈或先 ToList() 再修改。修正後須重新逐行追蹤,確認輸出格式(含換行與小數位)。
  • 五、輸出判定:若程式可正常執行,輸出即為各 Console.WriteLine 依執行順序印出的字串,須注意字串串接、ToString 格式與換行符號;若發生例外,則應寫明例外型別、發生行號及訊息,並說明修正後的完整輸出。因原始碼缺漏,本題無法得出唯一輸出數值。

AI 依官方試題文字產生的參考解答,非考選部公告答案,內容僅供備考參考。

官方資料