VB改错题(答案)
- 格式:doc
- 大小:58.00 KB
- 文档页数:7
1.程序的功能是:单击命令按钮“输出”,在图片框Picture1中输出费波那契数列的前20项项值,要求按区输出,每行输出4个项值。程序中有两处错误,请修改程序并运行,直到得出正确结果。
注意:程序中的修改行就在注释行:
'**********found*************' '请不要删除该行'
的下面,请不要修改程序中的其他部分。最后把修改后的文件按原来文件名存盘。
第1个出错位置:For i=3 to 20
第2个出错位置:If i Mod 4=0 then Picture1.Print
Private Sub Command1_Click()
Dim f(40) As Long
Dim i As Integer
Picture1.Cls
f(1) = 0
f(2) = 1
Picture1.Print f(1), f(2),
'**********found*************' '请不要删除该行'
For i = 1 To 40
For i=3 to 20
f(i) = f(i - 1) + f(i - 2)
Picture1.Print f(i),
'**********found*************' '请不要删除该行'
If i Mod 4 = 0 Then Picture.Print
If i mod 4=0 then picture1.print
Next i
End Sub
2. 程序的功能是:程序运行时,单击“输出”按钮,产生10个[0,99]之间的随机整数存入数组A中,并按照相反的顺序输出在窗体上。程序中有两处错误,请修改程序并运行,直到得出正确结果。
第1个出错位置:A(i)=Int(Rnd*100+0) p50
第2个出错位置:Print A(11-i);
Private Sub Command1_Click()
Randomize
Dim A(10), I As Integer
Form1.Cls
For I = 1 To 10
'*********found******** '请不要删除该行
A(I) = Int(Rnd * 99) A(i)=Int(Rnd*100+0)
Print A(I);
Next I
For I = 1 To 10
'*********found******** '请不要删除该行
Print A(I); Print A(11-i) (注意答案中间无;)
Next I
End Sub
3. 在考生文件夹下有一个工程文件Modi1.vbp,相应的窗体文件为Modi1.frm,此外还有一个名为Modiin.dat的文本文件,其内容如下:
32 43 76 58 28 12 98 57 31 42 53 64 75 86 97 13 24 35 46 57 68 79 80 59 37
程序运行后,单击窗体,将把文件Modiin.dat中的数据输入到二维数组Mat中,在窗体
上按5行5列的矩阵形式显示出来,然后交换矩阵第一行和第三行的数据,并在窗体上输出交换后的矩阵。在窗体的代码窗口中,已给出了部分程序,程序中有两处错误需要改正,改错行就在注释行:
第1个出错位置:dim mat(5,5)
第2个出错位置:mat(3,j)=t
mat(3,j)=t
Private Sub Form_Click()
Const N = 5
Const M = 5
'**********found*************' '请不要删除该行'
Dim Mat dim mat(5,5)
Dim i, j, t
Open App.Path & "\" & "modiin.dat" For Input As #1
For i = 1 To N
For j = 1 To M
Input #1, Mat(i, j)
Next j
Next i
Close #1
Print "初始矩阵为:"
For i = 1 To N
For j = 1 To M
Print Tab(5 * j); Mat(i, j);
Next j
Next i
For j = 1 To M
t = Mat(1, j)
Mat(1, j) = Mat(3, j)
'**********found*************' '请不要删除该行'
t = Mat(3, j) mat(3,j)=t
Next j
Print "交换第一行和第三行后的矩阵为:"
For i = 1 To N
For j = 1 To M
Print Tab(5 * j); Mat(i, j);
Next j
Next i
End Sub
6.
4. 程序的功能是:实现密码登录验证。运行时,当用户输入完口令并按"确定"按钮时,对口令进行判断。在连续三次输入错误口令后,结束程序。程序中有两处错误,请修改程序并运行,直到得出正确结果。
第1个出错位置:Static i as integer
2个出错位置:if Lcase(text1.text)="hello" then
iflcase(text1.text)="hello"then
Private Sub Command1_Click()
'*********found******** 请不要删除该行
Dim I As Integer Static i as integer(注意i的值要累加)
'*********found******** 请不要删除该行
If UCase(Text) = "hello" Then if Lcase(text1.text)="hello" then
Form1.Caption = "恭喜!,您已成功进入本系统"
ElseIf I = 0 Or I = 1 Then
I = I + 1
Form1.Caption = "口令错!,请重新输入"
Text1.SelStart = 0
Text1.SelLength = Len(Text1.Text)
Else
MsgBox "对不起,您不能使用本系统"
End
End If
End Sub