![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
2012年9月全國(guó)計(jì)算機(jī)二級(jí)VB考試真題 |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2012年9月全國(guó)計(jì)算機(jī)二級(jí)VB考試真題 二級(jí)VB 一、選擇題(每小題2分,共70分)
(11)以下敘述敘述中錯(cuò)誤的是 A)vbp是工程文件,一個(gè)工程可以包括.bas文件 B).frm文件是窗體文件,一個(gè)窗體可以包含.bas文件 C) vbp是工程文件,一個(gè)工程可以由多個(gè).frm文件組成 D).vbg文件是工程組文件,一個(gè)工程組可以由多個(gè)工程組成 (12)以下敘述中錯(cuò)誤的是 A)在Visual Basic的窗體中,一個(gè)命令按鈕是一個(gè)對(duì)象 B)事件是能夠被對(duì)象識(shí)別的狀態(tài)變化或動(dòng)作 C)事件都是由用戶的鍵盤操作或鼠標(biāo)操作觸發(fā) D)不同的對(duì)象可以具有相同的方法 (13)設(shè)x=3.3, y=4.5, 表達(dá)式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過程的首行應(yīng)該是 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)設(shè)有如下程序: 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 程序運(yùn)行后, 單擊命令按鈕Command1, 輸出結(jié)果為 A)6 47 B)12 (16)以下敘述中正確的是 A)窗體及窗體上所有控件的事件過程代碼都保存在窗體文件中 B)在工程中只有啟動(dòng)窗體可以建立菜單 c)窗體名稱必須與窗體文件的名稱相同 D)程序一定是從某個(gè)窗體開始執(zhí)行的 (17)窗體上有一個(gè)名稱為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 運(yùn)行程序, 單擊命令按鈕Command1, 窗體上顯示的是 A)1 2 3 4 5 B)6 7 8 9 (18)窗體上有一個(gè)名稱為Label1的標(biāo)簽和一個(gè)名稱為Command1的命令按鈕。命令按鈕的單擊事件過程如下: Private Sub Command1_Click() x=InputBox("輸入x:", , 0) y=InputBox("輸入y:", , 0) Label1.Caption=x+y End Sub 運(yùn)行程序, 單擊命令按鈕, 在輸入對(duì)話框中分別輸入2、3, 運(yùn)行的結(jié)果是 A)程序運(yùn)行有錯(cuò)誤, 數(shù)據(jù)類型不匹配 ’ B)程序運(yùn)行有錯(cuò)誤。InputBox函數(shù)的格式不時(shí) C)在Labell中顯示5 1 D)在Labell中顯示23 (19)窗體上有一個(gè)名稱為Shape1的形狀控件和由三個(gè)命令按鈕組成的名稱為cmdDraw的控件數(shù)組。窗體外觀如圖所示(從上到下的3個(gè)命令按鈕的下標(biāo)值分別為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 當(dāng)單擊"畫圓"命令按鈕時(shí), 會(huì)執(zhí)行cmdDraw_Click事件過程。以下敘述中正確的是 A)Case 2分支有錯(cuò), 此Case后面表達(dá)式的值應(yīng)該與賦給Shape1.Shape的值一致 B)程序運(yùn)行有錯(cuò), 控件數(shù)組的下標(biāo)應(yīng)該從1開始 C)Index是形狀控件的參數(shù) D)程序正常運(yùn)行.形狀控件被顯示為圓形 (20)如果一個(gè)正整數(shù)從高位到低位上的數(shù)字依次遞減, 則稱其為降序數(shù)<如:9632是降序數(shù), 而8516則不是降序數(shù)),F(xiàn)編寫如下程序, 判斷輸入的正整數(shù)是否為降序數(shù)。 Private Sub Command1_Click() Dim n As Long Dim flag As Boolean n=InputBox("輸入一個(gè)正整數(shù)") 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; "是降序數(shù)" Else Print n; "不是降序數(shù)" End If End Sub . 運(yùn)行以上程序, 發(fā)現(xiàn)有錯(cuò)誤, 需要對(duì)給flag變量賦值的If語(yǔ)句進(jìn)行修改。以下正確的修改是 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)現(xiàn)有以下程序: 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 此程序運(yùn)行后輸出的是在1~100范圍內(nèi) A)同時(shí)能被3和7整除的整數(shù)個(gè)數(shù) B)能被3或7整除的整數(shù)個(gè)數(shù)(同時(shí)被3和7整除的數(shù)只記一次) C)能被3整除, 而不能被7整除的整數(shù)個(gè)數(shù) D)能被7整除, 而不能被3整除的整數(shù)個(gè)數(shù) (22)設(shè)菜單編輯器中各菜單項(xiàng)的屬性設(shè)置如下表所示:
針對(duì)上述屬性設(shè)置, 以下敘述中錯(cuò)誤的是 A)屬性設(shè)置有錯(cuò), 存在"標(biāo)題"與"名稱"重名現(xiàn)象 B)運(yùn)行程序, 序號(hào)為"3"的菜單項(xiàng)不顯示 C)運(yùn)行程序, 序號(hào)為"4"的菜單項(xiàng)不顯示 D)運(yùn)行程序, 序號(hào)為"5"的菜單項(xiàng)前顯示"√" (23)窗體上有一個(gè)名稱為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 程序運(yùn)行后, 單擊命令按鈕Command1, 輸出結(jié)果為 A)0 B) (24)以下關(guān)于通用對(duì)話框的敘述中, 錯(cuò)誤的是 A)若沒有指定InitDir屬性值, 則起始目錄為當(dāng)前目錄 B)用一個(gè)通用對(duì)話框控件可以建立幾種不同的對(duì)話框 C)FileTitle屬性指明了文件對(duì)話框中所選擇的文件名。 D)文件對(duì)話框用屬性Filterlndex指定默認(rèn)過濾器, 它是一個(gè)從0開始的整數(shù) (25)窗體上有一個(gè)名稱為Command1的命令按鈕, 并有如下程序: Private Sub Command1_Click() Dim m As Integer, n As Inleger m=InputBox("輸入第一個(gè)數(shù)") n=InputBox("輸入第二個(gè)數(shù)") 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)求數(shù)值m和n的最大公約數(shù) B)求數(shù)值m和n的最小公倍數(shù) C)求數(shù)值m和n中的較大數(shù) D)求數(shù)值m和n中的較小數(shù) (26)窗體上有一個(gè)名稱為Command1的命令按鈕, 其單擊事件過程及有關(guān)函數(shù)過程如下: 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 運(yùn)行程序, 單擊命令按鈕, 以下敘述中正確的是。 A)程序不能正常運(yùn)行, 因?yàn)楹瘮?shù)add的參數(shù)定義有錯(cuò) B)程序不能正常運(yùn)行, 因?yàn)楹瘮?shù)定義與函數(shù)調(diào)用語(yǔ)句的參數(shù)個(gè)數(shù)不匹配 C)程序能正常運(yùn)行, 結(jié)果是在窗體上顯示15 D)程序能正常運(yùn)行, 結(jié)果是在窗體上顯示510v3 (27)目錄列表框Path屬性所表示的含義是. A)當(dāng)前驅(qū)動(dòng)器或指定驅(qū)動(dòng)器上的路徑 B)當(dāng)前驅(qū)動(dòng)器或指定驅(qū)動(dòng)器上的某目錄下的文件列表 C)根目錄下的文件列表 D)指定路徑下的文件列表 (28)以下關(guān)于函數(shù)過程的敘述中錯(cuò)誤的是 A)函數(shù)過程一定有返回值 B)函數(shù)過程一定有參數(shù) C)函數(shù)過程可以在窗體模塊和標(biāo)準(zhǔn)模塊中定義。 D)函數(shù)過程參數(shù)的類型與返回值的類型無(wú)關(guān) (29)在窗體上畫一個(gè)名稱為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 運(yùn)行程序, 其結(jié)果是 A)運(yùn)行錯(cuò)誤, 因?yàn)?/SPAN>Enum定義有錯(cuò) B)運(yùn)行錯(cuò)誤, 因?yàn)?/SPAN>x=a類型不匹配 C)運(yùn)行正常結(jié)束, 不顯示任何信息 D)運(yùn)行正常, 顯示內(nèi)容為"Pass!"的信息框 (30)設(shè)有如下程序: 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 對(duì)上述程序, 以下敘述中正確的是 A)程序有錯(cuò), 因?yàn)樵谶^程f的定義中數(shù)組參數(shù)格式不正確 B)程序可正常運(yùn)行, 輸出內(nèi)容的第一行是一個(gè)字母"A" C)程序可正常運(yùn)行, 輸出內(nèi)容的第一行是一個(gè)字母"B" D)程序可正常運(yùn)行, 輸出內(nèi)容的第一行是數(shù)字65 (31)窗體上有二個(gè)名稱為Picture1的圖片框控件, 一個(gè)名稱為Timer1的計(jì)時(shí)器控件, 其Interval屬性值 為1000。要求每隔5秒鐘圖片框右移100,F(xiàn)編寫程序如下: 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)程序中沒有設(shè)置5秒鐘的時(shí)間, 所以不能每隔5秒移動(dòng)圖片框一次 B)此程序運(yùn)行時(shí)圖片框位置保持不動(dòng) C)此程序運(yùn)行時(shí)圖片框移動(dòng)方向與題目要求相反 D)語(yǔ)句條件中的"Picture1.Left<Form1.Width"用于限制圖片框移動(dòng)的范圍 (32)窗體上有一個(gè)名稱為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 以上程序所計(jì)算的表達(dá)式是 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)窗體上有一個(gè)名稱為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 運(yùn)行程序,窗體上顯示的是 A)43 B) (34) 窗體上有一個(gè)名稱為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 關(guān)于以上程序,以下敘述中錯(cuò)誤的是 A) 程序把File1.txt文件的內(nèi)容存放在File2.txt文件中 B) 程序中打開了兩個(gè)隨機(jī)文件 C) 程序中打開了兩個(gè)順序文件 D) “EOF(1)”中的” (35)以下關(guān)于文件與文件相關(guān)操作的敘述中錯(cuò)誤的是 A)以Append方式打開的文件可以進(jìn)行讀寫操作 B)文件記錄的各個(gè)字段的數(shù)據(jù)類型可以不同 C)隨機(jī)文件各記錄的長(zhǎng)度是相同的 D)隨機(jī)文件可以通過記錄號(hào)直接訪問文件中的指定記錄 二、填空題(每空2分,共30分) (6)窗體上有從左到右4個(gè)單選按鈕組成的控件數(shù)組Opt1,下標(biāo)從0開始,程序運(yùn)行時(shí),單擊命令按鈕”選擇”(名稱為Command1),則在標(biāo)簽Label1中顯示所選中的信息,如圖所示 以下是完成上述功能的程序,請(qǐng)?zhí)羁?/SPAN> 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)窗體上有一個(gè)名稱為List1的列表框, 列表框中有若干數(shù)據(jù)項(xiàng), 列表框的Style屬性為1#有一個(gè)名稱Label2的標(biāo)簽,還有一個(gè)名稱為Command1, Caption屬性為"計(jì)算"的命令按鈕(見圖)。運(yùn)行程序,在列表框中選中某些數(shù)據(jù)項(xiàng)后,單擊命令按鈕, 則可以計(jì)算所選數(shù)據(jù)之和, 并將結(jié)果顯示在標(biāo)簽Label2中,以下是實(shí)現(xiàn)上述功能的程序, 請(qǐng)?zhí)羁?/SPAN> 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)以下程序的功能是從隨機(jī)產(chǎn)生的20個(gè)20~200(含20和 200)的整數(shù)中, 找出能夠同時(shí)被3和5整除的數(shù)的最大值, 并顯示 出來。請(qǐng)?zhí)羁铡?/SPAN> 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 "沒有滿足條件的數(shù)" Else Print "滿足條件的數(shù)是";m End lf End Sub 9.窗體上畫一個(gè)名稱為Timer1的計(jì)時(shí)器控件, 其Enabled屬性值設(shè)為False, Interval屬性值設(shè)為100。要求程序運(yùn)行后, 當(dāng)鼠標(biāo)在窗體上移動(dòng)時(shí), 沿鼠標(biāo)經(jīng)過的軌跡畫出一系列半徑為100的小圓。其效果如圖所示.以下是實(shí)現(xiàn)上述功能的程序,請(qǐng)?zhí)羁?/SPAN> 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)為圓心畫一個(gè)半徑為100的圓 End Sub
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||