| 全國計算機等級考試 歷年真題 2008年9月計算機二級VB語言真題 |
一、選擇題(每題2分,共計70分)
|
|
|
|
2. 下列敘述中正確的是 A)循環(huán)隊列有隊頭和隊尾兩個指針,因此,循環(huán)隊列是非線性結(jié)構(gòu) B)在循環(huán)隊列中,只需要隊頭指針就能反映隊列中元素的動態(tài)變化情況 C)在循環(huán)隊列中,只需要隊尾指針就能反映隊列中元素的動態(tài)變化情況 D)循環(huán)隊列中元素的個數(shù)是由隊頭指針和隊尾指針共同決定
|
| A B C D |
3. 在長度為n的有序線性表中進行二分查找,最壞情況下需要比較的次數(shù)是 A)O(n) B)O(n2) C)O(log2n) D)O(nlog2n)
|
| A B C D |
4. 下列敘述中正確的是 A)順序存儲結(jié)構(gòu)的存儲一定是連續(xù)的,鏈式存儲結(jié)構(gòu)的存儲空間不一定是連續(xù)的 B)順序存儲結(jié)構(gòu)只針對線性結(jié)構(gòu),鏈式存儲結(jié)構(gòu)只針對非線性結(jié)構(gòu) C)順序存儲結(jié)構(gòu)能存儲有續(xù)表,鏈式存儲結(jié)構(gòu)不能存儲有序表 D)鏈式存儲結(jié)構(gòu)比順序存儲結(jié)構(gòu)節(jié)省存儲空間
|
| A B C D |
5. 數(shù)據(jù)流圖中帶有箭頭的線段表示的是 A)控制流 B)事件驅(qū)動 C)模塊調(diào)用 D)數(shù)據(jù)流
|
| A B C D |
6. 在軟件開發(fā)中,需求分析階段可以使用的同居是 A)N-S圖 B)DFD圖 C)PAD圖 D)程序流程圖
|
| A B C D |
7. 在面向?qū)ο蠓椒ㄖ?,不屬于“對象”基本特點的是 A)一致性 B)分類性 C)多態(tài)性 D)標識唯一性
|
| A B C D |
8. 一間宿舍可以住多個學(xué)生,則實體宿舍和學(xué)生之間的聯(lián)系是 A)一對一 B)一對多 C)多對一 D)多對多
|
| A B C D |
9. 在數(shù)據(jù)管理技術(shù)發(fā)展的三個階段中,數(shù)據(jù)共享最好的是 A)人工管理階段 B)文件系統(tǒng)階段 C)數(shù)據(jù)庫系統(tǒng)階段 D)三個階段相同
|
| A B C D |
10.有三個關(guān)系R、S、和T如下:
 由關(guān)系R和S通過運算得到關(guān)系T,則所使用的運算為 A)笛卡爾積 B)交 C)并 D)自然連接
|
| A B C D |
11. 在設(shè)計窗體時雙擊窗體的任何地方,可以打開的窗口是 A)代碼窗口 B)屬性窗口 C)工程資源管理器窗口 D)工具箱窗口
|
| A B C D |
12. 若變量a未實現(xiàn)定義而直接使用(例如:a=0),則變量a的類型是 A)Integer B)String C)Boolean D)Variant
|
| A B C D |
13. 把圓周率的近似值3.14159存放在變量pi中,應(yīng)該把變量pi定義為 A)Dim pi As Integer B)Dim pi(7) As Integer C)Dim pi As Single D)Dim pi As Long
|
| A B C D |
14. 表達式2*3^2-4*2/2+3^2的值是 A)30 B)31 C)49 D)48
|
| A B C D |
15. 以下不能輸出“Program”的語句是 A)Print mid("VBProgram"3,7) B)Print Right("VBProgram",7) C)Print Mid("VBProgram",3) D)Print Left("VBProgram",7)
|
| A B C D |
16. 窗體上有一個名稱為Frame1的框架(如圖),若要把框架上顯示的"Frame1"改為 漢字“框架”,下面正確的語句是
 A)Frame1.Name="框架" B)Frame1.Caption="框架" C)Frame1.Text="框架" D)Frame1.Value="框架"
