VB实验教材模拟练习(有答案)

发布时间 : 星期日 文章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

联系合同范文客服:xxxxx#qq.com(#替换为@)