2012年9月全國計算機二級VB考試真題 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2012年9月全國計算機二級VB考試真題 二級VB 一、選擇題(每小題2分,共70分)
(11)以下敘述敘述中錯誤的是 A)vbp是工程文件,一個工程可以包括.bas文件 B).frm文件是窗體文件,一個窗體可以包含.bas文件 C) vbp是工程文件,一個工程可以由多個.frm文件組成 D).vbg文件是工程組文件,一個工程組可以由多個工程組成 (12)以下敘述中錯誤的是 A)在Visual Basic的窗體中,一個命令按鈕是一個對象 B)事件是能夠被對象識別的狀態變化或動作 C)事件都是由用戶的鍵盤操作或鼠標操作觸發 D)不同的對象可以具有相同的方法 (13)設x=3.3, y=4.5, 表達式x-Int(x)+Fix(y)的值是 A)3.5 B)4.8 t C)4.3 D)4.7 (14)窗體上有一令名稱為Command1的命令按鈕, 其中部分代碼如下: Private Sub Command1_Click() Dim a(10)As Integer Dim n As Integer ... ... Call calc(a, n) ... ... End Sub calc過程的首行應該是 A)Sub talc(x()As Integer, n As Integer) B)Public Sub calc(x() As Integer) C)Private Sub calc(a(n) As Integer, n As Integer) D)Public Sub calc(a As Integer, n As Integer) (15)設有如下程序: Sub f(x As Integer,ByVal y As Integer) x=2*x y=y+x End Sub Private Sub Command1_Click() Dim a As Integer,b As Integer a=6:b=35 Call f(a, b) Print a, b End Sub 程序運行后, 單擊命令按鈕Command1, 輸出結果為 A)6 47 B)12 (16)以下敘述中正確的是 A)窗體及窗體上所有控件的事件過程代碼都保存在窗體文件中 B)在工程中只有啟動窗體可以建立菜單 c)窗體名稱必須與窗體文件的名稱相同 D)程序一定是從某個窗體開始執行的 (17)窗體上有一個名稱為Command1的命令按鈕, 其單擊事件過程代碼如下: Private Sub Command1_Click() Static x As Variant n=0 x=Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) while n<=4 x(n)=x(n+5) Print x(n); n=n+1 Wend End Sub 運行程序, 單擊命令按鈕Command1, 窗體上顯示的是 A)1 2 3 4 5 B)6 7 8 9 (18)窗體上有一個名稱為Label1的標簽和一個名稱為Command1的命令按鈕。命令按鈕的單擊事件過程如下: Private Sub Command1_Click() x=InputBox("輸入x:", , 0) y=InputBox("輸入y:", , 0) Label1.Caption=x+y End Sub 運行程序, 單擊命令按鈕, 在輸入對話框中分別輸入2、3, 運行的結果是 A)程序運行有錯誤, 數據類型不匹配 ’ B)程序運行有錯誤。InputBox函數的格式不時 C)在Labell中顯示5 1 D)在Labell中顯示23 (19)窗體上有一個名稱為Shape1的形狀控件和由三個命令按鈕組成的名稱為cmdDraw的控件數組。窗體外觀如圖所示(從上到下的3個命令按鈕的下標值分別為0、1、2)。有事件過程如下: Private Sub cmdDraw_Click(Index As Integer) Select Case Index Case 0 Shape1.Shape=0 Case 1 Shape1.Shape=1 Case 2 Shape1.Shape=3 End Select End Sub 當單擊"畫圓"命令按鈕時, 會執行cmdDraw_Click事件過程。以下敘述中正確的是 A)Case 2分支有錯, 此Case后面表達式的值應該與賦給Shape1.Shape的值一致 B)程序運行有錯, 控件數組的下標應該從1開始 C)Index是形狀控件的參數 D)程序正常運行.形狀控件被顯示為圓形 (20)如果一個正整數從高位到低位上的數字依次遞減, 則稱其為降序數<如:9632是降序數, 而8516則不是降序數),F編寫如下程序, 判斷輸入的正整數是否為降序數。 Private Sub Command1_Click() Dim n As Long Dim flag As Boolean n=InputBox("輸入一個正整數") s=Trim(Str(n)) For i=2 To Len(s) If Mid(s, i-1, 1)<Mid(S, i, 1) Then Exit For Next i If i=Len(s) Then flag=True Else flag=False If flag Then Print n; "是降序數" Else Print n; "不是降序數" End If End Sub . 運行以上程序, 發現有錯誤, 需要對給flag變量賦值的If語句進行修改。以下正確的修改是 A)If i=Len(s)+1 Then flag=False Else flag=True B)If i=Len(s)+1 Then flag=True Else flag=False C)If i=Len(s)-1 Then flag=False Else flag=Tihe D)If i=Len(s)-1 Then flag=True Else flag=False (21)現有以下程序: Private Sub Command1_Click() c1=0 c2=0 For i=1 To 100 If i Mod 3=0 Then c1=c1+1 Elself i Mod 7=0 Then c2=c2+1 End If Next Print c1+c2 End Sub 此程序運行后輸出的是在1~100范圍內 A)同時能被3和7整除的整數個數 B)能被3或7整除的整數個數(同時被3和7整除的數只記一次) C)能被3整除, 而不能被7整除的整數個數 D)能被7整除, 而不能被3整除的整數個數 (22)設菜單編輯器中各菜單項的屬性設置如下表所示:
針對上述屬性設置, 以下敘述中錯誤的是 A)屬性設置有錯, 存在"標題"與"名稱"重名現象 B)運行程序, 序號為"3"的菜單項不顯示 C)運行程序, 序號為"4"的菜單項不顯示 D)運行程序, 序號為"5"的菜單項前顯示"√" (23)窗體上有一個名稱為Command1的命令按鈕, 并有如下程序: Private Sub Commandl_Click() x=15 Do While x>0 x=x-3 x=IIf(Int(x/5)=x/5, x+2, x) Print x End Sub 程序運行后, 單擊命令按鈕Command1, 輸出結果為 A)0 B) (24)以下關于通用對話框的敘述中, 錯誤的是 A)若沒有指定InitDir屬性值, 則起始目錄為當前目錄 B)用一個通用對話框控件可以建立幾種不同的對話框 C)FileTitle屬性指明了文件對話框中所選擇的文件名。 D)文件對話框用屬性Filterlndex指定默認過濾器, 它是一個從0開始的整數 (25)窗體上有一個名稱為Command1的命令按鈕, 并有如下程序: Private Sub Command1_Click() Dim m As Integer, n As Inleger m=InputBox("輸入第一個數") n=InputBox("輸入第二個數") Do While m<>n Do While m>n m=m-n Loop Do While n>m n=n-m Loop Loop Print m End Sub 該程序的功能是 A)求數值m和n的最大公約數 B)求數值m和n的最小公倍數 C)求數值m和n中的較大數 D)求數值m和n中的較小數 (26)窗體上有一個名稱為Command1的命令按鈕, 其單擊事件過程及有關函數過程如下: Private Sub Command1_Click() Dim n As Integer n=add(5,10) Print n End Sub Function add(v1 As Integer, v2 As Integer, Optional v3)As Integer If Not IsMissing(v3)Then add=v1+v2+v3 Else add=v1+v2 End If End Function 運行程序, 單擊命令按鈕, 以下敘述中正確的是。 A)程序不能正常運行, 因為函數add的參數定義有錯 B)程序不能正常運行, 因為函數定義與函數調用語句的參數個數不匹配 C)程序能正常運行, 結果是在窗體上顯示15 D)程序能正常運行, 結果是在窗體上顯示510v3 (27)目錄列表框Path屬性所表示的含義是. A)當前驅動器或指定驅動器上的路徑 B)當前驅動器或指定驅動器上的某目錄下的文件列表 C)根目錄下的文件列表 D)指定路徑下的文件列表 (28)以下關于函數過程的敘述中錯誤的是 A)函數過程一定有返回值 B)函數過程一定有參數 C)函數過程可以在窗體模塊和標準模塊中定義。 D)函數過程參數的類型與返回值的類型無關 (29)在窗體上畫一個名稱為C6mmand1的命令按鈕, 然后編寫如下程序 Public Enum S a=4 b=3 End Enum Private Sub Command1_Click() Dim x As Integer x=a If x>=3 Then MsgBox "Pass!" End Sub 運行程序, 其結果是 A)運行錯誤, 因為Enum定義有錯 B)運行錯誤, 因為x=a類型不匹配 C)運行正常結束, 不顯示任何信息 D)運行正常, 顯示內容為"Pass!"的信息框 (30)設有如下程序: Option Base 1 Private Sub Form_Click() Dim a(5) As String, i As Integer For i=1 To 5 a(i)=Chr(Asc("A")+i) Call f(a,i) Next i End Sub Sub f(ta() As String, n As Integer) Dim i As Integer For i=1 To n Print ta(i); Next i End Sub 對上述程序, 以下敘述中正確的是 A)程序有錯, 因為在過程f的定義中數組參數格式不正確 B)程序可正常運行, 輸出內容的第一行是一個字母"A" C)程序可正常運行, 輸出內容的第一行是一個字母"B" D)程序可正常運行, 輸出內容的第一行是數字65 (31)窗體上有二個名稱為Picture1的圖片框控件, 一個名稱為Timer1的計時器控件, 其Interval屬性值 為1000。要求每隔5秒鐘圖片框右移100,F編寫程序如下: Private Sub Timer1_Timet() Static n As Integer n=n+1 If (n/5)=Int(n/5) And Picture1.Left<Form1.Width Then Picturet.Left=Picture1.Left+100 End If End Sub 分析以上程序, 以下敘述中正確的是 A)程序中沒有設置5秒鐘的時間, 所以不能每隔5秒移動圖片框一次 B)此程序運行時圖片框位置保持不動 C)此程序運行時圖片框移動方向與題目要求相反 D)語句條件中的"Picture1.Left<Form1.Width"用于限制圖片框移動的范圍 (32)窗體上有一個名稱為Command1的命令按鈕, 其事件過程如下: Private Sub Command1_Click() Dim i As Integer, j As Integer, k As Integer Dim S As Double s=0: i=1: j=0: k=-1 Do While i<6 s=s+k*(j/i) i=i+1 j=j+1 k=-k print s End Sub 以上程序所計算的表達式是 A)1/2-2/3+3/4-4/5 B)-1/2+2/3-3/4+4/5 C)1-1/2+2/3-3/4+4/5 D)-1+1/2-2/3+3/4-4/5 33)窗體上有一個名稱為Command1的命令按鈕,其單擊事件過程如下: Private Sub Command1_Click() Dim a,b(2,3) as initeger a=Array(3,7,5,11,31,43,17,62,9,23,37,41) i=0 do while i<=Ubound(a) for j=0 to 2 for k=0 to 3 b(j,k)=a(i) i=i+1 next print b(2,2) End Sub 運行程序,窗體上顯示的是 A)43 B) (34) 窗體上有一個名稱為Command1的命令按鈕,其單擊事件過程如下: Private Sub Command1_Click() Dim s as string Open “C:\File1.txt” For Input As #1 Open “C:\File2.txt” For OutPut As #2 Do while not Eof(1) Input #1,s Input #2,s Close #1,#2 End Sub 關于以上程序,以下敘述中錯誤的是 A) 程序把File1.txt文件的內容存放在File2.txt文件中 B) 程序中打開了兩個隨機文件 C) 程序中打開了兩個順序文件 D) “EOF(1)”中的” (35)以下關于文件與文件相關操作的敘述中錯誤的是 A)以Append方式打開的文件可以進行讀寫操作 B)文件記錄的各個字段的數據類型可以不同 C)隨機文件各記錄的長度是相同的 D)隨機文件可以通過記錄號直接訪問文件中的指定記錄 二、填空題(每空2分,共30分) (6)窗體上有從左到右4個單選按鈕組成的控件數組Opt1,下標從0開始,程序運行時,單擊命令按鈕”選擇”(名稱為Command1),則在標簽Label1中顯示所選中的信息,如圖所示 以下是完成上述功能的程序,請填空 Private Sub Command1_Click() For i=0 to 3 if Opt1(i).value=true then Call f(___【6】___) End If Next End Sub Private Sub f(x as Control) Label1.Caption=”您選擇的是:” & ___【7】___.Caption End Sub (7)窗體上有一個名稱為List1的列表框, 列表框中有若干數據項, 列表框的Style屬性為1#有一個名稱Label2的標簽,還有一個名稱為Command1, Caption屬性為"計算"的命令按鈕(見圖)。運行程序,在列表框中選中某些數據項后,單擊命令按鈕, 則可以計算所選數據之和, 并將結果顯示在標簽Label2中,以下是實現上述功能的程序, 請填空 Private Sub Command1_Click() s=0 For i=0 To List1.ListCount-1 If ___【8】___ =True Then s=s+___【9】___ End If Next Label2.Caption=___【10】___ End Sub (8)以下程序的功能是從隨機產生的20個20~200(含20和 200)的整數中, 找出能夠同時被3和5整除的數的最大值, 并顯示 出來。請填空。 Option Base 1 Private Sub Command1_Click() Dim a(20) As Integer m=0 For i=1 To 20 a(i)=Int(Rnd*___【11】___)+20 If a(i) Mod 3=0] ___【12】___ a(i) Mod 5=0 Then If a(i)>m Then m=a(i) End If Next If ___【13】___ Then print "沒有滿足條件的數" Else Print "滿足條件的數是";m End lf End Sub 9.窗體上畫一個名稱為Timer1的計時器控件, 其Enabled屬性值設為False, Interval屬性值設為100。要求程序運行后, 當鼠標在窗體上移動時, 沿鼠標經過的軌跡畫出一系列半徑為100的小圓。其效果如圖所示.以下是實現上述功能的程序,請填空 Dim a As Integer, b As Integer Private Sub Form____【14】___ (Button As Integer, Shift As Integer, x As Single, Y as single) a=X b=Y Timer1.Enabled= ___【15】___ End Sub Private Sub Timer1_Timer() Form1.Circle(a, b), 100 '以(a, b)為圓心畫一個半徑為100的圓 End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||