您好,欢迎来到好走旅游网。
搜索
您的当前位置:首页数组习题

数组习题

来源:好走旅游网
一、选择题

1.按照VB默认的下界值,以下语句定义的数组中,( )是3行 3列的。 A.Dim mark(2, 2) B. Dim mark(3,3) C.Dim mark(2),mark(2) D,Dim mark(3),mark (3)

2.用 ( )可永久保存数据。

A.文件B.变量C.数组D.常量

3.用下面语句定义的数组的元素个数是 ( )。

Dim A(-2 To 3) As Integer

A.3 B. 4 C. 5 D.6 4.以下程序的输出结果是 ( )。 Option Base 1

Private Sub Commandl_Click() Dim arr(10),s(3) As Integer p=5 For i=1 To 10 arr(i)=i Next i

For i=1 To 3 s(i)=arr(i*i) Next i For i=1 To 3 p=p+s(i)*2 Next i Print p End sub

A.33 B. 28 C.35 D. 37

5.在窗体上画一个命令按钮,然后编写如下事件过程。运行程序,单击命令按钮,其输出结果是 ( )。

Option Base 1

Private Sub Commandl_Click() Dim a

a = Array(1,2, 3, 4) j=1

For i=4 To 1 Step-1 s=s+a(i)*j j=j*10 Next i Print s End Sub

A. 4321 B. 12 C.34 D.1234

6.在窗体上画一个命令按钮 (其名称属性为Commandl ),然后编写如下代码。程序运行后,单击命令按钮,其输出结果为 ( )。 Option Base 1

Private Sub Commandl_Click()

Dim a(4, 4) For i=1 To 4 For j=1 To 4 a(i, j)=(i-1)*3+j Next j Next i For i=3 To 4 For j=3 To 4 Print a(j,i); Next j Print Next i

End Sub

A.6 9 B.7 10 C.8 11 D.9 12

7 10 8 11 9 12 10 13

7.在窗体上画一个命令按钮 (其名称属性为Commandl ),然后编写如下代码。程序运行后,单击命令按钮,输出结果为 ( )。 Option Base 1

Private Sub Commandl_Click( ) a=Array(237, 126, 87, 48, 498) ml=a(1)

m2=1

If KeyAscii= 13 Then For i = 2 To 5 If a(i)>ml Then ml=a(i) m2 = i End If Next i End if Print ml Print m2 End Sub A.48

B . 237

C.498

D.498

4 1 5 4

8.在窗体上画一个命令按钮,编写过程如下。运行后单击命令按钮,输出结果为( )。 Option Base 1

Private Sub Commandl_Chck() a= 0 b=8

x=Array(8, 10, 12, 6) For i= 1 To 4 If x(i)>b Then

a=a+x(i) b=x(i) Else a=a-b End If Next i Print a

End Sub

A.30 B. 28 C.2 D. 18

9.在窗体上画一个命令按钮,然后输入以下有关数组定义的语句序列,则程序将( )。 Dim a()As Integer Dim size As Integer

Pnvate Sub Commandl_CLck() size=InputBox(“请输人:“) ReDim a(size) ……

End Sub

A.出错,数据类型不匹配

B.定义一个数组,该数组的大小与用户输人的数字相同 C.出错,重定义数组不合法

D.定义一个数组,该数组的元素即是用户输人的数字

10.在窗体上画一个命令按钮,编写过程如下。运行后单击命令按钮,文本框中显示的输出结果为 ( )。

Private Sub Commandl_Click() Dim a(5),b(5) For j = 1 to 4 A(j) =3*j B(j) =a(j)*3 Next j

Textl.Text = b( j\\2)

End Sub

A.25 B.18 C.36 D.35

11.以下关于数组声明中,不合法的是( )。

A.Dim x B.Dim y() As Integer x = Array(1, 2, 3, 4) y = Array(1, 3, 5, 7) C.Dim a() D.Dim b() …… ……