|
| A B C D |
17. 以下敘述中錯誤的是 A)在通用過程中,多個形式參數(shù)之間可以用逗號作為分隔符 B)在Print方法中,多個輸出項之間可以用逗號作為分隔符 C)在Dim語句中,所定義的多個變量可以用逗號作為分隔符 D)當一行中有多個語句時,可以用逗號作為分隔符
|
| A B C D |
18. 設(shè)窗體上有一個列表框控件List1,含有若干列表項。以下能表示當前被選中的列表 項內(nèi)容的是 A)List1.List B)List1.ListIndex C)List1.Text D)List1.Index
|
| A B C D |
19. 設(shè)a=4,b=5,c=6,執(zhí)行語句Print a<b And b<c后,窗體上顯示的是 A)True B)False C)出錯信息 D)0
|
| A B C D |
20. 執(zhí)行下列語句 strInpug=InputBox("請輸入字符串","字符串丟畫框","字符串) 將顯示輸入對話框。如果此時直接點擊"確定"按鈕,則變量strInput的內(nèi)容是 A)"請輸入字符串" B)"字符串對話框" C)"字符串" D)空字符串
|
| A B C D |
21. 窗體上有Command1、Command2兩個命令按鈕?,F(xiàn)編寫以下程序: Option Base 0 Dim a() As Integer Private Sub Command1_Click() m = InputBox("請輸入一個正整數(shù)") ReDim a(m) End Sub Private Sub Command2_Click() m = InputBox("請輸入一個正整數(shù)") ReDim a(m) End Sub 運行程序是,單擊Command1后輸入整數(shù)10,再單擊Command2后輸入整數(shù)5,則數(shù)組 a中元素的個數(shù)是 A)5 B)6 C)10 D)11
|
| A B C D |
22. 在窗體上畫一個命令按鈕和一個標簽,其名稱分別為Command1和Label1,然后編寫 如下的事件過程 Private Sub Command1_Click() conter = 0 For I = 1 To 4 For J = 6 To 1 Step -2 conter = conter + 1 Next J Next I Label1.Caption = Str(conter) End Sub 程序運行后,單擊命令按鈕,標簽中顯示的內(nèi)容是 A)11 B)12 C)16 D)20
|
| A B C D |
23. 在窗體上畫一個名為command1的命令按鈕,然后編寫以下程序: Private Sub Command1_Click() Dim M(10) As Integer For k = 1 To 10 M(k) = 12 - k Next k x = 8 Print M(2 + M(x)) End Sub 運行程序,單擊命令按鈕,在窗體上顯示的是 A)6 B)5 C)7 D)8
|
| A B C D |
24. 以下關(guān)于過程及過程參數(shù)的描述中,錯誤的是 A)調(diào)用過程時可以用控件名稱作為實際參數(shù) B)用數(shù)組作為過程的參數(shù)是,使用的是“傳地址”方式 C)只有函數(shù)過程能夠?qū)⑦^程中處理的信息傳回到調(diào)用的程序中 D)窗體(Form)可以作為過程的參數(shù)
|
| A B C D |
25. 在窗體上畫一個名為Command1的命令按鈕,再畫兩個名稱分別為Label1、Label2 的標簽,然后編寫如下程序代碼: Private X As Integer Private Sub Command1_Click() X = 5: Y = 3 Call proc(X, Y) Label1.Caption = X Label2.Caption = Y End Sub Private Sub proc(a As Integer, ByVal b As Integer) X = a * a Y = b + b End Sub 程序運行后,單擊命令按鈕,則兩個標簽中顯示的內(nèi)容分別是 A)25和3 B)5和3 C)25和6 D)5和6
|
| A B C D |
26.在窗體上有兩個名稱分別為Text1、Text2的文本框,一個名稱為Command1的命令 按鈕。運行后的窗體外觀如圖所示。
 設(shè)有如下的類型和變量生命 Private Type Person name As String * 8 major As String * 20 End Type Dim p As Person 設(shè)文本框中的數(shù)據(jù)已正確地賦值給Person類型的變量p,當單擊“保存”按鈕時,能頭 正確地把變量中的數(shù)據(jù)寫入隨機文件Test2.dat中的程序段是 A)Open "c:\Test2.dat" For Output As #1 Put #1,1,p Close #1 B)Open "c:\Test2.dat" For Random As #1 Get #1,1,p Close #1 C)Open "c:\Test2.dat" For Random As #1 Len=Len(p) Put #1,1,p Close #1 D)Open "c:\Test2.dat" For Random As #1 Len=Len(p) Get #1,1,p Close #1
