当前位置:文档之家› 实验4-循环与数组

实验4-循环与数组

VB程序设计实验四
实验目的
●掌握循环嵌套
●掌握一维数组和二维数组的操作
实验内容
一、单选题(答案填写在“”实验4答题卡.xlsx文件中)
1.数组具有相同的_____________。

A.下标
B.类型
C.数值
D.存放地址
2.重定义数组大小的语句是______________。

A.Dim语句
B.ReDim语句
C.Static语句
D.Public语句
3.使用Dim A(100) As Integer 语句声明了数组A,其下标的取值范围为____________。

A.0~100
B.1~100
C.0~99
D.1~99
4.若使用Dim A(100) As Integer 语句声明了数组A,下列引用错误的是___________。

A.A(0)=2
B.A(1)= -28
C.A(56)= A(-56)
D.A(100)=A(0)+A(55)
5.如果要对已经声明的数组重新定义大小,并保留原有数据,可使用语句___________。

A.Dim
B.ReDim
C.Dim Preserve
D.ReDim Preserve
6.对于Integer 类型的数组,如果没有赋值,则所有元素的值为____________。

A.空
B.0
C.1
D.最大数
7.执行重定义数组大小语句ReDim A(UBound(B))后,A数组的上界为______________。

A.B数组的上界
B.B数组的上界+1
C.B数组的上界- 1
D.不确定
8.下列数组声明语句中正确的是______________。

A.Dim A(9) As Single ={1,2,3,4,5,6,7,8,9,10}
B.Dim A() As Single ={1,2,3,4,5,6,7,8,9,10}
C.DimA() As Single ={1,”abc”,”ccc”,4,5,6,7,8,9,10}
D.Dim A( , ) As Single ={1,2,3,4,5,6,7,8,9,10}
9.若有声明Dim a(2 ,3) as Integer,则数组a共有元素个。

A.12 B.30 C.16 D.4
10.下列程序的输出结果是______________。

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.程序出错
11.关于数组的声明,正确的是__________。

A.Dim a(5) As Integer = {1,2,3,4,5,6}
B.Dim a(1,6) As Integer = {1,2,3,4,5,6}
C.Dim a( ) As Integer = {1,2,3,4,5,6}
D.Dim a(1 to 6) As Integer = {1,2,3,4,5,6}
12.若有语句A=Array(1,2,3,4,5,6,7,8),则A(5)的值是__
A. 4
B.5
C.6
D.7
二.调试改错题
(1)程序自动产生10个10~99 之间的随机正整数,在lable1显示大的数,lable2显示小的数。

找出能被2、3、5整除的数,结果显示在Label3,如图4- 1所示。

程序中有3个错误,请调试改正。

保存项目为shiyan4-1。

图4- 1产生随机整数
PrivateSub Button1_Click(……) Handles Button1.Click
Dim a%(9), max%, i%, min%
Randomize()
For i = 0 To 9
a(i) = Int(Rnd() * 99 + 10)
if i=0 then min=a(i): max=a(i)
If a(i) < min Then
min = a(i)
Else
max = a(i)
End If
If a(i) Mod (2,3,5) = 0 Then
Label3.Text &= a(i) & " "
End If
Next i
Label1.Text &= max
Label2.Text &= min
End Sub
(2))随机产生15个不重复的A-Z之间的字母(包括A,Z的大写字母),存放在字符数组中。

实现的思想是,每产生一个字母,在数组中查找已产生的字母。

若找到,刚产生的字母作废,重新产生;如果找不到,则产生字母放入数组中。

保存项目为shiyan4-2。

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= Chr(Int(Rnd()*26 +65))
For j=0 To n '在已产生的字母中若找到有重复字母,则重新产生
If s(j)=c Then goto
Next j
s(j)= c '没有重复的加入数组中
Next n
For j=0 To 14
Label3.Text =s(j) &“”
Next j
End Sub
三.程序填空题
(1)计算数组中正数之和和负数之和,最后输出这两个和数的绝对值之商。

保存项目为shiyan4-3。

Private Sub Button1_Click(……) Handles Button1.Click
Dim a() As Integer = {23, -5, 23, -45, 11, 8, -3, 38, -31, 15}
Dim s1, s2, i As Integer, x As Single
s1 = 0: s2 = 0
For i = (1)To (2)
Label1.Text = Label1.Text &a(i) &vbCrLf
If (3) Then
s1 = s1 + a(i)
Else
s2 = (4)
End If
Next i
x = s1 / Math.Abs(s2)
Label2.Text = x
End Sub
(2)从键盘读取40个数保存到数组a中,将一维数组中各元素的值移到后一个元素中,而最末一个元素的值移到第一个元素中去。

按每行4个数的格式输出。

保存项目为shiyan4-4。

Private Sub Button1_Click(……) Handles Button1.Click
Dim A(10) As Integer,i, b As Integer
For i = 0 To 10
A(i) = Val(InputBox("请输入一个整数"))
Next i
b = A(10)
For i = (1)
A(i + 1) = A(i)
Next i
(2)
For i = 0 To 10
If i(3) 4 = 0 Then Label1.Text = Label1.Text &vbCrLf
Label1.Text = Label1.Text &A(i) & " "
Next i
End Sub
(3)下列程序的功能是对已知数组A,删除数组中指定值的元素。

保存项目为shiyan4-5。

Private Sub Button1_Click(……) Handles Button1.Click
Dim A() As Integer = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Dim key, i, j, n As Integer
n = UBound(A)
Key = Val(InputBox("输入要删除的值"))
For i = 0 To n
If (1) Then
For j = i + 1 To n
(2)
Next j
ReDim (3)
MsgBox("删除完成")
Exit For
End If
Next i
If i> n Then MsgBox("找不到要删除的元素")
End Sub
四. 编写程序
(1)输出如下形式的乘法表。

将项目保存在shiyan4-6文件夹内。

(2)有100克的药需用天平秤量,现在砝码只有1克、2克和5克共3种,要求的砝码总数为30个,有几种不同的加法?将项目保存在shiyan4-7文件夹内。

(3)建立并输出一个10×10的矩阵,该矩阵对角线元素为1,其余元素均为0。

保存项目为shiyan4-8。

在VB中矩阵常用二维数组来处理,首先要定义一个二维数组A(9,9),接着可以用二重For循环实现二维数组的输入和输出,并正确处理在主、副对角线上的数组元素。

相关主题