ReDim a(10) ReDim b(3 To 9)

12.若有定义:Dim a(3, 5),则对数组元素引用正确的是( )。 A.a[3,5] B.a(5) C.a(0,0) D.a[2]

13.设有如下程序,单击命令按钮 command1 后,输出结果是( )。 Sub search(a(), ByVal key As Variant, index%) Dim i%

For i = LBound(a) To UBound(a)

If key = a(i) Then index = i:Exit Sub Next i index = -1 End Sub

Private Sub Command1_Click() Dim b(), n As Integer b = Array(1, 3, 5, 7, 9, 11, 13) Call search(b, 11, n):Print n End Sub

A.4 B.7 C.6 D.5

14.设有如下程序,程序运行后,输出结果是( )。 Private Sub Form_Load()

Dim k As Integer, i as Integer ,j as Integer, a(2, 2) As Integer Show k = 1

For i = 0 To 2

For j = 0 To 2

a(i, j) = k:k = k + 1 Next j Next i For k = 0 To 2

Print a(k, 2 - k); Next k End Sub

A.3 5 7 B.3 6 9 C.1 5 9 D.1 4 7

15.设有如下程序,单击命令按钮 command1 后,输出结果是(Sub count1(a(), num() As Integer) Dim i%

For i = LBound(a) To UBound(a) num(a(i)) = num(a(i)) + 1 Next i

For i = LBound(num) To UBound(num) Print num(i); Next i

End Sub

Private Sub Command1_Click() Dim b(), cnt(3) As Integer

b = Array(1, 0, 2, 0, 3, 1, 0, 2, 1, 3, 1, 3) Call count1(b, cnt)

End Sub

A.2 4 3 3 B.3 4 3 2 C.3 4 3 3 D.3 4 2 3

16.设有如下程序,程序运行后,单击窗体,窗体上显示的是( Option Base 1

Private Sub Form_Click()

)。。 ) Dim a, i As Integer

a = Array(2, 3, 4, 5, 6, 7, 8, 9) For i = 0 To 3 Print a(5 - i); Next i

End Sub

A.4 3 2 1 B.5 4 3 2 C.6 5 4 3 D.7 6 5 4

17.设有如下程序,当单击命令按钮 command1 后,输出结果是( )。 Private Sub Command1_Click()

Dim i As Integer, j As Integer, b(5, 5) As Integer For i = 1 To 3

For j = 1 To 3

b(i, j) = (i - 1) * 3 + j:Print b(i, j); Next j Print Next i

End Sub

A.1 2 3 B.2 3 4 C.1 4 7 D.1 2 3 2 4 6 3 4 5 2 5 8 4 5 6

3 6 9 4 5 6 3 6 9 7 8 9

18.以下过程可求出矩阵 a 主对角线上的元素之和,选择填空完成该过程。 ……

Sub command1_click() Dim i%,j%,sum%

For i = For j = LBound(a, 2) To UBound(a, 2) If i = j Then sum = sum + a(i, j)

Next j Next i

Print \"矩阵 a 的主对角线上的元素之和=\" & sum; End Sub

A.0 to 5 B.LBound(a, 0) To UBound(a, 0)

C.LBound(a, 1) To UBound(a, 1) D.UBound(a, 1) To LBound(a, 1) 9.可以用( )命令释放动态数组所占用的内存。

A.ReDim B.Preseve C.Erase D.Option

10.以下过程的功能是将字符串 str1 中所有的字符 ch 删除,选择填空完成该过程。 Sub change(str1 As String, ch As String)

Dim str2 As String, i As Integer, len1 As Integer len1 = Len(str1) For i = 1 To len1

If Mid(str1, i, 1) < > ch Then str2 = str2 + Mid(str1, i, 1) Next i

_____________ End Sub

A.str2 = str1 B.str1 = str2 C.change = str2 D.change = str1

二 、填空题

