VB程序改错
- 格式:doc
- 大小:43.00 KB
- 文档页数:5
程序改错题
第一题:
题目:以下程序段用于输出100-300的所有素数
------------------------------------------------
Option Explicit
Private Sub Form_Click()
Dim n As Integer, k As Integer, i As Integer, swit As Integer For n = 101 To 300 Step 2
k = Int(Sqr(n))
i = 2
'**********ERROR**********
swit = 1
'**********ERROR**********
While swit = 0
If n Mod i = 0 Then
swit = 1
Else
'**********ERROR**********
i = i - 1
End If
Wend
If swit = 0 Then
Print n;
End If
Next n
End Sub
答案
【改错1】
【参考答案】
swit=0
【改错2】
【参考答案】
While i<=k And swit =0
While k>=i And swit=0
While swit=0 And i<=k
While swit=0 And k>=i
【改错3】
【参考答案】
i=i+1
第二题:
'题目:下面程序可输出如下图形:
' *
' ***
' *****
' *******
' *********
------------------------------------------------
Option Explicit
Private Sub Form_Click()
Dim m As Integer, n As Integer, s As String, i As Integer, j As Integer n = 4
m = 1
s = "*"
For i = 5 To 1 Step -1
'**********ERROR**********
Print Spc(n)
For j = 1 To 2 * m - 1
Print s;
Next j
'**********ERROR**********
n = n + 1
'**********ERROR**********
m = m - 1
Next i
End Sub
【改错1】
【参考答案】
Print Spc(n);
Print Spc(i);
Spc(n);
Spc(i)
【改错2】
【参考答案】
n=n-1
n=-1+n
【改错3】
【参考答案】
m=m+1
第三题:
'题目:以下程序段用于计算5的N次方。
'------------------------------------------------ Option Explicit
Private Sub Form_Click()
Dim n As Integer, k As Integer, s As Long n = InputBox(" Input n ")
'**********ERROR**********
k = 0
'**********ERROR**********
s = 0
Do While k <= n
s = s * 5
k = k + 1
'**********ERROR**********
Next
Print "5的"; "n次方是"; s
End Sub
答案
【改错1】
【参考答案】
k=1
【改错2】
【参考答案】
s=1
【改错3】
【参考答案】
loop
第四题:
'题目:以下程序段用于打印如图1所示的九九乘法表:
'------------------------------------------------ Option Explicit
Private Sub Form_Click()
Dim i As Integer, j As Integer, k As Integer
Print Tab(30); "9*9 table"
Print: Print
Print " * ";
For i = 1 To 9
'**********ERROR**********
Print Tab(i * 6); i
Next i
For j = 1 To 9
Print j; " ";
'**********ERROR**********
For k = 1 To 9
'**********ERROR**********
Print Tab(j * 6); j * k; " ";
Next k
Next j
End Sub
答案
【改错1】
【参考答案】
Print Tab(i*6);i;
【改错2】
【参考答案】
For k=1 to j
【改错3】
【参考答案】
Print Tab(k*6);j*k;" ";
第五题:
'题目:程序功能:求1+2+3……,直到其和超出3000为' 止,并输出结果。
'------------------------------------------------ Option Explicit
Private Sub Form_Click()
Cls
Dim i As Integer
Dim s As Single
i =0