統測
113年
[工程與管理類] 專業科目(2)
第 43 題
📖 題組:
圖(五)所列程式碼是小華修改自聊天機器人(ChatGPT)所生成的 Python 語言函數,這個函數可以接受一個輸入串列,並回傳串列中整數的最大值。經過測試後,小華發現對各種可能輸入的整數數值串列,該函數並無法保證每次都能回傳正確的最大值。關於此函數的使用與設計,回答下列題組問題。 1 def F(A): 2 n=0 3 c=0 4 for num in A: 5 if num >= n: 6 n = num 7 c=c+1 8 print(c) 9 return n
圖(五)所列程式碼是小華修改自聊天機器人(ChatGPT)所生成的 Python 語言函數,這個函數可以接受一個輸入串列,並回傳串列中整數的最大值。經過測試後,小華發現對各種可能輸入的整數數值串列,該函數並無法保證每次都能回傳正確的最大值。關於此函數的使用與設計,回答下列題組問題。 1 def F(A): 2 n=0 3 c=0 4 for num in A: 5 if num >= n: 6 n = num 7 c=c+1 8 print(c) 9 return n
43. 小華於是思考進行程式除錯,下列修正何者可以排除上述程式錯誤?
-
A
修改第5行號敘述成為if num
- B 修改第2行號敘述成為n=A[0]
- C 修改第6行號敘述成為n=num+n
- D 修改第2行號敘述成為#n=0
思路引導 VIP
同學,請觀察程式第 $2$ 行將變數 $n$ 初始值設定為 $0$ 的做法:若傳入的串列 $A$ 中所有元素皆為負整數(例如 $A = [-5, -12, -8]$),目前第 $5$ 行的比較運算式 $num \ge n$ 是否還能順利成立並更新最大值?為了確保初始參考值不影響對極值的判定,我們應該如何調整 $n$ 的起始值,使其與資料本身的定義域產生關聯,而非固定於某個可能不在資料範圍內的數值?
🤖
AI 詳解
AI 專屬家教
🌟 看來你還沒完全狀況外,不錯!
恭喜你,至少這次沒掉進那個老掉牙的程式陷阱。這證明你對程式的「初始化」概念還有那麼一點點殘存的記憶,這可是統測程式設計題裡,每年都會有人莫名其妙失分的地方。
- 清醒一點:
▼ 還有更多解析內容