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

发布时间 : 星期二 文章VB实验教材模拟练习(有答案)更新完毕开始阅读

End Sub

3.执行下列程序,单击按钮Command1,窗体上显示的第一行内容是 5 7 ,第三行内容是 14 11 。 Option Explicit

Private Sub Command1_Click() Dim a As Integer, b As Integer a = 4 b = 3

Do Until a > 10 b = b / 2

Do Until b > 10

a = (a + b) \\ 2 + b b = b + 5 Print a, b Loop a = a - 3 Loop End Sub

4.执行下列程序,单击Commandl,在窗体上显示的第一行内容是 5 15 ,第二行的内容是 2 35 ,第三行的内容是 -1 56 。 Option Explicit

Private Sub Command1_Click() Dim n As Integer, i As Integer n = 2

For i = 7 To 1 Step -1 Call sub2(i, n) Print i, n Next i End Sub

Private Sub sub2(x As Integer, y As Integer) Static n As Integer Dim i As Integer For i = 2 To 1 Step -1 n = n + x x = x - 1 Next i y = y + n End Sub

三、操作题(共50分) 1.完善程序。(共12分)

【要求】

打开“C:\\学生文件夹”中“P1.vbp”文件,按参考界面形式编辑窗体界面,完善程序后,直接保存所有文件。

【题目】本程序的功能是将合数分解质因子,即将合数表示成其质因子的乘积形式。合数即非素数,指除了1和他自身外还有其他因子的整数。

Option Explicit Option Base 1

Private Sub Command1_Click()

Dim n As Integer, i As Integer, a() As Integer, st As String n = Val(Text1.Text) If Not Prime(n) Then Call fj(n, a)

' st = n & \ For i = 1 To UBound(a) - 1 st = st & a(i) & \ Next i

st = st & a(i) Else

st = \输入数据为素数,请重新输入!\ End If

Text2.Text = st End Sub

Private Sub fj(ByVal n As Integer, a() As Integer) Dim k As Integer, i As Integer i = 2 Do

If n Mod i = 0 Then k = k + 1

' ReDim Preserve a(k) a(k) = i n = n \\ i Else

i = i + 1 End If

' Loop Until n = 1 End Sub

Private Function Prime(n As Integer) As Boolean Dim i As Integer For i = 2 To n - 1

If n Mod i = 0 Then Exit Function Next i

' Prime = True End Function

2.改错题(共16分)

【要求】

(1)打开“C:\\学生文件夹”中“P2.vbp”文件,按参考界面形式编辑窗体界面,改正程序中的错误后,直接保存所有文件;

(2)改错时,不得增加或删除语句,但可适当调整语句位置。

【题目】本程序的功能是将混杂在字符串中的英文词汇提取出来,重组成正常的英文句子。说明:输入的字符串以非英文字符结束。(程序界面如图所示) Option Explicit Option Base 1

Private Sub Command1_Click()

Dim st As String, words() As String, i As Integer st = LCase(Text1) Call choice(st, words) st = \

For i = 1 To UBound(words) 'UBound(words) - 1 st = st & words(i) & \ Next i

st = st & words(i) & \

Text2 = UCase(Left(st, 1)) & Mid(st, 2) End Sub

Private Sub choice(s As String, ws() As String) Dim st As String * 1, i As Integer, k As Integer Dim p As String For i = 1 To Len(s) st = Mid(s, i, 1)

k = k + 1 If st >= \

' If st >= \

p = p & st

ElseIf p <> \ ' :k = k + 1 ReDim ws(k) ' Preserve ws(k) ws(k) = p p = \ End If Next i End Sub

3.编程题(22分) 【要求】

(1)打开“C:\\学生文件夹”中“P3.vbp”文件,根据题目要求编写和调试程序后,直接保

存所有文件。

(2)程序代码书写应呈锯齿形,否则适当扣分。

【题目】编写程序,随机生成一个元素值为10~40之间整数的4行5列数组;找出该二维数组的最大元素与最小元素,并将最大元素与最小元素的值以及相应的行号和列号输出到图片框中。(注意:数组最大元素与最小元素都可能有多个) 【编程要求】

1.程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界 面元素大小适中,且均可见;

2.运行程序,按“运行”按钮,则生成随机数组并显示在图片框pic1中,并在图片框pic2中输出数组最大元素值和最小元素值及相应的数组元素的行号与列号;按“清除”按钮,将两个图片框清空,焦点置于“运行”按钮;按“结束”按钮,结束程序运行。 3.程序中应定义一个通用过程maxmin,用于求二维数组最大元素与最小元素值。

Private Sub Command1_Click()

Dim a(4, 5) As Integer, i As Integer, j As Integer Dim maxi As Integer, mini As Integer Randomize For i = 1 To 4 For j = 1 To 5

a(i, j) = Int(Rnd * 31) + 10 Pic1.Print a(i, j); Next j Pic1.Print Next i

Call maxmin(a, maxi, mini) For i = 1 To 4 For j = 1 To 5

If a(i, j) = maxi Then Pic2.Print maxi; i; j Next j Next i

For i = 1 To 4 For j = 1 To 5

If a(i, j) = mini Then Pic2.Print mini; i; j Next j Next i End Sub

Private Sub maxmin(a() As Integer, maxv As Integer, minv As Integer)

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