VB程序改错40题1

合集下载

VB改错题(答案)

VB改错题(答案)

1.程序的功能是:单击命令按钮“输出”,在图片框Picture1中输出费波那契数列的前20项项值,要求按区输出,每行输出4个项值。

程序中有两处错误,请修改程序并运行,直到得出正确结果。

注意:程序中的修改行就在注释行:'**********found*************' '请不要删除该行'的下面,请不要修改程序中的其他部分。

最后把修改后的文件按原来文件名存盘。

第1个出错位置:For i=3 to 20第2个出错位置:If i Mod 4=0 then Picture1.PrintPrivate Sub Command1_Click()Dim f(40) As LongDim i As IntegerPicture1.Clsf(1) = 0f(2) = 1Picture1.Print f(1), f(2),'**********found*************' '请不要删除该行'For i = 1 To 40For i=3 to 20f(i) = f(i - 1) + f(i - 2)Picture1.Print f(i),'**********found*************' '请不要删除该行'If i Mod 4 = 0 Then Picture.PrintIf i mod 4=0 then picture1.printNext iEnd Sub2. 程序的功能是:程序运行时,单击“输出”按钮,产生10个[0,99]之间的随机整数存入数组A中,并按照相反的顺序输出在窗体上。

程序中有两处错误,请修改程序并运行,直到得出正确结果。

第1个出错位置:A(i)=Int(Rnd*100+0) p50第2个出错位置:Print A(11-i);Private Sub Command1_Click()RandomizeDim A(10), I As IntegerForm1.ClsFor I = 1 To 10'*********found******** '请不要删除该行A(I) = Int(Rnd * 99) A(i)=Int(Rnd*100+0)Print A(I);Next IPrintFor I = 1 To 10'*********found******** '请不要删除该行Print A(I); Print A(11-i) (注意答案中间无;)Next IEnd Sub3. 在考生文件夹下有一个工程文件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列的矩阵形式显示出来,然后交换矩阵第一行和第三行的数据,并在窗体上输出交换后的矩阵。

VB程序改错

VB程序改错

VB程序改错四、程序改错共7题第1题题号:7'【题目】从10个各不相同的正整数中,剔除若干个数。

使得保留下来的数中,' 任意两个数的和都不是平方数'(所谓平方数就是该数等于某一个数的平方,例如4就是一个平方数)。

Option ExplicitOption Base 1Private Sub Command1_Click()Dim a(10) As Integer, i As Integer, j As Integer, p As Integer, k As Integer'**********FOUND**********Do While p <= 10k = Int(20 * Rnd) + 1For j = 1 To p'**********FOUND**********If k = a(j) Then Exit DoNext jIf j > p Thenp = p + 1a(p) = kText1 = Text1 & Str(k)End IfLoopCall delete(a, p)For i = 1 To pText2 = Text2 & Str(a(i))Next iEnd SubPrivate Sub delete(a() As Integer, p As Integer)Dim idx As Integer, j As Integer, sum As Integer idx = 2Do While idx < pFor j = 1 To idx - 1sum = a(idx) + a(j)If Int(Sqr(sum)) = Sqr(sum) Then Exit For Next j'**********FOUND**********If j > idx - 1 Thena(idx) = a(p)p = p - 1Elseidx = idx + 1End IfLoopEnd Sub答案:=======(答案1)=======Do While p < 10=======(答案2)=======If k = a(j) Then Exit For=======(答案3)=======If j <= idx - 1 Then第2题题号:8'【题目】本程序的功能是生成一组(10个)两位的互质数。

VB程序设计例题-程序改错程序填空程序设计

VB程序设计例题-程序改错程序填空程序设计

'以下程序段用于输出杨辉三角:结果样式如图1'Private Sub Form_Click()Const n = 10Dim arr(n, n) As IntegerFor I = 1 To narr(I, I) = 1'**********SPACE**********【arr(I, 1) = 1】Next IFor I = 3 To nFor j = 2 To I - 1'**********SPACE**********arr(i, j) =arr(i-1,j-1)+arr(i-1,j)Next jNext IFor I = 1 To nFor j = 1 To I'**********SPACE**********【print arr(I,j)】Next jPrintNext IEnd SubOption Explicit'------------------------------------------------'【程序改错】'------------------------------------------------'题目:用自定义函数的方法求sum(x),求当-1≤x≤1时,' sum(x)=x/2!+x^2/3!+x^3/4!+……+x^n/(n+1)!,' 当x〉1或x〈-1时,函数值为0。

当n〈=0时,输入数' 据错误。

X、N都是由用户输入。

'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Command1_Click()Dim s As SingleDim n As Integer, x As Single, k As Integern = Val(InputBox("Please input a integer value:"))x = Val(InputBox("Please input a single value:"))If n <= 0 Thenk = MsgBox("数据输入错误!", vbRetryCancel + vbExclamation, "数据输入")Exit SubEnd Ifs = Sum(x, n)Print sEnd SubFunction Sum(x As Single, n As Integer)Dim i As Integer, ss As Longss = 1Sum = 0If x > 1 Or x < -1 Then'**********FOUND**********Exit Do 改为Exit FunctionElse'**********FOUND**********For i = 2 To n 改为For i = 2 To n+1ss = ss * i'**********FOUND**********Sum = x ^ (i - 1) / ss 改为Sum =sum+ x ^ (i - 1) / ssNext iEnd IfEnd FunctionOption Explicit'------------------------------------------------'【程序改错】'------------------------------------------------'题目:编程将一个数从已经有序(设从小到大排序)的数组' 中删除,使数组还继续保持有序而且其余元素按照下' 标连续存放。

vb程序改错

vb程序改错

1.在考生文件夹下有一个工程文件Modi.vbp,相应的窗体文件为Modi.frm。

其功能是:产生30个[0,90]的随机整数,放入一个数组中,然后输出其中的最大值。

程序运行后,单击命令按钮,可求出数组中的最大值,并在窗体上显示。

运行界面请参阅附图。

