免費開始練習
司法三等申論題 108年 [檢察事務官電子資訊組] 程式語言

第 一 題

📖 題組:
請問下列兩個 Python 程式,若分別輸入 Andy, World, Everyone 後: 程式 A 1 import sys 2 3 def Calc(sInput): 4 sOutput = "Hello, " + sInput + "!" 5 return(sOutput) 6 7 sInput = sys.stdin.readline() 8 while (sInput != ""): 9 sInput = sInput.replace("\r", "").replace("\n", "") 10 print(Calc(sInput)) 11 sInput = sys.stdin.readline() 程式 B 1 def Calc(sInput): 2 sOutput = "Hello, " + sInput + "!" 3 return(sOutput) 4 5 try: 6 while(1): 7 print(Calc(input())) 8 except (EOFError): 9 pass
📝 此題為申論題,共 2 小題

小題 (一)

其執行後的輸出分別為何?(10 分)

思路引導 VIP

面對程式碼追蹤題,應先辨別 I/O 串流讀取機制與迴圈終止條件(如 readline() 的空字串判定與 input() 的例外捕捉)。接著細部追蹤字串處理邏輯,特別注意換行字元(Newline)的保留與過濾行為,即可精確推導出終端機輸出。

🤖
AI 詳解
AI 專屬家教

【解題思路】分析 sys.stdin.readline()input() 兩種不同標準輸入機制的換行字元處理差異,以及 EOF(檔案結尾)的控制流程設計。 【詳解】 一、程式 A 解析(條件判斷與手動清理):

小題 (二)

若兩個程式都可以被正常執行,請說明其執行方式與優缺點?(15 分)

思路引導 VIP

看到此題,應先辨識兩段程式碼的核心差異在於「I/O 處理機制」與「控制流程(Control Flow)設計」。程式 A 透過底層標準輸入串流(sys.stdin)與明確的條件判斷來控制迴圈;程式 B 則使用內建高階函式(input)搭配例外處理(Exception Handling)來終止程式。解題時應從執行機制、可讀性與執行效能(Overhead)三個維度進行剖析。

🤖
AI 詳解
AI 專屬家教

【破題】 兩個程式的功能皆為讀取標準輸入並輸出格式化字串。輸入 Andy, World, Everyone 後,兩者皆會依次印出「Hello, Andy!」、「Hello, World!」、「Hello, Everyone!」。其核心差異在於迴圈終止條件與 I/O 處理層級的不同。 【論述】

升級 VIP 解鎖