2014年9月全國計算機二級VB選擇題第1套 |
34
1.下列敘述中正確的是 A.每一個結點有兩個指針域的鏈表一定是非線性結構 B.所有結點的指針域都為非空的鏈表一定是非線性結構 C.循環鏈表是循環隊列的鏈式存儲結構 D.線性結構的存儲結點也可以有多個指針 2.使用白盒測試方法時,設計測試用例應根據 A.程序的內部邏輯 B.程序的復雜結構 C.程序的功能 D.使用說明書 3.在醫院,每個醫生只屬于某一個診療科,醫生同一天可為多位患者看病,而一名患者可在多個科室治療。則實體醫生和患者之間的聯系是 A.多對多 B.多對一 C.一對多 D.一對一 4.設序列長度為n,在最壞情況下,時間復雜度為O(log2n)的算法是 A.二分法查找 B.順序查找 C.分塊查找 D.哈希查找 5.設數據集合為D={ 1,3,5,7,9 },D上的關系為R,下列數據結構B=(D,R)中為非線性結構的是 A.R={ (5,1), (7,9), (1,7), (9,3) } B.R={ (9,7), (1,3), (7,1), (3,5) } C.R={ (1,9), (9,7), (7,5), (5,3) } D.R={ (1,3), (3,5), (5,9) } 6.深度為7的二叉樹共有127個結點,則下列說法中錯誤的是 A.該二叉樹有一個度為1的結點 B.該二叉樹是滿二叉樹 C.該二叉樹是完全二叉樹 D.該二叉樹有64個葉子結點 7.某二叉樹的中序序列為BDCA,后序序列為DCBA,則前序序列為 A.DCBA B.BDCA C.ABCD D.BADC 8.下面能作為軟件需求分析工具的是 A.PAD圖 B.程序流程圖 C.甘特圖 D.數據流程圖(DFD圖) 9. 下面不屬于對象主要特征的是 A.唯一性 B.多態性 C.可復用性 D.封裝性 10. A.(c,c,11,4) B.(c,c,11,4) C.(a,a,2,4) D.(a,a,2,4)和(e,e,6,1) 11.表達式Sin(0) + Abs(-1) + Int(Rnd(0)) + Len(Str(3.14))的值是 A.-1 B.4 C.5 D.6 12.以下有關表達式的說法中,正確的是 A.表達式LCase("AB12")>Left("abc",2) And Len("12.3")=5的值是True B.表達式Int(Rnd() * 11) + 10表示的值的范圍是10~21 C.表達式"1234">"ABCD"的值為Flase D.表達式Chr(Asc("B"))=UCase("b")的值為False 13.下列符號常量的聲明中,不合法的是 A.Const e As Single = 2.718, pi = 3.14 B.Const a As Double=Sin(1) C.Private Const a="計算機等級考試" D.Const a As String=Visual Basic" 14.以下敘述中錯誤的是 A.設計窗體時,單擊窗體上任何一個控件后,就可以在屬性窗口中設置窗體的屬性 B.窗體是對象 C.窗體可以被移動 D.窗體的Name屬性在程序運行過程中不能被修改 15.以下語句或子句中,符合Visual Basic語法要求的是 A.Print a=;10+20 B.If x>y Then t=x,x=y,y=t C.y = Log(Exp(x) + Abs(Atn(x))) + Cos(x) ^ 2 D.Case Is>60 And Is<100 16.設整型變量a、b已賦值(b>0,a>b),下面不能正確計算a除以b的余數的表達式是 A.a - a \ b * b B.a Mod b C.a - Int(a / b) * b D.a - (a \ b) * b 17.下列表達式中值為-6的是 A.Int(-5.678) B.Int(-5.678-0.5) C.Fix(-5.678+0.5) D. Fix(-5.678) 18.在窗體上畫一個文本框、一個標簽,其名稱分別為Text1、Label1,然后編寫如下事件過程: Private Sub Text1_Change() Label1.Caption = UCase(Mid(Trim(Text1.Text), 7, 3)) End Sub 程序運行時,如果在文本框中輸入字符串"VisualBasic計算機等級考試",則在標簽Label1中顯示的內容是。 A.asi B.ASI C.Bas D. BAS 19.為了使組合框成為下拉式列表框,應把其Style屬性設置為 A.0 B.1 C.2 D.3 20. 窗體上有一個名稱為Label1的標簽控件,其Caption屬性的初始值為0,還有一個計時器。為了在程序運行時,標簽上的數字每秒加1,應該把語句:Label1.Caption = Label1.Caption + 1 寫在一個事件過程中,這個事件過程是 A.標簽的Timer事件過程 B.計時器的Timer事件過程 C.標簽的Click事件過程 D.計時器的Click事件過程 21.當直線控件的BorderStyle屬性被設置為:2 – Dash,控件顯示的是 A.實線 B.虛線 C.點線 D.不可見 22.下面關于列表框控件的敘述中錯誤的是 A. Selected屬性是一個字符數組 B.List屬性是一個字符數組 C.在運行時,列表框中的列表項可以多選 D.ListCount屬性不能在屬性窗口中設置 23.下列有關控件數組的說法中,正確的是 A.控件數組中所包含的控件必須是同一種類型的,且它們的Name屬性值相同,但每個控件的Index屬性值不同 B. 控件數組中所包含的控件必須是同一種類型的,且它們的Name屬性值不能相同 C.可以將窗體上的各種類型的控件創建到一個控件數組中 D.程序運行時,對控件數組中的不同控件操作而觸發事件時,執行的是對應于各個控件的事件過程代碼 24.設有數組聲明:Dim s(2, 3),下面錯誤的程序段是 A.For i = 1 To 3 For j = 1 To 2 s(i, j) = 0 Next j Next I B. For i = 1 To 2 For j = 1 To 3 s(i, j) = 0 Next j Next I C. For i = 1 To 3 For j = 1 To 2 s(j, i) = 0 Next j Next I D.For i = 0 To 2 For j = 0 To 3 s(i, j) = 0 Next j Next I 25.假定在某個事件過程中需要計算:y = 3! + 5! 的值,下面最好的設計是 A. 設計1個計算n! 的函數f(n),調用方式為:y = f(3) + f(5) B. 設計1個專門計算3!+5!的函數f( ),調用方式為:y = f( ) C. 設計2個函數f3( )和f5( )分別計算3!,5!,調用方式為:y = f3( ) + f5( ) D.不用單獨的函數計算階乘,全部代碼放在同一個事件過程中 26.下面不能正確計算 1 + ( 1 + 2 ) + ( 1 + 2 + 3 ) + … + ( 1 + 2 + … + 10 ) 的是 A. Private Sub Command1_Click() s = 0 : t = 0 For i = 1 To 10 For j = 1 To i t = t + j Next j s = s + t Next i Print s End Sub B. Private Sub Command1_Click() s = 0 For i = 1 To 10 t = 0 For j = 1 To i t = t + j Next j s = s + t Next i Print s End Sub C.Private Sub Command1_Click() s = 0 For i = 10 To 1 Step -1 t = 0 For j = 1 To i t = t + j Next j s = s + t Next i Print s End Sub D.Private Sub Command1_Click() s = 0 : t = 0 For i = 1 To 10 t = t + i s = s + t Next i Print s End Sub 27.如果窗體模塊A中有一個過程: Private Sub Proc( ) …… End Sub 則下面敘述中錯誤的是 A.在窗體模塊B中可以調用此過程 B.在窗體模塊B中可以有與此相同名稱的過程 C.窗體模塊A中任何其他過程都可以調用此過程 D.在標準模塊中不能調用此過程 28.以下敘述中錯誤的是 A.程序運行過程中,可以利用代碼重新設置菜單項的Visible屬性的值 B. 在菜單標題中,由“&”所引導的字母指明了訪問該菜單項的訪問鍵 C. 在同一窗體的菜單項中,不允許出現標題相同的菜單項 D.彈出式菜單也在菜單編輯器中進行設計 29.下面敘述中正確的是 A.一個工程由一個窗體模塊和一個標準模塊組成 B.一個窗體是一個窗體模塊 C.一個工程中只能有一個標準模塊 D. 窗體模塊中包含本窗體的所有事件過程,標準模塊中包含本標準模塊的所有事件過程 30.有如下程序代碼: Private Sub Form_Click() Dim flag As Boolean Dim Num As Integer flag = True Num = 0 Do Do While Num < 20 Num = Num + 1 If Num > 10 Then flag = False Exit Do End If Loop Loop Until flag = False Print Num End Sub 運行程序,單擊窗體,輸出結果是 A.11 B.10 C.True D.False 31.有如下程序代碼: Private Sub Form_Click() n = 0 k = 1 While n <= 2 n = n + 1 k = k + n * (n + 1) Wend Print n; k End Sub 運行程序,單擊窗體,輸出結果是 A.0 1 B.3 13 C.3 21 D.3 7 32.設x值為6,y值為0,則以下可使y值為1的程序段是 A.Do While x < 6 y = y + 1 Loop B.Do y = y + 1 Loop While x <= 6 C.Do Until x <= 6 y = y + 1 Loop D.Do y = y + 1 Loop Until x <= 6 33.有下面程序代碼: Private Sub Command1_Click() Dim a, s As Integer a = 7: b = 4 Do c = a Do c = c - b Loop Until c < b Or c = 0 Print c; a = a - 1 Loop Until c = 0 End Sub 程序運行產生的輸出是 A.0 1 2 3 B.3 2 1 0 C.1 2 3 0 D.2 3 0 1 34.設整型數組a有10個元素,其中前9個元素中數已按小到大順序排列,下面程序段的作用是 x = InputBox("請輸入一個整數") k = 8 Do If x >= a(k) Then a(k + 1) = x Exit Do Else a(k + 1) = a(k) If k = 0 Then a(k) = x k = k - 1 End If Loop Until k < 0 A.把x中的數插入數組a,使數組中的數仍然保持從小到大的順序 B.在數組a中找到小于或等于x的數,把x中的數放到這個數的后面 C.把x中的數放到下標為0的數組元素中 D.把數組a中的數依次后移,然后把x中的數放到數組的最前面 35.假定編寫了如下通用過程: Sub Sp(x, y) y = 1 For i = 1 To x y = y * i Next i End Sub 在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程: Private Sub Command1_Click() m = 0 a = 0 For i = 1 To 3 Sp i, a m = m + a Next i Print m End Sub 運行程序,單擊命令按鈕,輸出結果是 A.7 B.8 C.9 D.10 36.有如下事件過程: Private Sub Form_Load() Show Dim Arr() As Variant Arr = Array(1, 3, 5, 7, 9, 11, 13, 15) Call converse(Arr) For i = 0 To 7 Print arr(i); Next i End Sub 以上程序的功能是,通過調用Converse過程,將數組Arr中的元素逆序存放并輸出。過程Converse的正確代碼是 A.Private Sub converse(dim a() as Variant ) Dim T For i = LBound(A) To UBound(A) T = a(i) a(i) = a(UBound(A) - i) a(UBound(A) - i) = T Next i End Sub B. Private Sub converse(dim a() as Variant) Dim T Dim J As Integer J = (LBound(A) + UBound(A)) / 2 For i = LBound(A) To J T = a(i) a(i) = a(UBound(A) - i) a(UBound(A) - i) = T Next i End Sub C. Private Sub converse(a() As Variant) Dim T For i = LBound(A) To UBound(A) T = a(i) a(i) = a(UBound(A) - i) a(UBound(A) - i) = T Next i End Sub D.Private Sub converse(a() As Variant) Dim T Dim J As Integer J = Int((LBound(A) + UBound(A)) / 2) For i = LBound(A) To J T = a(i) a(i) = a(UBound(A) - i) a(UBound(A) - i) = T Next i End Sub 37. 在窗體上畫一個名稱為Command1的命令按鈕,然后編寫如下事件過程: Private Sub Command1_Click() Dim s1 As String, s2 As String Open "D:\data.txt" For Input As #1 Seek #1, 5 s1 = Input$(2, #1) s2 = Input$(3, #1) Print Seek(1) Close #1 End Sub 假設有磁盤文件D:\data.txt,且文件足夠長,當程序運行時,單擊Command1,在窗體上輸出的結果是 A.5 B.9 C.10 D.11 38.在窗體上畫一個名稱為Command1的命令按鈕,然后編寫以下程序代碼: Option Base 1 Private Sub Command1_Click() Dim data As Variant, m As Integer, n As Integer m = Val(InputBox("輸入")) data = Array(-2, -1, 0, 1, 2) Call ser(data, m, n) Print n End Sub Private Sub ser(d, a, b) Dim m As Integer, n As Integer, k As Integer Dim i As Integer m = LBound(d): n = UBound(d) k = (m + n) / 2 Do While m < n And d(k) <> a If a < d(k) Then n = k - 1 If a > d(k) Then m = k + 1 k = (m + n) / 2 Loop If d(k) = a Then b = k Else b = -1 End Sub 程序運行過程中單擊命令按鈕Command1,在出現的輸入對話框中輸入"-1"并回車后,則程序的輸出結果為 A.-1 B.1 C.2 D.-2 39.窗體上有一個名稱為Text1的文本框,要求在獲得焦點時選中文本框中所有內容,以下能實現該功能的事件過程是 A. Private Sub Text1_Change() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub B.Private Sub Text1_LostFocus() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub C.Private Sub Text1_GotFocus() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub D.Private Sub Text1_SetFocus() Text1.SelStart = 0 Text1.SelLength = Len(Text1.Text) End Sub 40. A.把“南京”兩字改成了“天津” B.刪除了“南京”列表項 C.在“南京”列表項的后面添加了一個新列表項 D.刪除了“南京”列表項,并在最后面又添加了一個新列表項 1.D 2.A 3.A 4.A 5.D 6.A 7.C 8.D 9.C 10.A 11.D 12.C 13.B 14.A 15.C 16.A 17.A 18.D 19.C 20.B 21.B 22.A 23.A 24.A 25.A 26.A 27.A 28.C 29.B 30.A 31.C 32.D 33.B 34.A 35.C 36.D 37.C 38.C 39.C 40.A
|