在窗体的代码窗口中,已给出了部分程序,程序中有两处错误,请修改程序并运行,直到得出正确结果。

注意:程序中的修改位置就在注释行:’**********found*************’’请不要删除该行’的下面一行中,请不要改动程序中的其他部分。

最后把修改后的文件按原来文件名存盘,提交程序改错题文档。

VERSION 5.00Begin VB.Form Form1Caption = "Form1"ClientHeight = 2100ClientLeft = 1905ClientTop = 1875ClientWidth = 3660LinkTopic = "Form1"ScaleHeight = 2100ScaleWidth = 3660Begin mandButton Command1Caption = "输出最大值"Height = 375Left = 960TabIndex = 0Top = 1320Width = 1575EndEndAttribute VB_Name = "Form1"Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute VB_Exposed = FalseOption Base 1Private Sub Command1_Click()Dim arrN(30) As IntegerDim Max As IntegerRandomizeForm1.ClsFor i = 1 To 30’**********found*************’’请不要删除该行’arrN(i) = Int(Rnd * 51) 91Print Format(arrN(i),"@@@@@@");If i Mod 6 =0 Then PrintNext i’**********found*************’’请不要删除该行’Max = arrN(0) 1For i = 2 To 30If Max<arrN(i) ThenMax = arrN(i)End IfNext iPrint "Max=";Max2. 在考生文件夹下有一个工程文件Modi.vbp,相应的窗体文件为Modi.frm。

江苏二级VB改错题测试

江苏二级VB改错题测试

一、改错题【题目】本程序是生成个位数分别是0、l、2、…9的十个三位随机整数,再按插入排序方法由大到小排序,并输出到列表框中。

Option ExplicitPrivate Sub Command1_Click()Dim a(9) As Integer, x As Integer, k As Integer, i As IntegerDo While i <= 9x = Int(Rnd * 900 + 100)k = x Mod 10If a(k) = 0 Thena(k) = xi = i + 1Text1 = Text1 & Str(a(k))End IfLoopsort (a)‘sort aFor i = 0 To 9List1.AddItem a(i)Next iEnd SubPrivate Sub sort(a() As Integer)Dim x As Integer, i As Integer, j As IntegerFor i = 1 To UBound(a)x = a(i)j = i - 1Do While j >= 0 And x > a(j)a(j) = a(j + 1) ‘a(j+1)=a(j)j = j - 1If j < 0 Then Exit Sub‘Exit DoLoopIf i > j + 1 Thena(j + 1) = xEnd IfNext iEnd Sub二、改错题【题目】本程序的功能是查找3位和4位的Armstrong数。

若一个N位的正整数,其各位数字的N次方之和等于这个数本身。

则这个数就是一个Armstrong数。

如:153=1^3+5^3+3^3,1634=1^4+6^4+3^4+4^。

Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, A() As Integer, f As Boolean, n As IntegerDim j As Integer, st As Stringst = ""‘下移一行For I = 153 To 9999f = FalseCall Arms(I, f, A, n)If f Thenst = st & I & "="For j = 1 To UBound(A) - 1st = st & A(j) & "^" & n & "+"Next jst = st & A(j) & "^" & nList1.AddItem stEnd IfNext IEnd SubPrivate Sub Arms(k As Integer, f As Boolean, B() As Integer, n As Integer) ‘ByV al k as Integer Dim I As Integer, Sum As Integer, M As Integern = Len(Str(k)) ‘CStr(k)M = kReDim B(n)For I = n To 1 Step -1B(I) = k Mod 10k = k \ 10Next IFor I = 1 To nSum = Sum + B(I) ^ n '计算各位数字的N次方之和Next IIf Sum = M Then f = TrueEnd Sub【要求】1.新建工程,输入上述代码,改正程序中的错误;2.改错时,不得增加或删除语句,但可适当调整语句位置。

VB上机模拟改错题

VB上机模拟改错题

(本试卷完成时间 60分钟)[考试须知]1.改错题界面不作要求,主要用来调试程序,题目中有参考界面,则仅作参考;2.考试结束后,文件须存放在指定位置,否则不予评分;3.程序代码书写应成锯齿形。

一、改错题(14分)[题目]随机生成30个三位正整数显示在列表框List1中,并从中找出所有回文数显示在多行文本框Text1中。

Option ExplicitOption Base 1Private Sub Command1_Click()Dim i As IntegerDim A(30) As IntegerFor i = 1 To 30A(i) = Int(Rnd * 900 + 100)List1.AddItem A(i)Next iFor i = 1 To 30If judge(A) ThenText1 = Text1 & CStr(A(i)) & Chr(13) & Chr(10)End IfNext iEnd SubPrivate Function judge(ByVal x As Integer) As BooleanDim S As String, i As IntegerS = Str(x)For i = 1 To Len(S) \ 2If Mid(S, i, 1) = Mid(S, Len(S) - i + 1, 1) Then Exit ForNext iIf i > Len(S) \ 2 Thenjudge = TrueElsejudge = FalseEnd IfEnd Function[要求]1.新建工程,Copy上述代码,改正程序中的错误;2.改错时,不得增加或删除语句,但可适当调整语句位置;3.按要求保存文件,上传窗体文件……G1.frm。

(本试卷完成时间 60分钟)[考试须知]1.改错题界面不作要求,主要用来调试程序,题目中有参考界面,则仅作参考;2.考试结束后,文件须存放在指定位置,否则不予评分;3.程序代码书写应成锯齿形。

省二 vb程序改错

省二 vb程序改错
Dim x As Integer
count = 0
x = 200
While x <= 400
If x Mod 3 = 0 Or x Mod 7 <> 0 Then
count = count + 1
End If
x = x + 1
Loop
Print count
End Sub
k = k + 1
Wend
s = s + t
i = i + 1
Wend
Print s
End Sub
答案:40346
3004题:
程序功能:计算s=2!+4!+6!+8!。程序中有两行有错误。改正错误,使它能输出正确的结果。
原程序:
Private Sub Command1_Click()
Number = Number + 1
End If
Next x
Print Number
End Sub
答案:21
3020题:
程序功能:sum=d+dd+ddd+……+ddd..d(d为1-9的数字)。例如:3+33+333+3333(此时d=3,n=4)。从键盘上输入d 的值为8,n的值为9,求sum的值。程序中有两行有错误。改正错误,使它能输出正确的结果。
Next count
print count
End Sub
答案:19
3008题:
程序功能:求1到500间,同时能被5和9整除的数的个数。程序中有两行有错误。改正错误,使它能输出正确的结果。
原程序:

