B 卷 選擇題 共 50 題 ( 共 100 分 ) 1. 執行下列 Visual Basic 程式片段後, 共輸出幾筆資 料? x = 0: y = 1 Print y x = x + y Print x y = y + 1 If x >= 10 Then Exit Loop While y <= 10 (A)8 (B)10 (C)6 (D)12 2. 下列哪一項可確保 Visual Basic 迴圈中的敘述最少 會被執行 1 次? (A) While Loop (B) Loop Until (C)While (D) Until Loop 3. 在 Visual Basic 中, 執行下列程式, 其結果為何? Call Sum(2, 10) Sub Sum(X As Integer, Y As Integer) TOTAL = X ^ Y Print TOTAL (A)0 (B)512 (C) 1024 (D)1024 4. 執行下列程式後,k 值為何? For k = 1 To 10 k = k + 2 Next k (A)13 (B)10 (C)7 (D)1 5. 執行下列 Visual Basic 程式片段後, 請問 S =? Dim S, I As Integer S = 10 I = 0 I = I + 1 S = S 1 Loop Until I > 3 (A)4 (B)5 (C)6 (D)7 6. 使用 Visual Basic 程式語言執行下列程式碼後, 總 共會輸出幾個 #? For K = 2 To 4 For J = K To K ^ 2 Step 2 Print "#" Next K (A)6 個 (B)10 個 (C)13 個 (D)23 個 7. 執行下列程式後,C 值為何? C = 2 For I = 1 To 10 If I Mod 2 = 0 Then C = C + 1 (A)5 (B)6 (C)7 (D)8 8. 執行下列 Visual Basic 程式片段後, 輸出的結果為 何? Dim A(8) A(0) = 1: A(1) = 2: A(2) = 3: A(3) = 4: A(4) = 5: A(5) = 6: A(6) = 7: A(7) = 8 For i = 1 To 2 For j = 1 To 3 A(j) = A(j) + 10 s = A(i) + A(j) Next Next Print s (A)47 (B)18 (C)9 (D)27 9. 執行下列程式將顯示 S 值為 S = 0: X = 1 While X <= 10 Y = 1 While Y <= X S = S + 1 Y = Y + 1 X = X + 1 Print S (A)36 (B)45 (C)55 (D)66 10. 佳茵在玩撲克牌時, 習慣先將手中的撲克牌依照大 小排列, 若她先挑選出最小的牌, 放在第一個位 置, 再由剩餘的撲克牌中, 挑選出第二小的牌, 放 在第二個位置 依此類推, 直到撲克牌由小到大 排序完成, 請問她使用的是下列哪一種排序法? (A) 選擇排序法 (B) 氣泡排序法 (C) 快速排 序法 (D) 合併排序法 11. 下列 Visual Basic 程式, 印出的結果為 : X = 102 Y = 40 For J = 2 To 4 While X <> Y If X > Y Then X = X Y Y = Y X X = X J Loop (A)8 (B)6 (C)2 (D)0 12. 執行下列程式, 共會輸出幾個 "@" 符號? X = 100 While X > 1 X = X \ 2 Print "@"
(A)4 (B)5 (C)6 (D)7 13. 下列關於陣列 DIM A%(2, 3, 6) 之敘述, 何者錯誤? (A) 該陣列元素之資料型態皆為整數 (B) 系統 預設起始元素為 A%(0, 0, 0) (C) 該陣列共有 84 個元素 (D) 與 Dim A(2, 3, 6) As String 意義相同 14. 在 Visual Basic 語言中, 若宣告 Dim A(2, 3, 4, 5) As Single, 下列何者有誤? (A) 與 Option Base 0: Dim A(2, 3, 4, 5) 同義 (B) 共含 120 個元素 (C) 為單精度陣列 (D) 與 DIM A!(2, 3, 4, 5) 意義相同 15. 以下 Visual Basic 程式執行後, 各變數之值為 : a = 1: b = 2 Call S1(a, b) Sub S1(ByVal x, ByRef y) x = x * 2: y = y + 1 (A)a = 1, b = 3, x = 2, y = 3 (B)a = 2, b = 3, x = 2, y = 3 (C)a = 1, b = 2, x = 1, y = 3 (D)a = 2, b = 2, x = 3, y = 3 16. 下列何者是結構化程式設計的主要控制結構? (A) 重複 選擇 循序 (B) 重複 選擇 跳躍 (C) 重複 跳躍 循序 (D) 選擇 跳躍 循序 17. 執行下列 Visual Basic 語言片段程式的結果為何? N = 0: I = 0 While I < 50 If I Mod 13 = 1 Then N = N + I I = I + 3 Print "N ="; N (A)N = 82 (B)N = 78 (C)N = 54 (D)N = 27 18. 以下 Visual Basic 程式執行的結果為何? X = 0 For K = 1 To 5 For J = 1 To 3 X = X + K * J Next K (A)90 (B)45 (C)30 (D)15 19. 對下列 7 筆已排序的資料 (2, 13, 27, 32, 44, 58, 67), 以二元搜尋法找尋關鍵值為 58 的資料, 總共 要作幾次比較? (A)2 (B)3 (C)4 (D)6 20. 副程式與自定函數的主要差別在於 (A) 自定函數有傳回值, 副程式則無 (B) 自定函 數可以被主程式呼叫, 副程式不行 (C) 副程式 必須是單一出 / 入口, 自定函數則否 (D) 副程式 可簡化程式複雜度, 自定函數不行 21. 使用 Visual Basic(VB) 程式語言執行下列程式碼 後, 結果為何? For I = 1 To 100 Step 2 Sum = Sum + I Print "Sum = "; Sum (A)Sum= 5050 (B)Sum = 2500 (C)Sum = 2550 (D)Sum = 5500 22. 使用 Visual Basic 程式語言執行下列程式碼後, 所 得結果為何? J = 1 While J < 5 If J Mod 2 = 1 Then Sum = 3 * Sum Sum = Sum + J J = J + 1 Loop Print Sum (A)10 (B)18 (C)23 (D)30 23. DIM M%(8) 表示定義一陣列, 其每一陣列元素佔用 記憶體空間為多少 Bytes? (A)18 (B)16 (C)8 (D)2 24. 執行下列 Visual Basic 程式片段後,Sum 值為何? For i = 10 To 10 Sum = Sum + Int(Sqr(Abs(i))) (A)36 (B)38 (C)40 (D)42 25. 下列程式執行後, 所印出的 X 值結果為何? X = 0 For Y = 1 To 10 Step 2 For Z = 10 To 1 Step 3 If Y = Z Then X = X + 1 Next Z Next Y (A)0 (B)2 (C)11 (D)20 26. a = 15: b = 27 X = a: y = b Until a = b If a > b Then a = a b If a < b Then b = b a Loop Print (X / a); "/"; (y / a) 上述程式之執行結果會印出 : (A)9/5 (B)0.5555 (C)1 (D)5/9 27. 下列 Visual Basic 語言片段程式的執行結果為何? N = 0
For i = 1 To 50 If i Mod 15 = 0 Then N = N + 1 (A)(1,5,2) (18,10, 2) (B)(3,8,1) (C)(1,5, 1) (D) 32. 下列程式執行後,Sum 值為何? Print "N ="; N (A)N = 2 (B)N = 3 (C)N = 4 (D)N = 5 I = 0: While I < 20 Sum = Sum + I 28. 執行下列 Visual Basic 程式片段後, 輸出的結果為何? I = I + 2 (A)42 (B)56 (C)72 (D)90 Dim A(4) For I = 1 To 4 If (I Mod 2 <> 0) Then 33. 利用氣泡排序法, 將以下數列資料 30, 50, 20, 60, 40 依遞減順序排列, 請問在第一次循環結束後, 此數列應是下列那一個? A(I) = I ^ 2 1 (A)30, 50, 60, 40, 20 (C)20, 30, 40, 50, 60 (B)50, 30, 60, 40, 20 (D)30, 40, 50, 60, 20 A(I) = I ^ 2 + 1 34. 執行以下之程式碼輸出之資料為 Print A(4) + A(3) A(2) X = 3: Y = 4 Call f(x, Y) ; Y; (A)15 (B)20 (C)25 (D)30 29. 有關下列 Visual Basic 程式碼的執行結果, 何者正確? Sub f(a, b) Print a; b; a = 2: b = 1 Print F(a, F(a, b)) Function F(X, Y) a = a + 1 b = b + 1 (A)3 4 3 4 4 3 (B)3 4 4 5 (C)3 4 0 0 (D)3 4 F = X ^ 2 + Y ^ 2 End Function 35. 下列為選擇排序法的程式片段, 請問空格處應填入何者才正確? (A)10 (B)13 (C)20 (D)29 Dim A(1 To 5) As Integer 30. 程式中 For a = 5 To 終值 Step 增加值 之 增加值 應為何? A(1) = 5: A(2) = 3: A(3) = 9: A(4) = 2: A(5) = 7 For X = (A) 2 (B) 1 (C)1 (D)2 For Y = X + 1 To 5 start a = 5 a >= 1 b = b * a d = a + b + c c = c + a output d a = a 2 stop Private Sub Form_Click( Next ) Y For a = 5 To 終止值 Next Step 增加值 X Next a 31. 下列哪一組 (a,b,c) 的組合可以讓以下程式碼列印 5 個 "*"? For I = a To b Step c Print "*"...... If A(X) > A(Y) Then TEMP = A(Y) A(Y) = A(X) A(X) = TEMP (A)1 To 4 (B)1 To 5 (C)1 to A (D)1 To X 36. 執行下列 Visual Basic 程式片段後, 請問...Loop 迴圈會執行幾次? total = 0: Counter = 1 total = total + Counter Counter = Counter + 1 If total > 10 Then Exit Loop While Counter <= 10 (A)20 (B)15 (C)10 (D)5 37. 執行下列程式片段後, 輸出的結果為何? For I = 1 To 3
Sum = I * 2 Print Sum (A)12 (B)8 (C)10 (D)6 38. 執行下列 Visual Basic 程式片段後,c 值為何? c = 1 c = c + 2 If c = 10 Then Exit Loop While c <= 15 (A)10 (B)12 (C)15 (D)17 39. 下列 Visual Basic 程式執行的結果為何? X = 1: Y = 1 X = X * Y Y = Y + 2 Loop Until Y > 10 (A)1 5 (B)1 0 5 (C)9 4 5 (D)10395 40. 執行下列 Visual Basic 程式片段後, 輸出的結果為 何? For i = 4 To 4 Step 1 a(j) = i j = j + 1 For k = 1 To 10 Select Case a(k) Case Is > 0 p = p + 1 Case Is < 0 n = n + 1 Case z = z + 1 End Select Next k Print p; n; z (A)5 5 0 (B)4 2 4 (C)3 4 3 (D)4 4 2 41. 執行下列 Visual Basic 程式片段後, 輸出的結果為 何? Dim array1(10, 10) As Integer Dim i As Integer, j As Integer For i = 1 To 3 For j = 2 To 4 array1(i, j) = i + j Next j Print array1(2, 3) + array1(3, 4) (A)10 (B)11 (C)12 (D)13 42. 在 Visual Basic 的程式中, 定義了一個遞迴函數 X 如下所示, 則 (5) 的結果為何? Function X(N) If N = 0 Then X = 0 X = X(N 1) + N End Function (A)12 (B)15 (C)16 (D) 產生錯誤訊息 43. 執行下列程式將顯示 K = 3 Dim B(3, 3) For I = 1 To 3 For J = 1 To 3 B(I, J) = K * (I 1) + J Print B(2, 3) * B(3, 2) (A)12 (B)36 (C)48 (D)99 44. 下列 Visual Basic 程式片段執行後, 列印 b 的值為? a = 1: b = 2 While a < 10 a = a + 1 b = a + b If (b Mod 2 = 0) Then b = b + 5 b = b + 3 Loop Until b > 50 Print b (A)55 (B)58 (C)68 (D)73 45. 若執行以此程式流程圖所撰寫之程式後, 所得的正確 d 值為何? (A)8 (B)9 (C)16 (D)23 start a = 5 a >= 1 b = b * a d = a + b + c c = c + a output d a = a 2 stop Private Sub Form_Click( ) For a = 5 To 終止值 Step 增 Next a 46. 若陣列 A 之宣告為 Dim A(2, 3) As Integer,A 之內容如下圖, 執行 Print A(A(1, 2) 1, A(2, 3) + 1) 指令後, 答案為何? (A)0 (B)1 (C)2 (D)3......
陣列 A 標註 0 1 2 3 0 2 3 0 1 1 1 3 2 0 2 3 0 2 1 47. 下列 Visual Basic 程式片段是用來求出整數值 N 的 i = 1 While i <= N 所有正因數, 請問在空格中應填入什麼內容, 才能 使此程式正常運作? If Then Print i & " 是 " & N & " 的正因數 " i = i + 1 (A)N mod i > 0 (B)N mod i < 0 (C)N mod i <> 0 (D)N mod i = 0 48. 二維陣列中宣告 DIM A(3, 3) 記憶體會預留多少個 元素空間 : (A)10 (B)6 (C)9 (D)16 49. 執行下列程式片段後,k(3, 4) 值為何? Dim k(3, 4) For i = 1 To 3 For j = 1 To 4 Next j If (i Mod 2 <> 0 And j Mod 2 = 0) Then k(i, j) = 5 k(i, j) = k(i 1, j 1) + 1 (A)1 (B)2 (C)5 (D)6 50. 在一個空的堆疊 (Stack) 中, 執行 Push a Push b Push c Pop Push b Push c Pop 等一連串的推 入 (Push) 與彈出 (Pop) 的動作後, 請問該堆疊 的內容由頂端到底端依序為 (A)abb (B)bba (C)abc (D)cba