1、全国计算机等级考试二级笔试试卷-Visual Basic语言程序设计一、选择题(1)(20)每小题2分,(21)(30)每小题3分,共30题,70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂在答题卡 的相应位置上,答在试卷上不得分。(1)以下不能在“工程资源管理器”窗口中列出的文件类型是A).bas B).res C).frm D).ocx(2)以下关于窗体的描述中,错误的是A)执行U nload Forml语句后,窗体Forml消失,但仍在内存中B)窗体的Load事件在加载窗体时发生C)当窗体的Enabled属性为False时,通过鼠标和键盘对窗体的操作
2、都被禁止D)窗体的Height、W idth属性用于设置窗体的高和宽(3)下列可作为Visual Basic变量名的是A)A#A B)4 A C)?xy D)constA(4)设有如下的记录类型Type Studentnumber As Stringname As Stringage As IntegerEnd Type则正确引用该记录类型变量的代码是A)Student,name=张红B)Dim s As Students.name=张红C)Dim s As Type Student D)Dim s As Types.name=张红s.name=张红(5)函数String(n,str)的功能是
3、A)把数值型数据转换为字符串B)返回由n个字符组成的字符串C)从字符串中取出n个字符D)从字符串中第n个字符的位置开始取子字符串(6)将数学表达式Cos2(a+b)+5e2写成Visual Basic的表达式,其正确的形式是A)Cos(a+b)-2+5*exp(2)B)Cos2(a+b)+5*exp(2)C)Cos(a+b)-2+5*ln(2)D)Cos2(a+b)+5*ln(2)(7)在窗体上画一个命令按钮,名称为Commandl。单击命令按钮时,执行如下事件过程:Private Sub Command1_C1ick()a$=software and hardware”b$=Right(a$
4、,8)c$=M id(a$,1,8)M sgBox a$,b$,c$,1End Sub则在弹出的信息框的标题栏中显示的信息是A)software and hardware B)software C)hardware D)1(8)执行如下语句:a=InputBox(Today,Tomorrow,Yesterday,Day before yesterday”,5)将显示一个输入对话框,在对话框的输入区中显示的信息是A)Today B)Tomorrow C)Yesterday D)Day before yesterday(9)表示滚动条控件取值范围最大值的属性是A)M ax B)LargcChang
5、c C)Value D)M ax-M in(10)在窗体上画一个名称为Listl的列表框,一个名称为Labell的标签。列表框中显示若干 城市的名称。当单击列表框中的某个城市名时,在标签中显示选中城市的名称。下列能正确实现 上述功能的程序是A)Private Sub Listl_Click()B)Private Sub Listl_Click()Labell.Caption=Listl.Listindex Labell.Name=Listl.ListindexEnd Sub End SubC)Private Sub Listl_Click()D)Private Sub Listl_Click(
6、)Label1.Name=Listl.Text Label1.Caption=Listl.Text End Sub End Sub(11)在窗体上画一个名称为Commandl的命令按钮,然后编写如下事件过程:Private Sub Commandl_Click()x=0 n=InputBox()For i=1 To n For j=1 To i x=x+1 Next j Next i Print x End Sub程序运行后,单击命令按钮,如果输入3,则在窗体上显示的内容是 A)3 B)4 C)5 D)6(12)以下关于菜单的叙述中,错误的是A)在程序运行过程中可以增加或减少菜单项B)如果把一
7、个菜单项的Enabled属性设置为False,则可删除该菜单项O弹出式菜单在菜单编辑器中设计D)利用控件数组可以实现菜单项的增加或减少(13)在窗体上画三个单选按钮,组成一个名为chkOption的控件数组。用于标识各个控件数组 元素的参数是A)Tag B)Index C)Listindex D)Name(14)在窗体上画一个命令按钮,名称为Commandl,然后编写如下事件过程:Option Base 0Private Sub Commandl_Click()Dim city As Variantcity=Array(北京,上海,天津,重庆”)Print city(1)End Sub程序运行
8、后,如果单击命令按钮,则在窗体上显示的内容是A)空白B)错误提示C)北京D)上海(15)假定有以下函数过程:Function Fun(S As String)As StringDim si As StringFor i=1 To Len(S)si=U Case(M id(S,i,1)+siNext iFun=siEnd Function在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub CommandlClick()Dim Strl As String,Str2 As StringStrl=InputBox(请输入一个字符串“)Str2=Fun(Strl)Print Str2
9、End Sub程序运行后,单击命令按钮,如果在输入对话框中输入字符串abcdefg”,则单击”确定按钮后 在窗体上的输出结果为A)abcdefg B)ABCDEFG C)gfedcba D)GFEDCBA(16)设有语句Open c:Test.Dat For Output As#1则以下错误的叙述是A)该语句打开C盘根目录下一个已存在的文件Test.DatB)该语句在C盘根目录下建立一个名为Test.Dat的文件C)该语句建立的文件的文件号为1D)执行该语句后,就可以通过Print#语句向文件Test.Dat中写入信息(17)以下叙述中错误的是A)用Shell函数可以调用能够在W indows
10、下运行的应用程序B)用Shell函数可以调用可执行文件,也可以调用Visual Basic的内部函数C)调用Shell函数的格式应为:变量名=Shell()D)用Shell函数不能执行DOS命令(18)以下关于过程及过程参数的描述中,错误的是A)过程的参数可以是控件名称B)用数组作为过程的参数时,使用的是“传地址方式C)只有函数过程能够将过程中处理的信息传回到调用的程序中D)窗体可以作为过程的参数(19)在窗体上画一个名称为TxtA的文本框,然后编写如下的事件过程:Private Sub TxtA_K eyPress(keyascii as integer)End Sub若焦点位于文本框中,则
11、能够触发K eyPress事件的操作是A)单击鼠标B)双击文本框C)鼠标滑过文本框D)按下键盘上的某个键(20)目录列表框的Path属性的作用是A)显示当前驱动器或指定驱动器上的路径B)显示当前驱动器或指定驱动器上的某目录下的文件名O显示根目录下的文件名D)只显示当前路径下的文件(21)假定有如下事件过程:Private Sub Form_M ouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)If Button=2 Then PopupM enu popForm End If End Sub 则以下描述中错误
12、的是A)该过程的功能是弹出一个菜单B)popForm是在菜单编辑器中定义的弹出式菜单的名称 C)参数X、Y指明鼠标的当前位置D)Button=2表示按下的是鼠标左键(22)以下能够正确计算n!的程序是A)Private Sub Commandl_Click()n=5:x=1 Do x=x*i i=i+1Loop W hile i nPrint xEnd SubB)Private Sub Commandl_Click()n=5:x=l:i=lDox=x*i i=i+1 Loop W hile i n Print xEnd SubC)Private Sub Commandl_Click()n=5:
13、x=l:i=lDo x=x*ii=i+1Loop W hile i n Print x End Sub(23)在窗体上画一个名称为Commandl的命令按钮,再画两个名称分别为Label 1 Label2的标 签,然后编写如下程序代码:Private X As IntegerPrivate Sub Commandl_Click()X=5:Y=3 Cal 1 proc(X,Y)Labell.Caption=X Label2.Caption=Y End SubPrivate Sub proc(ByVai a As Integer,ByVai b As Integer)X=a*a Y=b+b End
14、 Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是A)5 和 3 B)25 和 3 C)25 和 6 D)5 和 6(24)在窗体上画一个名称为Command 1的命令按钮,一个名称为Labell的标签,然后编写如下 事件过程:Private Sub Command1_C1ick()s=0 For i=1 To 15 x=2*i-1 If x M od 3=0 Then s=s+1 Next iLabell.Caption=s End Sub 程序运行后,单击命令按钮,则标签中显示的内容是 A)1 B)5 C)27 D)45(25)在窗体上画一个名称为Commandl的命令按钮和
15、三个名称分别为Labell、Label2、Labe 13 的标签,然后编写如下代码:Private x As Integer Private Sub CommandlClick()Static y As Integer Dim z 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)设在窗体上有一个名称为Com
16、mandl的命令按钮,并有以下事件过程:Private Sub Commandl_Click()Static b As Variantb=Array(1,3,5,7,9)End Sub此过程的功能是把数组b中的5个数逆序存放(即排列为9,7,5,3,1)。为实现此功能,省略号处的程序段应该是A)For i=0 To 5-1 2tmp=b(i)b(i)=b(5-i-1)b(5-i-1)=tmpNextB)For i=0 To 5tmp=b(i)b(i)=b(5-i-1)b(5-i-1)=tmpNextC)For i=0 To 5 2tmp=b(i)b(i)=b(5-i-1)b(5-i-1)=tm
17、pNextD)For i=1 To 5 2tmp=b(i)b(i)=b(5-i-1)b(5-i-1)=tmpNext(27)在窗体上画一个名称为Drivel的驱动器列表框,一个名称为Dirl的目录列表框,一个名称为Filel的文件列表框,两个名称分别为Labell、Label2,标题分别为空白和“共有文件的 标签。编写程序,使得驱动器列表框与目录列表框、目录列表框与文件列表框同步变化,并且在标签Labell中显示当前文件夹中文件的数量。如图所示。I Forml,1!x|日 e:BRIDGE 二jINSTALL.HIM READMEDN.HIM REAHMED!.HIM REALMERP.HTM
18、 REABMESS.HTM READMEVB.HTM READMEVC.KTM READHEVE.HTM READMEVF.HTM READMEVI.HTM二1|hrrografn Files Microsoft Visual 3LjCommon Omsdn OVB98 OVIntDev98共有文件|12能够正确实现上述功能的程序是A)Private Sub Dirl_Change()B)Private Sub Dirl_Change()Filel.Path=Dirl.Path Filel.Path=Dirl.PathEnd Sub End SubPrivate Sub Drivel_Chan
19、ge()Private Sub Drivel_Change()Dirl.Path=Drivel.Drive Dirl.Path=Drivel.DriveLabell.Caption=Filel.ListCount Labell.Caption=Filel.ListEnd Sub End SubC)Private Sub Dirl_Change()D)Private Sub Dirl_Change()Filel.Path=Dirl.Path Filel.Path=Dirl.PathLabell.Caption=Filel.ListCount Labell.Caption=Filel.ListEn
20、d Sub End SubPrivate Sub Drivel_Change()Private Sub Drivel_Change()Dirl.Path=Drivel.Drive Dirl.Path=Drivel.DriveLabell.Caption=Filel.ListCount Labell.Caption=Filel.ListEnd Suh End Suh(28)一个工程中包含两个名称分别为Forml Form2的窗体,一个名称为mdlFunc的标准模块。假定在Forml、Form2和mdlFunc中分别建立了自定义过程,其定义格式为:Forml中定义的过程:Private Sub f
21、rmFunctionl()End SubForm2中定义的过程:Public Sub frmFunction2()End SubmdlFunc中定义的过程:Public Sub mdlFunction()End Sub在调用上述过程的程序中,如果不指明窗体或模块的名称,则以下叙述中正确的是A)上述三个过程都可以在工程中的任何窗体或模块中被调用B)frmFunction2和mdlFunction过程能够在工程中各个窗体或模块中被调用C)上述三个过程都只能在各自被定义的模块中调用D)只有mdlFunction过程能够被工程中各个窗体或模块调用(29)窗体上有两个名称分别为Textl、Text2的文
22、本框,一个名称为Commandl的命令按钮。运 行后的窗体外观如图所示。设有如卜的类型声明Type Personname As String*8major As String*20End Type当单击保存按钮时,将两个文本框中的内容写入一个随机文件Test29.dat中。设文本框中的数据已正确地赋值给Person类型的变量p。则能够正确地把数据写入文件的程序段是A)Open c:Test29.dat For Random As#1Put#1,1,pClose#1B)Open c:Test29.dat For Random As#1Get#1,1,pClose#1C)Open c:Test29
23、.dat For Random As#1 Len=Len(p)Put#1,1,pClose#1D)Open c:Test29.dat For Random As#1 Len=Len(p)Get#1,1,pClose#1(30)在窗体上画一个名称为CommonDialogl的通用对话框,一个名称为Commandl的命令按钮。要求单击命令按钮时,打开一个保存文件的通用对话框。该窗口的标题为Save”,缺省文件名为 SaveFile,在文件类型栏中显示*.txt。则能够满足上述要求的程序是A)Private Sub Commandl_Click()CommonDialogl.FileName=Sav
24、eFile”CommonDialogl.Filter=All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc”CommonDialogl.Filterindex=2CommonDialogl.DialogTitle=SaveCommonDialogl.Action=2End SubB)Private Sub Command1_C1ick()CommonDialogl.FileName=SaveFile”CommonDialogl.Filter=All Files|*.*|(*.txt)txt|(*.doc)|*.doc”CommonDialogl.Filterind
25、ex=1CommonDialogl.DialogTitleSaveCommonDialogl.Action=2End SubC)Private Sub Command1_C1ick()CommonDialogl.FileName=SaveCommonDialogl.Filter=All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc,/CommonDialogl.Filterindex=2CommonDialogl.DialogTitle=SaveFile”CommonDialogl.Action=2End SubD)Private Sub Command1_C1i
26、ck()CommonDialogl.FileName=SaveFile”CommonDialogl.Filter=All Files|*.*|(*.txt)txt|(*.doc)|*.doc”CommonDialogl.Filterindex=1CommonDialogl.DialogTitle=SaveCommonDialogl.Action=1End Sub二、填空题(每空2分,共30分)请将每空的正确答案写在答题卡【1】15序号的横线上,答在试卷上不得分。(1)Visual Basic中有一种控件组合了文本框和列表框的特性,这种控件是【1】。(2)Visual Basic提供的对数据文件
27、的三种访问方式为随机访问方式、2和二进制访问方 式。(3)执行下面的程序段后,变量S的值为【3】oS=5For i=2.6 To 4.9 Step 0.6S=S+1Next i(4)为了在运行时把d:pic文件夹下的图形文件a.jpg装入图片框Picture,所使用的语句 为。(5)计时器控件能有规律的以一定时间间隔触发【5】事件,并执行该事件过程中的程序代码。(6)以下程序的功能是:生成20个200到300之间的随机整数,输出其中能被5整除的数并求 出它们的和。请填空。Private Sub Command1_Click()For i=1 To 20 x=Int(6*200+100)If 7
28、=0 Then Print x S=S+8 End If Next iPrint Sum=;S End Sub(7)设有如下程序 Private Sub Form_Click()Dim a As Integer,b As Integer a=20:b=50 pl a,b p2 a,b p3 a,b Print a=;a,b=;b End SubSub pl(x As Integer,ByVai y As Integer)x=x+10 y=y+20End SubSub p2(ByVai x As Integer,y As Integer)x=x+10 y=y+20End SubSub p3(By
29、Vai x As Integer,ByVai y As Integer)x=x+10 y=y+20End Sub 该程序运行后,单击窗体,则在窗体上显示的内容是:a=9和b=10 o(8)在窗体上画一个名称为Command 1的命令按钮,编写如下事件过程Private Sub Commandl_Click()Dim a As String a=11For i=1 To 5Print Space(6-i);M id$(a,6-i,2*i-1)Next iEnd Sub程序运行后,单击命令按钮,要求窗体上显示的输出结果为 5456 34567 2345678 123456789 请填空。(9)在窗
30、体上画一个名称为Combol的组合框,画两个名称分别Labell和Label2及Caption属 性分别为城市名称和空白的标签。程序运行后,当在组合框中输入一个新项后按回车键(ASCH 码为13)时,如果输入的项在组合框的列表中不存在,则自动添加到组合框的列表中,并在Label2 中给出提示“已成功添加输入项”如图所示;如果存在,则在Label2中给出提示“输入项已在组合框中请在12、13和【14】处将程序补充完整。Private Sub Combo1_ 12(K eyAscii As Integer)If K eyAscii=13 ThenFor i=0 To Combol.ListCoun
31、t-1If Combol.Text=13 ThenLabel2.Caption=输入项已在组合框中“Exit SubEnd IfNext iLabel2.Caption=已成功添加输入项Combol.14 Combol.TextEnd IfEnd Sub(10)设有如下程序Private Sub search(a()As Variant,ByVai key As Variant,index%)Dim 1%For I=LBound(a)To U Bound(a)If key=a(I)Thenindex=IExit SubEnd IfNext I index=-1End SubPrivate Su
32、b FormLoad()ShowDim b()As VariantDim n As Integerb=Array(1,3,5,7,9,11,13,15)Call search(b,11,n)Print nEnd Sub程序运行后,输出结果是15 o一、选择题(1)D(2)A(3)D(4)B(5)B(6)A(7)C(8)C(9)A(10)D(11)D(12)B(13)B(14)D(15)D(16)A(17)B(18)C(19)D(20)A(21)D(22)C(23)B(24)B(25)C(26)C(27)C(28)D(29)C(30)A二、填空题(1)1组合框或组合(2)顺序访问方式 或 顺序访
33、问(3)9(4)或 PicturelPicturel.Picture=LoadPicture(d:pic a.jpg)LoadPicture(z,d:pic a.jpg)(5)5Timer(6)6Rnd或Rnd(n),其中n为任意整数7 x M od 5 或 Int(x/5)-x/5 或 x/5-Int(x/5)或 CInt(x/5)-x/5或 x/5-CInt(x/5)或 Round(x/5)-x/5 或 x/5-Round(x/5)或x-(x 5)*5 或(x 5)*5-x 或 Fix(x/5)-x/5 或 x/5-Fix(x/5)8 x(7)9 30 10 70(8)11 1234 56789(9)12 K eyPress 13 Combol.List(i)14 Additem(10)15 5