VB程序改错40题

VB程序改错40题

第57题(1.0分)题号:465'------------------------------------------------'【程序改错】'------------------------------------------------'题目:用InputBox函数输入一个字符串,编写程序按与' 输入的字符相反的次序用Msgbox函数输出这个字' 符串。

如输入字符串为"abcdefgh",则输出为"h' gfedcba",输出效果如图1。

'------------------------------------------------ Option ExplicitPrivate Sub Command1_Click()Dim pristr As String, outstr As StringDim i As Integerpristr = InputBox("please input a string")'**********FOUND**********For i = 0 To Len(pristr)'**********FOUND**********outstr = outstr + Mid(pristr, Len(pristr) - i) Next i'**********FOUND**********MsgBox outstr, , "The Output Result "End Sub答案:=======(答案1)=======For i = 0 To Len(pristr) - 1=========或=========For i = 0 To -1+Len(pristr)=======(答案2)=======outstr = outstr + Mid(pristr, Len(pristr) - i, 1)=========或=========outstr = Mid(pristr, Len(pristr) - i, 1)+outstr=======(答案3)=======MsgBox outstr, vbQuestion, "The Output Result "第59题(1.0分)题号:147'------------------------------------------------'【程序改错】'------------------------------------------------'题目:下面的程序用来产生并输出图示的杨辉三角。

VB改错填空答案

VB改错填空答案

