数组习题.docx
- 文档编号:8795172
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:19
- 大小:39.81KB
数组习题.docx
《数组习题.docx》由会员分享,可在线阅读,更多相关《数组习题.docx(19页珍藏版)》请在冰豆网上搜索。
数组习题
一、选择题
1.按照VB默认的下界值,以下语句定义的数组中,()是3行3列的。
A.Dimmark(2,2)B.Dimmark(3,3)C.Dimmark
(2),mark
(2)D,Dimmark(3),mark(3)
2.用()可永久保存数据。
A.文件B.变量C.数组D.常量
3.用下面语句定义的数组的元素个数是()。
DimA(-2To3)AsInteger
A.3B.4C.5D.6
4.以下程序的输出结果是()。
OptionBase1
PrivateSubCommandl_Click()
Dimarr(10),s(3)AsInteger
p=5
Fori=1To10
arr(i)=i
Nexti
Fori=1To3
s(i)=arr(i*i)
Nexti
Fori=1To3
p=p+s(i)*2
Nexti
Printp
Endsub
A.33B.28C.35D.37
5.在窗体上画一个命令按钮,然后编写如下事件过程。
运行程序,单击命令按钮,其输出结果是()。
OptionBase1
PrivateSubCommandl_Click()
Dima
a=Array(1,2,3,4)
j=1
Fori=4To1Step-1
s=s+a(i)*j
j=j*10
Nexti
Prints
EndSub
A.4321B.12C.34D.1234
6.在窗体上画一个命令按钮(其名称属性为Commandl),然后编写如下代码。
程序运行后,单击命令按钮,其输出结果为()。
OptionBase1
PrivateSubCommandl_Click()
Dima(4,4)
Fori=1To4
Forj=1To4
a(i,j)=(i-1)*3+j
Nextj
Nexti
Fori=3To4
Forj=3To4
Printa(j,i);
Nextj
Nexti
EndSub
A.69B.710C.811D.912
7108119121013
7.在窗体上画一个命令按钮(其名称属性为Commandl),然后编写如下代码。
程序运行后,单击命令按钮,输出结果为()。
OptionBase1
PrivateSubCommandl_Click()
a=Array(237,126,87,48,498)
ml=a
(1)
m2=1
IfKeyAscii=13Then
Fori=2To5
Ifa(i)>mlThen
ml=a(i)
m2=i
EndIf
Nexti
Endif
Printml
Printm2
EndSub
A.48B.237C.498D.498
4154
8.在窗体上画一个命令按钮,编写过程如下。
运行后单击命令按钮,输出结果为()。
OptionBase1
PrivateSubCommandl_Chck()
a=0
b=8
x=Array(8,10,12,6)
Fori=1To4
Ifx(i)>bThen
a=a+x(i)
b=x(i)
Else
a=a-b
EndIf
Nexti
Printa
EndSub
A.30B.28C.2D.18
9.在窗体上画一个命令按钮,然后输入以下有关数组定义的语句序列,则程序将()。
Dima()AsInteger
DimsizeAsInteger
PnvateSubCommandl_CLck()
size=InputBox(“请输人:
“)
ReDima(size)
……
EndSub
A.出错,数据类型不匹配
B.定义一个数组,该数组的大小与用户输人的数字相同
C.出错,重定义数组不合法
D.定义一个数组,该数组的元素即是用户输人的数字
10.在窗体上画一个命令按钮,编写过程如下。
运行后单击命令按钮,文本框中显示的输出结果为()。
PrivateSubCommandl_Click()
Dima(5),b(5)
Forj=1to4
A(j)=3*j
B(j)=a(j)*3
Nextj
Textl.Text=b(j\2)
EndSub
A.25B.18C.36D.35
11.以下关于数组声明中,不合法的是()。
A.DimxB.Dimy()AsInteger
x=Array(1,2,3,4)y=Array(1,3,5,7)
C.Dima()D.Dimb()
…………
ReDima(10)ReDimb(3To9)
12.若有定义:
Dima(3,5),则对数组元素引用正确的是()。
A.a[3,5]B.a(5)C.a(0,0)D.a[2]
13.设有如下程序,单击命令按钮command1后,输出结果是()。
Subsearch(a(),ByValkeyAsVariant,index%)
Dimi%
Fori=LBound(a)ToUBound(a)
Ifkey=a(i)Thenindex=i:
ExitSub
Nexti
index=-1
EndSub
PrivateSubCommand1_Click()
Dimb(),nAsInteger
b=Array(1,3,5,7,9,11,13)
Callsearch(b,11,n):
Printn
EndSub
A.4B.7C.6D.5
14.设有如下程序,程序运行后,输出结果是()。
PrivateSubForm_Load()
DimkAsInteger,iasInteger,jasInteger,a(2,2)AsInteger
Show
k=1
Fori=0To2
Forj=0To2
a(i,j)=k:
k=k+1
Nextj
Nexti
Fork=0To2
Printa(k,2-k);
Nextk
EndSub
A.357B.369C.159D.147
15.设有如下程序,单击命令按钮command1后,输出结果是()。
Subcount1(a(),num()AsInteger)
Dimi%
Fori=LBound(a)ToUBound(a)
num(a(i))=num(a(i))+1
Nexti
Fori=LBound(num)ToUBound(num)
Printnum(i);
Nexti
EndSub
PrivateSubCommand1_Click()
Dimb(),cnt(3)AsInteger
b=Array(1,0,2,0,3,1,0,2,1,3,1,3)
Callcount1(b,cnt)
EndSub
A.2433B.3432C.3433D.3423
16.设有如下程序,程序运行后,单击窗体,窗体上显示的是()。
OptionBase1
PrivateSubForm_Click()
Dima,iAsInteger
a=Array(2,3,4,5,6,7,8,9)
Fori=0To3
Printa(5-i);
Nexti
EndSub
A.4321B.5432C.6543D.7654
17.设有如下程序,当单击命令按钮command1后,输出结果是()。
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger,b(5,5)AsInteger
Fori=1To3
Forj=1To3
b(i,j)=(i-1)*3+j:
Printb(i,j);
Nextj
Nexti
EndSub
A.123B.234C.147D.123
246345258456
369456369789
18.以下过程可求出矩阵a主对角线上的元素之和,选择填空完成该过程。
……
Subcommand1_click()
Dimi%,j%,sum%
Fori=
Forj=LBound(a,2)ToUBound(a,2)
Ifi=jThensum=sum+a(i,j)
Nextj
Nexti
Print"矩阵a的主对角线上的元素之和="∑
EndSub
A.0to5B.LBound(a,0)ToUBound(a,0)
C.LBound(a,1)ToUBound(a,1)D.UBound(a,1)ToLBound(a,1)
9.可以用()命令释放动态数组所占用的内存。
A.ReDimB.PreseveC.EraseD.Option
10.以下过程的功能是将字符串str1中所有的字符ch删除,选择填空完成该过程。
Subchange(str1AsString,chAsString)
Dimstr2AsString,iAsInteger,len1AsInteger
len1=Len(str1)
Fori=1Tolen1
IfMid(str1,i,1)<>chThenstr2=str2+Mid(str1,i,1)
Nexti
_____________
EndSub
A.str2=str1B.str1=str2C.change=str2D.change=str1
二、填空题
1.若程序中有如下的数组声明,请写出该数组的数组名、数组类型、维数、各维的上下界、数组的大小,并依次列出数组中的各个元素:
Dima(一1to2,3)AsSingle
2。
要定义一个整型数组,该数组包含12个元素。
按照VB默认的下界值,请判断下列数组声明是否正确,并填写理由:
(1)n=12
Dima(1ton)AsInteger判断:
_理由:
_
(2)Dima%()
n=11
Redima(n)判断:
_理由:
(3)Dima%[2,3]判断:
_理由:
(4)Dima(1,1,2)AsInteger判断:
_理由:
_
(5)Dima%(10)
Redima(1to12)判断:
_理由:
(6)Dima!
()
ReDima(3,2)AsInteger判断:
_理由:
(7)Dima%(2,3)判断:
_理由:
(8)Dima(1to31to4)AsInteger判断:
_理由:
_
3.在窗体上画一个命令按钮,‘然后编写如下事件过程:
PrivateSubCommandl_Click()
Dima(1To10)
Dimp(1To3)
K=5
Fori=1To10
a(i)=i
nexti
Fori=1To3
p(i)=a(i*i)
Nexti
Fori=1To3
k=k+p(i)*2
Nexti
Printk
EndSub
程序运行后,单击命令按钮,输出结果是______________。
4.下面的程序用“冒泡”法将数组a中的10个整数按升序排列,请将以下程序补充完整。
OptionBase1
PrivateSubCommandl_Click()
Dima
a=Array(78,45,34,28,43,87,827,66,98,133)
Fori=__________________
Forj=____________________
Ifa(i)_________a(j)Then
al=a(i)
a(i)=a(j)
a(j)=al
EndIf
Nextj
Nexti
Fori=1To10
Printa(i)
Nexti
EndSub
5.数组a包括10个整型元素,以下过程的功能是求出各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出,填空完成该过程。
OptionBase0
Subsum(a()AsInteger)Dimb(9)AsInteger,iAsInteger
Fori=1To9
____________________
Nexti
Fori=1To9
Printb(i);
IfiMod3=0Then______________________
Nexti
EndSub
6.若声明数组时不明确指定数据类型,其默认是_________________类型。
7.以下过程的功能是将二维数组a的行和列元素互换后存到另一个二维数组b中,填空完成该过程。
Subver(a(),b())
DimiAsInteger,jAsInteger,mAsInteger,nAsInteger
i=LBound(a,1):
j=UBound(a,1)
m=LBound(a,2):
n=UBound(a,2)
ReDimb(mTon,iToj)
Fori=LBound(a,1)Toj
For_________________________
b(m,i)=a(i,m)
Nextm
_______________
EndSub
8.用语句dimA(5,4)定义的数组,若设置optionbase1,则有___________个元素。
9.以下程序段的功能是:
…………
Dima(),iAsInteger,jAsInteger,t
a=Array(4,2,0,9,7)
Fori=1To4
t=a(i):
j=i-1
DoWhilej>=0
Ift>a(j)Then
a(j+1)=a(j):
j=j-1
Else:
ExitDo
EndIf
Loop
a(j+1)=t
Nexti
…………
10.用ReDim命令多次为动态数组重新分配内存时,若在ReDim后出现了关键字_____________,则不能改变数组的维数。
11.以下程序段的功能是找出数组a中最大值和最小值的位置,并把它们对调,然后输出调整后的数组a中各个元素的值,填空完成该程序段。
…………
Dima(),iAsInteger,jAsInteger,kAsInteger,max,min
a=Array(12,5,8,0,9)
max=a(0):
min=a(0)
Fori=1To4
Ifa(i) min=a(i): ______________ EndIf Ifa(i)>maxThen max=a(i): k=i EndIf Nexti a(j)=max: _________________ Fori=0To4 Printa(i); Nexti ………… 12.若使用函数Array为变体数组各元素赋值,该数组必须是_______________数组。 13.以下函数的功能是检查一个n*n的二维数组是否对称,若对称则函数返回True,否则返回False,填空完成该函数。 Functioncheck(a())AsBoolean Dimi,j,m,n,flagAsBoolean flag=True i=LBound(a,1): ________________ Form=iToj-1 Forn=m+1Toj Ifa(m,n)<>a(n,m)Then_______________ Nextn Nextm check=flag EndFunction 14.声明有10行5列的整型数组的命令为: 。 15.一个数如果恰好等于它的除本身之外的所有因子之和,这个数就称为“完数”。 例如: 6的因子为1、2、3,而6=1+2+3,因此6是完数。 程序要求单击命令按钮后,找出1000以内的所有完数,添加到列表框List1中。 程序界面如图所示。 PrivateSubCommand1_Click() DimnAsInteger,iAsInteger DimsAsInteger Forn=2To1000 s=(37) Fori=1Ton-1 IfnModi=0Then(38) Next If(39)Then(40) Next EndSub 16.本程序采用矩阵变换法对西文进行加密。 取大于或等于原文长度的最小平方数,构成一个n*n的矩阵,将原文中的字符逐个按行写入该矩阵,多余的矩阵元素则写入空格,再按列读出此矩阵,即为密文。 PrivateSubCommand1_Click() Dimst1AsString,st2AsString DimLAsInteger,nAsInteger DimiAsInteger,jAsInteger Dima()AsString*1 st1=Text1.Text L=Len(st1) If(41)Then n=(42) Else n=Int(Sqr(L))+1 EndIf (43) Fori=1Ton Forj=1Ton If(i-1)*n+j>LThen a(i,j)="" Else a(i,j)=(44) EndIf Next Next Fori=1Ton Forj=1Ton st2=st2&(45) Next Next Text2.Text=st2 EndSub 17.本程序用于验证一个自然数N的立方等于N个连续的奇数之和。 其中最大的奇数P=N(N+1)-1。 例如43=19+17+15+13,最大奇数等于19。 下图是本程序的运行界面。 DimnAsInteger PrivateSubCmd1_Click() DimnumAsLong,pAsInteger,xAsString IfText1.Text<>""AndIsNumeric(Text1.Text)Then n=(46) num=n*n*n Text2.Text=(47) p=n*(n+1)-1 x=x&Str(p)&"+" Fori=1Ton-2 (48) x=x&Str(p)&“+” Nexti p=p-2 x=(49) Text3.Text=x Else MsgBox"数据错误! ",48,"VB试题" EndIf EndSub PrivateSubCmd3_Click() End EndSub 在上面的窗体中,命令按钮“清除”的名称属性是(50)。 三、判断题 1.若事先没有用Dim声明动态数组,不能直接用ReDim来声明动态数组。 () 2.对同一个动态数组,可以多次用ReDim来多次为其分配内存空间。 () 3.不是所有数组的下标值必须是连续整数。 () 4.控件数组必须在窗体设计时产生,不能在程序运行过程中添加。 () 5.在窗体设计时,只要窗体上出现同一种控件具有相同标题的情况,系统就会提示是否真的要产生控件数组。 () 6.控件数组中各数组元素通过其TabIndex属性来识别。 () 7.不能用Lbound函数来确定控件数组的下界。 () 8.若用ReDim将某个动态数组定义为多维数组,则不能再用ReDim将其重新定义为一维数组。 () 9.在使用控件数组时,各数组元素共用相同的事件过程。 () 10.在使用动态数组时,可能会在程序执行到一半才提示用户内存不足。 ()
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 习题