全國高級中等學校 106 學年度商業類科學生技藝競賽 程式設計 職種 學科 試卷 選手證號碼 ( 崗位編號 ): 姓名 : 注意事項 : 請將答案劃記於答案卡, 未依規定劃記者不予計分 試題說明 :( 選擇題共 25 題每題 4 分, 答錯不倒扣, 共 100 分 ) ( )1. 執行以下 Visual Basic 程式片段, 其結果為何?(A) 15 (B) 12 (C) 7 (D) 3 Dim i As Byte i = &HFC Console.WriteLine(Not i) 說明 :Visual basic 中 Not 為求 1 的補數 ( ) 2. 執行以下 Visual Basic 程式片段, 其結果為何?(A)239 (B) 255 (C) 223 (D) 207 Dim i, j As Byte i = &HFC j = &H13 Console.WriteLine(i Xor j) ( ) 3. 執行下列 Visual Basic 程式片段, 其結果為何? (A) 2530 (B) 3025 (C) 2515 (D) 3030 Dim k1, k2, j As Integer k1 = 0 : k2 = 0 For j = 1 To 10 If j Mod 2 = 0 Then k1 = k1 + j k2 = k2 + j j Console.Write(k1) : Console.WriteLine(k2) 第 1 頁, 共 9 頁
( )4. 執行以下 Visual Basic 程式片段, 其結果為何?(A) 16 (B) 18 (C) 10 (D) 14 Dim i, j, c As Integer c = 0 : j = 4 Do For i = 1 To j + 1 If i Mod 2 = 0 Then c = c + i j = j - 1 Loop Until j <= 0 Console.WriteLine(c) ( )5. 執行下列 Visual Basic 程式片段, 輸出結果為何?(A) 1 (B) 5 (C) 8 (D) 2 Dim id As String Dim pass() As String = Split("0 10 11 12 13", " ") Dim sum, a As Integer id = "A123" id = Replace(id, Mid(id, 1, 1), pass(asc(mid(id, 1, 1)) - 64)) sum = Val(Mid(id, 1, 1)) * 1 a = 2 For k = 3 To 1 Step -1 sum = sum + Val(Mid(id, a, 1)) * k a = a + 1 Console.WriteLine(sum Mod 10) ( )6. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A)-1 (B)NULL (C)False (D)0 Dim array As Integer() = New Integer(4) {} array(2) = 3 array(4) = 5 Console.WriteLine(array(3)) 第 2 頁, 共 9 頁
( )7. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A)20 (B)21 (C)22 (D)29 Dim array As Integer() = New Integer(10) {} Dim i As Integer array(0) = 1 For i = 1 To 10 array(i) = array(i - 1) + i Console.WriteLine(array(6)) ( ) 8. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A)1 (B) 2 (C) 3 (D) 8 Dim A, B, C As Integer A = 8 : B = 2 : C = 3 While B > 0 C = A Mod B : A = B : B = C End While Console.WriteLine(A) ( ) 9. 執行下列 Visual Basic 程式片段, 輸出結果為何?(A)1 (B)12 (C)14 (D)15 Dim A(3, 3) As Integer For I = 1 To 3 For J = 1 To 3 If J = 1 Then A(I, J) = A(I - 1, J - 1) + I + J A(I, J) = A(I - 1, J - 1) + I + J + 1 J I Console.Write(A(3, 3)) 第 3 頁, 共 9 頁
( )10. 執行下列 Visual Basic 程式, 輸出結果為何?(A) 20 (B) 39 (C) 15 (D) 10 Sub Main( ) Dim K As Integer K = GAME(5) Console.WriteLine(K) End Sub Function GAME(ByVal X As Integer) As Integer If (X > 3) Then GAME = X + GAME(X - 1) + GAME(X - 2) + GAME(X - 3) GAME = X End Function ( )11. 執行下列 Visual Basic 程式片段, 輸出結果為何?(A) 0 (B) 6 (C) 7 (D) 8 Dim A, S As Integer S = 0 : A = 6 While A > 0 S = S + (A Mod 10) : A = A / 10 End While Console.WriteLine(S) ( )12. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A)2 (B)3 (C)0 (D)4 Dim I, J, K, Temp, A(5) As Integer For K = 0 To 5 A(K) = (K ^ 2 + 1) Mod 5 K For I = 5 To 1 Step -1 For J = 0 To I - 1 If A(J) > A(J + 1) Then Temp = A(J) A(J) = A(J + 1) A(J + 1) = Temp Console.WriteLine(A(4)) 第 4 頁, 共 9 頁
( ) 13. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 58 (B) 47 (C) 59 (D) 48 Dim i, j, k, sum As Integer sum = 0 For i = 0 To 3 For j = i To 4 For k = j To 5 sum = sum + 1 Console.WriteLine(sum) ( )14. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 78 (B) 76 (C) 68 (D) 62 Dim i, j, k, sum As Integer sum = 0 For i = 0 To 3 For j = i To 4 For k = i To 5 sum = sum + 1 Console.WriteLine(sum) ( )15. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 4 (B)5 (C) 25 (D) 30 Dim i, j, S As Integer S = 0 : i = 0 : j = 0 Do While i <= 5 Loop Do While j <= 4 S = S + 1 j = j + 1 Loop i = i + 1 Console.Write(S) 第 5 頁, 共 9 頁
( ) 16. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 27 (B)28 (C) 29 (D) 30 Dim Sum, i, j As Integer Sum = 0 : i = 0 While i <= 7 For j = 1 To i Sum = Sum + 1 j i = i + 1 End While Console.WriteLine(Sum) ( )17. 執行下列 Visual Basic 程式片段, 輸出結果為何?(A) 1 (B) 7 (C) 8 (D) 9 Dim Number As String Number = "456789" Dim Int(5) As Integer Dim x, num, sun As Integer For x = 0 To 5 num = Number.Substring(x, 1) If (x + 1) Mod 2 <> 0 Then ' 偶數乘 1 奇數乘 2 Int(x) = num * 2 Int(x) = num For x = 0 To 5 If (Int(x) > 9) Then Int(x) = Int(x) - 9 sun += Int(x) Console.WriteLine(sun Mod 10) 第 6 頁, 共 9 頁
( )18. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 1 (B) 2 (C) 3 (D) 4 Dim ans, num As Integer Dim a As String num = 1025 ans = 0 a = Convert.ToString(num, 2) For k = 1 To Len(a) If Mid(a, k, 1) = "1" Then ans = ans + 1 Console.WriteLine(ans) 提示 : 'Console.WriteLine(Convert.ToString(14, 2)) '1110 'Console.WriteLine(Convert.ToString(13, 2)) '1101 ( )19. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 112 (B) 113 (C) 114 (D) 115 Dim b(3) As String Dim c(3) As String Dim id(3) As String b(0) = Convert.ToString(115, 2) Do Until Len(b(0)) = 8 b(0) = "0" & b(0) Loop c(0) = Convert.ToString(252, 2) Do Until Len(c(0)) = 8 c(0) = "0" & c(0) Loop For i = 1 To 8 If Mid(b(0), i, 1) = Mid(c(0), i, 1) And Mid(b(0), i, 1) = 1 Then id(0) = id(0) &"1" id(0) = id(0) &"0" Console.WriteLine(Convert.ToInt32(id(0), 2)) 提示 : 'Console.WriteLine(Convert.ToInt32(1110, 2)) '14 'Console.WriteLine(Convert.ToInt32(1101, 2)) '13 第 7 頁, 共 9 頁
( )20. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 0 (B) 1 (C) 2 (D) 3 Console.Write((107 Mod 13) Mod 4) ( )21. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 78 (B) 82 (C) 83 (D) 75 Dim a() As Integer = {3, 4, 5, 6, 7, 8, 9} Dim b As Integer For i As Integer = 1 To 3 b += a.where(function(o) o Mod i = 0).Sum() Console.WriteLine(b) ( )22. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 22 (B) 6 (C) F (D) 15 Console.Write(Hex(15)) ( ) 23. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 0 (B) 1 (C) 2 (D) 3 Console.Write((Math.Pow(2, 7) Mod 13) Mod 4) ( )24. 執行下列 Visual Basic 程式片段, 輸出結果為何?(A)8 (B) 5 (C) 4 (D) 3 Sub Main( ) Console.WriteLine(X(X(3))) End Sub Function X(ByVal n) As Integer If n = 1 Then Return 1 If (n Mod 2 = 1) Then Return X(n * 3 + 1) + 1 Return X(n / 2) + 1 End Function 第 8 頁, 共 9 頁
( )25. 執行下列 Visual Basic 程式片段, 輸出結果為何? (A) 16 (B)29 (C) 32 (D) 54 Sub Main( ) Console.WriteLine(F25_2017(6)) End Sub Function F25_2017(ByVal n As Integer) As Integer If n = 1 Or n = 2 Or n = 3 Then Return n + 1 Return F25_2017(n - 1) + F25_2017(n - 2) + F25_2017(n - 3) End Function 第 9 頁, 共 9 頁