数组习题.docx
- 文档编号:10786253
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:14
- 大小:20.21KB
数组习题.docx
《数组习题.docx》由会员分享,可在线阅读,更多相关《数组习题.docx(14页珍藏版)》请在冰豆网上搜索。
数组习题
第五章数组习题
一、选择题
1.如下数组声明语句,(b)正确。
(A)Dima[3,4]asinteger(B)Dima(3,4)asinteger
(C)Dima(n,n)asinteger(D)Dima(34)asinteger
2.要分配存放如下方阵
,可使用声明语句(c)来实现(不能浪费空间)。
.
(A)Dima(9)assingle(B)Dima(3,3)assingle
(C)Dima(-1to1,-5to-3)assingle(D)Dima(-3to-1,5to7)asinteger
3.数组声明语句Dima(3,-2to2,5)asinteger中,数组a包含的元素个数为(120)。
4.用语句Dima(-3to5)asinteger所定义的数组的元素个数是(9)。
5.用语句Dima(3to5,-2to2)所定义的数组的元素个数是(15)。
6.下面的B中有(9)个数组元素。
DimB:
B=Array(1,2,3,4,5,6,7,8,9)
二、填空题
1.控件数组的名字由(name)属性指定,而数组中的每个元素由(index)属性指定。
2.由Array函数建立的数组的名字必须是(变体类型)类型。
3.数组定义DimD(20),数组D有(21个)个数组元素。
三、分析程序的运行结果
1.在窗体上画一个命令按钮command1,然后编写如下事件过程:
optionbase1
privatesubcommand1_click()
dima
a=array(1,2,3,4)
j=1
fori=4to1step-1
s=s+a(i)*j
j=j*101
nexti
prints
endsub
程序运行后,单击command1,输出结果为:
1234
2.在窗体上画一个命令按钮command1,然后编写如下事件过程:
optionbase1
privatesubcommand1_click()
dima,b(3,3)
a=array(1,2,3,4,5,6,7,8,9)
fori=1to3
forj=1to3
b(i,j)=a(i*j)
ifj>=Ithenprinttab(j*3);b(I,j);
nextj
nexti
endsub
程序运行后,单击command1,输出结果为:
123
46
9
3.在窗体上画一个命令按钮command1,然后编写如下事件过程:
optionbase1
privatesubcommand1_click()
dima%(3,3)
fori=1to3
forj=1to3
ifj>1andi>1then
a(i,j)=a(a(i-1,j-1),a(i,j-1))+1
else
a(i,j)=i*j
endif
printa(i,j);”“;
nextj
nexti
endsub
程序运行后,单击command1,输出结果为:
123
231
323
4.在窗体上画一个命令按钮command1,然后编写如下事件过程:
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
程序运行后,单击command1,输出结果为:
33
5.在窗体上画一个命令按钮command1,然后编写如下事件过程:
optionbase1
privatesubcommand1_click()
dima%(4,4)
fori=1to4
forj=1to4
a(i,j)=(i-1)*3+j
nextj
nexti
fori=1to4
forj=1to4
printa(j,i);
nextj
nexti
endsub
程序运行后,单击command1,输出结果为:
14710
25811
36912
471013
6.在窗体上画一个命令按钮command1,然后编写如下事件过程:
optionbase1
privatesubcommand1_click()
dima%(5,5)
fori=1to3
forj=1to4
ifj>1andi>1then
a(i,j)=i*j
endif
nextj
nexti
forn=1to2
form=1to3
printa(m,n);
nextm
nextn
endsub
程序运行后,单击command1,输出结果为:
000
046
7.在窗体上画一个命令按钮command1,然后编写如下事件过程:
privatesubcommand1_click()
dima%(5)
fori=0to4
a(i)=i+1
t=i+1
ift=3then
printa(i);
a(t-1)=a(i-2)
else
a(t)=a(i)
endif
ifi=3thena(i+1)=a(t-4)
a(4)=1
printa(i);
nexti
endsub
程序运行后,单击command1,输出结果为:
123141
8.在窗体上画一个命令按钮command1,然后编写如下事件过程:
privatesubcommand1_click()
dima%(3,3)
dimb
b=array(1,2,3,4,5,6,7,8,9)
j=1
fori=0to8
j=imod3
k=i\3
a(j,k)=b(i)
nexti
k=1
forj=0to2
printtab(3*(j+1));a(k,j);
nextj
endsub
程序运行后,单击command1,输出结果为:
258
9.在窗体上画一个命令按钮command1,一个文本框text1,然后编写如下事件过程:
privatesubcommand1_click()
dimb
b=array(34,5,13,35,9,6,42)
fori=1toubound(b,1)
ifb(i)>b(i-1)then
x=b(i)
forj=i-1to0step-1
ifb(j)>xthenexitfor
b(j+1)=b(j)
nextj
b(j+1)=x
endif
nexti
text1=””
fori=0toubound(b,1)
text1=text1+str(b(i))+”,”
nexti
endsub
运行程序后,文本框text1中的内容是:
42,35,34,13,9,6,5
10.在窗体上画一个命令按钮command1,然后编写如下事件过程:
privatesubcommand1_click()
dima(3,3)
fori=0to3
forj=0to3
a(i,j)=(i+1)*10+j
nextj,i
fori=0to3
forj=0to3
ifi x=a(i,j): a(i,j)=a(j,i): a(j,i)=x endif nextj,i fori=0toubound(a,1) forj=0toubound(a,2) printa(i,j); nextj print nexti endsub 运行程序后,文本框text1中的内容是: 10203040 11213141 12223242 13233343 11.在窗体上画一个命令按钮command1,然后编写如下事件过程: privatesubcommand1_click() dimarr1%(10),arr2(10) n=3 fori=1to5 arr1(i)=i arr2(n)=2*n+i nexti printarr2(n);arr1(n) endsub 程序运行后,单击command1,输出结果为: 113 12.在窗体上画一个命令按钮command1,然后编写如下事件过程: privatesubcommand1_click() dimm%(10) fork=1to10 m(k)=12-k nextk x=6 printm(2+m(x)) endsub 程序运行后,单击command1,输出结果为: 4 13.在窗体上画一个命令按钮command1,然后编写如下事件过程: privatesubcommand1_click() dimb b=array(56,22,16,67,26,14,9,87) k=3 dowhilek b(k)=b(k+1) k=k+1 loop printb(5) endsub 程序运行后,单击command1,输出结果为: 9 14.在窗体上画一个命令按钮command1,然后编写如下事件过程: privatesubcommand1_click() dimb,a(2,4) b=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14) fori=0to2 forj=0to4 a(i,j)=b(i*(ubound(a,2)+1)+i) nextj nexti printb(i*(ubound(a,2)+1)-3) endsub 程序运行后,单击command1,输出结果为: 13 15.在窗体上画一个命令按钮command1,然后编写如下事件过程: privatesubcommand1_click() dima(5to16) dimb b=array(1,2,3,4,5,6,7,8,9) fori=1to8 a(5+i)=b(i) nexti printa(7) endsub 程序运行后,单击command1,输出结果为: 3 16.在窗体上画一个命令按钮command1,然后编写如下事件过程: privatesubcommand1_click() dimb,a(3,3) b=array(1,2,3,4,5,6,7,8,9) j=1 fori=0to8 k=i\3: j=Imod3 a(k,j)=b(i) printa(k,j); ifj=2thenprint nexti endsub 程序运行后,单击command1,输出结果为: 123 456 789 17.在窗体上画一个名称为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 程序运行后,单击命令按钮,窗体上显示的是 123 456 789 18.在窗体上画一个名称为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 程序运行后,单击command1,文本框中显示的结果为: 12 四、简答题 1.要分配存放12个元素的整形数组,下列数组声明(若无下界,按默认规定)哪些符合要求? (1)n=12 (2)Dima%() Dima(1ton)asintegern=11 ReDima(n) (3)Dima%[2,3](4)Dima(1,1,2)asinteger (5)Dima%(10)(6)Dima! () ReDima(1to12)ReDima(3,2)asinteger (7)Dima%(2,3)(8)Dima(1to31to4)asinteger 2.已知下面的数组声明,写出它的数组名、数组类型、维数、各维的上下界、数组的大小,并按行的顺序列出各元素。 Dima(-1to2,3)assingle 3.静态数组和动态数组的区别是什么? 在声明静态数组、重定义动态数组时的下标都可以用变量来表示吗? 4.已声明了静态数组a(3,4),能否在下面再用重定义动态数组a(4,4)来重定义A数组的大小? 5.使用ReDim语句可以改变数组类型吗? 6.在ReDim语句中加了Preserve关键字,对重定义数组有何限制? 7.利用随机数生成两个四行四列的矩阵(数据不一定相同,前者范围在30~70,后者为101~135)。 要求: (1)将两个矩阵相加结果放入C矩阵中。 (2)将a矩阵转置。 (3)求C矩阵中元素的最大值和下标。 (4)以下三角形式显示A矩阵、上三角形式显示B矩阵。 (5)将A矩阵第一行与第三行对应元素交换位置,即第一行元素放到第三行,第三行元素放到第一行。 (6)将A矩阵两条对角线元素之和。 (7)将A矩阵按列的次序把各元素放入一位数组D中,显示结果。 8.声明一个有20个元素的一维字符类型数组,要求: (1)由随机数形成小写字母构成的数组,每个元素的字符个数由随机数产生,范围1~11。 (2)要求将生成的数组分四行显示。 (3)显示生成的字符数组中字符最多的元素。 9.自定义一个职工类型,包含职工号、姓名和工资。 声明一个职工类型的动态数组。 输入n个职工的数据,要求按工资递减的顺序排序,并显示排序的结果,每个职工一行显示三项信息。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数组 习题