1『Visual Basic——程序改错』
'【程序改错】462?
'------------------------------------------------
'题目:请修改程序中错误,保证程序最后输出效果如图1所示。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Option Explicit
Private Sub Form_Click() Dim i As Integer
For i = 1 To 7
'**********FOUND********** Print Spc(7);
'**********FOUND********** If i >= 1 Then Print \
Else
'**********FOUND********** Print \ End If Next i
End Sub 1. Space 2.
3.space
2『Visual Basic——程序改错』 '【程序改错】463
'------------------------------------------------
'题目:以下程序功能是输入三个数,由大到小排序。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Option Explicit Dim A As Integer Dim B As Integer Dim C As Integer Private Sub Form_Click()
Dim nTemp As Integer A = Val(InputBox(\输入正整数\ B = Val(InputBox(\输入正整数\ C = Val(InputBox(\输入正整数\ '**********FOUND********** If A <= C Then nTemp = A
A = B
B = nTemp End If
'**********FOUND********** If B <= C Then nTemp = A A = C C = nTemp End If
'**********FOUND********** If A <= B Then nTemp = B B = C
C = nTemp
End If
Print \End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 If A <= B Then 或 If B >= A Then 2 If A <= C Then 或 If C >= A Then 3 If B <= C Then 或 If C >= B Then
3『Visual Basic——程序改错』 '【程序改错】464?
'------------------------------------------------
'题目:歌德巴赫猜想:任何一个大于或等于六的偶数都可 ' 以分解成两个素数之和,请修正下面程序的错误。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click()
Dim i As Integer, j As Integer, k As Integer, m As Integer Dim n As Integer, m1 As Integer, m2 As Integer, num num = Val(InputBox(\请输入要验证的整数范围最大值(MAX)\For i = 6 To num Step 2 For j = 3 To i
'**********FOUND********** k = Sqr(j)
For m = 2 To k
'**********FOUND********** If j Mod m = 0 Then End
Next m
If m > k Then n = i - j
m1 = Int(Sqr(n)) For m2 = 2 To m1
If n Mod m2 = 0 Then Exit For Next m2
'**********FOUND**********
If m2 <> m1 Then Print i; \ End If Next j Print Next i End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』: 1 k = Int(Sqr(j))
2 If j Mod m = 0 Then Exit For
3 If m2 > m1 Then Print i; \
4『Visual Basic——程序改错』 '【程序改错】465?
'------------------------------------------------
'题目:用InputBox函数输入一个字符串,编写程序按与 ' 输入的字符相反的次序用Msgbox函数输出这个字 ' 符串。如输入字符串为\,则输出为\' gfedcba\,输出效果如图1。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click()
Dim pristr As String, outstr As String Dim i As Integer
pristr = InputBox(\ '**********FOUND********** For i = 0 To Len(pristr)
'**********FOUND********** outstr = outstr + Mid(pristr, Len(pristr) - i) Next i
'**********FOUND********** MsgBox outstr, , \End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』: 1 For i = 0 To Len(pristr) - 1
2 outstr = outstr + Mid(pristr, Len(pristr) - i, 1) 3 MsgBox outstr, vbQuestion, \
5『Visual Basic——程序改错』 '【程序改错】466
'------------------------------------------------
'题目:下边是一个小动画程序,在窗体上放一个标签Label1, ' 每过1秒钟标签Label1的背景颜色由红到蓝,由蓝到绿, ' 再由绿到红循环变化,并自动修改标签Label1的Left, ' Top值使其从左上角沿窗体的对角线移动到窗体的右下角, ' 如此往复从而实现动画。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private flag As Integer Private Sub Form_click() Timer1.Enabled = True End Sub
Private Sub Form_Load() Timer1.Interval = 1000 Label1.Left = 0
Label1.Top = 0
Label1.BackColor = vbBlack Timer1.Enabled = False End Sub
Private Sub Timer1_Timer()
If Label1.Left < Left + Width And Label1.Top <= Top + Height Then Label1.Left = Label1.Left + 100 * Width / Height Label1.Top = Label1.Top + 100 Else
Label1.Left = Left Label1.Top = Top End If If flag = 0 Then
Label1.BackColor = vbBlue
'**********FOUND********** flag = 0
ElseIf flag = 1 Then
Label1.BackColor = vbGreen '**********FOUND********** flag = 1 Else
Label1.BackColor = vbRed '**********FOUND********** flag = 2 End If End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』: 1 flag = 1 2 flag = 2
3 flag = 0
6『Visual Basic——程序改错』 '【程序改错】467
'------------------------------------------------
'题目:从计算机输入三个数 , 找出中间数
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------
Private Sub FindMidNum()
Dim x As Integer, y As Integer, z As Integer, A As Integer x = InputBox(\ y = InputBox(\ z = InputBox(\ '**********FOUND********** If x > y Then A = x x = y y = A End If
'**********FOUND********** If y = z Then Print y
'**********FOUND********** ElseIf x = z Then Print z Else
Print x