2003年4月全国计算机等级考试二级visual Basic笔试试卷(含答案)

4/14/2005来源:全国等级考试人气:14683

 一、选择题((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
 程序运行后,输出结果是________。


2003年4月全国计算机等级考试二级Visual Basic笔试答案

一、选择题
1-5:DADBB 6-10:ACCAD 11-15:DBBDD
16-20:ABCDA 21-25:DCBBC 26-30:CCDCA
二、填空题
(1) 组合框
(2) 顺序访问方式
(3) 9
(4) Picture1.picture=LoadPicture("d:\pic\a.jpg")
(5) Timer
(6) Rnd和x Mod 5和x
(7) 30和70
(8) "123456789"
(9) KeyPress和Combo1.List(i)和AddItem
(10) 5


