一、選擇題((1)一(20)每小題2分,(21)一(30)每小題3分,共30題,70分) 下列各題A)、B)、C)、D)四個選項中,只有一個選項是正確的,請將正確選項涂 在答題卡的相應位置上,答在試卷上不得分。 (1)以下不能在“工程資源管理器”窗口中列出的文件類型是 A).bas B).res C).fnn D).ocx (2)以下關于窗體的描述中,錯誤的是 A)執行UnloadFoMl語句后,窗體Fonnl消失,但仍在內存中 B)窗體的Ioad事件在加載窗體時發生 C)當窗體的Enabled屬性為False時,通過鼠標和鍵盤對窗體的操作都被禁止 D)窗體的Height、width屬性用于設置窗體的高和寬 (3)下列可作為V2sualBasic變量名的是 A)A#A B)4A C)?xY D)constA (4)設有如下的記錄類型 Type Student numberAs string name As String age As Integer End Type 則正確引用該記錄類型變量的代碼是 A) Student.name=”張紅” B) Dim As Student s.name=”張紅” C) Dim s As Type Student D) Dim s As Type S.name=”張紅” s.Dame=”張紅” (5)函數String(n,“str”)的功能是 A)把數值型數據轉換為字符串 B)返回由n個字符組成的字符串 C)從字符串中取出n個字符 D)從字符串中第n個字符的位置開始取子字符串 (6)將數學表達式Cos2(a+b)+5e2寫成Visual Basic的表達式,其正確的形式是 A)Cos(a+b)A2十5。exp(2) B)Cos^2(a+b)+5*exp(2) C)Cos(a+b)^2十5*ln(2) D)Cos^2(a+b)+5*ln(2) (7)在窗體上畫一個命令按鈕,名稱為Commandl。單擊命令按鈕時,執行如下事件過 程: PrlVate Sub Commandl—C1icko a$="software and hardware" b$=Right(a$,8) c$=Mid(a$,1,8) Msgbox a$,,b$,c$,1 End Sub 則在彈出的信息框的標題欄中顯示的信息是 A)softWare and hardware B)software C)hardwafe D)1 (8)執行如下語句: a=inutBox(”Today”,”TomorroW,”Yesterday”,,,"Day before yesterday",5) 將顯示一個輸入對話框,在對話框的輸入區中顯示的信息是 A)Today B)Tomorrow C)Yesterday D)Day before yesterday (9)表示滾動條控件取值范圍最大值的屬性是 A)Max B)LargeChange C)Value D)Max—Min (10)在窗體上畫一個名稱為Listl的列表框,一個名稱為Labell的標簽。列表框中顯示 若干城市的名稱。當單擊列表框中的某個城市名時,在標簽中顯示選中城市的名稱。 下列能正確實現上述功能的程序是 A) Private Sub listl_Click() B)Private Sub Listl_C1ick() Labell.Caption=list1.listlndex Labell.Nanle=Listl.listindex End Sub .End Sub 程序運行后,如果單擊命令按鈕,則在窗體上顯示的內容是 A)空白 B)錯誤提示 C)北京 D)上海 (15)假定有以下函數過程: Function Fun(S As String) As String Dim s1 As String For i=1 To Len(S) s1=UCase(Mid(S,i,1))十s1 Next i Fun=s1 End Function 在窗體上畫一個命令按鈕,然后編寫如下事件過程: Prlvate Sub Commmldl_Click() Dim Str1 As String,Str2 As String Strl=inputbox(”請輸入一個字符串”) Str2=Fun(Strl) Print Str2 End Sub 程序運行后,單擊命令按鈕,如果在輸入對話框中輸入字符串“abcdefg”,則單擊“確 定”按鈕后在窗體上的輸出結果為 A)abcdefg B)ABCDEFG C)gfedcba D)GFEDCBA (16)設有語句 open "c:\Test.Dat" For OutPut As#1 則以下錯誤的敘述是 A)該語句打開C盤根目錄下一個己存在的文件Test.Dat B)該語句在C盤根目錄下建立一個名為Test.Dat的文件 C)該語句建立的文件的文件號為1 D)執行該語句后,就可以通過Print#語句向文件Test.Dat中寫入信息 (17)以下敘述中錯誤的是 A)用Shell函數可以調用能夠在Windows下運行的應用程序 B)用Shell函數可以調用可執行文件,也可以調用VisualBasic的內部函數 C)調用Shell函數的格式應為:<變量名>=Shell(……) D)用Shell函數不能執行DoS命令 (18)以下關于過程及過程參數的描述中,錯誤的是 A)過程的參數可以是控件名稱 B)用數組作為過程的參數時,使用的是“傳地址”方式 c)只有函數過程能夠將過程中處理的信息傳回到調用的程序中 D)窗體可以作為過程的參數 (19)在窗體上畫一個名稱為TxtA的文本框,然后編寫如下的事件過程: Private Sub Txta_KeyPress(keyascii as integer) End Sub 若焦點位于文本框中,則能夠觸發KeyPress事件的操作是 A)單擊鼠標 B)雙擊文本框 C)鼠標滑過文本框 D)按下鍵盤上的某個鍵 (20)目錄列表框的Path屬性的作用是 A)顯示當前驅動器或指定驅動器上的路徑 B)顯示當前驅動器或指定驅動器上的某目錄下的文件名 c)顯示根目錄下的文件名 D)只顯示當前路徑下的文件 (21)假定有如下事件過程: PriVate Sub Form_MouseDown(button As Integer,Shift As Integer, x As Single,Y As Single) If Button=2 then PopupMenu popForm End if End Sub 則以下描述中錯誤的是 A)該過程的功能是彈出一個菜單 B)popForm 是在菜單編輯器中定義的彈出式菜單的名稱 C)參數X、Y指明鼠標的當前位置 D)Button=2 表示按下的是鼠標左鍵 (22)以下能夠正確計算n!的程序是 二級Visual Basic語言程序設計試卷第5頁 (共15頁) A) Private Sub Commandl_ClicK() n=5:x=1 Do X=x*1 i=i十1 Loop While i<n Print x End Sub B) Private Sub Commandl_Click() n=5: x=1:i=1 Do X=X*1 i=i十1 Loop While i<n Print x End Sub C)Private Sub Commandl_Click() n=5:x=1:i=1 Do X=X*1 i=i十1 Loop while i<=n Print x End Sub D)Private Sub Commandl_C1ick() n=5:x=1:i=1 Do X=X*l i=i十1 loop While i>n Print x End Sub (23)在窗體上畫一個名稱為Commandl的命令按鈕,再畫兩個名稱分別為Labell、Label2 的標簽,然后編寫如下程序代碼: . 二級vlsudBM5c語言程序設計試卷第6頁 (共15頁) Private x As Integer Private Sub Commandl—Click() X=5:Y=3 Call proc(x,Y) Labell.Caption=X Label2.Caption=Y End Sub Private Sub proc(ByVal a As Integer,ByVal b As hteger) x=a* a Y=b十b End Sub 程序運行后,單擊命令按鈕,則兩個標簽中顯示的內容分別是 A)5和3 B)25和3 C)25和6 D)5和6 (24)在窗體上畫一個名稱為Commandl的命令按鈕,一個名稱為Labell的標簽,然后 編寫如下事件過程: Private Sub Commandl_C1ick() S=0 For i=1 T0 15 x=2*i一1 1f x Mod 3=0 Then s=s十1 Nexti Labell.Caption=s End Sub . 程序運行后,單擊命令按鈕,則標簽中顯示的內容是 A)1 B)5 C)27 D)45 (25)在窗體上畫一個名稱為Commandl的命令按鈕和三個名稱分別為Labell、Label2、 Label3的標簽,然后編寫如下代碼: Private x As Integer Private Sub Command1_C1ick() Static y As Integer Dimz As Integer n=10 z=n十z y=y十z X=X十Z Labell.Caption=x Label2.Caption=y Label3.Caption=z End Sub 運行程序,連續三次單擊命令按鈕后,則三個標簽中顯示的內容分別是 A)10 10 10 B)30 30 30 C)30 30 10 D)10 30 30(26)設在窗體上有一個名稱為Commandl的命令按鈕,并有以下事件過程: PriVate Sub Commandl_C1ick() Static b As Variant b=Array(1,3,5,7,9) End Sub 此過程的功能是把數組b中的5個數逆序存放(即排列為9,7,5,3,1)。為實現此功 能,省略號處的程序段應該是 A)For i=0 To 5-1\2 tmp=b(i) b(i)=b(5-i-1) b(5-i-1)=tmp Next B)for i=0 To 5 tmp=b(i) b(i)=b(5-i-1) b(5-i-1)=tmp Next C) For i=0 T0 5\2 tmp=b(i) b(i)=b(5-i-1) b(5-i-1);tmp Next D)For i=1 T0 5\2 tmp=b(i) b(i)=b(5一i一1) b(5—i—1)=tmp Next 二級VlsualBM5c語言程序設計試卷第8頁 (共15頁) (27)在窗體上畫一個名稱為Drivel的驅動器列表框,一個名稱為Dirl的目錄列表框, 一個名稱為Filel的文件列表框,兩個名稱分別為Labell、Label2,標題分別為空白 和“共有文件”的標簽。編寫程序,使得驅動器列表框與目錄列表框、目錄列表框 與文件列表框同步變化,并且在標簽Labell中顯示當前文件夾中文件的數量。如圖 所示。 能夠正確實現上述功能的程序是 A) Private Sub Dirl_Change() B)Private Sub Dir1_Change() Filel.Path=Dir1.path Filel.path=dir1.Path End Sub End Sub Private Sub Drivel_Change() Private Sub Drive1_Change() Dirl.Path=Drivel.Drive Dirl.Path=Drivel.Drive Labell.Caption=Filel.listCount Labell.Captlon=file1.list End Sub End Sub C)Private Sub Dirl_Change() D) Private Sub Dirl_Change() Filel.Path=Dirl.Path filel.Path=Dir1.Path Labell.Caption=Filel.ListCount Labell.Caption=Filel.List End Sub End Sub Private Sub Drivel_Change() Private Sub Drivel_Change() Dirl.Path=Drivel.Drlve Dir1.Path=Drivel.DrlVe Labell.Caption=Filel.ListCount Labell.Caption=Filel.list End Sub End Sub (28)一個工程中包含兩個名稱分別為Forml、Form2的窗體,一個名稱為mdlFunc的標準 模塊。假定在Forml、Form2和mdlFunc中分別建立了自定義過程,其定義格式為: Forml中定義的過程: PriVate Sub frmfunctionl() End Sub Form2中定義的過程: Public Sub frmffunction2() End Sub mdlFunc中定義的過程: PubliC Sub mdlFunction() End Sub 在調用上述過程的程序中,如果不指明窗體或模塊的名稱,則以下敘述中正確的是 A)上述三個過程都可以在工程中的任何窗體或模塊中被調用 B)frmfunction2和mdlfunction過程能夠在工程中各個窗體或模塊中被調用 C)上述三個過程都只能在各自被定義的模塊中調用 D)只有mdlFunction過程能夠被工程中各個窗體或模塊調用(29)窗體上有兩個名稱分別為Textl、Text2的文本框,一個名稱為Commandl的命令 按鈕。運行后的窗體外觀如圖所示。 設有如下的類型聲明 Type Person name As String*8 major As String*20 End Type 當單擊“保存”按鈕時,將兩個文本框中的內容寫入一個隨機文件Test29.dat中。設 文本框中的數據已正確地賦值給Person類型的變量p。則能夠正確地把數據寫入文件 的程序段是 A)0pen”c:\Test29.dat" For Random As#1 Put #1,1,p Close #1 B)Open "c:\Test29.dat" For Random As #1 Get#1,1,p C10se #1 C)open "c\Test29.dat" For Random As #1 Len=Len(p) Put #1,1,p Close #1 D)Open "c:\Test29.dat " For Random As #1=Len(p) Get #1,1,p CloSe #1 (30)在窗體上畫一個名稱為CommonDialogl的通用對話框,一個名稱為Commandl的 命令按鈕。要求單擊命令按鈕時,打開一個保存文件的通用對話框。該窗口的標題 為"Save",缺省文件名為“SaveFile”,在“文件類型”欄中顯示*.txt。則能夠滿足 上述要求的程序是 A)Private Sub Command_C1ick() Commondialogl.FileName=“Savefile” Commondialogl.filter="All Files|*.*|(*.txt)|*.txt|(*.doc).|*.doc" CommonDialogl.Filterindex=2 CommonDialogl.Dial0g.title="Save" CommonDialogl.Action=2 End Sub B)Private Sub Commandl—Click() CommonDialogl.FileName="SaveFile" CommonDiaLogl.Filter="A11 Files|*.*|(*.txt)|*.txt|*.doc|*.doc" C0mmonDialogl.FilterIndex=1 CommonDialogl.DialogTitle="Save" CommonDialogl.Action=2 End Sub C)Private Sub Cmmandl_C1ick() COmmonDialogl.FileName="Save" CommonDialogl.FiLter="A11Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc" CommonDialogl.Filterindex=2 C0mmonDialogl.DialogTitle="SaveFile" CommonDialogl.Action=2 End Sub D)Private Sub Commandl_C1ick() CommonDialogl.FileName="SaveFile" CommonDialogl.Filter="All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc" CommonDialogl.FilterIndex=1 CommonDialogl.DialogTitle=“Save” CommonDialogl.Action=1 End Sub 二、填空題(每空2分,共30分) 請將每空的正確答案寫在答題卡[1]一[15序號的橫線上,答在試卷上不得分。 (1)visual Basic中有一種控件組合了文本框和列表框的特性,這種控件是________ (2)Visual Basic提供的對數據文件的三種訪問方式為隨機訪問方式_____和二進制訪問 方式。 (3)執行下面的程序段后,變量S的值為_______。 S=5 For i =2.6 To 4.9 Step 0.6 S=S十1 Next i (4)為了在運行時把d:\pic文件夾下的圖形文件a.jpg裝入圖片框Picturel,所使用的語 句為_______。 (5)計時器控件能有規律的以一定時間間隔觸發_______事件,并執行該事件過程中的 程序代碼。 (6)以下程序的功能是:生成20個200到300之間的隨機整數,輸出其中能被5整除的 數并求出它們的和。請填空。 Private Sub Commandl_C1ick() Fori=1To 20 x=Int(____________*200+100) If_______[7] =0 Then Print x 二級VIsualBMic語言程序設計試卷第12頁 (共15頁) S=S十 _________ [83 End If Next i Print “Sum=”:S End Sub (7)設有如下程序 Private Sub Form_Click() Dim a AS Integer,b As integer a=20:b=50 pla,b p2a,b p3a,b Print"a=";a,"b=";b End Sub Sub pl(x As Integer,ByVal y As Integer) x=x十10. v=v十20 End Sub Sub p2(byVal x As Integer, y As Integer) x=x十10 y=y十20 End Sub Sub p3(ByValx As Integer, ByVal y As Integer) x=x十10 y=y十20 End Sub 該程序運行后,單擊窗體,則在窗體上顯示的內容是:a=______和b=______。 (8)在窗體上畫一個名稱為Commandl的命令按鈕,編寫如下事件過程 PRiVate Sub Commandl_C1icK() Dim As String a=_____[11] For i =1 To 5 Print Space(6—i);Mid$3(a,6—i,2*i—1) 二級V1sualBMic語言程序設計試卷第13頁 (共15頁) Nexti End Sub 程序運行后,單擊命令按鈕,要求窗體上顯示的輸出結果為 456 34567 2345678 123456789 請填空。(9)在窗體上畫一個名稱為Combo1的組合框,畫兩個名稱分別Label1和Label2及Caption 屬性分別為“城市名稱”和空白的標簽。程序運行后,當在組合框中輸入一個新項 后按回車鍵(ASCII碼為13)時,如果輸入的項在組合框的列表中不存在,則自動 添加到組合框的列表中,并在Label2中給出提示“已成功添加輸入項”如圖所示; 如果存在,則在Label2中給出提示“輸入項已在組合框中”。請在[12>、[13]和 [14>處將程序補充完整。 Private Sub Combol_________<12> (KeyAscii As integer) 1f KeyAscii=13 Then Fori=0 To Combo1.listCount—1 1f Combo1.Text=______ [13] Ihen Label2.Caption=”輸入項己在組合框中” ExIt Sub End lf Next i Label2.Caption=“已成功添加輸入項” Combo1.______ [14] CombO1.Text End lf End Sub (10)設有如下程序 Private sub search(a()As variant,ByVal key As Variant,index%) Dim I% ForI=LBound(a)To UBound(a) If key=a(I) Then index=I Exit Sub End If Next I Index=-1 End Sub Private Sub Form_Load() Show Dtm b() As Variant Dim n As Integer b=Array(1,3,5,7,9,11,13,15) Call search(b,11,n) Printt n End Sub 程序運行后,輸出結果是________。