发布时间 : 星期日 文章VB实验教材模拟练习(有答案)更新完毕开始阅读
Option Explicit Option Base 1
Private Sub Command1_Click() Dim st As String, char As String
Dim data() As String, i As Integer, j As Integer st = \
For i = 1 To Len(st)
If Mid(st, i, 1) <> \ char = char & Mid(st, i, 1) Else
j = j + 1
ReDim Preserve data(j) data(j) = char char = \ End If
Next i
Print \数组元素个数为\Print Conver(data) End Sub
Private Function Conver(a() As String) As String Dim i As Integer
For i = 1 To UBound(a)
Conver = Conver & Chr(Val(a(i))) '字母A,a的ASCII码分别为65,97 Next i End Function
2.执行下面的程序,单击命令按钮Command1,则窗体上显示的第一行是 C ,第二行是 CW ,第三行是 8 。 Private Sub Command1_Click() Dim s As String, t As String Dim k As Integer, m As Integer s = \ k = 1: m = k
For k = 1 To Len(s) Step m + 1
t = t & Chr(Asc(Mid(s, m, 1)) + k) k = k + 1
If Mid(s, k, 1) = \ m = m + k Print t Next k Print m End Sub
3.执行下面的程序,单击Commandl,输出的变量i的值是 10 ,变量j的值是 0 ,变量k的值是 15 。 Option Explicit
Private Sub Command1_Click() Dim i As Integer, j As Integer Dim k As Integer i = 10 j = 4
k = Funk(i, j) Print i, j, k End Sub
Private Function Funk(ByVal A As Integer, B As Integer) As Integer A = A + B B = B - 2
If B = 0 Or B = 1 Then Funk = 1 Else
Funk = A + Funk(A, B) End If End Function
4.执行下面程序后,单击按钮Command1,窗体上第一行显示的内容是 X= 4 ,第三行显示的内容是 15 15 。 Private Sub Command1_Click()
Dim X As Integer, Y As Integer, S As Integer X = 12: Y = 18 If X > Y Then
S = Fun(X, Y, 1) Else
S = Fun(Y, X, 1) End If Print S Print X, Y End Sub
Private Function Fun(A As Integer, B As Integer, K As Integer) Static X As Integer X = X + K If A <= B Then
Fun = A + B - X Print \ Else
A = A - X B = B + X
Fun = Fun(A, B, X) End If X = 0 End Function
三、操作题(共50分)
1.完善程序。(共12分) 【要求】
打开“C:\\学生文件夹”中“P1.vbp”文件,按参考界面形式编辑窗体界面,完善程序后,直接保存所有文件。
【题目】本程序的功能是把由4个用“.”分隔的十进制数表示的IP地址转换为由32位二进制数组成的IP地址。例如十进制表示的IP地址为202.119.191.1,其中每个十进制数对应一个8位的二进制数,合起来构成一个32位二进制的IP地址1100101001110111101111110000000l。过程Tiqu用于提取十进制IP地址中每个用“.”分隔的十进制数;过程Convert用于将十进制数转换为相应的8位二进制数。
Option Explicit
Private Sub Command1_Click()
Dim str1 As String, str2 As String Dim a(4) As Integer, i As Integer str1 = Text1.Text Call Tiqu(str1, a) For i = 1 To 4
If a(i) < 0 Or a(i) > 255 Then MsgBox (\地址错误!\ ExitSub Else
' str2 = str2 & convert(a(i)) End If Next i
Text2.Text = str2 End Sub
Private Sub Tiqu(st As String, a() As Integer)
Dim n As Integer, k As Integer, S As String, d As String * 1, i As Integer n = Len(st): k = 0: S = \ For i = 1 To n
' d = Mid(st, i, 1) If d = \ k = k + 1 a(k) = Val(S)
s= \
Else
S = S & d End If Next i a(4) = S End Sub
Private Function convert(ByVal n As Integer) As String Dim b As Integer, i As Integer, S As String Do While n > 0 b = n Mod 2
n = n \\ 2
' S = b & S Loop
For i = 1 To 8 - Len(S) S = \ Next i
' convert = S End Function
2.改错题(共16分)
【要求】
(1)打开“C:\\学生文件夹”中“P2.vbp”文件,按参考界面形式编辑窗体界面,改正程序中的错误后,直接保存所有文件;
(2)改错时,不得增加或删除语句,但可适当调整语句位置。 【题目】本程序的功能是生成至少包含10个互质数对的随机数组,数组元素是两位随机整数,并将其中的互质数对输出。互质数对,是指两个整数除了1以外没有其他相同的因子。
Option Explicit Option Base 1
Private Sub Command1_Click()
Dim k As Integer, a() As Integer, j As Integer, p As Integer Do
k = k + 1
ReDim a(k) ' ReDim Preserve a(k) a(k) = Int(Rnd * 90) + 10 For j = k - 1 To 1 ' For j = k - 1 To 1 Step -1 If gcd(a(k), a(j)) = 1 Then p = p + 1
List1.AddItem \ End If Next j
Text1.Text = Text1.Text & Str(a(k)) Loop Until p >= 10 End Sub
Private Function gcd(a As Integer, b As Integer) As Integer 'ByVal ByVal Dim r As Integer