VB程序改错40题
- 格式:docx
- 大小:210.11 KB
- 文档页数:67
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程序改错四、程序改错共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个)两位的互质数。
'以下程序段用于输出杨辉三角:结果样式如图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'------------------------------------------------'【程序改错】'------------------------------------------------'题目:编程将一个数从已经有序(设从小到大排序)的数组' 中删除,使数组还继续保持有序而且其余元素按照下' 标连续存放。
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。
一、改错题【题目】本程序是生成个位数分别是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.改错时,不得增加或删除语句,但可适当调整语句位置。
(本试卷完成时间 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程序调试试题集锦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运行该程序段,会出现的错误提示为。
第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程序改错题程序改错1.题目:已知C的公式表示如下:'n!'C=------------------'(n-m)!某m!'函数过程fac()求k!函数,在Fomr_Click事件中完成运算,'请修正程序中错误。
'------------------------------------------------OptionE某plicitPrivateFunctionfac(kAInteger)ASingleDim某ASingle,jAInteger 某=0Forj=1Tok某=某^jNe某tjfac=某EndFunctionPrivateSubForm_Click()DimCASingleDimmAInteger,nAIntegerm=Val(InputBo某(\请输入一个整数(m):\n=Val(InputBo某(\请输入一个整数(n):\C=fac(n)/fac(n-m)某fac(m)Print\EndSub2.题目:程序功能为打印下列图形:'某'某某'某某某'某某某某'某某某某某'------------------------------------------------OptionE某plicitPrivateSubForm_Click()ClDimiAIntegerDimjAIntegerFori=1To7Forj=1To5Print\LoopPrintNe某tiEndSub3.题目:本程序的功能是随机产生的10个两位正整数,并进行递减排序。
'------------------------------------------------OptionE某plicitPrivateSubCreateRND()DimTempAIntegerDimIAIntegerDimNAIntegerDim某(10)AIntegerDimJAIntegerN=10Print\数据:\ForI=1ToN某(I)=Int(Rnd()某90)Print某(I);Ne某tIPrintPrint\排序:\ForI=0ToN-1ForJ=I+1ToNIf某(I)>某(J)ThenTemp=某(I)某(J)=某(I)某(I)=TempEndIfNe某tJPrint某(I);Ne某tIPrintEndSub4.题目:随机产生并输出100以内大于50的20个整数,输出时每5个数一行。
【程序改错】'题目:该程序的功能是求出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分)'题目:(事件)双击窗体。
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!。
程序改错1 题目:求s=2!+4!+6!+8!,阶乘的计算用Function过程fact实现。
程序代码:Private Sub Form_Click()Dim i as integer, s as longFor i = 2 to 8 →For i = 2 to 8 step 2s = s + fact(i)Next iPrint sEnd SubPublic Function fact( ) →Public Function fact(Byval n%)Dim t as longDim i as integert = 1For i = 1 to nt = t * iNext iFact = i →Fact = tEnd function2 题目:请根据下列描述编写购物优惠程序。
某商场为了加速促成商品流通,采用购物打折的优惠办法,每位顾客一次购物(1)在100元以上者,按九五折优惠;(2)在200元以上者,按九折优惠;(3)在300元以上者,按八折优惠;(4)在500元以上者,按七折优惠。
在窗体上添加两个文本框和一个命令按钮,要求在Text1中输入购物商品总金额,单击命令按钮,在Text2中输出优惠价。
程序代码:Private Sub Command1_Click ()Dim x As Integer, y As Singlex = Val(Text1.Text)If x < 100 thenx = y →y=xElseIf x < 200 theny = 0.95 * xElseIf x < 300 theny = 0.9 * xElseIf x < 300 theny = 0.8 * xElsey = 0.7 * xElse If →End IfEnd IfEnd IfEnd IfText2.text = x →Text2.text = yEnd Sub3 题目:创建一个绘图程序。
改错〖第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整除。
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)中,插入该数据后数组还是有序的。
第2题(1、0分)题号:1 2 9'【程序改错】'题目:该程序实现将输入得0 —255 之间得正整数转换成二进制数O p t i on Explici tP riv a t e Sub Fo r m _Cl i ck ()Con st n = 8Dim a(n) A s I n tege r, s As Stri ng, m A s I n te g er, x A s Integerx = Va l (In p utB ox (”请输入一个0 — 2 55之间得正整数: ")) Prin t x** ** ******FOUND**Fo r m = 1 T o n(m ) = x Mod 2*** * *F^) D********* *Nex t mFor m =n To 0 S t e p —1* *********FOU N D * **** * * ** *s = Str(a( m ))Nex t mPri n t sE n d Sub答案:(答案1)For m = 0 To n======= 答案2)x= x \ 2 或x= int(x/2)=======(答案3)s = s + St r (a (m))第3题(l、0分) 题号:463'题目:以下程序功能就是输入三个数,由大到小排序。
Op t io n ExplicitDi m A A s I n tegerDim B As I n te g erD im C As I nt e gerP r ivat e Sub F o r m_Click()Dim nTemp A s IntegerA = V a l(ln putB o x (H P lease in put fi r st i nt e ger","输入正整数”))B = Val( I n putBo x (” Pl e a s e in put s eco nd int e ge r”,"输入正整数”))C = Va i (In pu tB o x(” P 1 e a se in put third int e ger ” ,"输入正整数”))F OU ND * * *****If A v= C T h enn Te m p = AA = BB = n Te mpE nd I f> ***** *FOUND**** * * * ***I f B <= C T hennTe mp = AA = CC = nTem p* * *FO UN D * ** **If A 〈= B T hennT e mp = BB = CC = n TempEnd IfPrint ” The in te g e rs in of der isE nd Sub答案:=======(答案1)=======I f A <= B The n==== == ===或===== === =If B >= A Th e n===== ==(答案2)= ======I f C >= A T hen=== ====(答案3)===== ==I f B 〈 = C Then= ===== ===或===== ====If C >= B Th en第4题(1、0分)题号:127'题目:下面程序可输出如下图形E n d IfA; B;C* * */ * ***** * **Opt io n Explic i tPrivate Sub For m _C 1 ick()Di m m As In teger , n As In t eger, s As St ring , i As In t e g e r , j AsI nte g e rn = 4Fo r i = 5 To 1 St ep —1Print S p c (n)F or j = 1 To 2* m — 1 P r int s;Next jPrintOUND***Next iE nd Sub* **o U N D*** * * * ****/ ****** * ** ***** *FOUN * ******答案:==== ===(答案 1)=======Print S pc ( n );=======(答案 2)=======n = n - 1===== ==(答案 3)==== ===m = m + 1第5题 (1、0分)题号:4 69'题目:已知一个函数 f ( x ) = 1 000* s in (x ),利用绘图方法' 在图片框中显示其图形。
结果如图 1Op t i on E x plici tPr i v ate C o nst pi = 3、1 4159P r iv ate Sub man dl _C 1 ick ()〉 ********** 匚 Cl I MH**** * ** * **D i m x As In teg e rP icture1、Scale (- p i , -1 2 00)—( pi, 1200)**F O UND** **For x = -p i To p i S tep p i1000 * pi * Sin(x ) ),vbRedEn d Sub答案:答案 1)= 咲 ******* **FO U N D *** *******P ic ture1、P S e t (x ,Dim x As Single^=^=^= ^=^=^=^= 或 ^=^=^= ^=^=^= ^=D i m x!_====_=(答案 2)_=_===_F o r x = -pi T o pi Step p i / 18 0=====_=(答案 3)====_==Picturel 、PS et (x, 1 0 00 * S in (x)) __ =_=_===或_=======Picture1、P Se t (x, S in(x )* 1 0 00), v bRe d第6题 (1、0分)题号:49 7'题目:编程求一个十进制整数n 得各位数字之与 ,设n 为小于或等于5位得数 Option Explic i tP r ivat e S u b F o rm_Click()Dim N As I nt eg er, S u m As I n teger, S 1 As Str ing , S2 As St rD im i As I n te g er, Ch A s Strin gSum _ 0N _ InputBox ("输入整数 n ”S 1 = Str(N )S1 = R T r im (S1)For i = 1 To Len(S 1)* FO U N D*** ***C h = Mid ( N, i , 1)Su m = Val(Ch )vbRedng ********* *F OU N D***I****** * * * *FO U ND*** * * * ***N e x t iPrint ”该整数得各位数之与就是: ”; SumE n d S ub答案:=== ====(答案1)== =====S1 = Trim(S1)== == ===(答案2)===== ==Ch = M id(S1, i, 1 )= == ====(答案3)===== ==Sum = Su m + Val(C h)第7题(1、0分)题号:454'题目:本程序得功能就是随机产生得10 个两位正整数,并进行递减排序。
Option Ex p licitP r ivate Su b C r eat eRND ()Di m T e m p As IntegerD im I As Inte gerDi m N As IntegerDim X( 10) As I n t e gerDim J A s In te gerN = 10P r in t "数据:"For I = 1 To NFO UND***X(l) = In t(R n d () * 9 0)Pri nt X (I);Next lPrin tP r int ”排序:”For I = 0 To N - 1F or J = I+ 1 To N> ****** * * * * F OUN D**If X(I) > X (J) T h en* FOUND** * ***Te mp = X(I)X( J) = X( I)X (I) = Tem pEnd IfNe xt JPr int X(I)Next IPr i n tEn d SubPrivate S ub m a nd1_Click ()C r eateRNDEnd S u b答案:=======(答案1)=======X(I) = I n t(10 + R n d() * 90)NextPrint ” 5得”;"n 次方就是” ;sE nd Su b答案:=======(答案1) =======k= 1=======(答案 2)=======If X (I ) < X ( J ) T hen= == === =(答案 3)=== ====temp = X (J )第9题(1、0分) 题号:1 3 0'题目:以下程序段用于计算5得 N 次方。
Option ExplicitPr iva te S ub Di m n As Int e ger , k As In teg e r, s As Long n =Inp u tBox(” I np ut n ”)> * *** * *** * *FO u N D** * * * ** * * ** * ****** * *FO UN D ***s = 0D o W hi 1 e k <= ns = s * 5* ** * * * * * F O U N D*For m _C 1 i c k()=======(答案2)===== ==s= 1== ===== (答案3) ===== ==L o op第11 题(1、0 分) 题号:452'题目:用自定义函数得方法求s um(x),求当一1<x< 1时,'s um(x)=x/2! +x A2/3! +x人3/4!+ ......... + x A n/ (n+1)!, / 当x> 1或x〈一1时,函数值为0。
当n <=0时,输入数' 据错误.X、N都就是由用户输入。
O pti o n E x plicitP r iv at e Su b ma nd1_ C lick()Dim s A s S ingl eDim n As Integer, x As Si ng 1 e, k As I n t e gern = V al (I n putB o x("Please in put a in teger va lue:” ))x = Val(I nputBo x ("Ple a se i np u t a sin gle valu e :"))If n 〈= 0 T henk = Ms g Box (” 数据输入错误!" , v b Re t ryCancel + v bExclamati o n, ”数据输入” )Ex i t Su bE n d Ifs = Sum( x,n)P r in t sEnd Su bFu n cti on Sum( x As Singl e , n A s Inte ge r)Dim i As I n teger , ss As Lon gs s = 1Sum = 0If x >1 O f x <— 1 Th e nExi t DoElseF o r i = 2 T o ns s = s s * iS u m = x A (i — 1) / s sN e xt iEnd If End F unction答案:=======(答案 1)== =====e x i t Function=======(答案 2)=======For i = 2 T o n + 1=== ======或 = = =======Fo r i = 2 T o 1 +n == === ==(答案 3)=====s u m = s u m + x A (i - 1 )/ s s第14题 (1、0分) 题号:1 3 6/ ***** F OUN D*** ** * * *** *FOUN D ** *** ****** F O UND* *** ******'题目:程序功能为打印下列图形** * * *O p t i o n Ex pli citPr i vate Sub F o r m _Clic k()C IsLo opPrin tNe x t iE nd S ub答案:=======(答案 1)====== Dim i As Inte ge rDim j As Inte ge r'* * * * **** ** F O UND*** *** * ***Fo ri = 1 T o 7 ' * * * * * ** * * * FOUND**** * ** ***Fo r j = 1 T o 5P rin t "* ”;咲* * * * * * * * * FO UND* * * * ***For i = 1 To 5 =======(答案2)=== ====Fo r j = 1 T o i=======(答案3 )=======Next j____ I—»I / ___________ I~~I y _______N ext第16题(1、0分)题号:461'题目:产生30个小于100 得成绩随机数,并统计出优、良' 、中等、及格、不及格数得个数, 并计算出成绩属' 于优秀段得成绩平均分。