1.若程序中有如下的数组声明,请写出该数组的数组名、数组类型、维数、各维的上下界、数组的大小,并依次列出数组中的各个元素: Dim a(一1 to 2, 3) As Single

2。要定义一个整型数组,该数组包含 12个元素。按照 VB默认的下界值,请判断下列数组声明是否正确,并填写理由: (1)n=12

Dim a(1 to n) As Integer (2) Dim a%( ) n=11

Redim a( n)

判断:_理由: 判断:_理由: 判断:_理由:_ 判断:_理由: 判断:_理由:

判断:_理由: 判断:_理由:_

判断:_理由:_

(3) Dim a%[2, 3] (4) Dim a(1, 1, 2) As Integer (5) Dim a%(10) Redim a(1 to 12)

(6) Dim a!( )

ReDim a( 3 , 2) As Integer (7) Dim a%(2, 3)

(8) Dim a(1 to 3 1 to 4) As Integer

3.在窗体上画一个命令按钮,‘然后编写如下事件过程: Private Sub Commandl_Click( ) Dim a(1 To 10) Dim p(1 To 3) K=5

For i=1 To 10 a(i) =i next i

For i = 1 To 3 p(i) = a(i*i) Next i

For i=1 To 3 k=k+p(i)*2 Next i Print k

End Sub

程序运行后,单击命令按钮,输出结果是______________。

4.下面的程序用 “冒泡”法将数组 a中的 10个整数按升序排列,请将以下程序补充完整。 Option Base 1

Private Sub Commandl_Click( ) Dim a

a=Array(78, 45, 34, 28, 43, 87, 827, 66, 98, 133)

For i=__________________ For j=____________________ If a(i)_________a(j) Then al = a(i) a(i)=a(j) a(j) = al End If Next j Next i For i=1 To 10 Print a(i) Next i

End Sub

5.数组 a 包括 10 个整型元素,以下过程的功能是求出各相邻两个元素的和,并将这些和存在数组 b 中,按每行 3 个元素的形式输出,填空完成该过程。 Option Base 0

Sub sum(a() As Integer) Dim b(9) As Integer, i As Integer For i = 1 To 9

____________________ Next i

For i = 1 To 9

Print b(i);

If i Mod 3 = 0 Then ______________________ Next i

End Sub

6.若声明数组时不明确指定数据类型,其默认是_________________类型。

7.以下过程的功能是将二维数组 a 的行和列元素互换后存到另一个二维数组 b 中,填空完成该过程。 Sub ver(a(), b())

Dim i As Integer, j As Integer, m As Integer, n As Integer i = LBound(a, 1):j = UBound(a, 1) m = LBound(a, 2):n = UBound(a, 2) ReDim b(m To n, i To j)

For i = LBound(a, 1) To j

For _________________________ b(m,i) = a(i, m) Next m

_______________

End Sub

8.用语句 dim A(5,4)定义的数组,若设置option base 1,则有 ___________个元素。 9.以下程序段的功能是: … … … …

Dim a(), i As Integer, j As Integer, t

a = Array(4, 2, 0, 9, 7) For i = 1 To 4

t = a(i):j = i-1

Do While j >= 0 If t > a(j) Then

a(j + 1) = a(j):j = j-1 Else: Exit Do End If Loop a(j + 1) = t

Next i

… … … …

10.用 ReDim 命令多次为动态数组重新分配内存时,若在 ReDim 后出现了关键字 _____________,则不能改变数组的维数。

11.以下程序段的功能是找出数组 a 中最大值和最小值的位置,并把它们对调,然后输出调整后的数组 a 中各个元素的值,填空完成该程序段。

… … … …

Dim a(), i As Integer, j As Integer, k As Integer, max, min a = Array(12, 5, 8, 0, 9) max = a(0):min = a(0)

For i = 1 To 4

If a(i) < min Then

min = a(i):______________ End If

If a(i) > max Then max = a(i):k = i End If

Next i

a(j) = max:_________________ For i = 0 To 4 Print a(i); Next i

