二级VISUAL BASIC真题.docx
《二级VISUAL BASIC真题.docx》由会员分享,可在线阅读,更多相关《二级VISUAL BASIC真题.docx(22页珍藏版)》请在冰豆网上搜索。
二级VISUALBASIC真题
2005年9月全国计算机等级考试二级笔试试卷
VisualBasic语言程序设计
一、选择题
下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。
(11)假定一个VisualBasic应用程序由一个窗体模块和一个标准模块构成。
为了保存该应用程序,以下正确的操作是______。
A)只保存窗体模块文件B)分别保存窗体模块、标准模块和工程文件
C)只保存窗体模块和标准模块文件D)只保存工程文件
(12)为了清除窗体上的一个控件,下列正确的操作是______。
A)按回车键
B)按Esc键
c)选择(单击)要清除的控件,然后按Del键
D)选择(单击)要清除的控件,然后按回车键
(13)以下叙述中错误的是______。
A)打开一个工程文件时,系统自动装入与该工程有关的窗体、标准模块等文件
B)当程序运行时,双击一个窗体,则触发该窗体的DblClick事件
C)VisualBasic应用程序只能以解释方式执行
D)事件可以由用户引发,也可以由系统引发
(14)设a=2,b=3,c=4,d=5,下列表达式的值是______。
Nota<=cOr4*c=b^2Andb<>a+c
A)-1B)1C)TrueD)False
(15)设a=5,b=10,则执行c=Iht((b-A)*Rnd+A)+1后,c值的范围为______。
A)5~10B)6~9C)6~10D)5~9
(16)在窗体上画一个命令按钮,名称为Command1,然后编写如下事件过程:
PrivateSubCommand1_Click()
a$="softwareandhardware"
b$=Right(a$,8)
c$=Mid(a$,1,8)
MsgBoxa$,,b$,c%,1
EndSub
运行程序,单击命令按钮,则在弹出的信息框的标题栏中显示的是______。
A)softwareandhardwareB)software
C)hardwareD)1
(17)在窗体上画一个命令按钮和一个文本框,其名称分别为Command1和Text1,把文本框的Text属性设置为空白,然后编写如下事件过程:
PrivateSubCommand1_Click()
a=InputBox("Enteraninteger")
b=InputBox("Enteraninteger")
Text1.Text=b+a
EndSub
程序运行后,单击命令按钮,如果在输入对话框中分别输入8和10,则文本框中显示的内容是______。
A)108B)18C)810D)出错
(18)在窗体上画两个文本框,其名称分别为Text1和Text2,然后编写如下程序:
PrivateSubForm_Load()
Show
Text1.Text=""
Text2.Text=""
Text1.SetFocus
EndSub
PrivateSubText1_Change()
Text2.Text=Mid(Text1.Text,8)
EndSub
程序运行后,如果在文本框Text1中输入BeijingChina,则在文本框Text2显示的内容是______。
A)BeijingChinaB)ChimaC)BeijingD)BeijingC
(19)在窗体上画一个列表框和一个命令按钮,其名称分别为List1和Command1,然后编写如下事件过程
PrivateSubForm_Load()
List1.Addltem"Iteml"
List1.Addltem"Item2"
List1.Addltem"Item3"
EndSub
PrivateSubCommand1_click()
List1.List(List1.ListCount)="AAAA"
EndSub
程序运行后,单击命令按钮,其结果为______。
A)把字符串“AAAA”添加到列表框中,但位置不能确定
B)把字符串“AAAA人”添加到列表框的最后(即“Item3”的后面)
C)把列表框中原有的最后一项改为“AAAA”
D)把字符串“AAAA”插入到列表框的最前面(即“Item1”的前面)
(20)假定有如下事件过程:
PrivateSubForm_Cilck()
DimxAsInteger,nAsInteger
x=1
n=0
DoWhilex<28
X=X*3
n=n+1
Loop
Printx,n
EndSub
程序运行后,单击窗体,输出结果为______。
A)814B)563C)281D)2435
(21)有如下程序:
PtivateSubForm_Click()
DimCheck,Counter
Cbeck=True
Counter=0
Do
DoWhileCounter<20
Counter=Counter+1
IfCounter=10Then
Check=False
ExitDo
EndIf
Loop
LoopUntilCheck=False
PrintCounter,Check
EndSub
程序运行后,单击窗体,输出结果为______。
A)150B)20-1C)10TrueD)10False
(22)有如下程序:
PrivateSubForm_CHck()
DimiAsInteger,sumAsInteger
sum=0
Fori=2TO10
IfMod2<>AndiMod3=0Then
sum=sum+i
EndIf
Nexti
Printsum
EndSub
程序运行后,单击窗体,输出结果为______。
A)12B)30C)24D)18
(23)在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写.如下事件过程:
PrivateSubCommand1_Click()
Dimarray1(10,10)AsInteger
DimiAsInteger,jAsInteger
Fori=1To3
Forj=2To4
array1(i,j)=i+j
Nextj
Nexti
Text1.Text=array1(2,3)+arrayl(3,4)
EndSub
程序运行后,单击命令按钮,在文本框中显示的值是______。
A)12B)13C)14D)15(24)在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:
PrivateSubCommand1_Click()
Dima1(4,4)a2(4,4)
DimiAsInteger,jAsInteger
Fori=1To4
Forj=1To4
a1(i,j)=i+j
a2(i,j)=a1(i,j)+i+j
Nextj
Nexti
Printa1(3,3);a2(3,3)
EndSub
程序运行后,单击命令按钮,在窗体上输出的是______。
A)66B)105C)721D)612
(25)有如下程序:
OptionBase1
PrivateSubForm_Click()
Dimarr,Sum
Sum=0
alt=Array(1,3,5,7,9,11,13,15,17,19)
Fori=1To10
Ifarr(i)/3=arr(i)13Then
Sum=Sum+alt(I)
EndIf
Nexti
PrintSum
EndSub
程序运行后,单击窗体,输出结果为______。
A)25B)26C)27D)28
(26)在窗体画一个命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
Dima(5)AsString
Fori=1To5
a(I)=Chr(Asc("A")+(i-1))
Nexti
ForEachbIna
Printb;
Next
EndSub
程序运行后,单击命令按钮,输出结果是______。
A)ABCDEB)12345
C)abcdeD)出错信息
(27)以下关于函数过程的叙述中,正确的是______。
A)如果不指明函数过程参数的类型,则该参数没有数据类型
B)函数过程的返回值可以有多个
C)当数组作为函数过程的参数时,既能以传值方式传递,也能以引用方式传递
D)函数过程形参的类型与函数返回值的类型没有关系
(28)函数过程n的功能是:
如果参数b为奇数,则返回值为1,否则返回值为0。
以下能正确实现上述功能的代码的是______。
A)FunctionF1(bAsInteger)
IfbMod2=0Then
Return0
Else
Return1
EndIf
EndFunction
B)FunctionF1(bAsInteger)
IfbMod2=0Then
F1=0
Else
F1=1
EndIf
EndFunction
C)FunctionF1(bAsInteger)
IfbMod2=0Then
F1=1
Else
F1=0
EndIf
EndFunction
D)Functionn(bAsInteger)
IfbMod2<>0Then
Return0
Else
Return1
EndIf
EndFunction
(29)以下关于KeyPress事件过程中参数KeyAscii的叙述中,正确的是______。
A)KeyAscii参数是所按键的ASCII码
B)KeyAscii参数的数据类型为字符串
C)KeyAscii参数可以省略
D)KeyAscii参数是所按键上标注的字符
(30)设窗体上有一个名为Text1的文本框,并编写如下程序:
PrivateSubForm_Load()
Show
Text1.Text=""
Text1.SetFocus
EndSub
PrivateSubForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)
Print"程序设计"
EndSub
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
Print"VisualBasic";
EndSub
程序运行后,如果在文本框中输入字母“a”,然后单击窗体,则在窗体上显示的内容是______。
A)VisualBasicB)程序设计
C)VisualBasic程序设计D)a程序设计
(31)假定有下表所列的菜单结构:
(表格)
要求程序运行后,如果单击菜单项“大图标”,则在该菜单项前添加一个“√”。
以下正确的事件过程是______。
A)PrivateSubbigicon_Click()
bigicon.Checked=False
EndSub
B)PrivateSubbigicon_Click0
Me.appear.bigicon.Checked=True
EndSub
C)PrivateSubbigicon_Click()
bigicon.Checked=True
EndSub
D)PrivateSubbigicon_Click0
appear.bigicon.Checked=True
EndSub
(32)假定通用对话框的名称为CommonDialog1,命令按钮的名称为Command1,则单击命令按钮后,能使打开的对话框的标题为“NewTitle”的事件过程是______。
A)PrivateSubCommandl_Click()
CommonDialog1.DialogTitle="NewTitle"
CommonDialog1.ShowPrinter
EndSub
B)PrivateSubCommand1_Click()
CommonDialog1.DialogTitle="NewTitle"
CommonDialog1.ShowFont
EndSub
C)PrivateSubCommslld1_CUck()
CommonDialog1.DialogTifie="NewTitle"
CommonDialog1.ShowOpen
EndSub
D)PrivateSubCommand1_Click()
CommonDialog1.DialogTitle”NewTitle”
CommonDialog1.ShowColor
EndSub
(33)如果一个工程含有多个窗体及标准模块,则以下叙述中错误的是______。
A)任何时刻最多只有一个窗体是活动窗体
B)不能把标准模块设置成启动模块
C)用Hide方法只是隐藏一个窗体,不能从内存中清除该窗体
D)如果工程中含有SubMain过程,则程序一定首先执行该过程
(34)假定在工程文件中有一个标准模块,其中定义了如下记录类型
TypeBooks
NameAsString*10
TelNumAsString*20
EndType
要求当执行事件过程Command1_Click时,在顺序文件Person.txt中写入一条记录。
下列能够完成该操作的事件过程是:
A)PtivateSubCommand1_Click()
DimBAsBooks
Open"c:
\Person.txt"ForOutputAs#1
B.Name=InputBox("输入姓名")
B.TelNum=InputBox("输入电话号码")
Write#1,B.Name,B.TelNum
Close#1
EndSub
B)PrivateSubCommand1_Click()
DimBAsBooks
Open"c:
\Person.txt"ForInputAs#1
B.Name=InputBox("输入姓名")
B.TelNum=InputBox("输入电话号码")
Print#1,B.Name,B.TelNum
Close#1
EndSub
C)PrivateSubCommand1_Click()
DimBAsBooks
OPQl"c:
\Person.txt"ForOutputAs#1
Nallle=InputBox("输入姓名")
TelNum=InputBox("输入电话号码")
Write#1,B
Close#1
EndSub
D)PrivateSubCommand1_Click()
DimBAsBooks
Open"c:
\Person.txt"ForlnputAs#1
Name=InputBox("输入姓名")
TelNum=InputBox("输入电话号码")
Write#1,B.Name,B.TelNum
Close#1
EndSub
(35)目录列表框的Path属性的作用是______。
A)显示当前驱动器或指定驱动器上的某目录下的文件名
B)显示当前驱动器或指定驱动器上的目录结构
C)显示根目录下的文件名
D)显示指定路径下的文件
二、填空题
(6)设有以下函数过程:
Functionfun(mAsInteger)AsInteger
DimkAsInteger,sumAsInteger
sum=0
Fork=mTo1Step-2
sum=sum+k
Nextk
fun=stlm
EndFunction
若在程序中用语句s=fun(10)调用此函数,则s的值为【6】。
(7)在窗体上画一个命令按钮和一个文本框,然后编写命令按钮的Click事件过程。
程序运行后,在文本框中输入一串英文字母(不区分大小写),单击命令按钮,程序可找出未在文本框中输入的其他所有英文字母,并以大写方式降序显示到Text1中。
例如,若在Text1中输入的是abDfdb,则单击Comrnand1按钮后Text1中显示的字符串是
ZYXWVUTSRQPONMLKJIHGEC。
请填空。
PrivateSubCommand1_Click()
DimstrAsString,sAsString,cAsString
str=UCase(Text1)
S=""
C="Z"
Whilec>="A"
IflnStr(str,C)=0Then
s=【7】
EndIf
c=Chr$(Asc(C)【8】)
Wend
Ifs<>""Then
Text1=S
EndIf
EndSub
(8)在n个运动员中选出任意r个人参加比赛,有很多种不同的选法,选法的个数可以用公式
计算。
下图窗体中3个文本框的名称依次是Text1、Text2、Text。
程序运行时在Text1、Text2中分别输入n和r的值,单击Command1按钮即可求出选法的个数,并显示在
Text3文本框中(见下图)。
请填空。
PrivateSubCommand1_Click()
DimrAsInteger,nAsInteger
n=Textl
r=Text2
Text3=fun(n)/fun(【9】)/fun(r)
EndSub
Functionfun(nAsInteger)AsLong
DimtAsLong
【10】
Fork=1Ton
t-t*k
Next
fun=t
EndFunction
(9)以下是一个比赛评分程序。
在窗体上建立一个名为Text1的文本框数组,然后画一个名为Text2的文本框和名为Command1的命令按钮。
运行时在文本框数组中输入7个分数,单击“计算得分”命令按钮,则最后得分显示在Text2文本框中(去掉一个最高分和一个最低分后的平均分即为景后得分),如图所示。
请填空。
PrivateSubCommand1_Click()
DimkAsInteger
DimsumAsSingle,maxAsSingle,minAsSingle
sum=Text1(0)
max=Text1(0)
min=【11】
Fork=【12】To6
Ifmax<Text1(k)Then
max=Text1(k)
EndIf
Ifmin>Textloc)Then
min=Text1(k)
EndIf
sum=sum+Textl(k)
Nextk
Text2=【13】/5
EndSub
(10)如图所示,在列表框Listl中已经有若干人的简单信息,运行时在Text1文本框(即“查找对象”右边的文本框)输入一个姓或姓名,单击“查找”按钮,则在列表框中进行查找,若找到,则把该人的信息显示在Text2文本框中。
若有多个匹配的列表项,则只显示第1个匹配项;若未找到,则在Text2中显示“查无此人”。
请填空。
PrivateSubCommand1_Click()
DimkAsInteger,nAsInteger,foundAsBoolean
found=False
n=Len(【14】)
k=0
Whilek<List1.ListCountAndNotfound
IfText1=Left$(List1.List(k),n)Then
Text2=【15】
found=True
EndIf
k=k+1
Wend
IfNotfoundThen
Text2="查无此人"
EndIf
EndSub
2005年9月全国计算机等级考试二级笔试试卷
VisualBasic语言程序设计
参考答案及评析
一、选择题
(11)B
[评析]由于应用程序中包括一个窗体模块和一个标准模块,所以保存的时候这两个模块肯定要保存,而工程文件是这两个模块的容器,也需要保存。
(12)C
[评析]要想删除窗体上的某个控件,首先要选中这个控件,然后按下删除键(Del键)来删除。
(13)C
[评析]VisualBasic应用程序可以以解释方式执行,也可以编译成可执行文件执行。
(14)D
[评析]本题考的是运算符的优先顺序。
在表达式中,当运算符不只一种时,要先处理算术运算符,接着处理比较运算符,然后再处理逻辑运算符。
本题中a<=c返回真,4*e=b^2返回假,b<>a+c返回真。
Not真就是假,假And真也返回假,最后假Or假,也返回假,所以最后值为False。
(15)C
[评析]本题考查的是Rnd函数和Iat函数。
Rnd函数返回小于1但大于或等于0的值,而Iht返回参数的整数部分。
由于b-a=5,所以(b-a)*Rnd+a返回的是大于等于5,小于10的数,再使用一下Int函数,得到的最大值为9,最小值为5,再加1后,最大值就是10,最小值就是6。
(16)C
[评析]本题主要考查的是Msgbox函数。
Msgbox函数一共有5个参数;第1个参数是显示在对话框上的消息;第2个参数是值的总和,用于指定显示按钮的数目及形式,使用的图标样式,缺省按钮是什么以及消息框的强制回应等;第3个参数在对话框标题栏中显示的字符串表达式;第4个参数是用来向对话框提供上下文相关帮助的帮助文件;第5个参数是由帮助文件的作者指定给适当的帮助主题的帮助上下文编号。
题目中问的是标题栏上显示的内容,也就是第3个参数的值,而第3个参数是bS,它的值是hardware。
(17)A
[评析]“+”是加号运算符,如果“+”加号两边的表达式都是String型,则“+”起连接作用,InputBox返回的是一个字符型。
所以本题是做字符串连接,故答案是108。
(18)B
[评析]本题考的是Mid函数,Mid函数是用来返回指定数量的字符串。
其中第2个参数是指定返回字符串的起始位置,第3个参数是要返回的字符数,这个参数是可选的,如果省略,就返回从起始位置到字符串最后的所有字符。
本题中第3个参数省略了,而起始位置是8.该位置的