全国计算机等级考试二级VB语言笔试试题及答案.docx
《全国计算机等级考试二级VB语言笔试试题及答案.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级VB语言笔试试题及答案.docx(19页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级VB语言笔试试题及答案
2004年9月全国计算机等级考试二级笔试试卷
公共基础知识和VisualBasic语言程序设计
(考试时间90分钟,满分100分)
一、选择题(
(1)~(20)每小题2分,(21)~(30)每小题3分,共70分)
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1)设窗体上有一个文本框,名称为Text1,程序运行后,要求该文本框不能接受键盘输入,但能输出信息,以下属性设置正确的是:
A)text1.maxlength=0B)text1.enabled=false
C)text1.visible=flaseD)text1.width=0
(2)以下能在窗体Form1的标题栏中显示“VisualBasic窗体”的语句是
A)Form1.Name="VisualBasic窗体"
B)Form1.Title="VisualBasic窗体"
C)Form1.Caption="VisualBasic窗体"
D)Form1.Text="VisualBasic窗体”
(3)在窗体上画一个名称为Text1的文本框,然后画一个名称为HScroll1的滚动条,其Min和Max属性分别为0和100。
程序运行后,如果移动滚动框,则在文本框中显示滚动条的当前值,如图所示。
以下能实现上述操作的程序段是
A)PrivateSubHScroll_Change()
Text1.Text=HScroll1.Value
EndSub
B)PrivateSubHScroll_Click()
Text1.Text=HScroll1.Value
EndSub
C)PrivateSubHScroll_Change()
Text1.Text=HScroll.Caption
EndSub
D)PrivateSubHScroll_Click()
Text1.Text=HScroll.Caption
EndSub
(4)设菜单中有一个菜单项为“Open”。
若要为该菜单命令设计访问键,即按下Alt及字母O时,能够执行“Open”命令,则在菜单编辑器中设置“Open”命令的方式是
A)把Caption属性设置为&Open
B)把Caption属性设置为O&pen
C)把Name属性设置为&Open
D)把Name属性设置为O&pen
(5)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
x=InputBox("Input")
SelectCasex
Case1,3
Print"分支1"
CaseIs>4
Print"分支2"
CaseElse
Print"Else分支"
EndSelect
EndSub
程序运行后,如果在输入对话框中输入2,则窗体上显示的是
A)分支1B)分支2C)Else分支D)程序出错
(6)以下关于MsgBox的叙述中,错误的是
A)MsgBox函数返回一个整数
B)通过MsgBox函数可以设置信息框中图标和按钮的类型
C)MsgBox语句没有返回值
D)MsgBox函数的第一个参数是一个整数,该参数只能确定对话框中显示的按钮数量
(7)在窗体上画一个名称为Timer1的计时器控件,要求每隔0.5秒发生一次计时器事件,则以下正确的属性设置语句是
A)Timer1.Interval=0.5B)Timer1.Interval=5
C)Timer1.Interval=50D)Timer1.Interval=500
(8)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
StaticxAsInteger
Cls
Fori=1To2
y=y+x
x=x+2
Next
Printx,y
EndSub
程序运行后,连续三次单击Command1按钮后,窗体上显示的是
A)42B)1218C)1230D)46
(9)以下关于多重窗体程序的叙述中,错误的是
A)用Hide方法不但可以隐藏窗体,而且能清除内存中的窗体
B)在多重窗体程序中,各窗体的菜单是彼此独立的
C)在多重窗体程序中,可以根据需要指定启动窗体
D)对于多重窗体程序中,需要单独保存每个窗体
(10)以下关于文件的叙述中,错误的是
A)顺序文件中的记录一个接一个地顺序存放
B)随机文件中记录的长度是随机的
C)执行打开文件的命令后,自动生成一个文件指针
D)LOF函数返回给文件分配的字节数
(11)以下叙述中错误的是
A)事件过程是响应特定事件的一段程序
B)不同的对象可以具有相同名称的方法
C)对象的方法是执行指定操作的过程
D)对象事件的名称可以由编程者指定
(12)以下合法的VisualBasic标识符是
A)ForLoopB)ConstC)9abcD)a#x
(13)当一个复选框被选中时,它的Value属性的值是
A)3B)2C)1D)0
(14)表达式5Mod3+3\5*2的值是
A)0B)2C)4D)6
(15)设x=4,y=8,z=7,以下表达式的值是
xz)OrzA)1B)-1C)TrueD)False
(16)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
a$="VisualBasic"
PrintString(3,a$)
EndSub
程序运行后,单击命令按钮,在窗体上显示的内容是
A)VVVB)VisC)sicD)11
(17)设有如下程序段:
x=2
Fori=1To10Step2
x=x+i
Next
运行以上程序后,x的值是
A)26B)27C)38D)57
(18)以下叙述中错误的是
A)在KeyPress事件过程中不能识别键盘的按下与释放
B)在KeyPress事件过程中不能识别回车键
C)在KeyDown和KeyUp事件过程中,将键盘输入的"A"和"a"视作相同的字母
D)在KeyDown和KeyUp事件过程中,从大键盘上输入的"1"和从右侧小键盘上输入的"1"被视作不同的字符
(19)执行如下两条语句,窗体上显示的是
a=9.8596
PrintFormat(a,"$00,00.00")
A)0,009.86B)$9.86C)9.86D)$0,009.86
(20)在窗体上画一个名称为CommandDialog1的通用对话框,一个名称为Command1的命令按钮。
然后编写如下事件过程:
PrivateSubCommand1_Click()
CommonDialog1.FileName=""
CommonDialog1.Filter="Allfile|*.*|(*.Doc)|*.Doc|(*.Txt)|*.Txt"
CommonDialog1.FilterIndex=2
CommonDialog1.DialogTitle="VBTest"
CommonDialog1.Action=1
EndSub
对于这个程序,以下叙述中错误的是
A)该对话框被设置为“打开”对话框
B)在该对话框中指定的默认文件名为空
C)该对话框的标题为VBTest
D)在该对话框中指定的默认文件类型为文本文件(*.Txt)
(21)设一个工程由两个窗体组成,其名称分别为Form1和Form2,在Form1上有一个名称为Command1的命令按钮。
窗体Form1的程序代码如下:
PrivateSubCommand1_Click()
DimaAsInteger
a=10
Callg(Form2,a)
EndSub
PrivateSubg(fAsForm,xAsInteger)
y=IIf(x>10,100,-100)
f.Show
f.Caption=y
EndSub
运行以上程序,正确的结果是
A)Form1的Caption属性值为100B)Form2的Caption属性值为-100
C)Form1的Caption属性值为-100D)Form2的Caption属性值为100
(22)在窗体上画一个名称为Command1的命令按钮,并编写如下程序:
PrivateSubCommand1_Click()
DimxAsInteger
StaticyAsInteger
x=10
y=5
Callf1(x,y)
Printx,y
EndSub
PrivateSubf1(ByRefx1AsInteger,y1AsInteger)
x1=x1+2
y1=y1+2
EndSub
程序运行后,单击命令按钮,在窗体上显示的内容是
A)105B)125C)107D)127
(23)设有如下程序
OptionBase1
PrivateSubCommand1_Click()
Dima(10)AsInteger
DimnAsInteger
n=InputBox("输入数据")
Ifn<10Then
CallGetArray(a,n)
EndIf
EndSub
PrivateSubGetArray(b()AsInteger,nAsInteger)
Dimc(10)AsInteger
j=0
Fori=1Ton
b(i)=CInt(Rnd()*100)
Ifb(i)/2=b(i)\2Then
j=j+1
c(j)=b(i)
EndIf
Next
Printj
EndSub
以下叙述中错误的是
A)数组b中的偶数被保存在数组c中
B)程序运行结束后,在窗体上显示的是c数组中元素的个数
C)GetArray过程的参数n是按值传送的
D)如果输入的数据大于10,则窗体上不显示任何信息
(24)在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:
OptionBase1
PrivateSubCommand1_Click()
Dima
a=Array(1,2,3,4,5)
Fori=1ToUBound(a)
a(i)=a(i)+i-1
Next
Printa(3)
EndSub
程序运行后,单击命令按钮,则在窗体上显示的内容是
A)4B)5C)6D)7
(25)阅读程序
OptionBase1
PrivateSubForm_Click()
Dimarr,Sum
Sum=0
arr=Array(1,3,5,7,9,11,13,15,17,19)
Fori=1To10
Ifarr(i)/3=arr(i)\3Then
Sum=Sum+arr(i)
EndIf
Nexti
PrintSum
EndSub
程序运行后,单击窗体,输出结果为
A)13B)14C)27D)15
(26)在窗体上画一个名称为File1的文件列表框,并编写如下程序:
PrivateSubFile1_DblClick()
x=Shell(File1.FileName,1)
EndSub
以下关于该程序的叙述中,错误的是
A)x没有实际作用,因此可以将该语句写为:
CallShell(File1.FileName,1)
B)双击文件列表框中的文件,将触发该事件过程
C)要执行的文件的名字通过File1.FileName指定
D)File1中显示的是当前驱动器、当前目录下的文件
(27)在窗体上画一个名称为Label1、标题为“VisualBasic考试”的标签,两个名称分别为Command1和Command2、标题分别为“开始”和“停止”的命令按钮,然后画一个名称为Timer1的计时器控件,并把其Interval属性设置为500,如图所示。
编写如下程序:
PrivateSubForm_Load()
Timer1.Enabled=False
EndSub
PrivateSubCommand1_Click()
Timer1.Enabled=True
EndSub
PrivateSubTimer1_Timer()
IfLabel1.LeftLabel1.Left=Label1.Left+20
Else
Label1.Left=0
EndIf
EndSub
程序运行后,单击“开始”按钮,标签在窗体中移动。
对于这个程序,以下叙述中错误的是
A)标签的移动方向为自右向左
B)单击“停止”按钮后再单击“开始”按钮,标签从停止的位置继续移动
C)当标签全部移出窗体后,将从窗体的另一端出现并重新移动
D)标签按指定的时间时隔移动
(28)执行以下程序段
a$="abbacddcba"
Fori=6To2Step-2
X=Mid(a,i,i)
Y=Left(a,i)
z=Right(a,i)
z=UCase(X&Y&z)
Nexti
Printz
输出结果为
A)ABAB)BBABBAC)ABBABAD)AABAAB
(29)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:
OptionBase1
PrivateSubCommand1_Click()
DimaAsVariant
a=Array(1,2,3,4,5)
Sum=0
Fori=1To5
Sum=sum+a(i)
Nexti
x=Sum/5
Fori=1To5
Ifa(i)>xThenPrinta(i);
Nexti
EndSub
程序运行后,单击命令按钮,在窗体上显示的内容是
A)12B)123C)345D)45
(30)假定一个工程由一个窗体文件Form1和两个标准模块文件Model1及Model2组成。
Model1代码如下:
PublicxAsInteger
PublicyAsInteger
SubS1()
x=1
S2
EndSub
SubS2()
y=10
Form1.Show
EndShow
Model2的代码如下:
SubMain()
S1
EndSub
其中SubMain被设置为启动过程。
程序运行后,各模块的执行顺序是
A)Form1→Model1→Model2B)Model1→Model2→Form1
C)Model2→Model1→Form1D)Model2→Form1→Model1
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答在试卷上不得分。
(1)设有如下程序段:
a$="BeijingShanghai"
b$=Mid(a$,InStr(a$,"g")+1)
执行上面的程序段后,变量b$的值为【1】。
(2)以下程序段的输出结果是【2】。
num=0
Whilenum<=2
num=num+1
Wend
Printnum
(3)窗体上有一个名称为List1的列表框,一个名称为Text1的文本框,一个名称为Label1、Caption属性为“Sum”的标签,一个名称为Command1、标题为“计算”的命令按钮。
程序运行后,将把1~100之间能够被7整除的数添加到列表框。
如果单击“计算”按钮,则对List1中的数进行累加求和,并在文本框中显示计算结果,如图所示。
以下是实现上述功能的程序,请填空。
PrivateSubForm_Load()
Fori=1To100
IfiMod7=0Then
【3】
EndIf
Next
EndSub
PrivateSubCommand1_Click()
Sum=0
Fori=0To【4】
Sum=Sum+【5】
Next
Text1.Text=Sum
EndSub
(4)本程序的功能是利用随机数函数模拟投币,方法是:
每次随机产生一个0或1的整数,相当于一次投币,1代表正面,0代表反面。
在窗体上有三个文本框,名称分别是Text1、Text2、Text3,分别用于显示用户输入投币总次数、出现正面的次数和出现反面的次数,如图所示。
程序运行后,在文本框Text1中输入总次数,然后单击“开始”按钮,按照输入的次数模拟投币,分别统计出现正面、反面的次数,并显示结果。
以下是实现上述功能的程序,请填空。
PrivateSubCommand1_Click()
Randomize
n=CInt(Text1.Text)
n1=0
n2=0
Fori=1To【6】
r=Int(Rnd*2)
Ifr=【7】_Then
n1=n1+1
Else
n2=n2+1
EndIf
Next
Text2.Text=n1
Text3.Text=n2
EndSub
(5)阅读程序:
OptionBase1
PrivateSubForm_Click()
Dima(3)AsInteger
Print"输入的数据是:
";
Fori=1To3
a(i)=InputBox("输入数据")
Printa(i);
Next
Print
Ifa
(1)(2)Then
t=a
(1)
a
(1)=a
(2)
a
(2)=【8】
EndIf
Ifa
(2)>a(3)Then
m=a
(2)
ElseIfa
(1)>a(3)Then
m=【9】
Else
m=【10】
EndIf
Print"中间数是:
";m
EndSub
程序运行后,单击窗体,在输入对话框中分别输入三个整数,程序将输出三个数中的中间数,如图所示。
请填空。
(6)在窗体上画一个名称为“Command1”,标题为“计算”的命令按钮,再画7个标签,其中5个标签组成名称为Label1的控件数组;名称为Label2的标签用于显示计算结果,其Caption属性的初始值为空;标签Label3的标题为“计算结果”。
运行程序时会自动生成5个随机数,分别显示在标签控件数组的各个标签中,如图所示。
单击“计算”按钮,则将标签数组各元素的值累加,然后计算结果显示在Label2。
请填空。
PrivateSubCommand1_Click()
Sum=0
Fori=0To4
Sum=Sum+【11】
Next
【12】=Sum
EndSub
(7)在窗体上画两个名称分别为Command1和Command2、标题分别为“初始化”和“求和”的命令按钮。
程序运行后,如果单击“初始化”命令按钮,则对数组a的各元素赋值;如果单击“求和”命令按钮,则求出数组a的各元素之和,并在文本框中显示出来,如图所示。
请填空。
OptionBase1
Dima(3,2)AsInteger
PrivateSubCommand1_Click()
Fori=1To3
Forj=1To2
【13】=i+j
Nextj
EndSub
PrivateSubCommand2_Click()
Forj=1To3
Fori=1To2
s=s+【14】
Nexti
Nextj
Text1.Text=【15】
EndSub
参考答案:
一、选择题(
(1)—(20)每小题2分,(21)—(30)每小题2分,共70分)
(1)-(10) BCAACDDBAB
(11)-(20) DACBDABBDD
(21)-(30) BDCBCAABDC
二、填空题(每空2分,共30分)
1、
(1)"Shanghai"
2、
(2)3
3、(3)list1.additemi (4)list1.listcount-1(5)list1.list(i)
4、(6)n (7)1
5、(8)t (9)a(3)(10)a
(1)
6、(11)label1(i).caption(12)label2.caption
7、(13)a(i,j) (14)a(j,i) (15)s