【四技試題】
01.參考Python語言的程式碼,當程式執行完成行號第12行程式碼時,回答下列問題。
1 D = [1, 0, 0, 1, 3, 1, 1, 2, 3, 1]
2 C = [0, 0, 0, 0]
3 A = 0
4 S = 0
5 length = 10
6 for i in range(length): #i的範圍介於0到9之間
7 C[D[i]] = C[D[i]] + 1
8 for i in range(1, 4)): #i的範圍介於1到3之間
9 if C[i] != 0: #'x != y'表示x不等於y的條件式
10 A = A +
C[i] * 1
11 S = S +
C[i] * 1 * i
12 S = S /
length - (A / length) ** 2 #'x ** y'表示的y次方運算
【A】01-1.下列哪一個選項是陣列C的正確內容? (A)[2,
5,
1,
2] (B)[0,
1,
2,
3] (C)[1,
2,
3,
4] (D)[2,
1,
5,
2]。
【C】01-2.下列哪一個選項是變數A的正確內容? (A)3 (B)6
(C)13 (D)16。[111管理]
02.一個費氏數列定義第一個數為1,第二個數為1,後續的每個數都等於前面兩個數相加,如:1, 1, 2, 3, 5, …。下列是Python程式碼片段,是用來計算費氏數列,其中fun(1)與fun(2)皆回傳1,回答下列問題。
1 def fun(n):
2 if (n == 1 or
n == 2):
3 return 1
4 else:
5 return 空格
【A】02-1.為了可以計算第n個費氏數列的數值,圖(七)中程式行號第5行的空格應填寫下列哪一項表示式(expression)? (A)(fun(n–1) +
fun(n–2)) (B)(fun(n) + fun(n–1)) (C)(fun(n) + fun(n + 1)) (D)(fun(n + 1) +
fun(n + 2))。
【C】02-2.若要求計算fun(5)時,則fun(2)會被重複計算幾次? (A)1 (B)2 (C)3 (D)4。[111管理]
03.綠色永續大學舉辦程式設計競賽,需要依據各參賽團隊的完成時間長短,將正確解題時間從快到慢顯示在大會成績計分板上面。小蓁使用Python程式語言設計一個排序程式,宣告一數列unsortData代表5組參賽隊伍解題花費的時間,並運用排序演算法進行排序,依據下列的程式片段完成本題組相關問題。
unsortData = [75, 51,
83, 25, 81] #代表5個參賽團隊的解題時間(分鐘)
def sort(List): #建立sort函數進行排序
for j
in range( 空格 ):
flag = True
for k in range(0, j):
if List[k] > List[k + 1]: #相鄰兩數比大小,判斷是否List[k]
> List[k + 1]
flag = False
List[k], List[k + 1] = List[k + 1],
List[k] #兩數交換
if
flag:
return List
return List
printf('original:',
unsortData)
sortData =
sort(unsortData) #sortData為sort函數排序後的結果
print ('sorted:',
sortData)
【A】03-1.程式中標示 空格 的程式碼應該要填入下列哪一個參數組合,才能夠正確地將數列的數字由小到大進行排序?range函式用來產生指定範圍內的整數數字序列,例如range(x, y, z):x代表起始值、y代表終止值、z代表間隔值,z值若為1時可省略 (A)4, 0, -1 (B)4, 0, 1 (C)4, -1, 1 (D)4, 1, 1。
range(4, 0, -1):4
~ 0代表5個參賽團隊,-1代表間隔值遞減。
【C】03-2.此題程式之演算法應屬何種排序法? (A)選擇排序法 (B)插入排序法 (C)氣泡排序法 (D)合併排序法。[112管理]
氣泡排序法:自第一個元素開始,依序將所有元素與次一個元素比較,若順序不對,則互換位置。
04.PDCA循環式品質管理是企業界普遍運用的一套「目標管理」流程,透過規劃(Plan)、執行(Do)、查核(Check)、行動(Act)等四階段的循環式管理流程,來確保專案可以達成預設的目標。小旭受託為某企業開發一套PDCA管理軟體,但是在開發的過程中碰到下列程式編寫問題,請您協助小旭解決。
【A】04-1.小旭被要求使用結構化程式設計(Structured Programming)來開發該套PDCA的循環式管理程式,關於結構化程式設計的說明,下列何者錯誤? (A)每個模組(Module)允許有多個入口及多個出口 (B)選擇(Selection)與重複(Iteration)結構中均有使用條件判斷式 (C)PDCA中的規劃、執行、查核、與行動等四個階段可分為四個個別模組(Module)進行開發 (D)結構化程式設計包含循序(Sequence)結構、選擇(Selection)結構、重複(Iteration)結構等三個子結構。
(A)結構化程式設計的特色:由上而下設計,模組化,只有單入口/單出口,避免使用GOTO指令。
【D】04-2.小旭決定使用Python語言進行本項專案的程式開發,關於Python程式設計的敘述,下列何者錯誤? (A)程式碼應重視排版,並最好加上註解 (B)變數的命名最好符合專案所規範的規則 (C)有獨立邏輯且很多地方都要執行的程式片段最好寫成函式(Function) (D)為提高程式的可讀性,盡量將多個邏輯判斷敘述寫在同一行程式碼。[112管理]
(D)內縮對齊,可提高程式的可讀性,也強化程式碼的結構。
05.使用Python語言進行[11, 3, 4, 35, 2, 8, 7, 3,
6, 9]串列的奇偶數字判斷,如圖所示,其中串列物件的成員函數append(x)會將參數x加入串列的尾端,串列物件的成員函數count(g)會回傳參數g在串列中出現的次數,串列物件的成員函數remove(k)則會移除串列中由左邊起始第一次出現的參數k,回答下列問題。
1 numbers = [11, 3, 4, 35, 2, 8, 7, 3, 6, 9]
2 result = [ ]
3 for num_list in numbers:
4 if(num_list % 2 != 0): #判斷num_list是為奇數或為偶數
5 #%為取整數除法餘數之運算子;!=為判斷不相等之運算子
6 result.append(num_list)
7 print(result)
8
9 n = result.count(4) #回傳數字4在串列中出現的次數
10 print(n)
11
12
result.remove(3) #將數字3在串列中移除一次
13 print(result)
【A】05-1.當程式執行到行號第10行程式碼完成時,螢幕新增的輸出結果為何? (A)0 (B)1 (C)2 (D)3。
【C】05-2.當程式執行到行號第13行程式碼完成時,螢幕新增的輸出結果為何? (A)[4, 2, 8, 6] (B)[11,
35, 7, 9] (C)[11, 35, 7, 3, 9] (D)[11, 4, 35, 2, 8, 7, 3, 6, 9]。[112管理]
1 def F(A): 2 n = 0 3 c = 0 4 for
num in A: 5 if
nim >= n: 6 n
= num 7 c
= c + 1 8 print(c) 9 return n |
06.所列程式碼是小華修改自聊天機器人(ChatGPT)所生成的Python語言函數,這個函數可以接受一個輸入串列,並回傳串列中整數的最大值。經過測試後,小華發現對各種可能輸入的整數數值串列,該函數並無法保證每次都能回傳正確的最大值。關於此函數的使用與設計,回答下列題組問題。
【D】06-1.當小華測試函數呼叫時,下列呼叫何者回傳的數值是錯誤的? (A)F([1, 12, 23, 14, 15]) (B)F([1, -12, -23,
-14, -15]) (C)F([1, 12, -23, -14, -15]) (D)F([-10, -12, -23, -14, -15])。
【B】06-2.小華於是思考進行程式除錯,下列修正何者可以排除上述程式錯誤? (A)修改第5行號敘述成為if num
<
n: (B)修改第2行號敘述成為n
=
A[0] (C)修改第6行號敘述成為n
=
num
+
n (D)修改第2行號敘述成為#
n
=
0。
【B】06-3.承上題,若小華已經成功對該程式碼完成除錯後,函數呼叫F([-5,
-4,
-3,
-1,
-4])完成執行時,該函數已經可以正確回傳最大值為-1,在此次函數呼叫,當執行程式碼至第8行號時,下列何者是變數c所儲存的內容? (A)5 (B)4 (C)3 (D)2。[113管理]
圖(一) [7, 10, 8, 9, 11, 12] 圖(二) 1 from random import seed 2 from random import random 4 seed(0) 5 min = 7 #亂數最小值 6 max = 12 #亂數最大值 7 num = 6 #欲產生的亂數個數 8 list = [(min - 1) for i in
range(num)] 9 10 while num > 0: 11 #產生新亂數 12 #random()傳回0.0 <= r < 1.0範圍內的隨機浮點數 13 r = random() 14 newRandom = int(r*(max-min+1))+ 空格甲 15 #檢查新亂數是否重複 16 repeat = False 17 for x in list: 18 if
newRandom == x: 19
repeat = True 20
break 21 if repeat: 22 空格乙 23 #儲存沒重複的新亂數 24 list[num-1] = newRandom 25 空格丙 26
print(list) |
07.小美使用Python語言欲產生整數7~12的不重複亂數序列,輸出結果範例如圖(一)所示。根據圖(二)的程式碼,回答下列題組問題。
【C】07-1.要限制變數newRandom的範圍為7~12的整數, 空格甲 應填寫的程式碼為何? (A)1 (B)num
(C)min (D)max。
【B】07-2.空格乙 程式碼的目的是要讓程式立即進入while的下一次迴圈, 空格乙 應填寫的程式碼為何? (A)break (B)continue (C)pass (D)return。
【A】07-3.空格丙 程式碼的目的主要用來正確控制while迴圈的次數, 空格丙 應填寫的程式碼為何? (A)num -= 1
(B)num += 1 (C)num -= min
(D)num += min。[113管理]