23 数组.docx
《23 数组.docx》由会员分享,可在线阅读,更多相关《23 数组.docx(20页珍藏版)》请在冰豆网上搜索。
![23 数组.docx](https://file1.bdocx.com/fileroot1/2023-1/27/15bab6a0-d5cf-4c2b-af7b-354859ed1a83/15bab6a0-d5cf-4c2b-af7b-354859ed1a831.gif)
23数组
2.3数组练习
一、选择题
1、在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:
PrivateSubCommand1_Click()
Dimarray1(10,10)AsInteger
Dimi,jASInteger
Fori=1To3
Forj=2To4
array1(i,j)=i+j
Nextj
Nexti
Text1.Text=array1(2,3)+array1(3,4)
EndSub
程序运行后,单击命令按钮,在文本框中显示的值是(A)
A、12B、13C、14D、15
提示:
即把下标相加赋值勤=给这个对应的数组。
2、在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:
PrivateSubCommand1_Click()
DimiASInteger,jASInteger
Dima(10,10)AsInteger
Fori=1To3
Forj=1To3
a(i,j)=(i–1)*3+j
Printa(i,j);
Nextj
Print
NextI
EndSub
程序运行后,单击命令按钮,窗体上显示的是(D)
A、
123
246
369
B、
234
345
456
C、
147
258
369
D、
123
456
789
3、设有如下程序:
OptionBase0
PrivateSubForm_Click()
Dima
DimiASInteger
a=Array(1,2,3,4,5,6,7,8,9)
Fori=0To3
Printa(5–i);
Next
EndSub
程序运行后,单击窗体,则在窗体上显示的是(C)
A、4321B、5432C、6543D、7654
4、在窗体上画一个命令按钮,名称为Command1,然后编写如下事件过程:
OptionBase0
PrivateSubCommand1_Click()
DimcityAsVariant
city=Array("北京","上海","天津","重庆")
Printcity
(1)
EndSub
程序运行后,如果单击命令按钮,则在窗体上显示的内容是(D)
A、空白B、错误信息C、北京D、上海
5、设在窗体上有一个名称为Command1的命令按钮,并有以下事件过程:
PrivateSubCommand1_Click()
StaticbAsVariant
b=Array(1,3,5,7,9)
……
EndSub
此过程的功能是把数组b中的5个数逆序存放(即排列为9,7,5,3,1)。
为实现此功能,省略号处的程序段应该是(C)
A、
Fori=0To5–1\2
tmp=b(i)
b(i)=b(5–i–1)
b(5–i–1)=tmp
Next
B、
Fori=0To5
tmp=b(i)
b(i)=b(5–i–1)
b(5–i–1)=tmp
Next
C、
Fori=0To5\2
tmp=b(i)
b(i)=b(5–i–1)
b(5–i–1)=tmp
Next
D、
Fori=1To5\2
tmp=b(i)
b(i)=b(5–i–1)
b(5–i–1)=tmp
Next
6、在窗体上画一个名称为Command1的命令按钮,然后编写如下代码:
OptionBase1
PrivateSubCommand1_Click()
d=0
c=10
x=Array(10,12,21,32,24)
Fori=1To5
Ifx(i)>cThen
d=d+x(i)
c=x(i)
Else
d=d-c
EndIf
Nexti
Printd
EndSub
程序运行后,如果单击命令按钮,则在窗体上输出的内容为(C)。
A、89B、99C、23D、77
7、以下有关数组定义的语句序列中,错误的是(D)
A、
Staticarr1(3)
arr1
(1)=100
arr1
(2)="Hello"
arr1(3)=123.45
B、
Dimarr2()AsInteger
DimsizeAsInteger
PrivateSubCommand2_Click()
size=InputBox("输入:
")
ReDimarr2(size)
......
EndSub
C、
OptionBase1
PrivateSubCommand3_Click()
Dimarr3(3)AsInteger
......
EndSub
D、
DimnAsInteger
PrivateSubCommand4_Click()
Dimarr4(n)AsInteger
......
EndSub
8、下面的语句或方法,错误的有(C)个(其中m和n都为integer型变量)
(1)dimarty(m,n)asinteger
(2)n=32764+5
(3)printA=A+B;A+B
(4)Chdrive"c:
"
A、1B、2C、3D、4
提示:
(1)定义数组时的上下界必须确定值
(2)print语句不能打印关系式,可以打印表达式,(3)chdrive语句的参数是一个字符串型的参数,例如:
chdrive"d"
010705、下列程序打印结果为(A)。
PrivateSubCommand1_Click()
Dima(5)AsString
DimbAsInteger
DimiAsInteger
Fori=0to5
a(i)=i+1
Printa(i);
Nexti
EndSub
A、123456B、6C、123456D、0
提示:
字符串输出没有正负号,字符之间没有空格,数字有正负号,字符之间有空格。
9、以下程序的输出结果是(A)
optionbase1
privatesubcommand1_click()
dima(10),p(3)asinteger
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
A、33B、28C、35D、37
10、在窗体上添加一个命令按钮,名为command1,然后为该命令按钮编写如下事件过程,该过程执行结果为(B)
optionbase1
privatesubcommand1_click()
dimaasvariant
a=array(1,2,3,4)
j=1
fori=4to1step–1
s=s+a(i)*j
j=j*10
nexti
prints
endsub
A、4321B、1234C、34D、12
提示:
本题的难点是数组在循环中的计算。
11、在窗体上画一个名称为text1的文本框和一个名称为command1的命令按钮,然后编写如下事件过程:
privatesubcommand1_click()
dimarray1(10,10)asinteger
dimi,jasinteger
fori=1to3
forj=2to4
array1(i,j)=i+j
nextj
nexti
text1.text=array1(2,3)+array1(3,4)
endsub
程序运行后,单击命令按钮,在文本框中显示的值是(A)
A、12B、13C、14D、15
12、在窗体上添加一命令按钮,其名为command1,然后编写代码如下:
optionbase1
privatesubcommand1_click()
dimarr(4)asinteger
dimarr1(4)asinteger
n=3
fori=1to4
arr(i)=i
arr1(n)=2*n+i
nexti
printarr1(n);arr(n)
endsub
程序的运行结果为(C)
A、311B、113C、103D、313
提示:
本题难点是循环体内的变量赋值。
arr(3)=3比较容易理解,只是arr1(3)在四次循环中最后的结果替代了前面的值一,即arr1(3)=2*3+4=10
13、dimA(11to30)所定义的数组有(B)个元素
A、11B、20C、30D、330
提示:
数组的元素个数为(上界–下界+1)
14、下列事件的执行结果是(C)
PrivateSubCommand1_Click()
Dima(5)AsInteger
DimkAsInteger
DimtotalAsInteger
a
(1)=2
a
(2)=5
a(3)=4
a(4)=10
a(5)=6
Fork=1To5
total=total+a(k)
Nextk
Printtotal
EndSub
A、10B、15C、27D、35
15、下列程序的输出结果是(B)
PrivateSubCommand1_Click()
Dima(5,5)
Fori=1To3
Forj=1To4
a(i,j)=i*j
Nextj
Nexti
Forn=1To2
Form=1To3
Printa(m,n);"";
Nextm
Nextn
EndSub
A、246123B、123246
C、123456D、654321
16、下列程序的输出结果是(C)
OptionBase1
PrivateSubCommand1_Click()
a=Array(237,126,87,48,498)
m1=a
(1)
m2=1
Fori=2To5
Ifa(i)>m1Then
m1=a(i)
m2=i
EndIf
Nexti
Printm1,m2
EndSub
A、4842B、3714C、9854D、984
17、程序最后的结果是(D)
OptionBase1
PrivateSubCommand1_Click()
DimaAsVariant
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
18、有下列程序:
privatesubcommand1_click()
dimmyweek,myday
myweek=array("Mon","Tue","Wed","Thu","Fri","Sat","Sun")
myday=myweek
(2)
myday=myweek(4)
Msgboxmyday
endsub
运行后,弹出的消息窗口显示的是(A)
A、Fri
B、Tue
C、Wed
D、Thu
提示:
数组下界没有用optionbase1,说明其下界为0,所以myweek(4)为数组中第5个字符。
myweek
(2)中的数据被myweek(4)覆盖了
二、填空题:
1、设有程序:
OptionBase1
PrivateSubCommand1_Click()
Dimarr1,MaxasInteger
arr1=Array(12,435,76,24,78,54,866,43)
Max=arr1
(1)
Fori=1To8
Ifarr1(i)>MaxThenMax=arr1(i)
Nexti
Print"最大值是:
";Max
EndSub
以上程序的功能是:
用Array函数建立一个含有8个元素的数组,然后查找并输出该数组中元素的最大值。
请填空。
2、以下程序打印出两个矩阵,阅读程序,并在处填上正确内容
123
456
789
987
654
321
privatesubcommand1_click()
dimb(3,3)
fori=1to3
forj=1to3
k=k+1
b(i,j)=k
printb(i,j);
nextj
print
nexti
fori=3to1step–1
print
forj=3to1step–1
printb(i,j);
nextj
nexti
endsub
提示:
填空[10]和填空[12]的print语句起换行作用,填空[11]使数组的行逆序显示,填空[13]控制矩阵中同一行的元素按逆序显示。
空打印print操作是换行。
3、在程序中,关于数组的说明语句只有一条dima(100),则数组a包括了101个元素,数组的下标下界为0
提示:
在vb中,如果不指明数组下标的下界则缺省数组的下标的下界为0。
4、下列程序运行后,在窗口中显示______50_________
PrivateSubCommand1_Click()
Dima(100)
Fork=1To100
a(k)=2*k
Nextk
Printa(a(13)–1)
EndSub
5、以下程序完成的功能是:
单击命令按钮,显示如图所示矩阵。
请将程序中的_________处补充完整。
PrivateSubCommand1_Click()
Dima(5,5)
Fori=1To5:
a(1,i)=____i___:
Next
Fori=2To5
Forj=1To4
a(i,j)=a(____i–1,j+1______)
Nextj
a(i,j)=a(i–1,1)
Nexti
Fori=1To5
Forj=1To5
Printa(i,j);
Nextj
Print
Nexti
EndSub
6、以下是产生100个在–100~100之间的各不相同的随机整数的程序.填写完整.
PrivateSubCommand1_Click()
Dimb(100)
Forj=1To100
Do
IfRnd<0.5Thena=–1Elsea=1
b(j)=___a______*Int(Rnd*101)
flag=1
Fork=1To____j–1____
Ifb(j)=b(k)Thenflag=0
Nextk
LoopUntilflag=1
Printb(j)
Nextj
EndSub
7、下列程序的功能是显示出10个–100~100之间的随机整数,并找出最大值.填写代码
PrivateSubCommand1_Click()
Dimb(10)
Fori=1To10
x=Rnd
Ifx>0.5Theny=1Else___y=–1_______
b(i)=y*Int(Rnd*101)
Printb(i)
Nexti
Max=___b
(1)______
Fori=2To10
Ifb(i)>MaxThenMax=b(i)
Nexti
Print"最大值为";____Max________
EndSub.F.
8、素数是除了能被1和它自己整除以外,不能别其他任何数整除的数.下面的代码是求100~150之间的素数并输出,每行输出4个数据.填空.
输出结果为
101103107109
113127131137
139149
PrivateSubCommand1_Click()
Dimm(100)
n=0
Fora=_____100to150_______
flag=0
Fori=2ToSqr(a)
Ifa/i=Int(a/i)Thenflag=1
Nexti
Ifflag=0Then
n=n+1
_m(n)=a_____
EndIf
Nexta
Fori=1Ton
If__i/4=int(i/4)或iMod4=0_Then
Printm(i)
Else
Printm(i);
EndIf
Nexti
EndSub
9、要打印100个–500~500之间不同的随机整数,并找出第几个是最大的.填写代码
PrivateSubCommand1_Click()
Dimb(100)
Forj=1To100
x=Rnd
Ifx>0.5Theny=1Elsey=–1
b(j)=y*Int(Rnd*501)
flag=0
k=1
Whileflag=0Andk<=j–1
Ifb(j)<>b(k)Then
___flag=1_______
k=k+1
EndIf
Wend
Printb(j)
Nextj
Print
p=1
Max=__b
(1)___
Forn=2To100
Ifb(n)>MaxThen
Max=b(n)
p=____n_______
EndIf
Nextn
Print"最大数是";Max
Print"位置在第";p;"个"
EndSub
10、已知数组A(4,4),各个元素在程序运行时被赋值并显示,形成四阶方阵.填写代码,使产生一个转置方阵,让放在A中,并显示出来.
例如:
1234
1234
1234
1234
1111
2222
3333
4444
PrivateSubCommand1_Click()
Dima(4,4)
Fork=1To4
Forj=1To4
a(k,j)=j
Printa(k,j);
Nextj
Print
Nextk
Print
Fork=2To4
Forj=1To____k_____
t=a(j,k)
a(j,k)=____a(k,j)_____
a(k,j)=t
Nextj
Nextk
Fork=1To4
Printa(k,1);a(k,2);a(k,3);a(k,4)
Nextk
EndSub
11、下面程序运行后,输出的结果是如下的矩阵:
4710
5811
6912
请在程序处填入正确的内容。
PrivateSubCommand1_Click()
Dima(3,3)
Forj=1To3
Fork=1To3
a(j,k)=j+k*3
Printa(j,k);
Nextk
Print
Nextj
EndSub
12、下面程序的功能是产生100个小于1000(不含1000)的随机正整数,并统计其中5的倍数所占比例,但程序不完整,请在处把程序补充完整。
PrivateSubCommand1_Click()
Dima(100)
Forj=1To100
a(j)=Int(Rnd*999+1)或Int(Rnd*999)+1
ifa(j)Mod5=0thenk=k+1
Printa(j)
Nextj
Print
Printk/100
EndSub
13、窗体中添加一个命令按纽,并编写如下程序代码:
PrivateSubCommand1_Click()
k=0
Forj=1To2
Fori=1To3
k=i+1
Nexti
Fori=1To7
k=k+1
Nexti
Nextj
MsgBoxk
EndSub
程序运行后,消息对话框中显示11。
14、添加一个命令按纽,并编写如下代码。
已知程序的运行结果如下矩阵,请在填空填上正确的答案使程序完整。
1001
0110
0110
1001
PrivateSubCommand1_Click()
Dima(4,4)
Fori=1To4
Forj=1To4
Ifj=iorj=4–i+1Then
a(i,j)=1
Else
a(i,j)=0
EndIf
Nextj
Nexti
Fori=1To4
forj=1to4
Printa(i,j)
Nextj
Nexti
EndSub
15、在窗体上画一个命令按纽,然后编写如下的事件过程:
PrivateSubCommand1_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
程序运行后,单击命令按纽,输出结果是33。
16、下面程序运行后,输出的结果