VB期中考试复习题.docx
《VB期中考试复习题.docx》由会员分享,可在线阅读,更多相关《VB期中考试复习题.docx(64页珍藏版)》请在冰豆网上搜索。
VB期中考试复习题
5.3习题
1、单选题
1、DimA(-3To0,3)声明的数组有()个元素。
A.16B.9C.12D.10
2、下列语句声明的数组A有()个元素。
OptionBase1
DimA(-2To2,3,4)
A.60B.48C.100D.120
3、下列程序执行后的结果为()
Dima(8)
Fori=0To8
a(i)=3*i
Nexti
Printa(a
(2))
A.10B.18C.20D.28
4、下列程序执行后的结果为()
Dima(10),b(10)AsInteger
n=3
Fori=1To5
a(i)=i
b(n)=2*n+i
Nexti
Printa(n);b(n)
A.134B.311C.113D.233
5、在标准模块中,定义全局数组用()语句。
A.DimB.ReDimC.StaticD.Public
6、使用Array函数给某X赋值时,X必须是()。
A.已经声明的静态数组B.已经声明的动态数组
C.Variant类型的变量D.整型变量
7、执行以下程序时依次输入“1、3、5”,则输出结果为()。
Dima(4),b(4)AsInteger
Fori=0To2
a(i+1)=Val(InputBox("请输入数据:
"))
b(3-i)=a(i+1)
Nexti
Printb(i)
A.0B.1C.3D.5
8、下列程序执行后的结果为()
Dima
a=Array(1,2,3,4)
j=1
Fori=3To0Step-1
s=s+a(i)*j
j=j*10
Nexti
Prints
A.4321B.12C.34D.1234
9、Dima(11To30)所定义的数组有()个元素。
A.11B.20C.30D.330
10、下列程序执行后的结果为()
DimA(5,10)AsInteger
Fori=1To5
Forj=1To10
A(i,j)=j-i
Nextj
Nexti
PrintA(A(1,2),4)
A.3B.4C.5D.6
11、默认数组的数据类型必须是()
(A)Integer型(B)Double型(C)Variant型(D)任意类型
12、数组变量的数据类型必须是()
(A)Integer型(B)Double型(C)Variant型(D)任意类型
13、在程序运行过程中,单击窗体时,以下程序的输出结果为()
PrivateSubForm_Click()
Dimx
x=Array(“Basic”,”Pascal”,”Foxpro”,”Database”)
PrintUcase(Mid(x
(2),Len(x
(2))-3))
EndSub
(A)scal(B)SCAL(C)xpro(D)XPRO
14、在窗体上添加一文本框Text1和一命令按钮Command1,然后编写以下事件过程:
OptionBase1
PrivateSubCommand1_Click()
Dimarr1(5,5)AsInteger
DimIAsInteger,jAsInteger
ForI=1To3
Forj=2To4
Arr1(I,j)=I+j
Nextj
NextI
Text1.Text=arr1(2,3)+arr1(3,4)+arr1(1,1)
EndSub
程序运行时,单击命令按钮Command1后,在文本框中显示的值是()
(A)12(B)13(C)14(D)15
15、以下是窗体的Click事件过程Form_Click的程序代码:
OptionBase1
PrivateSubForm_Click()
DimIAsInteger,jAsInteger,mAsInteger,nAsInteger
Dima(3,3)
ForI=1To3
Forj=1To3
IfI=1Then
a(I,j)=j+1
Else
a(I,j)=I*j
Endif
Nextj,i
Form=1To2
Forn=1To3
Printa(m,n);
Nextn
Nextm
EndSub
在程序运行过程中,单击窗体时,程序的输出结果为()
(A)246369(B)123246
(C)234246(D)123369
16、以下是窗体的Click事件过程Form_Click的程序代码:
OptionBase1
PrivateSubForm_Click()
DimaAsVariant
DimIAsInteger,mAsInteger,indexAsInteger
a=Array(345,-54,200,356,65,23)
m=a(LBound(a))
Index=Lbounde(a)
ForI=Lbound(a)ToUbound(a)
Ifa(i)>mThen
m=a(i)
Index=I
Endif
NextI
Printm;index
EndSub
在程序运行过程中,单击窗体时,程序的输出结果为()
(A)–242(B)3564(C)3451(D)3563
17、以下是窗体的Click事件过程Form_Click的程序代码:
OptionBase1
PrivateSubForm_Click()
Dima(10)AsInteger,p(3)AsInteger
DimIAsInteger,kAsInteger
k=0
ForI=1To10
a(i)=2*(I-1)+1
NextI
ForI=1To3
p(i)=a(I*I)
NextI
ForI=1To3
k=k+p(i)\2
NextI
Printk
EndSub
在程序运行过程中,单击窗体时,程序的输出结果为()
(A)5(B)7(C)9(D)11
18、在下列说法中,正确的是()
(A)ReDim语句与Dim语句一样可以定义数组,因此,该语句可以放在程序的任何地方
(B)嵌套数组、默认数组、数组变量都必须定义成Variant类型
(C)OptionBase语句用于指定数组的下标下界默认值,该默认值可以任意
(D)数组的下标不能为负数
19、在下列数组声明语句中,正确的是()
(A)Dima[5,5]AsInteger(B)Dima(5,5)AsVariant
(C)Dima(m,m)AsDouble(D)Dima(55)AsSingle
20、设在窗体模块的通用声明段中书写了以下语句:
OptionBase1
Dimx(2,-1To2)AsInteger
则数组x中包含的元素个数是()
(A)6(B)4(C)8(D)12
21、当用Dim语句定义数组时,该语句()
(A)既可用在标准模块和窗体模块,也可用在过程内部
(B)只用于过程内部
(C)只用于在标准模块的声明段中定义全局数组
(D)只用于在窗体模块的声明段中定义局部数组
22、下列有关ReDim语句的叙述中,正确的是()
(A)ReDim语句虽然可以定义动态数组,但它在改变数组大小的同时必将该数组中原有内容清除
(B)它和Dim语句一样,可以声明数组,可以写在程序的任何地方
(C)ReDim语句是一种非执行语句
(D)它只能用于过程内部
23、与数组的下标默认下界值有关的语句是()
(A)OptionExplicit(B)OptionBase
(C)Optional(D)Base
24、设有语句Dimn%(1To3),则下列说法中正确的是()
(A)该语句等价于Dimn(1To3)
(B)该语句存在语法错误,原因是数组名不正确
(C)该数组是一个含有3个元素的一维整型(即Integer类型)数组
(D)该数组是一个含有3个元素的一维变体类型(即Variant类型)数组
25、设在窗体模块的声明段中书写了以下程序代码:
OptionBase1
Dimx(2,3)AsInteger
则数组x在内存中所占的空间是()个字节。
(A)6(B05(C)24(D)12
26、在下列有关数组的说法中,正确的是()
(A)同数组中每一维的下界值一定小于或等于上界值
(B)一个数组中的所有元素都属于同一种数据类型
(C)在VisualBasic中,最多可以定义二维数组
(D)当程序中书写了OptionBase1语句时,则程序中所有已定义的数组的下标下界值都从1开始
27、在下列有关控件数组的说法中,正确的是()
(A)可以将窗体上的各种类型的控件创建到一个控件数组中
(B)控件数组中所包含的控件必须是同一类型的,并且它们的Name属性值不能相同
(C)控件数组中所包含的控件必须是同一种类型的,并且它们的Name属性值相同,但每个控件的Index属性值不同
(D)程序运行时,对控件数组中的不同控件进行操作而触发事件时,执行的是对应于各个控件的事件过程代码
28、在窗体中添加一命令按钮Command1,然后编写以下程序代码:
OptionBase1
PrivateSubCommand1_Click()
Dimx(5),b
(2)AsInteger
Dims
s=0
ForI=Lbound(x)ToUbound(x)
X(i)=I
NextI
ForI=Lbound(b)ToUbound(b)
B(i)=x(I*I)
s=s+b(i)*2
NextI
Prints
EndSub
在程序运行时,单击命令按钮Command1时,程序的输出结果是()
(A)6(B)8(C)10(D)0
29、在以下定义数组的语句中正确的是()
(A)n=10:
Dimx(1Ton)AsInteger
(B)Dimx(10)AsInteger:
ReDimx(1To20)
(C)Dimx()AsInteger:
ReDimx(2,5)AsSingle
(D)Dimx()AsInteger:
n=20:
ReDimx(n)AsInteger
30、在下列各程序段中,正确的是()
(A)DimxAsInteger:
x=Array(1,2,3,4,5)
(B)Dimx()AsInteger:
x=Array(1,2,3,4,5)
(C)DimxAsVariant:
x=Array(1,”abc”,2,3)
(D)DimxAsvariant=Array(1,2,3)
2、填空题
1、给出下面的程序,在横线处填入适当的内容。
Dimx()AsInteger
Subcalcvaluesnow()
_____x(20,20)AsInteger
EndSub
2、下列程序运行后,单击命令按钮command1,
输出结果如右图所示:
请在横线处填入适当
的内容。
PrivateSubCommand1_Click()
Dima(3,3)
Fori=1To3
Fork=1To3
a(i,k)=_________
Printa(i,k);
Nextk
Print
Nexti
EndSub
3、
下列程序运行后,单击命令按钮command1,
输出结果如右图所示:
请在横线处填入适当
的内容。
PrivateSubCommand1_Click()
Dima(5,5)AsInteger
Fori=1To5
a(1,i)=①
Nexti
Fori=2To5
Forj=1To4
a(i,j)=②
Nextj
a(i,j)=a(i-1,1)
Nexti
Fori=1To5
Forj=1To5
Printa(i,j);
Nextj
Print
Nexti
EndSub
4、下列程序完成的功能是产生100个小于500(但不含500)的随机正整数,并统计其中5的倍数所占比例,请在横线处填入适当的内容。
Dima(100)AsInteger
k=0
Fori=1To100
a(i)=①
Printa(i);
If②Then
k=k+1
EndIf
Nexti
Print
Printk/100
3、读程序写结果
4、编程题
1、“排序”程序。
随机产生10个0-100之间的正整数,将它们从大到小的顺序排列。
参考界面如图5-1所示。
图5-1
2、按图5-2(a)所示,输入整数N,显示出具有N行的“杨辉三角形”。
一个具有9行的杨辉三角形运行结果如图5-2(a)所示。
若要显示如图5-2(b)所示的效果,原程序要作哪些改动?
提示:
1)“杨辉三角形”的算法:
上三角两边元素均为“1”;其余每个元素正好等于它上面一行的同一列和前一列的两个元素之和,即:
a(i,j)=a(i-1,j-1)+a(i-1,j)。
2)利用TAB函数定每行显示的起始位,利用两重循环显示下三角各元素。
3)为了便于控制,显示的内容在图形框(PictureBox)。
图5-2(a)图5-2(b)
3、从40分到100分随机产生50个学生的物理课程考试成绩,要求在列表框中显示所有考试成绩,并在图片框中统计各分段人数,即40-59、60-69、70-79、80-89、90-100,显示结果如图5-3所示。
图5-3
4、按图5-4所示,当在文本框中输入任意字母或数字时,单击统计按钮,将会在图片框中打印出数字字符“0”~“9”出现的次数。
图5-4
5、利用随机数生成矩阵A(数据不一定相同,要求数据范围在20-80之间),求A的转置矩阵。
参考界面如图5-5所示(分别在图片框中显示)。
图5-5
6、建立含有四个命令按钮的控件数组,当单击某个命令按钮时,分别显示不同的图形或结束操作。
控件名称及相关属性见下表;参考界面如图5-6(a)(b)(c)所示,
控件名
Command1
Command1
Command1
Command1
Picture1
Index
0
1
2
3
Caption
直线
矩形
圆
结束
图5-6(a)图5-6(b)图5-6(c)
5.4参考答案
1、单选题
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
A
A
B
B
D
C
B
D
B
A
C
C
D
A
C
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
B
D
B
B
C
A
D
B
C
D
A
C
C
D
C
2、填空题
1、答案:
ReDim
2、参考答案:
i+(k-1)*3
3、参考答案:
①i,②a(i-1,j+1)
4、参考答案:
①Int(Rnd*500),②a(i)Mod5=0
3、读程序写结果
4、编程题
1、
PrivateSubCommand1_Click()
Dimx(1To10)AsInteger
Print
Print"原始数据:
";
Fori=1To10
x(i)=Int(Rnd*101)
Printx(i);
Nexti
Print:
Print
Print"排序数据:
";
Fori=1To9
Forj=i+1To10
Ifx(i)t=x(i)
x(i)=x(j)
x(j)=t
EndIf
Nextj
Printx(i);
Nexti
Printx(10)
EndSub
2、
1)
PrivateSubCommand1_Click()
Dima()AsInteger
n=Val(Text1.Text)
ReDima(1Ton,1Ton)AsInteger
Fori=1Ton
a(i,1)=1:
a(i,i)=1
Nexti
Fori=3Ton
Forj=2Toi-1
a(i,j)=a(i-1,j-1)+a(i-1,j)
Nextj
Nexti
Fori=1Ton
Forj=1Toi
Picture1.PrintTab(j*5-4);a(i,j);
Nextj
Picture1.Print
Nexti
EndSub
2)
PrivateSubCommand1_Click()
Dima()AsInteger
n=Val(Text1.Text)
ReDima(1Ton,1Ton)AsInteger
Fori=1Ton
a(i,1)=1:
a(i,i)=1
Nexti
Fori=3Ton
Forj=2Toi-1
a(i,j)=a(i-1,j-1)+a(i-1,j)
Nextj
Nexti
Fori=1Ton
Forj=1Toi
Picture1.PrintTab((n-i)*2+j*5-4);a(i,j);
Nextj
Picture1.Print
Nexti
EndSub
3、
PrivateSubCommand1_Click()
Dim成绩(50),统计(5To9)AsInteger
Randomize
Fori=1To50
成绩(i)=Int(Rnd*61+40)
List1.AddItem成绩(i)
分段=成绩(i)\10
SelectCase分段
Case4To5
统计(5)=统计(5)+1
Case6To8
统计(分段)=统计(分段)+1
Case9To10
统计(9)=统计(9)+1
EndSelect
Nexti
Picture1.Print"分段成绩结果为:
"
Picture1.Print
Picture1.Print"40-59的人数为:
";统计(5)
Picture1.Print"60-69的人数为:
";统计(6)
Picture1.Print"70-79的人数为:
";统计(7)
Picture1.Print"80-89的人数为:
";统计(8)
Picture1.Print"90-100的人数为:
";统计(9)
EndSub
PrivateSubCommand2_Click()
End
EndSub
4、
PrivateSubCommand1_Click()
Dimnum(9)AsInteger
Dimi%,m%,j%,cAsString*1,s$
m=Len(Text1.Text)
Fori=1Tom
c=Mid(Text1.Text,i,1)
Ifc>="0"Andc<="9"Then
j=Val(c)
num(j)=num(j)+1
EndIf
Nexti
Fori=0To9
Ifnum(i)<>0Then
Picture1.Print"数字";i;"出现的次数为:
";num(i)
EndIf
Nexti
EndSub
PrivateSubCommand2_Click()
End
EndSub
5、
PrivateSubCommand1_Click()
Dima(4,4),b(4,4)AsInteger
Fori=1To4
Forj=1To4
a(i,j)=Int(Rnd*61+20)
b(j,i)=a(i,j)
Picture1.Printa(i,j);
Nextj
Picture1.Print
Nexti
Fori=1To4
Forj=1To4
Picture2.Printb(i,j);
Nextj
Picture2.Print
Nexti
EndSub
PrivateSubCommand2_Click()
End
EndSub
6、
PrivateSubCommand1_Click(IndexAsInteger)
Picture1.Cls
Picture1.FillStyle=6
SelectCaseIndex
Case0
Picture1.Print"画直线"
Picture1.Line(2,2)-(7,7)
Case1
Picture1.Print"画矩形"
Picture1.Line(2,2)-(7,7),,BF
Case2