全国计算机等级考试二级笔试试卷
Visual Basic语言程序设计
(考试时间120分钟,满分100分)
一、选择题((1)—(20)每小题2分,(21)—(30)每小题2分,共70分)
下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。
(1) 以下不能在“工程资源管理器”窗口中列出的文件类型是
A) .bas B) .res C) .frm D) .ocx
(2) 以下关于窗体的描述中,错误的是
A) 执行Unload Form1语句后,窗体Form1消失,但仍在内存中
B) 窗体的Load事件在加载窗体时发生
C) 当窗体的Enabled属性为False时,通过鼠标和键盘对窗体的操作都被禁止
D) 窗体的Height、Width属性用于设置窗体的高和宽
(3) 下列可作为Visual Basic变量名的是
A)A#A B)4A C)?xy D) constA
(4) 设有如下的记录类型
Type Student
Number As String
Name As String
Age As Integer
End Type
则正确引用该记录类型变量的代码是
A) Student.name="张红" B) Dim s As Student
s.name="张红"
C) Dim s As Type Student D) Dim s As Type
s.name="张红" s.name="张红"
(5) 函数String(n, "str")的功能是
A) 把数值型数据转换为字符串
B) 返回由n个字符组成的字符串
C) 从字符串中取出n个字符
D) 从字符串中第n个字符的位置开始取子字符串
(6) 将数学表达式Cos2(a+b)+5e2写成Visual Basic的表达式,其正确的形式是
A) Cos(a+b)^2+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) 在窗体上画一个命令按钮,名称为Command1。单击命令按钮时,执行如下事件过程:
Private Sub Command1_Click()
a$="software and hardware"
b$=Right(a$,8)
c$=Mid(a$,1,8)
MsgBox a$,,b$,c$,1
End Sub
则在弹出的信息框的标题栏中显示的信息是
A) software and hardwar 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) Max B) LargeChange C) Value D) Max-Min
(10) 在窗体上画一个名称为List1的列表框,一个名称为Label1的标签。列表框中显示若干城市的名称。当单击列表框中的某个城市名时,在标签中显示选中城市的名称。下列能正确实现上述功能的程序是
A) Private Sub List1_Click() B) Private Sub List1_Chilk()
Label1.Caption=List1.ListIndex Label1.Name=List1.ListIndex
End Sub End Sub
C) Private Sub List1_click() D) Private Sub List1_Click()
Label1.Name=List1.Text Label1.Caption=List1.Text
End Sub End Sub
(11) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程
Private Sub Command1_Click()
x=0
n=InputBox("")
For i=1 To n
For j=1 Toi
x=x+1
Next j
Next i
Print x
End Sub
程序运行后,单击命令按钮,如果输入3,则在窗体上显示的内容是
A)3 B)4 C)5 D)6
(12) 以下关于菜单的叙述中,错误的是
A) 在程序运行过程中可以增加或减少菜单项
B) 如果把一个菜单项的Enabled属性设置为False,则可删除该菜单项
C)弹出式菜单在菜单编辑器中设计
D)利用控件数组可以实现菜单项的增加或减少
(13) 在窗体上画三个单选按钮,组成一个名为chkOption的控件数组。用于标识各个控件数组元素的参数是
A) Tag B) Index C) ListIndex D) Name
(14) 在窗体上画一个命令按钮,名称为Command1,然后编写如下事件过程
Option Base 0
Private Sub Command1_Click()
Dim city As Variant
City=Array("北京","上海","天津","重庆")
Print city(1)
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
在窗体上画一个命令按钮,然后编写如下事件过程:
Private Sub Command1_Click()
Dim Str1 As String,Str2 As String
Str1=InputBox("请输入一个字符串")
Str2=Fun(Str1)
Print Str2
End Sub
程序运行后,单击命令按钮,如果在输入对话框中输入字符串“abcdefg”,则单击“确定”按钮后在窗体上输出结果为
A)abcdefg B)ABCDEFG C)gfedcba D)GEFDCBA
(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函数可以调用可执行文件,也可以调用Visual Basic的内部函数
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!的程序是
A) Private Sub Command1_Click()
n=5:x=1
Do
x=x*i
i=i+1
Loop While i<n
Print x
End Sub
B) Private Sub Command1_Click()
n=5:x=1:i=1
Do
x=x*i
i=i+1
Loop While i<n
Print x
End Sub
C) Private Sub Command1_Click()
n=5:x=1:i=1
Do
x=x*i
i=i+1
Loop While i<=n
Print x
End Sub
D) Private Sub Command1_Click()
n=5:x=1:i=1
Do
x=x*i
i=i+1
Loop While i>n
Print x
End Sub
(23) 在窗体上画一个名称为Command1的命令按钮,再画两个名称分别为Label1、Label2的标签,然后编写如下程序代码:
Private X As Integer
Private Sub Command1_Click()
X=5:Y=3
Call Proc(X,Y)
Label1.Caption= X
Label2.caption=Y
End Sub
Private Sub proc(ByVal a As Integer,ByVal b As Integer)
X=a*a
Y=b+b
End Sub
程序运行后,单击命令按钮,则两个标签中显示的内容分别是
A)5和3 B)25和3 C)25和6 D)5和6
(24) 有窗体上画一个名称为Command1的命令按钮,一个名称为Label1的标签,然后编写如下事件过程:
Private Sub Command1_Click()
s=0
For i=1 To 15
x=2*i-1
If x Mod 3=0 Then s=s+1
Next i
Label1.Caption=s
End Sub
程序运行后,单击命令按钮,则标签中显示的内容是
A) 1 B) 5 C) 27 D) 45
(25) 在窗体上画一个名称为Command1的命令按钮和三个名称分别为Label1、Label2、Label3的标签,然后编写如下代码
Private x As Integer
Private Sub Command1_Click()
Static y As Integer
Dim z As Integer
n=10
z=n+z
y=y+z
x=x+z
Label1.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) 设在窗体上有一个名称为Command1的命令按钮,并有以下事件过程
Private Sub Command1_Click()
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 to 5\2
tmp=b(i)
b(i)=b(5-i-1)
b(5-i-1)=tmp
Next
D) For i=0 to 5\2
tmp=b(i)
b(i)=b(5-i-1)
b(5-i-1)=tmp
Next
(27) 在窗体上画一个名称为Drive1的驱动器列表框,一个名称为Dir1的目录列表框,一个名称为File1的文件列表框,两个名称分别为Label1、Label2,标题分别为空白和“共有文件”的标签。编写程序,使得驱动器列表框与目录列表框、目录列表框与文件列表框同步变化,并且在标签Label1中显示当前文件夹中文件的数量。如图所示
能够正确实现上述功能的程序是
A) Private Sub Dir1_Change()
File.Path=Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path=Drivel.Drive
Label1.Caption=File1.ListCount
End Sub
B) Private Sub Dir1_Change()
File.Path=Dir1.Path
End Sub
Private Sub Drive1_Change()
Dir1.Path=Drivel.Drive
Label1.Caption=File1.list
End Sub
C) Private Sub Dir1_Change()
File1.Path=Dir1.Path
Label1.Caption=File1.ListCount
End Sub
Private Sub Drive1_Change()
Dir1.Path=Drivel.Drive
Label1.Caption=File1.ListCount
End Sub
D) Private Sub Dir1_Change()
File.Path=Dir1.Path
Label1.Caption=File1.List
End Sub
Private Sub Drive1_Change()
Dir1.Path=Drivel.Drive
Label1.Caption=File1.List
End Sub
(28) 一个工程中包含两个名称分别为Form1、Form2的窗体,一个名称md1Func的标准模块。假定在Form1、Form2和mdlFunc中分别建立了自定义过程,其定义格式为:
Form1中定义的过程:
Private Sub frmFunction1()
……
End Sub
Form2中定义的过程
Public Sub frmFunction2()
……
End Sub
mdlFunc中定义的过程:
Public Sub md1Function()
……
End Sub
在调用上述过程的程序中,如果不指明窗体或模块的名称,则以下叙述中正确的是
A)上述三个过程都可以在工程中的任何窗体或模块中被调用
B)frmFunction2和mdlFunction过程能够在工程中各个窗体或模块中被调用
C)上述三个过程都只能在各自被定义的模块中调用
D)只有md1Function过程能够被工程中各个窗体或模块调用
(29) 窗体上有两个名称分别为Text1、Text2的文本框,一个名称为Command1的命令按钮。运行后的窗体外观如图所示。
设有如下的类型声明
Type Person
name As String*8
major As String*20
End Type
当单击“保存”按钮时,将两个文本框中的内容写入一个随机文件Test29.dat中。设文本框中的数据已正确地赋值给Person类型的变量P。则能够正确地把数据写入文件的程序段是
A) Open"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
Close#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=Len(p)
Get#1,1,p
Close#1
(30) 在窗体上画一个名称为CommonDialog1的通用对话框,一个名称为Command1的命令按钮。要求单击命令按钮时,打开一个保存文件的通用对话框。该窗口的标题为“Save”,缺省文件名为“Savefile”,在“文件类型”栏中显示*.txt。则能够满足上述要求的程序是
A) Private Sub Command1_Click()
CommonDialog1.FileName="SaveFile"
CommonDialog1.Filter="All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc"
CommonDialog1.FilterIndex=2
CommonDialog1.DialogTitle="Save"
CommonDialog1.Action=2
End Sub
B) Private Sub Command1_Click()
CommonDialog1.FileName="SaveFile"
CommonDialog1.Filter="All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc"
CommonDialog1.FilterIndex=1
CommonDialog1.DialogTitle="Save"
CommonDialog1.Action=2
End Sub
C) Private Sub Command1_Click()
CommonDialog1.FileName="Save"
CommonDialog1.Filter="All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc"
CommonDialog1.FilterIndex=2
CommonDialog1.DialogTitle="SaveFile"
CommonDialog1.Action=2
End Sub
D) Private Sub Command1_Click()
CommonDialog1.FileName="SaveFile"
CommonDialog1.Filter="All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc"
CommonDialog1.FilterIndex=1
CommonDialog1.DialogTitle="Save"
CommonDialog1.Action=1
End Sub
二、填空题(每空2分,共30分)
请将每空的正确答案写在答题卡上【1】—【15】序号的横线上,答在试卷上不得分。
(1) Visual Basic中有一种控件组合了文本框和列表框的特性,这种控件是【1】 。
(2) Visual Basic提供的对数据文件的三种访问方式为随机访问方式、【2】和二进制该问方式。
(3) 执行下面的程序段后,变量S的值为【3】。
S=5
For i=2.6 To 4.9 Step 0.6
S=S+1
Next i
(4) 为了在运行时把d:\pic文件夹下的图形文件a.jpg装入图片框Picture1,所使用的语句为【4】 。
(5) 计时器控件能有规律的以一定时间间隔触发【5】 事件,并执行该事件过程中的程序代码。
(6) 以下程序的功能是:生成20个200到300之间的随机整数,输出其中能被5整除的数并求出它们的和。请填空
Private Sub Command1_Click()
For i=1 To 20
x=Int( 【6】 *200+100)
If 【7】 =0 Then
Print x
S=S+ 【8】
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
p1 a,b
p2 a,b
p3 a,b
print "a=";a, "b=";b
End Sub
Sub p1(x As Inteer,ByVal y As Integer)
x=x+10
y=y+20
End Sub
Sub p2(ByVal x As Integer,y As Integer)
x=x+10
y=y+20
End Sub
Sub p3(ByVal x As Integer,y As Integer)
x=x+10
y=y+20
End Sub
该程序运行后,单击窗体,则在窗体上显示的内容是:a= 【9】 和b= 【10】 。
(8) 在窗体上画一个名称为Command1的命令按钮,编写如下事件过程
Private Sub Command1_Click()
Dim a As String
a= 【11】
For i=1 to 5
Print Space(6-i);Mid$(a,6-i,2*i-1)
Next i
End Sub
程序运行后,单击命令按钮,要求窗体上显示的输出结果为
5
456
34567
2345678
123456789
请填空
(9) 在窗体上画一个名称为Combo1的组合框,画两个名称分别Label1和Label2及Caption属性分别为“城市名称”和空白的标签。程序运行后,当在组合框中输入一个新项后按回车键(ASCII码为13)时,如果输入的项在组合框的列表中不存在,则自动添加到组合框的列表中,并在Label2中给出提示“已成功添加输入项”如图所示;如果存在,则在Lable2中给出提示“输入项已在组合框中”。请在【12】、【13】和【14】处将程序补充完整。
Private Sub Combo1_ 【12】 (KeyAscii As Integer)
If KeyAscii=13 Then
For i=0 To Combo1.ListCount-1
If Combo1.Text= 【13】 Then
Label2.Caption="输入项已在组合框中"
Exit Sub
End if
Next i
Label2.Caption="已成功添加输入项"
Combo1. 【14】 Combo1.Text
End if
End Sub
(10) 设有如下程序
Private Sub search(a() As Variant,ByVal Key As Variant,Index%)
Dim I%
For I=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
Dim b() As Variant
Dim n As Integer
b=Array(1,3,5,7,9,11,13,15)
Call search(b,11,n)
Print n
End Sub
程序运行后,输出结果是 【15】 。
posted on 2007-09-24 14:29
木子李 阅读(143)
评论(0) 编辑 收藏 引用 网摘 所属分类:
全国计算机等级考试二级(VB和ACCESS)