免費開始練習
地特三等申論題 111年 [資訊處理] 程式設計

第 一 題

📖 題組:
二、有關 Python 程式設計,回答下列問題:
📝 此題為申論題,共 2 小題

小題 (一)

以下程式執行時,輸入正數為 15 和 21 時,其輸出結果分別為何?(14 分) def func_2_1(x): y = 2 while y <= x: flag = True for i in range(2, y): if y % i == 0: flag = False break if flag == True: print(y, end=' ') y += 1 if __name__ == "__main__": x = int(input('請輸入一正整數:')) print('輸出結果:') func_2_1(x) print('\n')

思路引導 VIP

首先,分析自訂函數 func_2_1(x) 的雙層迴圈邏輯。外層 while 迴圈遍歷從 2 到 x 的數字,內層 for 迴圈測試該數字是否有 1 與自身以外的因數,藉此判斷並印出小於等於 x 的所有質數。

🤖
AI 詳解
AI 專屬家教

【解題思路】分析雙迴圈邏輯,辨識其為找出特定範圍內質數的演算法。 【詳解】 一、程式邏輯解析:

小題 (二)

以下是將 x = [-5, 16, 30, -11, 26, -22] 整數串列,利用氣泡排序法,由小到大逐次排列,並顯示每一次排列的 python 主程式, if __name__ == "__main__": x = [-5, 16, 30, -11, 26, -22] print("排 序 前 :", end="") for i in range(6): print(' x[%d] =%3d' %(i, x[i]), end = "") func_2_2(x) print() 此程式執行結果如下: 排 序 前 : x[0] = -5 x[1] = 16 x[2] = 30 x[3] =-11 x[4] = 26 x[5] =-22 第 1 次排列: x[0] = -5 x[1] = 16 x[2] =-11 x[3] = 26 x[4] =-22 x[5] = 30 第 2 次排列: x[0] = -5 x[1] = -11 x[2] = 16 x[3] =-22 x[4] = 26 x[5] = 30 第 3 次排列: x[0] = -11 x[1] = -5 x[2] =-22 x[3] = 16 x[4] = 26 x[5] = 30 第 4 次排列: x[0] = -11 x[1] =-22 x[2] = -5 x[3] = 16 x[4] = 26 x[5] = 30 第 5 次排列: x[0] =-22 x[1] =-11 x[2] = -5 x[3] = 16 x[4] = 26 x[5] = 30 寫出氣泡排序法的 func_2_2(x)函數,來完成上述程式。(11 分)

思路引導 VIP

看到此題應先釐清「氣泡排序法」的雙層迴圈邏輯:外層控制回合數(n-1次),內層進行相鄰元素的比較與交換。接著觀察主程式輸出,需注意主程式迴圈結尾未換行(使用 end=""),因此在自訂函數中印出每回合結果時,首行需加上 \n 換行,並套用與主程式相同指定的格式 %3d 輸出串列內容。

🤖
AI 詳解
AI 專屬家教

【解題關鍵】實作氣泡排序法(Bubble Sort)的雙層迴圈邏輯,並確保輸出格式(包含換行與格式化字串 %3d)與主程式完美銜接。 【解答】 以下為完整的 func_2_2(x) 函數實作程式碼:

📝 同份考卷的其他題目

查看 111年[資訊處理] 程式設計 全題

升級 VIP 解鎖