VB改错题(答案)

  • 格式:doc
  • 大小:58.00 KB
  • 文档页数:7

下载文档原格式

  / 20
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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

Print

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

Print "初始矩阵为:"

Print

For i = 1 To N

For j = 1 To M

Print Tab(5 * j); Mat(i, j);

Next j

Print

Next i

Print

Print

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

Print "交换第一行和第三行后的矩阵为:"

Print

For i = 1 To N

For j = 1 To M

Print Tab(5 * j); Mat(i, j);

Next j

Print

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