|
| A B C D |
27. 在窗體上畫一個名稱為Text1的文本框和一個名稱為Command1的命令按鈕,然后編 寫如下事件過程: Private Sub Command1_Click() Dim i As Integer, n As Integer For i = 1 To 50 i = i + 3 n = n + 1 If i > 10 Then Exit For Next Text1.Text = Str(n) End Sub 程序運行后,單擊命令按鈕,在文本框中顯示的值是 A)2 B)3 C)4 D)5
|
| A B C D |
28. 假定有以下循環(huán)結(jié)構(gòu) Do Until 條件表達式 循環(huán)體 Loop 則以下正確的描述是 A)如果“條件表達式”的值是0,則一次循環(huán)體也不執(zhí)行 B)如果“條件表達式”的值不是0,則至少執(zhí)行一次循環(huán)體 C)不論“條件表達式”的值是否為“真”,至少要執(zhí)行一次循環(huán)體 D)如果“條件表達式”的值恒為0,則無限次執(zhí)行循環(huán)體
|
| A B C D |
29. 在窗體上畫一個命令按鈕,然后編寫如下事件過程: Private Sub Command1_Click() Dim I, Num Randomize Do For I = 1 To 1000 Num = Int(Rnd * 100) Print Num Select Case Num Case 12 Exit For Case 58 Exit Do Case 65, 68, 92 End End Select Next I Loop End Sub 上述事件過程執(zhí)行后,下列描述中正確的是 A)Do循環(huán)執(zhí)行的次數(shù)為1000此 B)在For循環(huán)中產(chǎn)生的隨機數(shù)小于或等于100 C)當所產(chǎn)生的隨機數(shù)為12時結(jié)束所有循環(huán) D)當所產(chǎn)生的隨機數(shù)為65,68或92時窗體關(guān)閉、程序結(jié)束
|
| A B C D |
30. 在窗體上畫一個名為Command1的命令按鈕,然后編寫如下代碼: Option Base 1 Private Sub Command1_Click() Dim a a = Array(1, 2, 3, 4) j = 1 For I = 4 To 1 Step -1 s = s + a(I) * j j = j * 10 Next I Print s End Sub 運行上面的程序,其輸出結(jié)果是 A)1234 B)12 C)34 D)4321
|
| A B C D |
31. 設(shè)有如下通用過程 Public Function Fun(xStr As String) As String Dim tStr As String, strL As Integer tStr = "" strL = Len(xStr) I = 1 Do While I <= strL / 2 tStr = tStr & Mid(xStr, I, 1) & Mid(xStr, strL - I + 1, 1) I = I + 1 Loop Fun = tStr End Function 在窗體上畫一個名稱為Command1的命令按鈕。然后編寫如下的事件過程: Private Sub Command1_Click() Dim S1 As String S1 = "abcdef" Print UCase(Fun(S1)) End Sub 程序運行后,單擊命令按鈕,輸出結(jié)果是 A)ABCDEF B)abcdef C)AFBECD D)DEFABC
|
| A B C D |
32. 某人為計算n!(0<n<=12)編寫了下面的函數(shù)過程 Private Function fun(n As Integer) As Long Dim p As Long p = 1 For k = n - 1 To 2 Step -1 p = p * k Next k fun = p End Function 在調(diào)試時發(fā)現(xiàn)該函數(shù)過程產(chǎn)生的結(jié)果是錯誤的,程序需要修改。下面的修改方案中有3 種是正確的,錯誤的方案是 A)把p=1改為p=n B)把For k=n-1 To 2 Step -1 改為 For k=1 T0 n-1 C)把For k=n-1 To 2 Step -1 改為 For k=1 T0 n D)把For k=n-1 To 2 Step -1 改為 For k=2 T0 n
|
| A B C D |
33. 假定有以下函數(shù)過程: Function Fun(S As String) As String Dim s1 As String For I = 1 To Len(S) s1 = LCase(Mid(S, I, 1)) + s1 Next I Fun = s1 End Function 在窗體上畫一個命令按鈕,然后編寫如下事件過程: Private Sub Command1_Click() Dim Str1 As String, Str2 As String Str1 = InputBox("請輸入一個字符串") Str2 = Fun(Str1) Print Str2 End Sub 程序運行后,單擊命令按鈕,如果在輸入對話框中輸入字符串“abcdefg”,則單擊“確定” 按鈕后在窗體上的輸出結(jié)果為 A)ABCDEFG B)abcdefg C)GFEDCBA D)gfedcba
|
| A B C D |
34. 為計算a的n次方的值,某人編寫了函數(shù)power如下: Private Function power(a As Integer, n As Integer) As Long Dim p As Long p = a For k = 1 To n p = p * a Next k power = p End Function 在調(diào)試時發(fā)現(xiàn)是錯誤的,例如Print power(5,4)的輸出值應(yīng)該是625,但實際輸出是3125。 程序需要修改。下面的修改方案中有3個是正確的,錯誤的一個是 A)把For k=1 To n 改為For k=2 To n B)把p=p*a 改為p=p^n C)把For k=1 To n 改為For k=2 To n-1 D)把p=a 改為p=1
|
| A B C D |
35. 某人編寫了下面的程序 Private Sub Command1_Click() Dim a As Integer, b As Integer a = InputBox("請輸入整數(shù)") b = InputBox("請輸入整數(shù)") pro a pro b Call pro(a + b) End Sub Private Sub pro(n As Integer) While (n > 0) Print n Mod 10; n = n \ 10 Wend Print End Sub 但調(diào)試時發(fā)現(xiàn)只輸出了前2行(即2個數(shù)的反序),而未輸出第3行(即2個數(shù)之和的 反序),程序需要修改。下面的修改方案中正確的是 A)把過程pro的形式參數(shù)n As Integer 改為ByVal n As Integer B)把Call pro(a+b) 改為pro a+b C)把n=n\10改為n=n/10 D)在pro b語句之后增加語句c%=a+b,再把Call pro(a+b)改為pro c
|
| A B C D |
二、填空題(每空2分,共計30分)
|
1.對下列二叉樹進行中序遍歷的結(jié)果是【1】

