程序改错
更新时间:2024-05-31 14:05:01 阅读量: 综合文库 文档下载
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
End If
End Sub
Private Sub Form_Click() FindMidNum End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 If x < y Then 或 If y > x Then 2 If y >= z Then 或 If z <= y Then 3 ElseIf x >= z Then 或 ElseIf z <= x Then
7『Visual Basic——程序改错』 '【程序改错】468?
'------------------------------------------------
'题目:编写一程序,实现对文本框里的文字查找并清除某 ' 一字符串,直到文本框中不再存在它。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------
Function StringClear(sSource As String, sSearch As String) As String Dim j As Integer, res As String '**********FOUND********** res = sSearch
'**********FOUND********** Do While Mid(res, sSearch) j = InStr(res, sSearch)
'**********FOUND********** res = Left(res, j) & Mid(res, j + 2) Loop
StringClear = res End Function
Private Sub Command1_Click() Dim Searchstr As String
If Text1.Text <> \
Searchstr = InputBox(\ Text1.Text = StringClear(Text1.Text, Searchstr) End If
End Sub
-------------------------------------------------- 『图片数目』:0张
『文件数目』:2张 『答 案』:
1 res = sSource
2 Do While InStr(res, sSearch)
3 res = Left(res, j - 1) & Mid(res, j + 2)
8『Visual Basic——程序改错』
'【程序改错】469
'------------------------------------------------
'题目:已知一个函数f(x)=1000*sin(x),利用绘图方法 ' 在图片框中显示其图形。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Const pi = 3.14159
Private Sub Command1_Click()
'**********FOUND********** Dim x As Integer
Picture1.Scale (-pi, -1200)-(pi, 1200) '**********FOUND********** For x = -pi To pi Step pi
'**********FOUND**********
Picture1.PSet (x, 1000 * pi * Sin(x)), vbRed Next x End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』: 1 Dim x As Single
2 For x = -pi To pi Step pi / 180
3 Picture1.PSet (x, 1000 * Sin(x)), vbRed
9『Visual Basic——程序改错』 '【程序改错】470
'------------------------------------------------
'题目:在窗体上有两个命令按钮和一个文本框,名称分别为 ' cmdstart(\开始\)、cmdend(\结束\)和Text1。
' 文本框Text1中的字符个数不超过200个。程序刚开始 ' 运行时,\结束\按钮成灰色,单击\开始\按钮后,将 ' 文本框Text1.text中的字符按其ASCII码值由大到小自 ' 左而右重新组合,并在窗体上输出 重组后的字符串,同 ' 时使\结束\按钮能响应而\开始\按钮不能响应。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_load()
'**********FOUND********** Cmdend.Enabled = True End Sub
Private Sub Cmdstart_click()
Dim n As Integer, I As Integer, j As Integer, p As Integer Dim a(200) As String * 1, str1 As String, t As String str1 = Text1.Text n = Len(str1)
For I = 1 To n
a(I) = Mid(str1, I, 1) Next I
'**********FOUND********** For I = 0 To n - 1 p = I
For j = I + 1 To n
'**********FOUND********** If a(p) < a(j) Then j = p
Next j
If p <> I Then t = a(I): a(I) = a(p): a(p) = t Next I
For I = 1 To n Print a(I); Next I
Cmdend.Enabled = True Cmdstart.Enabled = False End Sub
Private Sub Cmdend_click() End
End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:3张 『答 案』:
1 Cmdend.Enabled = False 2 For I = 1 To n - 1 3 If a(p) < a(j) Then p = j
10『Visual Basic——程序改错』 '【程序改错】471
'------------------------------------------------
'题目:本程序将一个大于100的偶数n分解为两个素数之和, ' 其中nflag逻辑函数用于判断自然数x是否为素数. '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_Click()
Dim n As Integer, x As Integer, y As Integer n = Val(InputBox(\请输入一个大于100的偶数\输入数据\ For x = 3 To n \\ 2 Step 2
'**********FOUND********** If x = 0 Then y = n - x
'**********FOUND********** If nflag(x) Then
Form1.Print n; \ Exit For End If End If Next x End Sub
Function nflag(x As Integer) As Boolean Dim flag As Boolean Dim k As Integer Dim m As Integer k = 2: m = Int(Sqr(x)) flag = True
Do While k <= m
'**********FOUND********** If x Mod k = 0 Then flag = True k = k + 1 Loop nflag = flag End Function
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张
『答 案』:
1 If nflag(x) Then 或 If nflag(x) = True Then 2 If nflag(y) Then 或 If nflag(y) =True Then 3 If x Mod k = 0 Then flag = False
11『Visual Basic——程序改错』 '【程序改错】472
'------------------------------------------------
'题目:本程序功能用于将学生学过的单词在列表框中显示出来。现要完成: ' (1)单击\增加单词\按钮,将文本框Text1.Text中的单词添加到列表框 ' 中并显示列表框中的单词数;
' (2)单击\删除单词\按钮,删除列表框中被选中的项并显示列表框中的单词数; ' (3)单击\全部清除\按钮,删除列表框的全部选择项并显示列表框中的单词数; ' (4)单击\退出\按钮,结束程序。
' 请修正程序中存在的错误。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_Load()
Label1.Caption = \请输入单词\ Label2.Caption = \单词数\ Command1.Caption = \增加单词\ Command2.Caption = \删除单词\ Command3.Caption = \全部清除\ Command4.Caption = \退出\ List1.AddItem \ List1.AddItem \ List1.AddItem \
List1.AddItem \List1.AddItem \List1.AddItem \Text1.Text = \
Text2.Text = CStr(Me.List1.ListCount) End Sub
Private Sub Command1_click() List1.AddItem Text1.Text Text2.Text = Str(List1.ListCount) Text1 = \End Sub
Private Sub Command2_click() Dim sy As String sy = List1.ListIndex
'**********FOUND********** If sy > 0 Then
'**********FOUND********** List1.RemoveItem
Text2.Text = Str(List1.ListCount) End If End Sub
Private Sub Command3_Click()
'**********FOUND********** List1.RemoveItem
Text2.Text = CStr(List1.ListCount) End Sub
Private Sub Command4_click() End End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 If sy >= 0 Then 或 If 0 <= sy Then
2 List1.RemoveItem sy 或 List1.RemoveItem List1.ListIndex 3 List1.Clear
12『Visual Basic——程序改错』 '【程序改错】473?
'------------------------------------------------
'题目:下列程序进行-n阶乘运算,当阶乘的值超过-21147483648 ' 溢出报错,并将结果输出为-1。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ '**********FOUND**********
Private Function jc(ByVal n As Integer) As Integer Dim I As Integer Dim result As Long result = 1 I = 1
Do While I <= n
If result < 2114748348 / I Then '**********FOUND********** result = result I = I + 1
Else
lblerr.Caption = \溢出\
'**********FOUND********** jc = -I Exit Function End If Loop
jc = result
End Function
Private Sub Form_Click() MsgBox jc(3) End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 Private Function jc(ByVal n As Integer) As Long 2 result = result * I 或 result = I * result 3 jc = -1
13『Visual Basic——程序改错』 '【程序改错】474
'------------------------------------------------
'题目:程序功能为求解一元二次方程的实根,请修正程序中错误。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_Load()
Dim a, b, c, root1, root2, work As Double a = Val(InputBox(\请输入系数a的值\ b = Val(InputBox(\请输入系数b的值\ c = Val(InputBox(\请输入系数c的值\ '**********FOUND********** work = b * 2 - 4 * a * c
If work >= 0 And a <> 0 Then
'**********FOUND********** root1 = (Sqr(work)) / (2 * a)
'**********FOUND**********
root2 = (Sqr(work)) / (2 * a)
Debug.Print \有二个实根\ Else
Debug.Print \无实根!\ End If
End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 work = b ^ 2 - 4 * a * c
2 root1 = (-b + Sqr(work)) / (2 * a) 或 root1 = ( Sqr(work) -b ) / (2 * a)
3 root2 = (-b - Sqr(work)) / (2 * a) 或 root2 = (- Sqr(work) - b) / (2 * a)
14『Visual Basic——程序改错』 '【程序改错】475?
'------------------------------------------------
'题目:本程序求3~100之间的所有素数学(质数)并统计个数; ' 同时将这些素数从小到大依次写入顺序文件E:\\dataout.txt; ' 素数的个数显示在窗体Form1上。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click()
Dim Count As Integer, Flag As Boolean Dim t1 As Integer, t2 As Integer '**********FOUND********** Open \ Count = 0
For t1 = 3 To 100 Flag = True
For t2 = 2 To Int(Sqr(t1))
If t1 Mod t2 = 0 Then Flag = False Next t2
If t2 > Int(Sqr(t1)) Then
'**********FOUND**********
If Flag = False Then Count = Count + 1 '**********FOUND********** Write #1, t2
End If Next t1
Form1.Print \素数个数\ Close #1 End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 Open \或 Open \ 2 If Flag Then Count = Count + 1 或 If Flag Then Count = 1 + Count 3 Write #1, t1 或 Write 1, t1
15『Visual Basic——程序改错』 '【程序改错】476?
'------------------------------------------------
'题目:由输入对话框输入n(设n为大于零且小于30的自然数),
' 计算如图1所示的表达式,并在标签框Label1上显示。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_Click()
Dim n As Integer, sum As Double, k As Integer n = Val(InputBox(\请输入自然数n(n>0 且n<30)\ '**********FOUND********** Do While n > 0 Or n < 30 n = Val(InputBox(\请重输入\ Loop sum = 0 k = 0 Do
'**********FOUND********** k = sum + k
sum = sum + 1 / (k * (k + 1)) '**********FOUND********** Loop Until k > n
Label1.Caption = \ End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 Do While n <= 0 Or n >= 30 或 Do While ★n★<=★0★Or★n>=★30 2 k = k + 1 或 k = 1 + k
3 Loop Until k >= n 或 Loop Until n <= k
16『Visual Basic——程序改错』 '【程序改错】477?
'------------------------------------------------
'题目:用输入对话框输入x,根据公式(图1)计算对应的y, ' 并在窗体上输出y的值。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------
Private Sub Command1_Click() Dim x As Single, y As Single x = Val(InputBox(\输入X的值\ If x = 10 Then
y = 0
'**********FOUND********** Else x > 10 Then
'**********FOUND********** y = Str(x) + Sin(x) Else
'**********FOUND********** y = 2 * x ~ 3 + 6 End If Print y
End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 ElseIf x > 10 Then 或 ElseIf 10 < x Then
2 y = Sqr(x) + Sin(x) 或 y =★Sqr(x)★+★Sin(x) 3 y = 2 * x ^ 3 + 6
17 『Visual Basic——程序改错』 '【程序改错】478
'------------------------------------------------
'题目:密码判断程序,如果密码为12345则显示“恭喜,密码正确”, ' 否则显示“很遗憾,密码错误”,要求文本框中只允许输入数字。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim strPws As String strPws = Trim(Text1.Text) '**********FOUND********** If Len(strPws) <> 0 Then Exit Sub If strPws = \
'**********FOUND********** MsgBox \恭喜,密码正确\验证 Else
MsgBox \很遗憾,密码错误\验证\ End If End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer) '**********FOUND**********
If Not (KeyAscii >= 49 And KeyAscii <= 57) Then KeyAscii = 0
End If End Sub
--------------------------------------------------
『图片数目』:0张
『文件数目』:2张 『答 案』:
1 If Len(strPws) = 0 Then Exit Sub 或 If 0 = Len(strPws) Then Exit Sub 2 MsgBox \恭喜,密码正确\验证\
3 If Not (KeyAscii >= 48 And KeyAscii <= 57) Then 或 If Not (KeyAscii > 47 And KeyAscii < 58) Then
18『Visual Basic——程序改错』 '【程序改错】479
'------------------------------------------------
'题目:下面的程序用“冒泡”法数组a中的10个整数按升 ' 序排列,请修正程序中错误。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim a
Dim i As Integer, j As Integer, a1 As Integer a = Array(-2, 5, 24, 58, 43, -10, 87, 75, 27, 83) For i = 1 To 9
'**********FOUND********** For j = i To 9
'**********FOUND********** If a(j) >= a(i) Then a1 = a(i) a(i) = a(j)
'**********FOUND********** a(j) = a(i) End If Next j Next i For i = 0 To 9 Print a(i) Next i End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张
『答 案』:
1 For j = i + 1 To 9 或 For j = 1 + i To 9 2 If a(i) >= a(j) Then 3 a(j) = a1
19『Visual Basic——程序改错』 '【程序改错】480
'------------------------------------------------
'题目:下面函数的功能是:求变量s(s=a+aa+aaa+aaaa+??)
' 的值。其中,a是一个0-9的数字,总共累加a项。列如, ' 当a=3时,s=3+33+333 (共累加3项)。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Public Function Calc(a As Integer) Dim s As Long Dim t As Long Dim i As Integer s = a
'**********FOUND********** t = 1
For i = 2 To a
'**********FOUND********** t = t + a s = s + t Next i Calc = s Print s End Function
Private Sub Command1_Click() Dim i As Integer
i = InputBox(\请输入数字(0-9):\ '**********FOUND********** Calc (i)
End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 t = a
2 t = t * 10 + a 或 t =★t * 10★+★a 或 t =★t★*★10★+★a 3 Calc i 或 Call Calc(i)
20『Visual Basic——程序改错』 '【程序改错】481
'------------------------------------------------
'题目:下面程序的功能是将一个整数转化为数值字符串, ' 列如123,转化为\转化为“-123”
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Function NtoC(ByVal n As Single)
Dim sign As Boolean, i%, a%, count%, temp%(100) Dim strc As String sign = False
'**********FOUND********** If n < 0 Then sign = False n = Abs(n)
Do While n > 0
'**********FOUND********** a = n / 10 n = n \\ 10
'**********FOUND********** count = 1
temp(count) = a Loop
If sign Then strc = \ For i = count To 1 Step -1
strc = strc + Chr(Asc(\ Next i
NtoC = strc End Function
Private Sub Command1_Click() Print NtoC(-123)
End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 If n < 0 Then sign = True 2 a = n Mod 10
3 count = count + 1 或 count = 1 + count
21『Visual Basic——程序改错』
'【程序改错】482
'------------------------------------------------
'题目:请根据下列描述编写购物优惠程序。某商场为了 ' 加速促成商品流通,采用购物打折的优惠办法,每 ' 位顾客一次购物(1)在100元以上者,按九五折优惠; ' (2)在200元以上者,按九折优惠;(3)300元以上 ' 者,按八折优惠;(4)500元以上者按七折优惠。在窗体
' 上添加两个文本框和一个命令按钮,要求在Text1中输入 ' 购物商品总金额,单击命令按钮,在Text2中输出优惠价。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim x As Single, y As Single x = Val(Text1.Text) If x < 100 Then
'**********FOUND********** x = y Else
If x < 200 Then y = 0.95 * x Else
If x < 300 Then y = 0.9 * x Else
If x < 500 Then y = 0.8 * x Else
y = 0.7 * x
'**********FOUND********** else If End If End If End If
'**********FOUND********** Text2.Text = x End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 y = x 2 End If
3 Text2.Text = y 或 Text2 = y
22『Visual Basic——程序改错』 '【程序改错】483?
'------------------------------------------------
'题目:列表框应用程序。要求从文本框中输入课程名称, ' 然后按\添加\按钮,把姓名添加到列表框中;当选 ' 择列表框中某一项后,按\删除\按钮,则从列表框
' 中删除该项;当选择列表框中某一项后,按\修改\' 按钮,把列表框中选取的项送往文本框且\修改\按 ' 钮变为\修改确认\。在文本框的内容修改好后,按 ' \修改确认\按钮,再把文本框中修改后的信息送到列 ' 表框且\修改确认\按钮变为\修改\。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_Load()
List1.AddItem \北京-上海\ List1.AddItem \北京-广州\ List1.AddItem \北京-四川\ List1.AddItem \北京-西安\ List1.AddItem \北京-哈尔滨\ List1.AddItem \北京-沈阳\ List1.AddItem \北京-长春\
End Sub
Private Sub Command1_Click() If Text1.Text <> \
List1.AddItem Text1.Text '将文本框中的内容加到列表框中 Text1.Text = \
Else
MsgBox \请在文本框中输入信息!\ End If End Sub
Private Sub Command2_Click()
'**********FOUND**********
If List1.ListIndex = 0 Then Exit Sub
List1.RemoveItem List1.ListIndex '删除选定的项目 End Sub
Private Sub Command3_Click()
If Command3.Caption = \修改\ Text1.Text = List1.Text Text1.SetFocus
Command1.Enabled = False Command2.Enabled = False '**********FOUND********** Command3.Caption = \修改\ Else
List1.List(List1.ListIndex) = Text1.Text Command1.Enabled = True Command2.Enabled = True Text1.Text = \
'**********FOUND**********
Command3.Caption = \修改确认\ End If End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 If List1.ListIndex = -1 Then Exit Sub 2 Command3.Caption = \修改确认\ 3 Command3.Caption = \修改\
23『Visual Basic——程序改错』
'【程序改错】484
'------------------------------------------------
'题目:使用顺序文件读写方式编写一个简单的记事本应用程序, ' 基本逻辑是:假设在考生目录中有一个名为exam.txt的文 ' 本文件。当点击\打开\按钮(Command1)时,程序将exam.Txt ' 文件中的内容显示在文本框(Text1)中,当点击\新建\按钮
' (Command2)时,清空Text1中的内容;用户可以在Text1中进行 ' 编辑操作,当点击\保存\按钮(Command3)时,将Text1中的内容
' 保存在exam.txt文件中。当点击\退出\按钮(Command4)时关闭本窗体。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim A As String Text1 = \
Open \ Do While Not EOF(1)
'**********FOUND********** Input #0, A
Text1 = Text1 + A
Loop
'**********FOUND********** Close #0 End Sub
Private Sub Command2_Click() Text1 = \End Sub
Private Sub Command3_Click()
Open \ '**********FOUND**********
Input #1, Text1
Close #1 End Sub
Private Sub Command4_Click() Unload Me End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:3张 『答 案』:
1 Input #1, A 或 Input 1, A 2 Close #1 或 Close 1
3 Write #1, Text1 或 Write 1, Text1
24『Visual Basic——程序改错』 '【程序改错】485?
'------------------------------------------------
'题目:创建一个绘图程序。当程序运行时,单击\绘图\按钮, ' 在窗体的Picture控件上画出[-pi, ]即[-3.14,3.14]
' 区间的余弦曲线。要求将图片框的坐标系定义为左上角 ' 为(-4,2),右下角为(4,-2),并在图片框中画出 ' 坐标的x轴和y轴。程序运行界面如图1所示。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click()
'**********FOUND********** Dim i As Integer
'**********FOUND**********
Picture1.Scale (4, 2)-(4, 2) '定义窗体坐标 Picture1.Line (-4, 0)-(4, 0) '画x轴
Picture1.Line (0, 2)-(0, -2) '画y轴 Picture1.CurrentX = 0.2
Picture1.CurrentY = -0.1
Picture1.Print \ ' 标记原点 Picture1.CurrentX = -3.2
Picture1.CurrentY = -0.1
Picture1.Print \π\ '标记\π\ Picture1.CurrentX = 3.3 Picture1.CurrentY = -0.1 Picture1.Print \
Picture1.CurrentX = 0.2 Picture1.CurrentY = 0.9
Picture1.Print \ '标记\ Picture1.CurrentX = 0.2 Picture1.CurrentY = -0.8
Picture1.Print \ '标记\ For i = -3.141 To 3.141 Step 0.001 '**********FOUND********** Picture1.PSet (i, Sin(i)) Next i End Sub
Private Sub Command2_Click() End
End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 Dim i As Single
2 Picture1.Scale (-4, 2)-(4, -2) 3 Picture1.PSet (i, Cos(i))
25『Visual Basic——程序改错』 '【程序改错】486
'------------------------------------------------ '题目:窗体的左上角坐标(-8,6),右下角坐标为(8,-6)。
' 以厘米为单位,以坐标原点为圆心画圆,程序运行界面如图1所示。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_Click()
'**********FOUND********** ScaleMode = 2
Scale (8, 6)-(8, 6)
'**********FOUND**********'自定义坐标系 Line (8, 0)-(8, 0)
'**********FOUND**********
Line (0, 6)-(0, 6)
CurrentX = 0.1: CurrentY = -0.1: Print \ '标记坐标原点 CurrentX = 7.5: CurrentY = -0.2: Print \ CurrentX = 0.2: CurrentY = 5.5: Print \ DrawWidth = 3 Circle (0, 0), 4, vbBlue Circle (0, 0), 4, vbGreen, , , 2.5 End Sub
-------------------------------------------------- 『图片数目』:1张 『文件数目』:2张 『答 案』:
1 ScaleMode = 7 2 Line (-8, 0)-(8, 0)
3 Line (0, 6)-(0, -6)
26『Visual Basic——程序改错』 '【程序改错】487
'------------------------------------------------
'题目:设窗体中有图片框Pic1,现要求在其中绘制10个同心圆, ' 然后将此图以Test.BMP作文件名存入磁盘。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Command1_Click() Dim X As Integer Dim Y As Integer
Dim I As Integer
'**********FOUND********** Dim rad(10) As Integer X = Pic1.ScaleWidth / 2 Y = Pic1.ScaleHeight / 2 For I = 0 To 9
rad(I) = 500 * Rnd Next I I = 9
'**********FOUND**********
Do Until I < 1
Pic1.Circle (X, Y), rad(I), RGB(256 * Rnd, 256 * Rnd, 256 * Rnd) '**********FOUND********** I = I + 1
Loop
SavePicture Pic1.Image, \End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』: 1 Dim rad(9) As Integer 2 Do Until I < 0 3 I = I – 1
27『Visual Basic——程序改错』 '【程序改错】488
'------------------------------------------------
'题目:编程实现从左到右的滚动字幕,滚动的速度由滚动条 ' 控件来控制。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------
Private Sub HScroll1_Scroll()
'**********FOUND**********
Timer1.Interval = HScroll1.Min - HScroll1.Value End Sub
Private Sub Timer1_Timer()
'**********FOUND********** If Label1.Left <= Form1.Width Then '**********FOUND********** Label1.Left = Label1.Width Else
Label1.Left = Label1.Left + 100 End If End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张
『答 案』:
1 Timer1.Interval = HScroll1.Max - HScroll1.Value 2 If Label1.Left >= Form1.Width Then 3 Label1.Left = -Label1.Width
28『Visual Basic——程序改错』 '【程序改错】489
'------------------------------------------------
'题目:给定三角形的三条边,计算三角形的面积。要求 ' 程序首先判断给定的三条边能否构成三角形。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构
'------------------------------------------------ Private Sub Form_Click()
Dim a As Single, b As Single, c As Single Dim s As Single, t As Single start: a = InputBox(\输入1边长:\ b = InputBox(\输入2边长:\ c = InputBox(\输入3边长:\
'**********FOUND********** If a + b < c Or b + c < a Then
MsgBox (\不能构成三角形,请重新输入个边\ GoTo start End If
'**********FOUND********** t = (a + b) / 2
'**********FOUND********** s = Sqr((t - a) * (t - b) * (t - c)) Print \该三角形的面积:\End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 If a + b < c Or b + c < a Or a + c < b Then 2 t = (a + b + c) / 2 或 t = (a + b +★ c★) / 2
3 s = Sqr(t * (t - a) * (t - b) * (t - c)) 或 s = Sqr(★t * ★(t - a)★ * ★(t - b) ★* ★(t - c)★)
29『Visual Basic——程序改错』 '【程序改错】490
'------------------------------------------------
'题目:输入一个字符串,将所有的小写字母都转换为大写字母。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------
Private Sub Form_Click()
Dim s1 As String, s2 As String, i As Integer, t As String s1 = InputBox(\输入字符串,#号结束\ i = 1
'**********FOUND********** s1 = Mid(s1, i, 1) While t <> \
'**********FOUND**********
If t >= \ s2 = s2 + t
i = i + 1
t = Mid(s1, i, 1) Wend
'**********FOUND********** Print \新字符串为:\End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 t = Mid(s1, i, 1)
2 If t >= \ 3 Print \新字符串为:\
30『Visual Basic——程序改错』 '【程序改错】491
'------------------------------------------------
'题目:判断给定的年月日是该年中的第几天。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------
Private Sub Form_Click()
Dim year As Integer, month As Integer, day As Integer Dim days As Integer, i As Integer '**********FOUND********** Dim a(0 To 11) As Integer days = 0
For i = 1 To 12
a(i) = InputBox(\输入\月份的天数,2月暂输入为28天:\ Next i
year = InputBox(\输入年:\ month = InputBox(\输入月:\ day = InputBox(\输入日:\ For i = 1 To month
'**********FOUND********** days = days + a(i) Next i
'**********FOUND********** days = day
If year Mod 4 = 0 And year Mod 100 <> 0 Or year Mod 400 = 0 And month >= 3 Then days = days + 1
Print \该日期是该年中的第\天\End Sub
--------------------------------------------------
『图片数目』:0张 『文件数目』:2张 『答 案』:
1 Dim a(1 To 12) As Integer 2 days = days + a(i - 1) 3 days = days + day
31『Visual Basic——程序改错』 '【程序改错】492
'------------------------------------------------
'题目:输入两个正整数m和n,求其最大公约数。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_Click()
Dim m As Integer, n As Integer, r As Integer m = InputBox(\输入m的值:\ n = InputBox(\输入n的值:\ Do While n <> 0
'**********FOUND********** r = m / n
m = n
'**********FOUND********** n = m Loop
'**********FOUND********** Print \两数的最大公因子为:\End
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 r = m Mod n 2 n = r
3 Print \两数的最大公因子为:\
32『Visual Basic——程序改错』 '【程序改错】493
'------------------------------------------------
'题目:输入两个正整数m和n,求其最大公约数。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_Click()
Dim m As Integer, n As Integer, r As Integer m = InputBox(\输入m的值:\ n = InputBox(\输入n的值:\ Do While n <> 0
'**********FOUND********** r = m / n m = n
'**********FOUND********** n = m Loop
'**********FOUND********** Print \两数的最大公因子为:\End
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』: 1 r = m Mod n
2 n = r
3 Print \两数的最大公因子为:\
33『Visual Basic——程序改错』 '【程序改错】494
'------------------------------------------------
'题目:有5个人坐在一起,问第5个人多少岁?他说比第4个 ' 人大2岁。问第4个人岁数,他说比第3个人大2岁。 ' 问第3个人,又说比第2个人大2岁。问第2个人,说 ' 比第1个人大2岁。最后问第1个人,他说是10岁。 ' 请问第5个人有多人岁数。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Function Age(ByVal N As Integer) '**********FOUND********** If N = 5 Then Age = 10
Else
'**********FOUND********** Age = Age(N) + 2 End If
End Function
Private Sub Form_Click()
'**********FOUND********** Print Age(1) End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 If N = 1 Then 或 If 1 = N Then 2 Age = Age(N - 1) + 2 3 Print Age(5)
34『Visual Basic——程序改错』
'【程序改错】495
'------------------------------------------------
'题目:移动数组元素,将数组中某个位置的元素移动到指定位置. '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Function fMove(a%(), L1%, L2%)
Dim N As Integer, i As Integer, T As Integer '**********FOUND********** N = LBound(a) If L2 = N + 1 Then
'**********FOUND********** a(N) = a(L1) For i = L1 To N a(i) = a(i + 1) Next i Else
T = a(L1)
a(L1) = a(L2)
'**********FOUND********** a(L1) = T End If End Function
Private Sub Form_Click() Dim a%(1 To 5) Dim i As Integer For i = 1 To 5 a(i) = i Next
fMove a, 1, 5 For i = 1 To 5
Print a(i)
Next End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』: 1 N = UBound(a) 2 a(N + 1) = a(L1) 3 a(L2) = T
35『Visual Basic——程序改错』
'【程序改错】496
'------------------------------------------------
'题目:使用Timer函数设计用来暂停指定时间(秒)的Sub过程。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Static Sub delay(delaytime) Dim finish As Single
Const allseconds = 24& * 60& * 60 '**********FOUND********** finish = delaytime
If finish > allseconds Then finish = finish - allseconds '**********FOUND********** Do While Timer < finish DoEvents Loop End If
'**********FOUND********** Do While Timer > finish DoEvents Loop End Sub
Private Sub Form_Click() Print Now delay 3 Print Now End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张
『答 案』:
1 finish =★Timer★+★delaytime
2 Do While Timer > finish 或 Do While finish < Timer 3 Do While Timer < finish 或 Do While finish > Timer
36『Visual Basic——程序改错』 '【程序改错】497
'------------------------------------------------
'题目:编程求一个十进制整数n的各位数字之和,设n为小于或等于5位的数。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------
Private Sub Form_Click()
Dim N As Integer, Sum As Integer, S1 As String, S2 As String Dim i As Integer, Ch As String Sum = 0
N = InputBox(\输入整数n\ S1 = Str(N)
'**********FOUND********** S1 = LTrim(S1) For i = 1 To Len(S1)
'**********FOUND********** Ch = Mid(N, i, 1)
'**********FOUND********** Sum = Val(Ch)
Next i
Print \该整数的各位数之和是:\End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 S1 = Trim(S1) 2 Ch = Mid(S1, i, 1) 3 Sum = Sum + Val(Ch) 或 Sum =★Sum★+★Val(Ch)
37『Visual Basic——程序改错』
'【程序改错】498
'------------------------------------------------
'题目:编程求一个m*n矩阵中最大元素及其所在的行列号。 '------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_Click()
Dim A() As Integer, max As Integer
Dim M As Integer, N As Integer Dim i As Integer, j As Integer
Dim col As Integer, row As Integer M = InputBox(\输入矩阵的行数:\
N = InputBox(\输入矩阵的列数:\ ReDim A(M, N) As Integer
For i = 1 To M For j = 1 To N
A(M, N) = InputBox(\输入数组元素:\ Next j Next i
'**********FOUND********** max = A(0, 0) For i = 1 To M
For j = 1 To N
If max < A(i, j) Then max = A(i, j)
'**********FOUND********** row = j End If
'**********FOUND********** col = i Next j Next i
Print \该矩阵元素的最大值:\
Print \最大值所在的行:\所在的列:\End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 max = A(1, 1) 2 col = j 3 row = i
38『Visual Basic——程序改错』 '【程序改错】499
'------------------------------------------------
'题目:编程将一个数从已经有序(设从小到大排序)的数组 ' 中删除,使数组还继续保持有序而且其余元素按照下 ' 标连续存放。
'------------------------------------------------
'注意:不可增加或删除程序行,也不可以更改程序结构 '------------------------------------------------ Private Sub Form_Click()
Dim A() As Integer, N As Integer, Flag As Integer Dim i As Integer, X As Integer, P As Integer Flag = 0
N = InputBox(\输入元素个数\ '**********FOUND********** Dim A(N)
For i = 1 To N
A(i) = InputBox(\输入数组的第\个元素\ Next i
Print \删除某元素前的数组\ For i = 1 To N Print A(i); Next i
Start:
X = InputBox(\输入要删除的元素:\ For i = 1 To N
If X = A(i) Then P = i: Flag = 1
Next i
If Flag = 0 Then MsgBox (\没有此元素\ For i = P To N - 1
'**********FOUND********** A(i + 1) = A(i)
Next i
'**********FOUND********** N = N + 1
Print \删除元素后的数组:\ For i = 1 To N Print A(i); Next i
End Sub
-------------------------------------------------- 『图片数目』:0张 『文件数目』:2张 『答 案』:
1 ReDim A(N)
2 A(i) = A(i + 1) 或 A(i) = A(1 + i) 3 N = N - 1
正在阅读:
程序改错05-31
初中数学竞赛-因式分解(1)12-15
市场营销本科毕业论文 汽车 比亚迪02-26
倍数与因数2、3、5的倍数练习 3.1612-16
攀岩作文600字07-16
武汉电子水准仪--天宝DINI_0.3mm_数字水准仪培训教程说明书05-17
最新国家开放大学电大《物流设施与设备(本)》期末题库及答案07-07
审计定性与处罚6-行政事业单位08-13
vbse实训总经理总结08-28
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 改错
- 程序