数组习题文档格式.docx
《数组习题文档格式.docx》由会员分享,可在线阅读,更多相关《数组习题文档格式.docx(19页珍藏版)》请在冰豆网上搜索。
6.在窗体上画一个命令按钮(其名称属性为Commandl),然后编写如下代码。
程序运行后,单击命令按钮,其输出结果为()。
Dima(4,4)
Fori=1To4
Forj=1To4
a(i,j)=(i-1)*3+j
Nextj
Nexti
Fori=3To4
Forj=3To4
Printa(j,i);
Print
A.69B.710C.811D.912
7108119121013
7.在窗体上画一个命令按钮(其名称属性为Commandl),然后编写如下代码。
程序运行后,单击命令按钮,输出结果为()。
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
Endif
Printml
Printm2
A.48B.237C.498D.498
4154
8.在窗体上画一个命令按钮,编写过程如下。
运行后单击命令按钮,输出结果为()。
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
Printa
A.30B.28C.2D.18
9.在窗体上画一个命令按钮,然后输入以下有关数组定义的语句序列,则程序将()。
Dima()AsInteger
DimsizeAsInteger
PnvateSubCommandl_CLck()
size=InputBox(“请输人:
“)
ReDima(size)
……
EndSub
A.出错,数据类型不匹配
B.定义一个数组,该数组的大小与用户输人的数字相同
C.出错,重定义数组不合法
D.定义一个数组,该数组的元素即是用户输人的数字
10.在窗体上画一个命令按钮,编写过程如下。
运行后单击命令按钮,文本框中显示的输出结果为()。
Dima(5),b(5)
Forj=1to4
A(j)=3*j
B(j)=a(j)*3
Textl.Text=b(j\2)
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
index=-1
PrivateSubCommand1_Click()
Dimb(),nAsInteger
b=Array(1,3,5,7,9,11,13)
Callsearch(b,11,n):
Printn
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
Fork=0To2
Printa(k,2-k);
Nextk
A.357B.369C.159D.147
15.设有如下程序,单击命令按钮command1后,输出结果是()。
Subcount1(a(),num()AsInteger)
num(a(i))=num(a(i))+1
Fori=LBound(num)ToUBound(num)
Printnum(i);
Dimb(),cnt(3)AsInteger
b=Array(1,0,2,0,3,1,0,2,1,3,1,3)
Callcount1(b,cnt)
A.2433B.3432C.3433D.3423
16.设有如下程序,程序运行后,单击窗体,窗体上显示的是()。
PrivateSubForm_Click()
Dima,iAsInteger
a=Array(2,3,4,5,6,7,8,9)
Fori=0To3
Printa(5-i);
A.4321B.5432C.6543D.7654
17.设有如下程序,当单击命令按钮command1后,输出结果是()。
DimiAsInteger,jAsInteger,b(5,5)AsInteger
Fori=1To3
Forj=1To3
b(i,j)=(i-1)*3+j:
Printb(i,j);
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)
Print"
矩阵a的主对角线上的元素之和="
&
sum;
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)
_____________
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.在窗体上画一个命令按钮,‘然后编写如下事件过程:
Dima(1To10)
Dimp(1To3)
K=5
Fori=1To10
a(i)=i
nexti
p(i)=a(i*i)
Fori=1To3
k=k+p(i)*2
Printk
程序运行后,单击命令按钮,输出结果是______________。
4.下面的程序用“冒泡”法将数组a中的10个整数按升序排列,请将以下程序补充完整。
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
Printa(i)
5.数组a包括10个整型元素,以下过程的功能是求出各相邻两个元素的和,并将这些和存在数组b中,按每行3个元素的形式输出,填空完成该过程。
OptionBase0
Subsum(a()AsInteger)Dimb(9)AsInteger,iAsInteger
Fori=1To9
____________________
Fori=1To9
Printb(i);
IfiMod3=0Then______________________
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
_______________
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
Loop
a(j+1)=t
…………
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)
Ifa(i)<
minThen
min=a(i):
______________
Ifa(i)>
maxThen
max=a(i):
k=i
a(j)=max:
_________________
Fori=0To4
Printa(i);
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)
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)
n=Int(Sqr(L))+1
(43)
Fori=1Ton
Forj=1Ton
If(i-1)*n+j>
LThen
a(i,j)="
"
a(i,j)=(44)
Next
st2=st2&
(45)
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&
“+”
Nexti
p=p-2
x=(49)
Text3.Text=x
Else
MsgBox"
数据错误!
48,"
VB试题"
EndIf
PrivateSubCmd3_Click()
End
在上面的窗体中,命令按钮“清除”的名称属性是(50)。
三、判断题
1.若事先没有用Dim声明动态数组,不能直接用ReDim来声明动态数组。
()
2.对同一个动态数组,可以多次用ReDim来多次为其分配内存空间。
()
3.不是所有数组的下标值必须是连续整数。
()
4.控件数组必须在窗体设计时产生,不能在程序运行过程中添加。
5.在窗体设计时,只要窗体上出现同一种控件具有相同标题的情况,系统就会提示是否真的要产生控件数组。
()
6.控件数组中各数组元素通过其TabIndex属性来识别。
7.不能用Lbound函数来确定控件数组的下界。
8.若用ReDim将某个动态数组定义为多维数组,则不能再用ReDim将其重新定义为一维数组。
()
9.在使用控件数组时,各数组元素共用相同的事件过程。
10.在使用动态数组时,可能会在程序执行到一半才提示用户内存不足。