|
| 輸入答案,中間不含空格: |
2. 按照軟件測試的一般步驟,繼承測試應(yīng)在【2】測試之后進行。
|
| 輸入答案,中間不含空格: |
3. 軟件工程三要素包括方法、工具和過程,其中,【3】支持軟件開發(fā)的各個環(huán)節(jié) 的控制和管理。
|
| 輸入答案,中間不含空格: |
4. 數(shù)據(jù)庫設(shè)計包括概念設(shè)計、【4】和物理設(shè)計。
|
| 輸入答案,中間不含空格: |
5. 在二維表中,元組的【5】不能再分成更小的數(shù)據(jù)項。
|
| 輸入答案,中間不含空格: |
6. 在窗體上畫一個文本框、一個標簽和一個命令按鈕,其名稱分別為Text1、Label1和 Command1,然后編寫如下兩個事件過程: Private Sub Command1_Click() S$ = InputBox("請輸入一個字符串") Text1.Text = S$ End Sub Private Sub Text1_Change() Label1.Caption = UCase(Mid(Text1.Text, 7)) End Sub 程序運行后,單擊命令按鈕,將顯示一個輸入對話框,如果在該對話框中輸入字符串 “VisualBasic”,則在標簽中顯示的內(nèi)容是【6】。
|
| 輸入答案,中間不含空格: |
7. 在窗體上畫一個命令按鈕,其名稱為Command1,然后編寫如下事件過程: Private Sub Command1_Click() a$ = "National Computer Rank Examination" n = Len(a$) S = 0 For I = 1 To n b$ = Mid(a$, I, 1) If b$ = "n" Then S = S + 1 End If Next I Print S End Sub 程序運行后,單擊命令按鈕,輸出結(jié)果是【7】。
|
| 輸入答案,中間不含空格: |
8. 為了在運行時把d:\pic文件夾下的圖形文件a.jpg裝入圖片框Picture1,所使用的語句為【8】
|
| 輸入答案,中間不含空格: |
9. 設(shè)有如下程序: Private Sub Form_Click() Cls a$ = "ABCDFG" For I = 1 To 6 Print Tab(12 - I); 【9】 Next I End Sub 程序運行后,單擊窗體,結(jié)果如圖所示,請?zhí)羁铡?br>
|
| 輸入答案,中間不含空格: |
10. 在窗體上畫一個命令按鈕,其名稱為Command1,然后編寫如下代碼: Option Base 1 Private Sub Command1_Click() Dim Arr Arr = Array(43, 68, -25, 65, -78, 12, -79, 43, -94, 72) pos = 0 neg = 0 For k = 1 To 10 If Arr(k) > 0 Then 【10】 Else 【11】 End If Next k Print pos, neg End Sub 以上程序的功能是,計算并輸出數(shù)組Arr中10個數(shù)的正數(shù)之和pos與負數(shù)之和neg,請?zhí)羁?br> |
| 輸入答案,中間不含空格: |
11. 上一題【11】的答案為
|
| 輸入答案,中間不含空格: |
12. 在窗體上畫一個名為Command1的命令按鈕,然后編寫如下程序: Private Sub Command1_Click() Dim i As Integer Sum = 0 n = InputBox("Enter a number") n = Val(n) For i = 1 To n Sum = 【12】 Next i Print Sum End Sub Function fun(t As Integer) As Long p = 1 For i = 1 To t p = p * i Next i 【13】 End Function 以上程序的功能是,計算1!+2!+3!+...+n!,其中n從鍵盤輸入,請?zhí)羁铡?br> |
| 輸入答案,中間不含空格: |
13. 上面第【13】空的答案是:
|
| 輸入答案,中間不含空格: |
14. 在窗體上畫一個文本框,名稱為Text1,然后編寫如下程序: Private Sub Form_Load() Open "d:\temp\dat.txt" For Output As #1 Text1.Text = "" End Sub Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then If UCase(Text1.Text) = 【14】 Then Close #1 End Else Write #1, 【15】 Text1.Text = "" End If End If End Sub
|
| 輸入答案,中間不含空格: |
15. 上一題【15】答案是 |
| 輸入答案,中間不含空格: |