属性设置:将Timer1的interVal属性设置为:10000,Timer2的interVal属性设置为:1000Timer1_Timerelse*原语句Label1.Visible=False改为Label1.Visible=TrueTimer2_Timer*原语句Label2.Caption = Timer()改为 Label2.Caption = Time()填空Tk248.Frm( 1 ) Val(m) ( 2 ) m Mod n改错Gc315.Frm属性设置:将Timer1的interVal属性设置为:0C1_Click*原语句Timer1.Enabled = False 改为 Timer1.InterVal=100Timer1_Timer*原语句If P1.Top > P2.Top + P2.Left Then 改为 If P1.Top > P2.Top + P2.Height Then填空Tk315.Frm( 1 ) Finish ( 2 ) <改错Gc316.Frm属性设置:将File1的Pattern属性设置为:*.bmp,将Image1的Stretch属性设置为:TrueDir1_Change*原语句 File1.Path = Dir1.Drive 改为 File1.Path = Dir1.PathFile1_Click*原语句 Image1.Picture = fname 改为 Image1.Picture = LoadPicture(fname)填空Tk316.Frm( 1 ) a(j - 1) + a(j) ( 2 ) Picture1.Print改错Gc317.Frm属性设置:将Timer1的InterVal属性设置为:100,将Label1的Caption属性设置为:上机测试Command2_Click*原语句 Timer1.Timer 改为 Timer1_TimerTimer1_Timer*原语句 ElseIf Label1.Left > 0 Then 改为 ElseIf Label1.Left < 0 Then填空Tk317.Frm( 1 ) Len(Text1.Text) ( 2 ) a(j) + 1改错Gc318.Frm属性设置:将Hscroll1的Max、Min属性分别设置为:20、10Command1_Click*原语句RGB(Text1.Text, Text2.Text, Text3.Text) 改为RGB(Val(Text1.Text), Val(Text2.Text), Val(Text3.Text))HScroll1_Change()*原语句Label1.FontSize = HScroll1 改为 Label1.FontSize = HScroll1.Value填空Tk318.Frm( 1 ) i = 1 To 9 ( 2 ) Data(i) > Data(j)改错Gc319.Frm属性设置:将Form1的WindowState属性设置为:2,Command1的Caption 属性设置为:开始计算Command1_Click*原语句If j > 10 Then Exit Do 改为 If j = 10 Then Exit Do*原语句i = i - 1 改为 i = i + 1填空Tk319.Frm( 1 ) 5 ( 2 ) i属性设置:将Option3的Caption属性设置为: *,将Option3的ToolTipText属性设置为:乘法Option1_Click*原语句Text3.Text = Text1.Text + Text2.Text 改为Text3.Text = val(Text1.Text) + Val(Text2.Text) Option3_Click*原语句Text3.Text = Integer(Text1.Text * Text2.Text) 改为Text3.Text = Int (Text1.Text * Text2.Text)填空Tk320.Frm( 1 ) b ^ 2 - 4 * a * c ( 2 )ElseIf d = 0改错Gc334.Frm属性设置:将Text1的Text属性设置为:空值,将Command1的Caotion属性设置为:增加List1_Click*原语句List2.AddItem List1.ListIndex 改为List2.AddItem List1.TextList2_Click*原语句List2.RemoveItem List2.List(List2.ListIndex) 改为List2.RemoveItem List2.ListIndex填空Tk334.Frm( 1 ) s(Max) < s(j) ( 2 )s(n) = Text1.Text改错Gc335.Frm属性设置:将Timer1的InterVal属性设置为:1000,将窗体的Caotion属性设置为:倒计时程序Timer1_Timer*原语句Text1.Text = Format(Now, "SS:HH:MM")改为Text1.Text = Format(Now, "HH:MM:SS")Timer2_Timer*原语句Timer1.Interval = 0 改为Timer1.Enabled = False填空Tk335.Frm( 1 )Num(i) = Int(Rnd * 91 + 10) ( 2 )IsPrime(Num(i))改错Gc372.FrmSub swap1过程*原语句swap1(x As Integer, y As Integer)改为swap1(ByVal x As Integer, ByVal y As Integer) Sub swap2过程*原语句t = m: n = m: n = t 改为t = m: m = n: n = t填空Tk372.Frm( 1 )fibo(i); ( 2 )fibo(n - 1) + fibo(n - 2)改错Gc373.FrmForm_Click*原语句Else下面的nCount = nCount + 1 改为nCount = 1*原语句第二个End If 改为 Next n填空Tk373.Frm( 1 )a1 ( 2 )ncount -1改错Gc402.FrmForm_Click*原语句For i = 1 To n 改为For i = 1 To n-1*原语句sum = 1 / kk 改为 sum = sum + 1 / kk填空Tk402.Frm( 1 )Rnd*201+300 ( 2 )s = s + a(i)改错Gc403.FrmCommand1_Click*原语句((a + c>b) And (b>0)) Or ((c + b>a) 改为((a + c>b) And (b > 0)) And ((c + b>a)*原语句Abs(s * (s - a) * (s - b) * (s - c)) 改为 Sqr(s * (s - a) * (s - b) * (s - c))填空Tk403.Frm( 1 ) ss = Str( i ) ( 2 )a^3 + b^3 + c^3 = i属性设置:将Label1的BorderStyle属性设置为:1,将时钟的InterVal属性设置为:500Command2_Click*原语句Timer1.Enabled = True 改为Timer1.Enabled = FalseTimer1_Timer*原语句Label1.Caption = Timer() 改为 Label1.Caption = Time()填空Tk457.Frm( 1 ) n - i ( 2 )i < n改错Gc458.FrmC1_Click*原语句If x > 100 And x < 0 Then 改为If x > 100 Or x < 0 Then*原语句Label3.Caption = "该生成绩" 改为 Label3.Caption = Strtemp填空Tk458.Frm( 1 ) S ( 2 )result改错Gc481.FrmForm_Click*原语句f(i) = f(i) + f(i - 1) 改为f(i) = f(i-2) + f(i - 1)*原语句If (i Mod 5) = 5 Then 改为 If (i Mod 5) = 0 Then填空Tk481.Frm属性设置:将Command1的Caption属性设置为:计算机,将窗体的Caption属性设置为:等级考试( 1 ) Form1.Caption ( 2 )temp改错Gc482.Frm属性设置:将Text1、Text2的Text属性设置为:空值;Command1、Command2的Caption属性分别设置为:华氏转摄氏、摄氏转华氏Command1_Click*原语句F = Text1.Value 改为F = Text1.TextCommand2_Click*原语句C = Text2.Value 改为 C = Text2.Text填空Tk482.Frm( 1 ) i ( 2 )0改错Gc509.Frm属性设置:Command1、Command2的Caption属性分别设置为:计算&S、结束&XCommand1_Click*原语句If Text1.Text = "" Then 改为If Text1.Text <> "" ThenCommand2_Click*原语句Exit 改为 End填空Tk509.Frm( 1 ) 100 ( 2 )True改错Gc510.Frm属性设置:Command1、Command2的Caption属性分别设置为:计算&S、结束&XCommand1_Click*原语句If Text1.Text = "" Then 改为If Text1.Text <> "" ThenCommand2_Click*原语句Exit 改为 End填空Tk510.Frm( 1 ) b^2 – 4 * a * c ( 2 )Sqr(abs(d))属性设置:Command1、Command2的Caption属性分别设置为:定义坐标系统&S、绘正弦曲线&X Command1_Click*原语句Form1.Scale (-8, 2)+(8, -2) 改为Form1.Scale (-8, 2)-(8, -2)Command2_Click*原语句x = 1: y = Sin(i) 改为 x = i: y = Sin(i)填空Tk535.Frm( 1 ) num Mod 6 = 2 And num Mod 5 = 3 ( 2 )Text1.SetFocus改错Gc536.FrmForm_Click*原语句arr(i) = 20 + 80 * Rnd(-1) 改为arr(i) = 20 + 80 * Rnd(1)*原语句s = s + arr(1) 改为 s = s + arr(i)填空Tk536.Frm( 1 ) a ^ 2 + b ^ 2 = c ^ 2 ( 2 )Text1.Text = n改错Gc561.FrmForm_Click*原语句sum = 0 改为sum = 1*原语句sum = 1 / kk 改为 sum = sum + kk填空Tk561.Frm( 1 ) rnd * 201 + 100 ( 2 )s + a(i)改错Gc562.Frm属性设置:Command1、Command2的Caption属性分别设置为:运行、清理Command1_Click*原语句List1.List i & "=" & Sqr(i) & "^2" 改为List1.AddItem Sqr(i) & "^2" Command2_Click*原语句Text1.Focus 改为 Text1.SetFocus填空Tk562.Frm( 1 ) P(I) + P(J) + P(K) = N ( 2 )Idx = Idx + 1改错Gc587.Frm属性设置:Command1的Caption属性设为:开始计数;Timer1的Interval属性设为:1000C1_Click*原语句 Timer1.Enabled = True 改为 T1.Enabled = TrueT1_Click*原语句Text1.Text = Text1.Text + 10 改为 Text1.Text = Text1.Text + 1填空Tk587.Frm( 1 ) 32 ( 2 )String(1, Asc(b) + n)改错Gc588.FrmCommand1_Click*原语句 Item = 0 改为 Item = 1*原语句 Sum = Sum + Item 改为 Sum = Sum + I/Item填空Tk588.Frm( 1 ) End ( 2 )Text1.Text = ""改错Gc613.Frm属性设置:Form1的Caption属性设为:个人爱好;Command11的Caption属性设为:显示Command1_Click*原语句 If Check2.Value = 0 改为 If Check2.Value = 1Command2_Click*原语句 Then s = Check3.Caption 改为 Then s = s + Check3.Caption填空Tk613.Frm( 1 ) x >= 0 ( 2 )x < aminCommand1_Click*原语句 n = 1 改为 n = 0*原语句Text1 = s 改为 Text1 = n填空Tk614.Frm( 1 ) i+1 ( 2 ) s改错Gc639.Frm属性设置:Forma1的Caption属性设为“书籍采购计划”,Command1、Command2的Nmame属性设为:cmdAdd 和cmdDeleteCommAdd_Click*原语句 lstBook.AddItem = txtBook.Text 改为 lstBook.AddItem txtBook.TextCmdDelete_Click*原语句If lstBook.ListIndex = -1 Then 改为 If lstBook.ListIndex > -1 Then填空Tk639.Frm( 1 ) Rnd * 4 + 1 ( 2 )"S(" & I & ")=" & S(I)改错Gc640.FrmCommand1_Click*原语句 s = s + i 改为 s = s + i^2或 s = s + i*iCommand2_Click*原语句Release Me 改为 Unload Me填空Tk640.Frm( 1 ) f * i ( 2 ) Unload改错Gc666.Frm属性设置:Form1的Caption属性设为:加法器;Label1的Caption属性设为:+Command1_Click*原语句 Timer1.Enabled = True 改为 T1.Enabled = TrueCommand2_Click*原语句Text3 = Text1 + Text2 改为 Text3 = Val(Text1) + Text2填空Tk666.Frm( 1 ) i \ 100 ( 2 )i - hundred * 100 - ten * 10改错Gc667.FrmCommand1_Click*原语句 m = 1 改为 m = 0*原语句n = n + m 改为 n = n + 1填空Tk667.Frm( 1 ) P * j ( 2 )S + P改错Gc692.Frm属性设置:Form1的Caption属性设为:字幕滚动;Command11的Caption属性设为:手动Command1_Click*原语句 Form1.Timer1.Enabled = True 改为 Form1.Timer1.Enabled = FalseCommand2_Click*原语句Else下面的 Form1.Timer1.Enabled = False 改为 Form1.Timer1.Enabled = True填空Tk692.Frm( 1 ) TOTAL = 0 ( 2 )Sqr(L * (L - A) * (L - B) * (L - C))改错Gc693.FrmCommand1_Click*原语句sum = sum + 1 / item 改为 sum = sum + i / item*原语句Text1.Text1 = Str(sum) 改为 Text1.Text = Str(sum)填空Tk693.Frm( 1 ) a(i) ( 2 )i = 5 To 1 Step -1属性设置:Form1的Caption属性设为:字幕放大;Timer1的InterVal属性设为:200 Command1_Click*原语句 Timer1.Enabled = False 改为Timer1.Enabled = True*原语句 Timer1.Enabled = True 改为Timer1.Enabled = False填空Tk728.Frm( 1 ) n + 1 ( 2 )n - 1改错Gc729.FrmCommand1_Click*原语句item = item + j 改为 item = item * j*原语句sum = item 改为 sum = sum + item填空Tk729.Frm( 1 ) For i=0 to 1000 step 2 ( 2 ) Str(sum)改错Gc756.Frm属性设置:Command1的Name、Caption、Left和Top属性分别设为:cmd1、移动、0、0 Command1_Click*原语句cmd1.Left = Left + 100 改为 cmd1.Left = cmd1.Left + 100*原语句Top = cmd1.Top + 100 改为 cmd1.Top = cmd1.Top + 100填空Tk56.Frm( 1 ) Val(Txt1.Text) ( 2 ) num * rmb改错Gc757.Frm属性设置:Command1_Click*原语句Item = 0 改为 Item = 1*原语句 Sum = Sum + Item 改为 Sum = Sum + 1 / Item填空Tk757.Frm( 1 ) b^2 – 4 * a * c ( 2 ) b / (2 * a)改错Gc784.Frm属性设置:Command1的Name、Caption属性分别设置为Cmd1、开始计时Private Sub Form_Load()*原语句 Timer1.Interval = 100 改为 Timer1.Interval = 1000Private Sub Timer1_Timer()*原语句 Label2(0).Caption = Timer1 改为 Label2(0).Caption = Time填空Tk784.Frm( 1 ) x ( 2 )Form1.Text1.ForeColor改错Gc785.FrmCommand1_Click*原语句Item = 0 改为 Item = 1*原语句 Sum = Sum + Item 改为 Sum = Sum + i / Item填空Tk785.Frm( 1 ) s + i^2 ( 2 ) End。

VB程序改错40题含答案

VB程序改错40题含答案

【程序改错】题目:该程序实现将输入的 0 - 255 之间的正整数转换成二进制数Option ExplicitPrivate Sub Form_Click()Const n = 8Dim a(n) As Integer, s As String, m As Integer, x As Integer x = Val(InputBox("请输入一个 0 - 255 之间的正整数:"))Print xFor m = 1 To na(m) = x Mod 2x = x / 2Next ms = " "For m = n To 0 Step -1s = Str(a(m))Next mPrint sEnd Sub答案:=======(答案1)=======For m = 0 To n=======(答案2)=======x= x \ 2=========或=========x= int(x/2)=======(答案3)=======s = s + Str(a(m))第3题(1.0分)题号:463'【程序改错】'题目:以下程序功能是输入三个数,由大到小排序。

Option ExplicitDim A As IntegerDim B As IntegerDim C As IntegerPrivate Sub Form_Click()Dim nTemp As IntegerA = Val(InputBox("Please input first integer", "输入正整数"))B = Val(InputBox("Please input second integer", "输入正整数"))C = Val(InputBox("Please input third integer", "输入正整数"))If A <= C ThennTemp = AA = BB = nTempEnd IfIf B <= C ThennTemp = AA = CC = nTempEnd IfIf A <= B ThennTemp = BB = CC = nTempEnd IfPrint "The integers in order is"; A; B; CEnd Sub答案:=======(答案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第4题(1.0分)题号:127'【程序改错】'题目:下面程序可输出如下图形:' *' ***' *****' *******' *********'------------------------------------------------Option ExplicitPrivate Sub Form_Click()Dim m As Integer, n As Integer, s As String, i As Integer, j As Integer n = 4m = 1s = "*"For i = 5 To 1 Step -1Print Spc(n)For j = 1 To 2 * m - 1Print s;Next jPrintn = n + 1m = m - 1Next iEnd Sub答案:=======(答案1)=======Print Spc(n);=========或=========Print Spc(i);=========或=========? Spc(n);=========或=========? Spc(i);=======(答案2)=======n = n - 1=========或=========n = - 1+n=======(答案3)=======m = m + 1第5题(1.0分)题号:469'【程序改错】'题目:已知一个函数f(x)=1000*sin(x),利用绘图方法' 在图片框中显示其图形。

版上海海事大学VB题库——改错

版上海海事大学VB题库——改错

改错〖第1题〗『程序改错』(5分)(题号:132)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:求s=2!+4!+6!+8!,阶乘的计算用Function过程' fact实现'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Form_Click()dim i as integer,s as Long'**********FOUND**********For i = 2 To 8s = s + fact(i)Next iPrint sEnd Sub'**********FOUND**********Public Function fact( )dim t as Longdim i as integert = 1For i = 1 To nt = t * iNext I'**********FOUND**********fact=iEnd Function答案:1)、For i = 2 To 8 Step 22)、Public Function fact(ByVal n As Integer) 或Public Function fact(n As Integer) 或Public Function fact(n%) 或Public Function fact(n) 或Public Function fact(ByVal n%) 或Public Function fact(ByVal n)3)、fact = t〖第1题〗『程序改错』(5分)(题号:132)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:求s=2!+4!+6!+8!,阶乘的计算用Function过程' fact实现'------------------------------------------------'注意:不可增加或删除程序行,也不可以更改程序结构'------------------------------------------------Private Sub Form_Click()dim i as integer,s as Long'**********FOUND**********For i = 2 To 8s = s + fact(i)Next iPrint sEnd Sub'**********FOUND**********Public Function fact( )dim t as Longdim i as integert = 1For i = 1 To nt = t * iNext I'**********FOUND**********fact=iEnd Function答案:1)、For i = 2 To 8 Step 22)、Public Function fact(ByVal n As Integer) 或Public Function fact(n As Integer) 或Public Function fact(n%) 或Public Function fact(n) 或Public Function fact(ByVal n%) 或Public Function fact(ByVal n)3)、fact = t〖第1题〗『程序改错』(5分)(题号:493)'------------------------------------------------'【程序改错】'------------------------------------------------'题目:给定年号与月份,判断该年就是否闰年,并根据给出的' 月份来判断就是什么季节与该月有多少天?' (闰年的条件就是:年号能被4整除但不能被100整除,' 或者能被400整除。

VB程序填空改错设计题库全汇编

VB程序填空改错设计题库全汇编

1.'功能:以下程序段用于计算n的阶乘:n!。

(1!=1)2. 已知某城市一年的交通事故车辆报废情况,编程序计算该城市的交通事故一年损失金额。

3. 下面的程序用"冒泡"法将数组a中的10个整数按从小到大排列,请将程序补充完整。

4. '程序运行界面。

键盘输入3个数,将它们按由大到小的顺序输出,-1为结束标志。

5. '在窗体有三个复选框,名称分别为Ch1、Ch2和Ch3,标题依次为'"体育"、"音乐"、"美术",还有一个命令按钮,名称为C1,标题'为"显示"。

要求程序运行后,如果选中某个复选框,则当单击'"显示"命令按钮时,则显示相应的信息。

例如,如果选中"体育"'和"音乐"复选框,则单击"显示"命令按钮后,在窗体上显示'"我的爱好是体育音乐"(如图1所示);而如果选中"体育"、'"音乐"和"美术"复选框,则单击"显示"按钮后,在窗体上显示"'我的爱好是体育音乐美术"。

6. 窗体上建立了一个文本框Text1("输入口令")和一个命令按钮Command1("检查")。

' 判断密码是否正确,并显示相应提示在加载窗体时设置密码框最大长度为8,密码显示字符为“*”7. 下面的程序用于求三个数中最大数8. 要求输入若干学生的成绩,计算平均分和高于平均分的人数,并将这两个数据放入数组的最后。

9. 求A,B,C三个数的最大值。

10. 该程序通过For循环计算一个表达式的值,这个表达式是1/2+2/3+3/4+4/511. 用户单击命令按钮后,程序将文本框Text1中的文本反转显示,同时在文本框Text2中显示文本框Text1中字符串的个数12. 功能:单击“插入数据”按钮后,输入一个整型数据,该数据会被插入到一个有序的数组a(1 to 10)中,插入该数据后数组还是有序的。

4-专题讨论之VB程序纠错调试

4-专题讨论之VB程序纠错调试

VB程序调试试题集锦1. 某Visual Basic程序的一个事件过程如下:Private Sub Command1_Click()Dim ch As Stringch = "abcd"Label1.Caption = chEnd Sub窗体中标签对象的属性设置如图所示。

运行程序,单击命令按钮Command1,出现“要求对象”的出错信息提示。

引起该错误的语句是(A)Dim ch As String (B)ch = "abcd"(C)Label1.Caption = ch (D)End Sub2. 某Visual Basic程序的一个事件过程如下:Private Sub Command1_Click()Dim x As SingleDim y As Singlex = -10y = Abc(x)Label1.Caption = Str(y)End Sub运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,引起该错误的语句是 (A)Dim y As Single (B)x = -10(C)y = Abc(x) (D)Label1.Caption = Str(y)3. 某Visual Basic程序的一个事件过程如下:Private Sub Command1_Click()Dim a As IntegerDim x As Doublea = -4x = Sqr(a)Label1.Caption = Str(x)End Sub运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,此时程序正执行的语句是(A)Dim a As Integer (B)Dim x As Double(C)x = Sqr(a) (D)Label1.Caption = Str(x)4.下列Visual Basic程序用于计算1010的值:Private Sub Command1_Click()Dim n As Integer, s As Integern = 10s = 10 ^ nText1.Text = Str(s)End Sub运行程序时,单击命令按钮Command1后弹出如图所示的出错信息提示,引起该错误的原因是(A)变量s的数据类型说明不当(B)变量n的数据类型说明不当(C)文本框Text1的宽度不够(D)s值太大,因此不能在文本框Text1中输出5.某Visual Basic程序的一个事件过程如下:Private Sub Command1_Click()Dim r As SingleDim pi As Doubler = 100pi = 3.14Label1.Caption = "圆面积为:" + Val(pi * r * r)End Sub运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,引起该错误的语句是 (A)Dim r As Single(B)Dim pi As Double(C)pi = 3.14(D)Label1.Caption = "圆面积为:" + Val(pi * r * r)6. 某Visual Basic程序段如下:Dim a(1 To 10) As IntegerDim i As Integera(1) = 1For i = 2 To 10a(i) = a(i - 1) * iNext i运行该程序段,会出现的错误提示为(A)下标越界 (B)子程序或函数未定义(C)要求对象 (D)溢出7. 有如下的Visual Basic程序:Private Sub Command1_Click()Const pi = 3.14Dim s As Single, r As Singler = Val(text1.Text)pi = 3.1415s = pi * r ^ 2Label1.Caption = "面积为" + Str(s)End Sub程序运行后,单击命令按钮Command1,出现如图所示的错误提示,下列原因分析正确的是 (A)常量不能用小数(B)pi是常量,不允许赋值(C)文本框Text1中输入的数据不是常量(D)表达式结果超过了变量类型的范围8. 某Visual Basic程序如下:Private Sub Command1_Click()Dim a(1 To 10) As IntegerDim i As IntegerFor i = 1 To 10a(i) = i * iNext iList1.AddItem Str(a(i))End Sub运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,此时程序正执行的语句是(A)For i = 1 To 10 (B)a(i) = i * i(C)Next i (D)List1.AddItem Str(a(i))9. 某Visual Basic程序如下:Private Sub Command1_Click()Dim i As Integer, sum As Integersum = 0For i = 10 To 2 Step -2sum = sum + iNext iText1.Text = Str(sum)End Sub运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,此时程序正执行的语句是(A)Sum = 0 (B)For i = 10 To 2 Step -2(C)sum = sum + i (D)Text1.Text = Str(sum)10. 某Visual Basic程序如下:Private Sub Command1_Click()Dim x As Integer, i As IntegerFor i = 1 To 10 Step 3x = i * (i + 2)List1AddItem Str(x)Next iEnd Sub运行程序,单击命令按钮Command1后弹出如图所示的出错信息提示,引起该错误的语句是 (A)For i = 1 To 10 Step 3 (B)x = i * (i + 2)(C)List1AddItem Str(x) (D)Next i11. 某Visual Basic程序段如下:Dim a(1 To 11) As IntegerDim i As Integera(1) = 1If i = 5 Thena(i) = a(i - 1) * i运行该程序段,会出现的错误提示为12. 某Visual Basic程序段如下:Dim a(1 To 10) As IntegerDim i As Integera(1) = 1For i = 2 To 10a(i) = a(i - 1) * iNext i运行该程序段,会出现的错误提示为 13. 某Visual Basic程序段如下:Dim i As IntegerDo While i <= 10If i Mod 2 = 1 Theni = i + 1Loop运行该程序段,会出现的错误提示为。

VB程序改错

VB程序改错

VB程序改错ProProblemProSource ProAnswer程序功能:根据整型参数m,计算100-999的平方根的倒数之和。

程序的函数fun()中有一行有错误,改正错误,使它能输出正确的结果。

Private SubCommand1_Click() PrintFormat(fun(100, 999),"#.######")End SubPrivate Function fun(m As Integer, n As Integer) As Single 43.27978程序功能:回文数是指正读和反读都一样的正整数。

例如27672是回文数。

求[10000,99999]之间的偶数回文数的个数。

程序中有一行有错误。

改正错误,使它能输出正确的结果。

Private SubCommand1_Click()n = 0For x = 10000 To 99999 a = x \ 10000 Mod 10 '万位b = x \ 1000 Mod 10 '千位c = x \ 100 Mod 10'百位400程序功能:回文数是指正读和反读都一样的正整数。

例如37673是回文数。

求[10000,99999]之间的奇数回文数的个数。

程序中有一行有错误。

改正错误,使它能输出正确的结果。

Private SubCommand1_Click()n = 0For x = 10000 To 99999 a = x \ 10000 Mod 10 '万位b = x \ 1000 Mod 10 '千位c = x \ 100 Mod 10'百位500程序功能:回文数是指正读和反读都一样的正整数。

例如4774是回文数。

求[1000,9999]之间的偶数回文数的个数。

程序中有一行有错误。

改正错误,使它能输出正确的结果。

Private SubCommand1_Click()n = 0For x = 1000 To 9999 a = Int(x / 1000)'千位b = Int(x / 100) -a * 10 '百位c = Int(x / 10) -a * 100 - b * 10 '十40程序功能:计算s=2!+4!+6!+8!。

vb程序改错和程序设计

vb程序改错和程序设计

【程序改错】'题目:该程序的功能是求出100到200之间的全部素数,并且按每行4个、每个数据之间有10个空格的格式输出。

'注意:不可增加或删除程序行,也不可以更改程序结构' Private Sub Form_Click()dim k as integer,i as integer,j as integerk = 0For i = 100 To 200'**********FOUND**********For j = 1 To i - 1If i Mod j = 0 Then Exit ForNext jIf j = i Then'**********FOUND**********Print i; Tab(10);k = k + 1'**********FOUND**********If k Mod 5 = 0 Then Print;End IfNext iEnd Sub答案:1). For j = 2 To i - 1 或For j = 2 To -1 + i2). Print i; Space(10);3). If k Mod 4 = 0 Then Print━━━━━━━━━━━━━━━━'【程序设计】' '题目:(事件)单击窗体。

(响应)求100以内偶数的和,并将结果输出在窗体上。

将结果存入变量SUM中答案:26__________________________________Dim i As IntegerFor i = 1 To 100If i Mod 2 = 0 Thensum = sum + iEnd IfNextPrint sum'【程序改错】'------------------------------------------------'题目:在下面的程序段中过程pd可以判断任意三个数能' 否构成三角形的三边,利用该过程的判定结果,对能构成三角形的计算其面积,构不成的显示"不能构成三角形Option ExplicitPrivate Sub Form_Click()'**********FOUND**********Dim x%, y%, z%, s%, b As Boolean,h as Singlex = InputBox("请输入三角形的边长")y = InputBox("请输入三角形的边长")z = InputBox("请输入三角形的边长")= InputBox("请输入三角形的边长")b = pd(x, y, z)h = (x + y + z) / 2'**********FOUND**********If not b Thens = Sqr(h * (h - x) * (h - y) * (h - z))Print "三角形面积是"; sElsePrint "不能构成三角形"End IfEnd Sub'**********FOUND**********Public Function pd( ) As BooleanIf x > 0 And y > 0 And z > 0 And x + y > 0 And x + z > y And y + z > x Thenpd = TrueElsepd = FalseEnd IfEnd Function答案:1). Dim ★x%★, ★y%★,★z%★, ★s!★, ★b★As Boolean★, ★h As Single2). If b Then3). Public Function pd(x%, y%, z%) As Boolean━━━━━━━━━━━━━━━━三、程序设计共1题(共计15分)'题目:(事件)双击窗体。

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

Integer Dim r As Integer r = m Mod n Do While r <> 0 '**********FOUND********** n = m n = r r = m Mod n Loop '**********FOUND********** gcd = r End Function Private Sub Form_Click() Dim a As Integer, b As Integer, c As Integer a = InputBox("输入一个整数") b = InputBox("输入一个整数") a = Val(a) b = Val(b) '**********FOUND********** Call gcdd Sub
答案: =======(答案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 第70题 (1.0分) 题号:142 '-----------------------------------------------'【程序改错】 '-----------------------------------------------'题目:程序功能根据输入的学习成绩,分别显示优秀 ' (90分以上), 良好(75分以上),及格(60分以上) ' 不及格四个等级. '-----------------------------------------------Option Explicit Private Sub Form_Click() Cls Dim i As Integer i = InputBox("请输入学习成绩") Select Case i '**********FOUND********** Case 0 < i < 100 MsgBox "成绩应该在0--100之间""" '**********FOUND********** Case 90 Print "优秀" Case 75 To 89 Print "良好"
第57题 (1.0分) 题号:465 '-----------------------------------------------'【程序改错】 '-----------------------------------------------'题目:用InputBox函数输入一个字符串,编写程序按与 ' 输入的字符相反的次序用Msgbox函数输出这个字 ' 符串。如输入字符串为"abcdefgh",则输出为"h ' gfedcba",输出效果如图1。 '-----------------------------------------------Option Explicit Private Sub Command1_Click() Dim pristr As String, outstr As String Dim i As Integer pristr = InputBox("please input a string") '**********FOUND********** For i = 0 To Len(pristr) '**********FOUND********** outstr = outstr + Mid(pristr, Len(pristr) - i) Next i '**********FOUND********** MsgBox outstr, , "The Output Result " End Sub 答案: =======(答案1)======= For i = 0 To Len(pristr) - 1 =========或========= For i = 0 To -1+Len(pristr) =======(答案2)======= outstr = outstr + Mid(pristr, Len(pristr) - i, 1) =========或========= outstr = Mid(pristr, Len(pristr) - i, 1)+outstr
Case 60 To 74 Print "及格" '**********FOUND********** Case MsgBox "不及格", vbCritical End Select End Sub 答案: =======(答案1)======= Case is>100 ,is<0 =========或========= case is<0 ,is>100 =======(答案2)======= Case 90 to 100 =======(答案3)======= Case else 第71题 (1.0分) 题号:473 '-----------------------------------------------'【程序改错】 '-----------------------------------------------'题目:下列程序进行-n阶乘运算,当阶乘的值超过-21147483648 溢出报错,并将结果输出为-1。 '-----------------------------------------------Option Explicit '**********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
'-----------------------------------------------'题目:从计算机输入三个数 , 找出中间数 '-----------------------------------------------Option Explicit Private Sub FindMidNum() Dim x As Integer, y As Integer, z As Integer, A As Integer x = InputBox("PLEASE INPUT THE FIRST NUMBER") y = InputBox("PLEASE INPUT THE SECOND NUMBER") z = InputBox("PLESSE INPUT THE THIRD NUMBER") '**********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
答案: =======(答案1)======= m = n =======(答案2)======= gcd = n =======(答案3)======= c = gcd(a, b) 第65题 (1.0分) 题号:492
'-----------------------------------------------'【程序改错】 '-----------------------------------------------'题目:输入两个正整数m和n,求其最大公约数。 '-----------------------------------------------Option Explicit 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 "两数的最大公因子为:"; n End Sub 答案: =======(答案1)======= r = m Mod n =======(答案2)======= n = r =======(答案3)======= Print "两数的最大公因子为:"; m 第66题 (1.0分) 题号:467 '-----------------------------------------------'【程序改错】
=======(答案3)======= MsgBox outstr, vbQuestion, "The Output Result " 第59题 (1.0分) 题号:147 '-----------------------------------------------'【程序改错】 '-----------------------------------------------'题目:下面的程序用来产生并输出图示的杨辉三角。 ' 1 ' 1 1 ' 1 2 1 ' 1 3 3 1 ' 1 4 6 4 1 ' 1 5 10 10 5 1 '-----------------------------------------------Option Explicit Public Sub readin(a() As Integer, n As Integer) Dim i, j As Integer For i = 1 To n '**********FOUND********** a(i, n) = 1 a(i, 1) = 1 Next i For i = 3 To n '**********FOUND********** For j = 2 To n a(i, j) = a(i - 1, j) + a(i - 1, j - 1) Next j Next i End Sub Public Sub printf(a() As Integer, n As Integer) Dim i, j As Integer For i = 1 To n '**********FOUND**********
相关文档
最新文档