Dim a(3,0,5)
A.15 B.8 C.24 D.16 4.如下程序输出的结果是()。
Dim a() As Integer={1,2,3,4,5,6,7} For i=0 To UBound(a)
a(i)a=(i)*a(i)
Next i MsgBox(a(i))
A.49 B.0 C.不确定 D.程序出错 5.如下程序输出的结果是()。
Sub Button1_Click(... ...) Handles Button1.Click Dim i%, j%
Dim a( ) As Integer={0,1,2,3,4,5,6,7,8,9},b(3,3) As Integer Label1.Text= “” For i=1 To 3
Label1.Text &=Space(i*3) For j=i To3
b(i,j)=a(i*j)
Label1.Text &=Space(6-Len(b(i,j)) & b(i,j)
Next j
Label1.Text &=vbCrLf Next i
End Sub
A. 1 2 3 B.1 C.1 4 7 D. 1 2 3
4 5 6 4 5 2 4 6 4 6 7 8 9 7 8 9 3 6 9 9
二.填空题
1. 在一维数组中利用移位的方法显示如图所有的结果。
Sub Button1_Click(.....) Handles Button1.Click Dim a(7) As Integer, i%, t%, j% Label1.Text= “” For i=1 To 7 a(i)=i
Label1.Text &=a(i) & “ ” Next i
Label1.Text &=vbCrLf For i=1 To 7
t=_____________
For j=6 To 1 Step -1
__________ Next j
a(1)=___________
For j=1 To 7 Label1.Text &=a(j) & “ ” Next j
Label1.Text &=_________
Next i End Sub
2.下面程序对已知数组a(),删除数组中某个元素。
Sub Button1_Click(... ...) Handles Button1.Click
Dim a() As Integer={1,6,8,3,5,9,10,2,7,4} ,Key%, i%, j%
Key=Val(InputBox(“输入要删除的值”)) For i=0 To UBound(a)
If______________ Then
For j=i+1 To UBound(a)
_________________ Next j
ReDim _______________ MsgBox(“删除完成”)
Exit Sub End If
Next i
MsgBox(“找到不要删除的元素”) End Sub
3.矩阵相乘
两个矩阵能相乘的必要条件是:前一个矩阵的列数等于后一个矩阵的行数。例如,已知A为n×k的矩阵,B为k×m的矩阵,A×B的结果C矩阵为n×m,即: 5 10 15 5 20 A= 20 25 30
B= 10 25 15 30
350
800 1925
C= 800
Sub Button1_Click(.....) Handles Button1.Click
Dim a%(2,3),b%(3,2),c%(2,2),i%, j%, n%, k% Label1.Text=“” n=5
For i=1 To 2 For j=1 To 3
a(i,j)=n
________________ n=____________
Next j Next i
For i=1 To 2 For j=1 To 2
c(i,j)=0
For k=1 To 3
c(i,j)=c(i,j)+____________ Next k
Label1.Text &=c(i,j) & “ ”
Next j
Label1.Text &=vbCrLf
Next i End Sub
4.下面的程序是将输入的一个数插入到递减的有序数列中,插入后使该序列仍有序。
Sub Button1_Click(.....) Handles Button1.Click Dim i% , n% ,m%
Dim a() As Integer={9,17,15,13,11,9,7,5,3,1} n=UBound(a)
ReDim _____________________
m= Val(InputBox(“输出欲插入的数”)) For i=UBound(a) -1 To Step -1 If m>=a(i) Then ________________ If i=0 Then a(i)=m Else
___________ Exit For End If
Next i
For i=0 To __________
Label1.Text &=a(i) & “ ” Next i End Sub
5. 改进的冒泡法排序。
在教材中已介绍选择法、冒泡法。上例使用了插入法排序。本例使用改进的冒泡法排序,冒泡法排序在每一轮排序时将相邻的两个数比较,当次序不对就交换位置,出了内循环,最大数已沉底,小数上浮;每一轮仅使沉底的数确定了位置,有个n个数,外循环要进行n-1轮排序。为了提高效率,若在某一轮排序时,未发生排序位置交换,说明欲排序的序列已有序,排序就可以结束。在程序中增加一个逻辑变量来进行判断即可。程序如下:
Sub Button1_Click(... ...) Handles Button1.Click Dim Tag As Boolean ,n%, j%, i%, t% Dim a( ) As Integer={1,5,6,7,4,13,23,26,31,51}
n=UBound(a) For i=0 To n-1
Tag=False For j=0 To n-1-i If a(j)>a(j+1) Then
___________ ___________ ___________ a(j+1)=t
End If Next j
If Not Tag Then ___________
Next i
For i=0 To UBound(a)
Label1.Text &=a(i) & “ ” Next i
End Sub`
6.随机产生15个不重复的A-Z之间的字母(包括A,Z的大写字母),存放在字符数组中。
实现的思想是,每产生一个字母,在数组中查找已产生的字母。若找到,刚产生的字母作废,重新产生;如果找不到,则产生字母放入数组中。
Sub Button1_Click(.....) Handles Button1.Click
Dim s(14) As Char ,c As Char, n%, j%
s(0)=Chr(Int(Rnd()*26+65)) For n=1 To 14 re: c=__________
For j=0 To __________ ‘若找到有重复字母,重新产生
If s(j)=c Then ___________ Next j
s(n)=___________ ‘没有重复的加入数组中 Next n For j=0 To 14
Label1.Text &=s(j) & “ ” Next j
End Sub
7.随机产生15个A-J的大写字母,按字母降序排序后,将连续出现的字母用压缩的形式显示。例如,连续5个H字母显示为5*H,如图所示。数组a()用于存储随机产生字母。
Sub Button1_Click(.....)Handles.Click
Const N=14
Dim a(N) As Char ,c As Char Dim count%, i%, k% Label1.Text= “” For i=0 To N a(i)=___________
Label1.Text &=a(i) & “ ” Next i
Label1.Text &=vbCrLf For i=0 To N-1 k=i
For j=i+1 To N If a(j)>a(k) Then_________ Next j
c=a(i) :__________ :a(k)=c
Next i
For i=0 To N ‘输出排序的结果 Label1.Text &=a(i) & “ ” Next i
Label1.Text &=vbCrLf
i=0
Do While i<=N ‘压缩显示相同元素
相关推荐: