全國高級中等學校 98 學年度商業類科學生技藝競賽 程式設計 職種學科模擬試卷 選手證號碼 : 姓名 : 注意事項 : 請將答案劃記於答案卡, 未依規定劃記者不予計分 試題說明 : ( 選擇題每題 4 分, 共 100 分 ) ( A ) 1. 在 ASCII Code 的表示法中, 下列大小之關係何者為錯誤? (A) A>B>C (B) c>b>a (C) 3>2>1 (D) p>g>e ( D ) 2. 將資料逐筆檢查, 直到所指定的資料為止, 此種搜尋法稱為? (A) 快速搜尋法 (B) 二元搜尋法 (C) 費式搜尋法 (D) 循序搜尋法 ( C ) 3. 下列哪項 Visual Basic 程式設計敘述為誤? (A) Visual Basic 是利用以物件為基礎的方式做程式設計 (B) Visual Basic 中所有物件皆有屬性設定, 可以利用屬性視窗與程式碼作物件狀態之修改 (C) Visual Basic 中所有物件所有可能發生之事件皆相同 (D) Visual Basic 中發生某事件, 必須在發生事件之物件內尋找對應之方法以程式碼執行之 ( B ) 4. RecordsetType=Dynaset 下列敘述何者正確? (A) 此資料錄集合只能新增不能修改與刪除資料 (B) 此資料錄集合可以新增 修改與刪除資料 (C) 此資料錄集合只能修改與刪除資料 (D) 此資料錄集合不能新增 修改與刪除資料 ( A ) 5. 有關資料表庫的敘述, 何者錯誤? (A) 欄位是由一個以上的記錄所組成 (B) 紀錄是由一個以上的欄位所組成 (C) 資料表是由一個以上的記錄所組成 (D) 資料庫是由一個以上的資料表所組成 ( B ) 6. 下列二元搜尋法的敘述, 何者正確? (A) 又稱為選擇搜尋法 (B) 適用於資料量大或排列具有順序性大的情況下 (C) 比對次數最多為 (1+n)/2 (D) 當資料筆數很多時, 會佔用很多時間, 效率並不高第 1 頁, 共 6 頁
( D ) 7. 下列哪一組資料, 不能使用二元搜尋法 (Binary search)? (A) rose,rosa,paul,mary,john,jane,fred,bill,anne,adam (B) 1,10,15,30,50,55,100,123,150, (C) 1,5,6,8,9,12,15,20,30,53 (D) 1.43,-2,0,10.2,5.8,3.56,1.44 ( A ) 8. 在 BASIC 語言中, 下列有關函數的敘述何者不正確? (A) Fix(X) 及 Int(X) 在 X<0 時其意義相同 (B) Int(X*100)/100 表示取 X 值到小數位第二位 (C) Sqr(X) 中的 X 值須不小於 0 (D) Log(X) 中的 X 值須大於 0 ( B ) 9. 執行下列 Visual Basic 程式片段後, 螢幕上會輸出由 "*" 號所組成的何種 圖案? (A) 矩形 (B) 正三角形 (C) 平行四邊形 (D) 菱形 i = 5: j = 1 Do While i > 0 Print Space(i) + String(j, "*") j = j + 1 i = i - 1 Loop ( B ) 10. 若要利用下列程式計算出 (1*1) + (2 * 1 + 2 * 2) + (3 * 1 + 3 * 2 +3 * 3) 的值, 空格中的值要填入什麼內容? (A) 4 - K (B) K (C) 3 (D) K 1 S = 0 For K = 1 To 3 For M = 1 To S = S + K * M Next M Next K Print S ( D ) 11. 執行下列 Visual Basic 程式片段時, 若使用者於輸入交談窗中輸入 "4", 則陣列 X 可儲存幾個陣列元素? (A) 10 (B) 12 (C) 26 (D) 28 Dim X ( ) As Integer K As Integer K = Int(InputBox(" 請輸入要儲存的資料筆數 ")) ReDim X (1 To K, 6) 第 2 頁, 共 6 頁
( C ) 12. 下列 Visual Basic 程式片段執行後的結果為何? (A) 3 (B) 5 (C) 8 (D) 13 A = 0: B = 2: C = 1: D = 7 While D> 0 A = B + C C = B B = A D = Int(D/2) Wend Print A ( A ) 13. 下列 Visual Basic 程式片段的執行結果為何? (A) 17 (B) 18 (C) 19 (D) 20 a = 5:b = 7: c = 3 For i = 1 To 2 Do until a > 12 If a > b Then a = a b If b > c Then b = b c a = a + b * c Loop Next i Print a ( C ) 14. 執行下列 Visual Basic 程式片段後, 其顯示的結果為何? (A) 12 (B) 11 (C) 10 (D) 9 Dim A(8) As Integer For I = 1 To 8 A(I) = I + 2 Print (A(A(A(2) + 1) - 2) + 3) ( C ) 15. 下列程式執行結果為何? (A) 15 (B) 20 (C) 10 (D) 30 F =" 5Boys" X= Val (Left (F, 2)) Print 2*X ( B ) 16. 下列哪一種檔案開啟模式 (mode) 無法將檔案同時利用二個檔案代碼開啟? (A) Random (B) Binary (C) Append (D) Input 第 3 頁, 共 6 頁
( C ) 17. 下列 Visual Basic 副程式是在計算 (A) 1+2+3+ +x (B) (1+2+3+ +x) 2 (C) 1 2 + 2 2 +3 2 +.. +x 2 (D) 1 x + 2 x + 3 x +.. +x x Sub Cal(x As Integer) Dim sum As Long Dim I As Integer sum = 0 For i = 1 To x sum = sum + i ^ 2 Next i Print sum End Sub ( B ) 18. 下列 Visual Basic 程式片段的輸出結果為何? (A) 產生陣列索引超出範圍之錯誤 (B) 48 4 (C) 66 3 (D) 44 2 Dim a(4, 3) As Integer a(1, 1) = 0: a(1, 2) = 1: a(1, 3) = 11 a(2, 1) = 0: a(2, 2) = 2: a(2, 3) = 22 a(3, 1) = 0: a(3, 2) = 3: a(3, 3) = 33 For I = 1 To 4 For j = 1 To 3 If a(i, j) <> 0 And a(i, j) Mod 2 <> 0 Then sum = sum + a(i, j): K = K + 1 End If Next j Print sum, j ( A ) 19. 執行下列 BASIC 程式, 不可能出現的數值是? (A)101 (B) 86 (C) 75 (D)32 Randomize Val (Right (Time,2)) For I = 1 To 10 Print Int (100*Rnd+1) 第 4 頁, 共 6 頁
( B ) 20. 下列程式執行後, 顯示的結果為何? (A) 50 (B) 60 (C) 70 (D) 80 Sum = 2 For I = 1 To 3 J = I ^ 2 * 2 Sum = 2 * Sum + J Print Sum + 2 ( D ) 21. 下列程式輸出為何? (A) 65 (B) 105 (C) 125 (D) 305 Private Sub Form_Activate( ) Dim x As Integer x = 5 Dim A As Double A = FS(x) Print (A + x) End Sub Function FS(x) FS = x For J = x To 3 Step -1 FS = FS * J Next J End Function ( B ) 22. 下列程式執行前若陣列 A(1) 至 A(5) 之值依序為 5,6,3,4,1, 則其執行後印出陣列 A(1) 至 A(5) 的結果為? (A)5,6,3,4,1 (B) 6,5,4,3,1 (C)1,3,4,5,6 (D)5,4,6,1,3 Private Sub Form_Activate() Dim a(5) For J = 2 To 5 T = a(j): I = J - 1: M = J While (I >= 1 And a(i) < T) If a(i) < T Then a(m) = a(i): I = I - 1: M = M - 1 Wend a(i + 1) = T Next J End Sub 第 5 頁, 共 6 頁
( C ) 23. 執行下列 Visual Basic 程式後, 其顯示的結果為何? (A) 4 (B) 3 4 (C) 5 4 (D) 3 5 4 A = 3: b = 5: C = 4 If A > b Then If b > C Then Print A; Else Print b; End If Print C ( C ) 24. 下列 BASIC 程式, 隨機產生 50 個從 0 到 9 之間的正整數, 空格中應填入? (A) R = Int(Rnd(I)*9) (B) R = Int(Rnd(I)*9)+1 (C) R = Int(Rnd(I)*10) (D) R = Int(Rnd(I)*50) For I = 1 To 50 Print R ( D ) 25. 下列對於副程式 (Subprogram) 的敘述何者不正確? (A) 可便於主程式的閱讀 (B) 能夠使主程式的結構清楚 (C) 使主程式易於維護 (D) 一個主程式不能沒有副程式 (E) 副程式是一種可重複的程式片段 第 6 頁, 共 6 頁