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
本站由北京市万商天勤律师事务所王兴未律师提供法律服务