… … … …

12.若使用函数 Array 为变体数组各元素赋值,该数组必须是_______________数组。 13.以下函数的功能是检查一个 n*n 的二维数组是否对称,若对称则函数返回 True,否则返回 False,填空完成该函数。 Function check(a( )) As Boolean

Dim i, j, m, n, flag As Boolean flag = True

i = LBound(a, 1):________________ For m = i To j - 1

For n = m + 1 To j

If a(m, n) < > a(n, m) Then _______________ Next n

Next m

check = flag End Function

14.声明有 10 行 5 列的整型数组的命令为: 。

15.一个数如果恰好等于它的除本身之外的所有因子之和,这个数就称为“完数”。例如:6的因子为1、2、3,而6=1+2+3,因此6是完数。程序要求单击命令按钮后,找出1000以内的所有完数,添加到列表框List1中。程序

界面如图所示。 Private Sub Command1_Click()

Dim n As Integer, i As Integer

Dim s As Integer For n = 2 To 1000 s = (37) For i = 1 To n - 1 If n Mod i = 0 Then (38)

Next

If (39) Then (40)

Next End Sub

16.本程序采用矩阵变换法对西文进行加密。取大于或等于原文长度的最小平方数,构成一个n*n的矩阵,将原文中的字符逐个按行写入该矩阵,多余的矩阵元素则写入空格,再按列读出此矩阵,即为密文。 Private Sub Command1_Click() Dim st1 As String, st2 As String Dim L As Integer, n As Integer Dim i As Integer, j As Integer Dim a() As String * 1 st1 = Text1.Text L = Len(st1)

If (41) Then n = (42) Else

n = Int(Sqr(L)) + 1 End If

(43) For i = 1 To n

For j = 1 To n

If (i - 1) * n + j > L Then a(i, j) = \" \"

Else

a(i, j) = (44) End If Next

Next

For i = 1 To n

For j = 1 To n

st2 = st2 & (45) Next Next

Text2.Text = st2

End Sub

17.本程序用于验证一个自然数N的立方等于N个连续的奇数之和。其中最大的奇数P=N(N+1)-1。例如43=19+17+15+13,最大奇数等于19。下图是本程序的运行界面。

Dim n As Integer

Private Sub Cmd1_Click() Dim num As Long,p As Integer,x As String

If Text1.Text<> \"\"And IsNumeric(Text1.Text) Then n = (46)

num = n * n * n

Text2.Text = (47) p = n * (n + 1) - 1 x = x & Str(p) & \"+\" For i=1 To n-2 (48) x=x & Str(p) & “+” Next i p = p - 2

x = (49) Text3.Text = x

Else MsgBox \"数据错误!\" , 48 , \"VB试题\" End If

End Sub

Private Sub Cmd3_Click()

End End Sub

在上面的窗体中,命令按钮“清除”的名称属性是 (50) 。

三、判断题

1.若事先没有用 Dim 声明动态数组,不能直接用 ReDim 来声明动态数组。 ( ) 2.对同一个动态数组,可以多次用 ReDim 来多次为其分配内存空间。 ( ) 3.不是所有数组的下标值必须是连续整数。 ( ) 4.控件数组必须在窗体设计时产生,不能在程序运行过程中添加。 ( ) 5.在窗体设计时,只要窗体上出现同一种控件具有相同标题的情况,系统就会提示是否真的要产生控件数组。 ( ) 6.控件数组中各数组元素通过其 TabIndex 属性来识别。 ( )

7.不能用 Lbound 函数来确定控件数组的下界。 ( ) 8.若用 ReDim 将某个动态数组定义为数组,则不能再用 ReDim 将其重新定义为一维数组。 ( ) 9.在使用控件数组时,各数组元素共用相同的事件过程。 ( ) 10.在使用动态数组时,可能会在程序执行到一半才提示用户内存不足。 ( )

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- haog.cn 版权所有 赣ICP备2024042798号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务