VB复习题(带答案)(1)
- 格式:doc
- 大小:357.50 KB
- 文档页数:15
VB复习题(带答案)(1)
Lt
D
2 程序填空
1、'功能:要求输入假设干学生的成绩,计算平均分和高于平均分的人数,并将这两个数据放入数组的最后。
Private Sub Form_Click()
Dim mark() As Integer, i%, n%, aver
n = InputBox("输入学生的人数")
ReDim mark(1 To n)
aver = 0
For i = 1 To n
mark(i) = Int(Rnd * 101)
aver = aver + mark(i)
Next i
'**********SPACE**********
preserve
ReDim
【?】 mark(1 To n + 2) '增加两个元素,存放平均分和高于平均分的人数,原来的学生成绩仍保存
mark(n + 1) = aver / n
mark(n + 2) = 0
For i = 1 To n
'**********SPACE**********
If mark(i) > mark(【?】) Then mark(n + 2) = mark(n + 2) + 1 n+1
Next i
For i = 1 To n
Print "mark("; i; ")="; mark(i)
Next i
Print "平均分="; mark(n + 1), "高于平均分人数="; mark(n + 2)
End Sub
2、功能:以下程序的功能如(图1)。
Private Sub Form_Click()
Dim a%, b%, c%, d!, x1, x2, p, q, r
a = InputBox("请输入a的值")
b = InputBox("请输入b的值")
c = InputBox("请输入c的值")
d = b * b - 4 * a * c
p = -b / (2 * a)
If d >= 0 Then
'**********SPACE**********
If 【?】 Then d>0
r = Sqr(d) / (2 * a)
x1 = p + r
x2 = p - r Else
x1 = p
x2 = p
'**********SPACE**********
【?】 end if
Print "x1="; x1, "x2="; x2
'**********SPACE**********
【?】 else
q = Sqr(-d) / (2 * a)
Print "x1="; p; "+"; q; "i", "x2="; p; "-"; q; "i"
End If
End Sub
3、功能:以下程序用于判断一个正整数〔≥3〕是否为素数。
Private Sub Form_Click()
n = InputBox("请输入一个正整数〔≥3〕")
k = Int(Sqr(n))
i = 2
swit = 0
'**********SPACE**********
Do While i <= k And 【?】 swit=0
'**********SPACE**********
If 【?】 Then n mod i=0
swit = 1
Else
'**********SPACE**********
【?】 i=i+1
End If
Loop
If swit = 0 Then
Print n; "是一个素数"
Else
Print n; "不是素数"
End If
End Sub
4、功能:下面的程序段,用于实现在一个nXm的矩阵中,找出值最大的元素所在的行和列,并输出其值及行号和列号。
Private Sub Form_Click()
Dim mat() As Integer
Dim n as integer, m As Integer
3 n = Val(InputBox("请输入矩阵的行数"))
m = Val(InputBox("请输入矩阵的列数"))
'**********SPACE**********
【?】 ReDim mat(n,m) As Integer
For i = 1 To n
For j = 1 To m
mat(i, j) = InputBox("请输入数组元素值")
mat(i, j) = Val(mat(i, j))
Next j
Next i
Print "所建立的矩阵为"
For i = 1 To n
For j = 1 To m
Print mat(i, j);
Next j
Next i
Max = mat(1, 1)
For i = 1 To n
For j = 1 To m
'**********SPACE**********
If 【?】 Then mat(I,j)>max
Max = mat(i, j)
col = j
'**********SPACE**********
【?】 row=i
End If
Next j
Next i
Print "矩阵最大的元素的值为:"; mat(row, col)
Print "它所在的行号为:"; row; "列号为:"; col
End Sub
5、功能:以下程序段用于实现矩阵转置,即将一个n×m的矩阵的行和列互换
Private Sub Form_Click()
Const n = 3
Const m = 4
Dim a(n, m), b(m, m) As Integer
For I = 1 To n For j = 1 To m
a(I, j) = Int(Rnd * 90) + 10
Next j
'**********SPACE**********
【?】 next i
For I = 1 To n
For j = 1 To m
'**********SPACE**********
【?】 b(j,i)=a(I,j)
Next j
Next I
Print "矩阵转置前"
For I = 1 To n
For j = 1 To m
Print a(I, j);
Next j
'**********SPACE**********
Next I
Print "矩阵转置后"
For I = 1 To m
For j = 1 To n
Print b(I, j);
Next j
Next I
End Sub
6、下面过程max()用于求3个数中最大值,利用这个过程求5个数中最大值。
Private Sub Form_Click()
Print "5个数34、124、68、73、352的最大值是:"
max1 = max(34, 124, 68)
'**********SPACE**********
max1 =【?】 max(max1,73,352)
Print max1
End Sub
Public Function max(ByVal a%, ByVal b%, ByVal c%)
'**********SPACE**********
If 【?】 Then a>b
m = a
4 Else
m = b
End If
'**********SPACE**********
If 【?】 Then
m>c
max = m Else
max = c
End If
End Function
7、功能:以下程序段利用随机函数生成15个10-100之间的整数,然后用选择法将其从小到大排序。
Private Sub Form_Click()
Const n = 15
Dim a(1 To n) As Integer
Dim i As Integer, j As Integer, t As Integer, min As Integer
Randomize
For i = 1 To n
'**********SPACE**********
a(i) =【?】 int(rnd*91+10)
Next i
For i = 1 To n
Print a(i);
Next i
For i = 1 To n - 1
'**********SPACE**********
【?】 t=I
For j = i + 1 To n
If a(j) < a(t) Then t = j
Next j
'**********SPACE**********
If 【?】 Then t<>i
min = a(i): a(i) = a(t): a(t) = min
End If
Next i
For i = 1 To n
Print a(i);
Next i End Sub
8、功能:下面的程序段用于实现以下功能:利用冒泡法将一组整数从小到大排序。
Private Sub Form_Click()
Const n = 15
Dim a(1 To n) As Integer, work As Boolean
Dim i As Integer, j As Integer, x As Integer
Randomize
For i = 1 To n
a(i) = Int(90 * Rnd) + 10
Next i
For i = 1 To n
Print a(i);
Next i
'**********SPACE**********
For i = n To 2 【?】 step -1
work = True
For j = 1 To i - 1
If a(j) > a(j + 1) Then
x = a(j): a(j) = a(j + 1): a(j + 1) = x
'**********SPACE**********
【?】 work=false
End If
Next j
'**********SPACE**********
If work Then 【?】 exit for
Next i
For i = 1 To n
Print a(i);
Next i
End Sub
9、功能:以下程序的功能如(图1)。
Private Sub Form_Click()
Dim s As Single, m As Integer, p#