计算机等级考试二级VB模拟试题及参考答案汇总.docx
《计算机等级考试二级VB模拟试题及参考答案汇总.docx》由会员分享,可在线阅读,更多相关《计算机等级考试二级VB模拟试题及参考答案汇总.docx(32页珍藏版)》请在冰点文库上搜索。
计算机等级考试二级VB模拟试题及参考答案汇总
2011年计算机等级考试二级VB考点及习题
§1、VB的特点、运行环境、对象、属性、方法、事件各概念,尤其是方法和事件的区分。
熟悉VB的IDE,VB开发应用程序的一般步骤。
特点:
GUI(集成开发环境)、OLE(对象的连接和嵌入)、OOP(面向对象);
运行环境:
Windows(VB5.0以上在32位操作系统)
方法:
对象可以执行的动作或行为;(主动性)
事件:
使某个对象进入活动状态的一种操作或动作。
(被动性)
例题:
1、VB的使用目的是()。
A.开发Windows应用程序B.图象处理
C.制作WAV文件D.文字处理
2、一个对象可以执行的动作和可被对象识别的动作分别称为()。
A.方法、事件B.事件、方法C.方法、属性D.事件、属性
3、一只白色的足球被踢进球门,则白色、足球、踢、进球门是()。
A.属性、对象、方法、事件B.属性、对象、事件、方法
C.对象、属性、方法、事件D.对象、属性、事件、方法
§2、熟练应用窗体、控件。
掌握窗体的常用方法(Hide、Show、Print、Cls、Refresh、Move)、属性和事件(Load、Activate、Click)。
Load事件、Unload事件、End语句
常用控件:
CommandButton(Default、Cancel、Enabled、Style、
DisabledPicture、DownPicture)、Label(AutoSize)、TextBox(Alignment、MaxLength、PasswordChar、Multiline、ScrollBars注:
Multiline=True)、OptionButton(Value)、ListBox(属性:
list\listcount\listindex\selected、方法:
AddItem、RemoveItem、Clear)、ComboBox(P27)、HscrollBar、VscrollBar(min、Max、Value)、PictureBox(print方法)、Timer(运行时不可见、只有Timer事件、Interval)方法、属性、事件的掌握。
容器控件:
Form、Picture、Frame特殊控件:
菜单的使用(只响应Click事件)
1、以下窗体名中哪些是非法的窗体名()。
对象名命名规则:
以字母或汉字开头,后面可以是字母、数字、下划线、汉字。
(变量名类似)
A._aformB.3frmC.f_1D.frm5E.f_1*
2、一个名称为myfrm,标题属性为form1的窗体,它的单击事件名应为()。
A.myfrm_clickB.form1_click
C.form_clickD.me_click
3、执行下面语句:
print“5*20”的结果是()。
A.“5*20”B.出现错误信息C.5*20D.100
4、下列语句代码哪一些可正常执行(正常执行是指系统不给出出错提示);
A、Print32765+3B、Print5+7=14
C、Print256/128D、Print"14"+12E、Print"14"&12
5、以下使用方法的代码中,正确的是()。
A、Label1.SetfocusB、Form1.Clear
C、Text1.SetFocusD、Combo1.Cls
6、在程序中可以通过复选框和单选按钮的()属性值来判断他们的当前状态。
A.CaptionB.ValueC.CheckedD.Selected
7、将复选框的Value属性设为"2",其效果与把它的Enabled属性设为"False"有何异同?
若把一个控件的Visible属性设为"False",意味着什么?
8、当用户单击命令按钮时,()属性可以使得命令按钮对激发事件无效。
A.NameB.EnabledC.DefaultD.Cancel
9、在文本框Text1和Text2中分别输入35与48,变量S与X分别为字符型与整型,以下赋值语句的执行结果是什么?
s=Text1.Text+Text2.Textx=Text1.Text+Text2.Text
s=Text1.Text&Text2.Textx=Text1.Text&Text2.Text
s=Val(Text1.Text)+Text2.Text
x=Val(Text1.Text)+Text2.Text
s=Val(Text1.Text)&Text2.Text
x=Val(Text1.Text)&Text2.Text
§3、
1、下列模块中哪个是一个工程必须具备的()。
A.窗体模块B.标准模块C.类模块D.用户自定义模块
2语言基础
一、书写规范:
":
"间隔符号、续行符号"_"、注释符号"’"
二、数据:
数据类型、关键字、存储单位、初值。
数值常量&O(8)&H(16)
字符常量""命名规则局部Dim/Static
常量逻辑常量变量作用域窗体/模块Dim/Private
日期常量#月/日/年#全局(共有)Public
例如:
1、在窗体或标准模块的通用声明处可以用_______语句定义变量。
A.Dim、RedimB.Dim、Static
C.Dim、Private、PublicD.Dim、Private、Static
注意:
在窗体和类模块中,不能将定长字符串、符号常量、数组用Public来定义。
隐式说明的六个符号:
%、&、!
、#、@、$
例:
m1&=5*x%\3+x%mody%和m1&="5*x%\3+x%mody%"的正确性
OptionExplicit语句功能:
强制变量的声明
例题:
1、下列字符串中()是合法变量
A.char_1,student,no,a1234B.exp,123a,x*y
C.x\y,x>yD.end,lbcx
四、VB公共函数
算术:
Sqr、Log、Exp、Abs、Rnd、Sin、Cos
字符:
Len、left、Right、Mid、Ucase、Lcase、Ltrim、Rtrim、Trim、Instr、String、Space
转换:
Str、Val、Chr、Asc、Int、Cint
日期:
Date、Time、Now、Year、Month、Day、Week、Day
例如:
1、设s1,s2均为字符串变量,s1=”VisualBasic”,s2=”b”,则下面关系表达式中结果为True的是()。
A.Mid(s1,8,1)>s2B.Len(s1)<>2*Instr(s1,”l”)
C.Chr(66)&Right(s1,4)=”Basic”
D.Instr(Left(s1,6),”a”)+60>Asc(Ucase(s2))
2、求出下列表达式的运算结果;
A.Mid("visualbasic",1,12)=Right("Programminglanguagevisualbasic",12)
B."ABCRG">="abcde"C.Int(134.69)>=CInt(134.69)
D.78.9/32.77<=97.5/43.87And-45.4>-4.98
E.Str(32.345)=CStr(32.345)
3、VB只有求自然对数的函数Log(x),如果计算式中需要使用常用对数或以2为底的对数,应如何处理?
(使用换底公式)
例如:
1、if语句:
PrivateSubForm_Click()
DimxAsInteger,yAsInteger
DimzAsSingle
x=0.2
y=1
If(x>=1)Then
z=Log(x)
ElseIfx>=0Andx<1Andy>=0Then
z=2*x-y
Else
z=Exp(x+y)
EndIf
Print"z="+Str(z)
EndSub
结果:
z=-1
2、SelectCase语句
PrivateSubForm_Click()
DimchAsString,iAsInteger
ch="c"
SelectCasech
Case"A","a"
i=1
Case"B","b"
i=2
Case"C","c"
i=3
Case"D","d"
i=4
CaseElse
i=5
EndSelect
Print"运行结果"+Ucase(ch)+Str(i)
EndSub
结果:
运行结果C3
②循环结构
1、For------Next(循环次数的计算)
特例:
例如:
有循环:
forI=n1ton2stepn3下列哪些语句会影响循环次数()
A.n1=n1+I
B.n3=2*n3
C.n2=n2+n3
D.I=I+n3
2、Do------Loop(While,Until)
例如:
运行下面的程序,单击窗体后在窗体上的内容是();若将程序中的A语句与B语句的位置互换,再次执行程序,单击窗体后在窗体上显示的内容是()
PrivateSubForm_Click()
DimaAsInteger,bAsInteger
a=0:
b=0
DoWhilea<=8
a=a+2'A语句
b=b+a*a'B语句
Loop
Printa,b
EndSub
例如:
窗体上显示的结果:
PrivateSubForm_Click()
DimpAsInteger,iAsInteger,nAsInteger
p=2:
n=20
Fori=1TonStepp
p=p+2
n=n-3
i=i+1
Ifp>=10ThenExitFor
Nexti
Printi,p,n
EndSub
一、InputBox函数
MsgBox函数(注意参数含义及顺序)
x=InputBox(_____,______,_______)
写出显示下图信息框的MsgBox函数
§5、数组
1、数组的上、下界:
Ubound()、Lbound()2、数组的大小的计算、数组的结构:
(二维数组:
以列存放)3、Erase语句:
重新初始化静态数组的元素、或释放动态数组的存储空间。
4、ForEach–Next结构语句5、用Array函数给数组赋值(只能给Variant类型的变量赋值)6、控件数组(load/UnloadObject(Index))
动态数组(Redim语句)
数组分类:
固定大小数组OptionBase语句功能
Preserve语句功能
例如:
n数组重点算法:
n一数组,求其中最大和最小;n对一数组排序(选择法、冒泡法、直接排序法)
n在一数组中查找指定的数(顺序、二分查找);n删除一数组中重复的数
2、在窗体模块的通用声明处用下面的语句声明变量、数组、正确语句有()个。
A.Publica(5)asintegerB.Publicnasinteger
C.Publicstasstring*10D.Privateb()asinteger
3、下列语句中的()语句可以用来正确地声明一个动态数组。
A.PrivateA(n)asintegerB.DimA()asinteger
C.DimA(,)asintegerD.Dima(1ton)
4、下列关于数组的说法中正确的是()。
A.在过程中,不能用private语句定义数组
B.利用Redim语句重新定维时,不得改变已经说明过的数组的数据类型。
C.数组重新定维后,原有的数据元素内容将不予保留
5、过程的形参为数组时,以下定义语句中正确的是()。
A.privatesubsort(a()asinteger)
B.privatesubsort(a(10)asinteger)
C.privatesubsort(a(,)asinteger)
D.privatesubsort(byvala()asinteger)
6、某过程的说明语句中,正确的数组说明语句是______。
ConstNAsInteger=4:
DimLAsInteger
①Dimx(L)AsInteger
②DimA(K)AsInteger
ConstKAsInteger=3
③DimB(N)AsInteger
④DimY(2000To2008)AsInteger
A.①②④B.①③④C.③④D.②③
§7、文件管理控件
文件处理顺序文件和随机文件的打开(open)语句,EOF函数,读写语句。
dowhilenoteof
(1)dountileof
(1)
print#1,write#1,
input#1,a,b,clineinput#1,sinput(#1,100)
get#1,aput#1,”af”
打开方式:
顺序文件Open"文件路径+文件名(包括文件后缀)"ForOutputAs#1-511
Open"文件路径+文件名(包括文件后缀)"ForAppendAs#1-511
Open"文件路径+文件名(包括文件后缀)"ForInputAs#1-511
随机文件:
Open"文件路径+文件名(包括文件后缀)"ForRandomAs#1-511
二进制文件:
Open"文件路径+文件名(包括文件后缀)"ForBinaryAs#1-511
Open语句打开文件的注意:
1.如果以Output、Append、Random、Binary模式打开一个不存在的文件时,VB自动创建一个相应文件;
2.在InputRandomBinary模式下,可以用不同的文件号打开同一文件,但OutputAppend方式不可以;
3.所有当前使用的文件号必须是唯一的;
4.如果以Output模式打开一个已存在的文件,即使没有进行写操作原来数据也将被覆盖。
Close语句注意:
(Reset)
1.直接使用Close语句(缺省文件号),则所有用Open语句打开的活动文件都被关闭;
2.当程序结束时,所有打开的文件自动被关闭。
Lock和Unlock语句注意:
1.对于二进制文件,Lock和Unlock的是字节范围;
2.对于随机文件,Lock和Unlock的是记录范围;
3.对于顺序文件,Lock和Unlock的是整个文件,即使指明范围也不起作用;
4.缺省情况下Lock和Unlock的范围是整个文件;
5.Lock和Unlock总是成对使用。
特别注意:
在关闭文件或结束程序之前,必须用Unlock语句对先前锁定的文件解锁,否则会产生难以预料的错误。
1.要对顺序文件进行写操作,下列打开文件语句中正确的是()。
Open"file1.txt"foroutputas#1
Open"file1.txt"forinputas#1
Open"file1.txt"forRandomas#1
Open"file1.txt"forbinaryas#1
2.在VB中文件访问的类型有()。
A.顺序、随机、二进制B.顺序、随机、字符
A.顺序、十六进制、随机D.顺序、记录、字符
例如:
将文件Data1中的无序数据和Data2中的有序数据插入到Data3中,要求:
Data3中的数据必须也是排好序。
请填写空白处以实现该题功能。
PrivateSubForm_Click()
Dima()AsInteger,b()AsInteger
DimkAsInteger,iAsInteger
Open"e:
\data1.txt"ForInputAs#2
Open"e:
\data2.txt"ForInputAs#3
DoWhileNotEOF
(2)
k=k+1
ReDimPreservea(k)
Input#2,a(k)
Loop
_______k=0______________________
DoWhileNotEOF(3)
k=k+1
ReDimPreserveb(k)
Input#3,b(k)
Loop
Callinsert(a,b)
Open"e:
\data3.txt"ForOutputAs#4
_k=ubound(b)____________________________
Fori=1Tok
Print#4,b(i)
Nexti
Close
EndSub
PrivateSubinsert(a()AsInteger,b()AsInteger)
DimmAsInteger,iAsInteger
DimnAsInteger,jAsInteger
m=UBound(a):
n=UBound(b)
_redimpreserveb(m+n)_______________________
i=0
DoWhilei i=i+1
j=n
DoWhilej>=1Anda(i)
Ifa(i)
___b(j+1)=b(j)_______________________
j=j-1
Else
ExitDo
EndIf
Loop
__b(j+1)=a(i)___________________________
n=n+1
Loop
EndSub
注意:
F按值传递参数
形参和实参的类型不一定要统一,VB自动进行数据的转换。
–例如:
PrivateSubForm_Click()
DimaAsString:
a=2
Callsub1(a)
Printa
EndSub
PrivateSubsub1(ByValbAsInteger)
b=b+1:
Printb
EndSub
F按地址传递参数
–当实参是变量时:
如果形参规定了类型,则实参必须跟形参保持一致
如果形参没有规定类型,则VB按要求进行数据类型转换
–当实参是常量或表达式时:
VB自动用“按值传递”的方式进行处理,如果数据类型不统一,VB自动进行数据转换
例如:
1、在应用程序中用“PrivatefunctionFun(Xasinteger,Yassingle)”定义了函数Fun。
调用函数Fun的过程中的变量I、J均为Integer型,能正确引用函数Fun的是()
A.Fun(I,J)B.CallFun(I,3.56)C.Fun(3.14,234)D.Fun("245","231.5")
2.程序中的不同过程之间,不能通过_________进行数据传递。
①全局变量②窗体或模块级变量③形参与实参结合④静态变量
A.①②④B.①②③C.②④D.④
二级考试必考题型:
(课后习题)
传值传地址Static变量同名变量递归过程
例如:
1、以下有关变量作用域的说法中,错误的是()
A.只有在标准模块中用public语句说明的变量才是全局变量
B.在过程中不能使用public语句说明全局变量
C.在标准模块的通用声明处可用private语句说明模块级变量
D.在窗体的通用声明处可用private语句说明窗体级变量
2.一个名为frm1的窗体,在窗体通用声明处和过程sub1中分别定义:
publickasinteger、dimkasinteger如何在sub1中访问全局变量k()
A.frm1.kB.form.kC.form1.kD.k
例:
阅读程序,给出输出结果:
(1)字符串处理(数组参数)
OptionBase1
PrivateSubForm_Click()
DimstAsString,charAsString
Dimdata()AsString,iAsInteger,jAsInteger
st="10281018123811181038"
Fori=1ToLen(st)
IfMid(st,i,1)<>"8"Then
char=char&Mid(st,i,1)
Else
j=j+1
ReDimPreservedata(j)
data(j)=char
char=""
EndIf
Nexti
Callconver(data,char)
Printchar
EndSub
PrivateSubconver(a()AsString,chAsString)
DimiAsInteger,jAsInteger
DimnAsInteger,decAsInteger
Fori=1ToUBound(a)
n=Len(