一、选择题((1)一(20) 每小题2分,(21)一(30)每小题3 分,共30题,70分)
下列各题A)、B)、C)、 D)四个选项中,只有一个选项是 正确的,请将正确选项涂
在答题卡的相应位置上 ,答在试卷上不得分。
(1)以下不能在“工程资源管理器” 窗口中列出的文件类型是
A).bas B).res C).fnn D).ocx
(2)以下关于窗体的描 述中,错误的是
A)执行UnloadFoMl语句后,窗体Fonn l消失,但仍在内存中
B)窗体的Ioad事件在加 载窗体时发生
C)当窗体的Enabled属 性为False时,通过鼠标和键盘 对窗体的操作都被禁止
D)窗体的Height、widt h属性用于设置窗体的高和宽
(3)下列可作为V2sualBasic变量名的 是
A)A#A B)4A C)?xY D)cons tA
(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 St udent D) Dim s As Type
S.name=”张红” s.Dame=”张 红”
(5)函数String(n,“s
tr”)的功能是
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 har dware"
b$=Right(a$,8)
c$=Mid(a$,1,8)
Msgbox a$,,b$,c$,1
End Sub
则在弹出的信息框的标 题栏中显示的信息是
A)softWare and hardware B)sof tware C)hardwafe D)1
(8)执行如下语句:
a=inutBox(”Today” ,”TomorroW,”Yesterday”, ,,"Day before yesterday",5) 将显示一个输入对话框,在对话框的 输入区中显示的信息是
A)Today B)Tomorro w C)Yesterday D)Day be fore yesterday
(9)表示滚动条控件取值范围最大值 的属性是
A)Max B)LargeChange C)Valu e 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 Str ing
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 Stri ng
Strl=inputbox(”请输入一个字符 串”)
Str2=Fun(Strl)
Print Str2
End Sub
程序运行后,单击命令确 按钮,如果在输入对话框中输入 字符串“abcdefg”,则单击“定”按钮后在窗体上的输出结果为
A)abcdefg B)ABCDE FG C)gfedcba D)GFEDCBA
(16)设有语句
open "c:\Test.Dat" For OutPut As#1
则以下错误的叙述是
A)该语句打开C盘根目 录下一个己存在的文件Test.Da t
B)该语句在C盘根目录
下建立一个名为Test.Dat的文 件
C)该语句建立的文件的文件号为1
D)执行该语句后,就可以通过Print# 语句向文件Test.Dat中写入信息
(17)以下叙述中错误的 是
A)用Shell函数可以调 用能够在Windows下运行的应用 程序
B)用Shell函数可以调 用可执行文件,也可以调用Visu alBasic的内部函数
C)调用Shell函数的格 式应为:<变量名>=Shell(…… )
D)用Shell函数不能执行DoS命令
(18)以下关于过程及过 程参数的描述中,错误的是
A)过程的参数可以是控 件名称
B)用数组作为过程的参数时,使用的 是“传地址”方式
c)只有函数过程能够将 过程中处理的信息传回到调用的 程序中
D)窗体可以作为过程的 参数
(19)在窗体上画一个名 称为TxtA的文本框,然后编写如 下的事件过程:
Private Sub Txta_KeyPress(keyasc ii as integer)
End Sub
若焦点位于文本框中,则能够触发Ke yPress事件的操作是
A)单击鼠标 B)双击文本框
C)鼠标滑过文本框 D)按下键盘上 的某个键
(20)目录列表框的Path属性的作用是
A)显示当前驱动器或指 定驱动器上的路径
B)显示当前驱动器或指定驱动器上的 某目录下的文件名
c)显示根目录下的文件名
D)只显示当前路径下的文件
(21)假定有如下事件过程:
PriVate Sub Form_MouseDown(buttoY As n As Integer,Shift As Integer, x As Single,
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 Comma ndl_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 Comman dl_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 Comman dl_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 Inte ger,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
一个名称为Commandl的命令 30 30 C)30 30 10
按钮,并有以下事件过程: D)10 30 30(26)设在窗体上有
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的文 件列表框,两个名称分别为Labe ll、Label2,标题分别为空白 和“共有文件”的标签。编写程序, 使得驱动器列表框与目录列表框、目录列表框 与文件列表框同步变化 ,并且在标签Labell中显示当前 文件夹中文件的数量。如图
所示。
能够正确实现上述功能 的程序是
A) Private Sub Dirl_Change() B)Private Sub Dir1_Change()
Filel.Path=Dir1.path F ilel.path=dir1.Path
End Sub End Sub
Private Sub Drivel_C hange() Private Sub Drive 1_Change()
Dirl.Path=Drivel. Drive Dirl.Path=Driv el.Drive
Labell.Caption=Fil el.listCount Labell.Capt lon=file1.list
End Sub End Sub
C)Private Sub Dirl_C hange() D) Private Sub Dirl_Change()
Filel.Path=Dirl.Path filel.Path=Dir1.Path
Labell.Caption=Fil el.ListCount Labell.Captio n=Filel.List
End Sub End Sub
Private Sub Drivel_Change() P rivate Sub Drivel_Change()
Dirl.Path=Drivel. Drlve Dir1.Path=Driv el.DrlVe
Labell.Caption=Filel.ListCoun t Labell.Caption=Filel.list
End Sub End Sub
(28)一个工程中包含两个名称分别为 Forml、Form2的窗体,一个名称为mdlFunc的标准模块。假定在Forml、Form2和mdlFun c中分别建立了自定义过程,其定义格式为:
Forml中定义的过程:
PriVate Sub frmfunctionl()
End Sub
Form2中定义的过程:
Public Sub frmffunct ion2()
End Sub
mdlFunc中定义的过程:
PubliC Sub mdlFuncti on()
End Sub
在调用上述过程的程序中,如果不指 明窗体或模块的名称,则以下叙述中正确的是
A)上述三个过程都可以 在工程中的任何窗体或模块中被 调用
B)frmfunction2和mdlf unction过程能够在工程中各个 窗体或模块中被调用
C)上述三个过程都只能在各自被定义 的模块中调用
D)只有mdlFunction过为Textl、Text2的文本框, 程能够被工程中各个窗体或模块一个名称为Commandl的命令 调用(29)窗体上有两个名称分别按钮。运行后的窗体外 观如图所示。
设有如下的类型声明
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 Rand om As #1
Get#1,1,p
C10se #1
C)open "c\Test29.d at" For Random As #1 Len=Le n(p)
Put #1,1,p
Close #1
D)Open "c:\Test29.dat " For R andom As #1=Len(p)
Get #1,1,p
CloSe #1
(30)在窗体上画一个名 称为CommonDialogl的通用对话 框,一个名称为Commandl的命令按钮。要求单击命 令按钮时,打开一个保存文件的 通用对话框。该窗口的标题 为"Save",缺省文件名为“SaveFile ”,在“文件类型”栏中显示*.txt。则能够满足 上述要求的程序是
A)Private Sub Command_C1ick()
Commondialogl.FileName=“Savefi le”
Commondialogl.filter="All Files |*.*|(*.txt)|*.txt|(*.doc).|*.doc"
CommonDialogl.Filterindex=2
CommonDialogl.Dial0 g.title="Save"
CommonDialogl.Action=2
End Sub
B)Private Sub Comman dl—Click()
CommonDialogl.FileN ame="SaveFile"
CommonDiaLogl.Filte r="A11 Files|*.*|(*.txt)|*. txt|*.doc|*.doc"
C0mmonDialogl.Filte rIndex=1
CommonDialogl.DialogTitle="Sav e"
CommonDialogl.Actio n=2
End Sub
C)Private Sub Cmmand l_C1ick()
COmmonDialogl.FileN ame="Save"
CommonDialogl.FiLter="A11Files |*.*|(*.txt)|*.txt|(*.doc)|*.doc"
CommonDialogl.Filterindex=2
C0mmonDialogl.DialogTitle="Sav eFile"
CommonDialogl.Action=2
End Sub
D)Private Sub Commandl_C1ick()
CommonDialogl.FileN ame="SaveFile"
CommonDialogl.Filte r="All Files|*.*|(*.txt)|*. txt|(*.doc)|*.doc"
CommonDialogl.Filte rIndex=1
CommonDialogl.DialogTitle=“Sav e”
CommonDialogl.Actio n=1
End Sub
二、填空题(每空2分, 共30分)
请将每空的正确答案写 在答题卡[1]一[15序号的横线上 ,答在试卷上不得分。
(1)visual Basic中有 一种控件组合了文本框和列表框 的特性,这种控件是________
(2)Visual Basic提供的对数据文件问 的三种访问方式为随机访问方式_____和二进制访方式。
(3)执行下面的程序段 后,变量S的值为_______。
S=5
For i =2.6 To 4.9 S tep 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_Cli ck()
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)在窗体上及Caption 画一个名称为Combo1的组合框, 画两个名称分别Label1和Label2属性分别为“城市名称 ”和空白的标签。程序运行后, 当在组合框中输入一个新项后按回车键(ASCII码为 13)时,如果输入的项在组合框 的列表中不存在,则自动添加到组合框的列表中 ,并在Label2中给出提示“已成 功添加输入项”如图所示;如果存在,则在Label2中给出提示“ 输入项已在组合框中”。请在[12>、[13]和[14>处将程序补充完整 。
Private Sub Combol_________<12> (KeyAscii As integer)
1f KeyAscii=13 Then
Fori=0 To Combo1.l istCount—1
1f Combo1.Text=______ [13] I hen
Label2.Caption=”输入项己在组 合框中”
ExIt Sub
End lf
Next i
Label2.Caption=“ 已成功添加输入项”
Combo1.______ [14] CombO1.Te xt
End lf
End Sub
(10)设有如下程序
Private sub search(a ()As variant,ByVal key As V ariant,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月全国计算机等级考试二级V isual Basic笔试答案
一、选择题
1-5:DADBB 6-10:ACCAD 11-15:DB BDD
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)和Ad
dItem
(10) 5