VB复习资料带答案.docx
《VB复习资料带答案.docx》由会员分享,可在线阅读,更多相关《VB复习资料带答案.docx(25页珍藏版)》请在冰点文库上搜索。
VB复习资料带答案
VisualBasic语言笔试复习题
一、单项选择题
1.下列关于VisualBasic程序语法规则的叙述中正确的是(D)
(A)一个程序代码行只能写一个语句
(B)用Print输出多个数据项时,可以使用冒号“:
”作为数据项之间的分隔符
(C)赋值语句结束时,可以使用分号或逗号作为结束符
(D)字符型数据常量必须使用英文双撇号作为定界符,而不能使用中文双引号
3.已知X=5,执行语句Y=IIF(X>4,3,2)后,Y的值为(B)
(A)2(B)3(C)4(D)5
4.设x=1,以下函数返回值最大的是(B)
(A)Sin(x)(B)Exp(x)(C)Sqr(x)(D)Log(x)
5.执行语句S1=Chr(Int(Rnd*26+97))之后,变量S1的值应为(B)
A.数字字符B.大写字母C.小写字母D.标点符号
6.Text1中内容为“2007-4-21”,执行语句X=Val(Mid(Text1.Text,6,4))后,X的值为(D)
(A)421(B)4.21(C)4-21(D)4
9.在VB程序中,如果未作任何声明,直接使用的变量的数据类型为(D)
A.Integer B.Long C.StringD.Variant
10.表达式Len("方正将采用AMD64处理器生产计算机")的值是(B)
A.13B.18C.26D.31
11.循环语句Forn=-5To5Step2决定循环体的执行次数为(D)
A.3次B.4次C.5次D.6次
15.函数表达式String(2,"ChongQing")的返回值是(B)
A.CQB.ChongQingC.CCD.ChongQingChongQing
21.字符串变量A=”C:
\ProgramFiles\MicrosoftVisualStudio\VB98\VB6.EXE”,能从中取出子串”VB6.EXE”的表达式是(C)
A.Right(A,6)B.Mid(A,Len(A))C.Mid(a,Len(A)-6)D.Mid(A,Len(A)+6)
22.下列单行If语句中不正确的是(D)
(A)Ifx>yThenPrint"x>y"(B)IfxThent=t+1
(C)IfxMod3=2ThenPrintt(D)Ifx<0Thent=t+1:
x=1EndIf
23.程序运行时,要使文本框(TextBox)获得焦点,则需使用(B)方法。
(A)Change(B)SetFocus(C)GotFocus(D)Move
24.在控件数组中,各元素有一个属性的值必须相同,该属性是(C)
(A)Caption(B)Index(C)Name(D)Font
27.为“打开文件”按钮Command1设置热键,应设置命令按钮Command1.Caption=(B)。
A."打开文件(&F)"B."打开文件(&F)"C."打开文件(*F)"D."打开文件(#F)"
28.在程序运行期间向列表框(ListBox)中添加新的列表选项时,应使用的方法为(A)
(A)AddItem(B)Drag(C)Move(D)OleDrag
31.VisualBasic语言默认的过程参数传递机制是(A)
A.按地址传递B.按值传递C.按属性传递D.按名称传递
32.执行语句Check1.Value=1之后,复选框Check1的状态应为(B)
A)
B)
C)
D)出错
37.单击滚动条两端的任一个滚动箭头,将触发该滚动条的(C)事件。
A.ScrollB.KeyDownC.ChangeD.DragOver
39.在MouseDown事件过程中,参数Button的值为2表示按下的鼠标按键是(B)
A.鼠标左键B.鼠标右键C.同时按下鼠标左键右键D.未按鼠标按键
40.对象可以识别和响应的某些行为称为(D)
(A)属性(B)方法(C)继承(D)事件
43.VB表达式Cos(0)+Abs
(1)+Int(Rnd
(1))的值是(D)
(A)1
(B)-1
(C)0
(D)2
44.下列程序运行后,单击命令按钮Command1,则在窗体上显示的内容是(D)
OptionBase0
PrivateSubCommand1_Click()
DimcityAsVariant
city=Array("北京","上海","天津","重庆")
(A)空白
(B)错误提示
(C)北京
(D)上海
Printcity
(1)
EndSub
45.下面程序段的执行结果是(B)
a=75
Ifa>60Theni=1
Ifa>70Theni=2
(A)i=1
(B)i=2
(C)i=3
(D)i=4
Ifa>80Theni=3
Ifa>90Theni=4
Print"i=";i
46.下列各个选项中,能构成语句的是(B)
(A)对象名.属性名(B)对象名.方法名(C)对象名.事件名(D)对象名.函数名
48.将焦点移到某个名为Object的控件,所使用的方法是(A)
(A)Object.SetFocus(B)Object.Visible(C)Object.Refresh(D)Object.GetFocus
50.程序运行状态,改变VisualBasic程序窗口大小,则自动触发的窗体事件是(B)
(A)Click(B)Resize(C)Load(D)UnLoad
51.下列程序段执行后,窗体上显示输出的结果为(D)
PrivateSubForm_Click()
Dima,b,c
a=5:
b=7:
c=a=b
(A)5
(B)7
(C)0
(D)False
Printc
EndSub
53.VisualBasic允许在一个行内书写多个语句,但各语句之间必须使用(C)符号分隔开来。
(A)逗号(,)
(B)分号(;)
(C)冒号(:
)
(D)感叹号(!
)
二、多项选择题
3.以下控件中,能响应Click事件的有(ACDE)
(A)标签(B)计时器(C)命令按钮(D)水平滚动条(E)复选框
4.执行程序时,自动发生的窗体事件是(ACD)
(A)Load(B)Click(C)Activate(D)Initialize(E)LostFocus
7.下列函数表达式中,返回值相等的是(BC)
A.Abs(15.6256)B.Fix(15.625)C.Int(15.625)D.Round(15.625)E.Sqr(15.625)
8.VB中可用于控制循环的有(ABCDE)
A.if语句与Goto语句配合使用B.While…WendC.For…Next语句
B.D.DoWhile…Loop语句E.Do…LoopUntil语句
9.能产生一个数值范围为1,2,3,4,5和6的随机整数的表达式为(AC)
A.Int(6*Rnd+1)B.Int(5*Rnd)+1
C.Int(6*Rnd)+1D.Int(5*Rnd+1)E.Int(6*Rnd)
11.下列各项是滚动条(HScrollBar或VScrollBar)属性的有(ACE)
(A)Max(B)Change(C)Value(D)Scroll(E)LargeChange
12.鼠标事件MouseDown将返回的参数有(ABCD)
(A)Button(B)Shift(C)当前坐标Y(D)当前坐标X(E)Value
三、判断分析题
2.语句Dimx,y,zAsLong能将变量x、y和z均设置为长整型。
×
4.循环语句Fori=nTOmStepk正常结束后,循环变量i的值等于终值m。
×
6.执行语句X=Y=5后,变量X与Y的值均为5。
×
7.在窗体上按下鼠标左键并拖动鼠标,可以多次触发Form_MouseMove事件。
√
8.Int(-4.8)+Int(4.8)等于0。
×
11、设变量A,B,C均为变体类型,则A=B=C是一个合法的VB语句,且A的返回值为True或False。
√
12、在窗体的“通用”部分用Dim声明的变量,在本窗体内的所有过程或函数中都有效。
13.VisualBasic语言中的整型数据也可以用十六进制数表示。
√
16.定义在一个事件过程内部的变量,当该事件过程执行结束后,变量就会被释放。
×
四、程序填空题
4.在文本框中输入字符串,用n1,n2,n3分别统计其中大写字母、小写字母、其他字符出现的个数。
PrivateSubCommand1_Click()
c=Text1.Text
Forp=1To
c1=Mid(c,p,1)
SelectCase
Case"A"To"Z"
n1=n1+1
Case"a"To"z"
n2=n2+1
CaseElse
n3=n3+1
EndSelect
Nextp
Label1.Caption="大写字母:
"&Str(n1)&"小写字母:
"&Str(n2)&"其它字符:
"&Str(n3)
EndSub
len(C),C
7.程序是统计文本框Text1内字母e出现的次数(不区分大小写),结果显示在标签Label1中。
PrivateSubCommand1_Click()
word=Text1.Text
a=0
Fori=1To⑦
c=⑧
Ifc="e"Then
a=a+1
EndIf
Nexti
Label1.Caption="字母e出现的次数:
"&a
EndSub
Len(word),LCase(Mid(word,i,1))
9、下面程序的功能是计算
,直到末项值≤10-5为止。
PrivateSubForm_Click()
n=0:
Sum=0
Do
n=n+1
Sum=
Loop
PrintSum
EndSub
sum+1/n,until1/n<=0.00001
10.程序功能是计算分段函数的值,
PrivateSubForm_Click()
DimxAsSingle,yAsSingle
x=Val(InputBox("请输入x的值:
"))
SelectCasex
Case
y=2*x
Case
y=3*x+2
CaseElse
y=0
EndSelect
Print"x=";x,"y=";y
EndSub
Is>20,10To20
16.程序功能是产生10个小于等于100的随机正整数,找出其中的最小数,并记录该最小数的位置。
PrivateSubCommand1_Click()
Min=
Pos=0
Fork=1to10
X=
IfXPos=
Nextk
Print“Theminimum=”;Min;“ItsPosition:
“;Pos
EndSub
100,Int(Rnd*100+1),k
18.验证素数(素数是只能被1和自身整除的自然数)
PrivateSubCommand1_Click()
DimnAsInteger,iAsInteger,fAsBoolean
f=True
n=Val(InputBox("请输入一个正整数"+vbCrLf+"(大于1)","素数",2))
Fori=2To
IfnModi=Then
f=False:
ExitFor
EndIf
Nexti
Iff=ThenPrintn;"是素数"ElsePrintn;"不是素数"
EndSub
sqr(n),0,True
19.显示100~200之间的所有素数。
PrivateSubCommand1_Click()
F=0
ForN=100To200
ForK=____To____
IfNModK=____Then
F=1:
ExitFor
EndIf
NextK
IfF=0ThenPrintN
F=____
NextN
EndSub
step1,2,sqr(n),0,0
23、随机产生25个0或者1构成5×5矩阵,要求在窗体上显示该矩阵和其下三角形元素。
PrivateSubForm_Click()
Cls:
Dima(1To5,1To5)
Print"原始矩阵:
"
Fori=1To5
Forj=1To5
a(i,j)=
Printa(i,j);
Nextj
Print
Nexti
Print"显示下三角形元素:
"
Fori=1To5
Forj=1To
Printa(i,j);
Nextj
Print
Nexti
EndSub
int(rnd*2),i
25.单击窗体上的任何一点,以该点位置为圆心,用蓝色画出一个半径为300的圆。
PrivateSubForm_MouseDown(Button,Shift,X,Y)
Circle(X,Y),,
EndSub
300,vbblue
26.按鼠标左键点击窗体,以点击点为圆心,以小于50的随机数为半径,画出一个圆形。
PrivateSubForm_MouseDown(Button,Shift,X,Y)
IfButton=Then
R=Int(Rnd*)
Circle(,),R
EndIf
EndSub
1,50,x,y
28.执行语句Line(100,100)-Step(50,100)后,CurrentX的值为。
150
五、分析程序,选择运行结果
4.运行程序,显示的结果是
PrivateSubForm_Click(C)
Fork=1To7
Forj=1To7
IfkNextj
Print
Nextk
EndSub
A.B.C.D.
9.运行程序时,单击命令按钮,则标签中显示的值是(D)
(A)3(B)4
(C)5(D)6
PrivateSubCommand1_Click()
DimiAsInteger,nAsInteger
Fori=0To50
i=i+3
n=n+1
Ifi>20Thenexitfor
Next
Label1.caption=Str(n)
EndSub
14.运行下列程序,单击命令按钮Command1,在窗体上输出的结果是( D )
PrivateSubCommand1_Click()
ForK=1To4
(A)
(B)
(C)
(D)
A
AA
B
BB
BB
BBB
CC
CCC
CCC
CCCC
DDD
DDDD
DDDD
DDDDD
EEEE
EEEEE
ForN=0ToK
PrintChr(65+K);
NextN
Print
NextK
EndSub
17.执行下面程序,单击窗体后,窗体上显示的内容是(D)
PrivateSubForm_Click()
Dima
a=Array("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
Printa(5),LBound(a),UBound(a)
EndSub
A.Fri17B.Fri06C.Sat17D.Sat06
22.下面程序运行后,窗体上显示的内容是(D)
(A)5(B)4(C)3(D)出错
PrivateSubForm_Click()
Dima(2,3)AsInteger
Fori=1To2
Forj=1To3
a(i,j)=i+j
Nextj
Nexti
Printa(i,j)
EndSub
28.运行下列程序,图片框Picture1中显示的内容为(A)。
DimiAsLong
PrivateSubForm_Load()
Timer1.Enabled=True
Timer1.Interval=50
EndSub
PrivateSubTimer1_Timer()
Picture1.Cls
x=Picture1.ScaleWidth\2
y=Picture1.ScaleHeight-i+1000
Picture1.Circle(x,y),500
i=i+10
EndSub
A.一个圆形从Picture1的底边出现,逐渐上移并最终消失在Picture1的顶部边缘
B.一个圆形从Picture1的顶边出现,逐渐下移并最终消失在Picture1的底部边缘
C.一个圆形从Picture1的左边出现,逐渐右移并最终消失在Picture1的右边
D.一个圆形从Picture1的右边出现,逐渐右移并最终消失在Picture1的左边
29.下面程序运行后输出的图形是(C)
PrivateSubForm_Click()
Constangle=3.14159/180
ForI=0To360Step30
X1=1000+900*Cos(angle*I)
Y1=1000+900*Sin(angle*I)
X2=1000+500*Cos(angle*I)
Y2=1000+500*Sin(angle*I)
Line(X1,Y1)-(X2,Y2)
Circle(1000,1000),480
NextI
EndSub
(A)
(B)
(C)
(D)
六、设计程序题(每题10分)
2.在文本框中输入一个长数字串,单击“统计出现次数”按钮后,统计出现次数最多的数字及出现次数,并在标签Label1中显示结果。
PrivateSubCommand1_Click()
DimtAsString,sAsInteger,cAsString,nAsInteger
t=Text1.Text
s=Len(t)
Fori=1Tos
c=Mid(t,i,1)
IfAsc(c)>=48AndAsc(c)<=57Then
n=n+1
EndIf
Nexti
Label1.Caption=n
EndSub
7.产生随机数并找出其中的最大值和最小值。
按命令按钮Command1,产生10个1000以内的随机正整数,显示在窗体上,找出其中的最大值和最小值,分别显示在标签Label1和Label2中。
按命令按钮Command2结束程序运行。
PrivateSubCommand1_Click()
Dima(1To10)AsInteger,minAsInteger,maxAsInteger
Fori=1To10
a(i)=Int(Rnd*(1001))
Printa(i);
Nexti
max=a
(1)
min=a
(1)
Fori=2To10
Ifa(i)>maxThenmax=a(i)
Ifa(i)Nexti
Label1.Caption=max
Label2.Caption=min
EndSub
PrivateSubCommand2_Click()
End
EndSub
8.求字符的ASCII码:
在“输入字母”文本框Text1中输入一个字母,单击”转换”命令按钮Command1后,在”ASCII码”标签框Label1中显示该字母的ASCII码。
PrivateSubCommand1_Click()
Label1.Caption=Asc(Text1.Text)
EndSub
PrivateSubCommand2_Click()
End
EndSub
9.在文本框Text1中输入一个字符串,按“排列”命令按键Command1将输入的字符串按逆序排列,显示在标签框Label1中。
按“结束”命令按键Command2结束程序。
(注:
逆序排列就是将离字符串首尾距离相等的两个字符依次交换。
例如ABCD的逆序为DCBA)
PrivateSubCommand1_Click()
DimiAsInteger,sAsString,nAsInteger,tAsString
DimaAsString,bAsString
s=Text1.Text
n=Len(s)
IfnMod2=1Thent=Mid(s,Int(n/2)+1,1)Elset=""
Fori=Int(n/2)To1Step-1
a=Mid(s,i,1)
b=Mid(s,n-i+1,1)