ImageVerifierCode 换一换
格式:DOC , 页数:12 ,大小:369.50KB ,
资源ID:959794      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/959794.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(二程序调试参考答案概要.doc)为本站上传会员【胜****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

二程序调试参考答案概要.doc

1、二) 程序调试(参考答案) 程序调试题的操作步骤是: (1)建立一标准EXE工程,将这一模块程序添加到工程中。如果你是通过双击标准模块程序Model1.BAS进入Visual Basic系统的,则首先需要添加一个窗体模块。 (2)将该标准模块程序Model1.BAS中代码的指定的错误修改正确或在指定的空位填上适当的语句,并在窗体模块中编写代码(常常写在窗体的Click()事件中)调用标准模块中的Sub过程或用户自定义函数(如果在标准模块程序Model1.BAS有多个过程或函数,要注意调用的先后顺序,否则得不到正确结果),调试运行程序,使其能输出正确结果。 (3)按试题要求保存工程。

2、 如果你的计算机中没有模块程序Model1.BAS,你必需先自己新建一工程,再添加一个默认标准模块,将题目所附的参考程序输入(可复制粘贴),将其中用---n---(n为1,2,3,4,5)部分删除后改为合适的内容或将用**** 错误n **** 标示的下一语句中的错误改正,然后调试运行程序使其达到该题目的要求。 1.已有一模块文件Modify.Bas。该模块中的Summary过程是用于计算1!+2!+...+20!,并打印出计算结果,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的nFactor函数过程用于计算n!。 程序如下: Public Funct

3、ion nFactor(ByVal n As Integer) As Double Dim i As Integer Dim temp As Double temp=1 For i = 1 To n temp = temp * i Next i nFactor = temp End Function Public Sub summary() Dim sum As Double Dim i As Integer Dim n As Integer n = 20

4、 For i = 1 To n sum = sum + nFactor(i) Next i Form1.Print "sum=" & sum End Sub 2.已有一模块文件Modify.Bas。该模块中的Calculate过程是产生100个[0,99]范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。 程序如下: Public Sub calculate() Dim a(1 To 100) As Integer Dim x(1 To 10) As In

5、teger Dim i As Integer, p As Integer '产生100个[0,99]范围内的随机整数 '每行10个打印出来 For i = 1 To 100 '******** 错误1 *********** a(i) =int( Rnd * 100) If a(i) < 10 Then Form1.Print Space(2); a(i); Else Form1.Print Space(1); a(i);

6、 End If If i Mod 10 = 0 Then Form1.Print Next i '统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数 '并将统计结果保存在数组x(1),x(2),...,x(10)中,将统计结果打印出来 For i = 1 To 100 '******** 错误2 ********** p = Int(a(i) mod 10) '求个位上的数字 If p = 0 Then p = 10 '******

7、 错误3 ********** x(p) = x(p) + 1 Next i Form1.Print "统计结果" For i = 1 To 10 p = i If i = 10 Then p = 0 '******** 错误4 ********* Form1.Print "个位数为" + Str(p) + "共" + Str(x(i)) + "个" ‘个位数为0统计结果保存在x(10)中 Next i End Sub 3.已有一模块文件Modify

8、Bas。该模块中的Findat过程是用于在一个字符串变量中查找"at",并用消息框给出查找结果的报告:没有找到或找到的个数,但不完整,请在横线上填入必要的内容,使其完整。 程序如下: Public Sub Findat() '在字符串str1中查找"at" Dim str1 As String Dim length As Integer '字符串长度 Dim sum As Integer '查到的个数 Dim i As Integer str1 = InputBox("请输入一个字符串") length =

9、len(str1) i = 1 sum = 0 Do While i <= length If mid(str1,i,2) = "at" Then sum = sum + 1 End If i = i + 1 Loop If sum=0 Then MsgBox "没有找到!" Else MsgBox "找到了" & Str(sum) & "个" End If End Sub 4.已有一模块文件Mod

10、ify.Bas。该模块中的 Guess 过程是猜数游戏,由计算机产生一个[1,100]的任意整数,输入猜数后计算机给出提示,如果5次后还没有猜中就结束游戏并公布正确答案。 程序如下: Public Sub Guess() Dim R As Integer Dim X As Integer Dim times As Integer Randomize '****** 错误1 ****** R = int(Rnd * 100+1) '产生一个1--100 的任意整数或 int(Rnd*100)+1 times

11、 = 1 Do X = Val(InputBox("输入猜数X")) Select Case X Case R Form1.Print "猜中了" Exit Do '***** 错误2 ****** Case IS > R Form1.Print "太大了,继续猜!" Case Else Form1.Print

12、"太小了,继续猜!" End Select times = times + 1 '****** 错误3 ****** Loop While times <= 5 If times > 5 Then Form1.Print "猜数失败,游戏结束!" '****** 错误4 ****** Form1.Print "正确答案为" & Str(R) End If End Sub 5.已有一模块文件Modify.Bas。该模块中的ArmstrongNumber过程是用

13、于求出1--999之间所有的Armstrong数,并打印出来,但不完整,请在横线上填入必要的内容,使其完整。所谓Armstrong数是指一个数等于它每位上数字的立方和。例如:371=3^3+7^3+1^3,那么371就是一个Armstrong数。 程序如下: Public Sub ArmstrongNumber() Dim armstrong As Integer Dim i As Integer Dim hundred As Integer '百位上的数字 Dim ten As Integer '十位上的数字 Dim one As

14、 Integer '个位上的数字 For i = 1 To 999 hundred = i \ 100 ten = (i - hundred * 100) \ 10 one = i mod 10 If i = hundred^3 + ten^3 +one^3 Then Form1.Print i; "is ar mstrong number" End If Next i End Sub 6.已有一模块文件Modify.Bas。该

15、模块中的 CountTo60 过程是用于从一堆一分、二分、五分的硬币中取出20枚,使其总值为60分,要求输出取法的数量及每一种取法的一分、二分、五分的个数。 程序如下: Public Sub CountTo60() '从一堆一分、二分、五分的硬币中取出20枚,使其总值为60分 '输出取法的数量及每一种取法的一分、二分、五分的个数 Dim one As Integer '一分硬币个数 Dim two As Integer '二分硬币个数 Dim five As Integer '五分硬币个数 Const n = 20 '总数

16、20枚 Dim k As Integer '取法数量 k = 0 For one = 1 To n '******* 错误1 ******** For two = 1 To n - one five = n - one - two '******* 错误2 ********* If one + two*2 + five*5 = 60 Then k = k + 1 Form1.Pri

17、nt "one="; one; "two="; two; "five="; five End If '******* 错误3 ******** Next two '****** 错误4 ****** Next one Form1.Print "k="; k End Sub 7.已有一模块文件Modify.Bas。该模块中的TJ过程是将一批数据中小于零的数及它们的积打印出来,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的SCSJ过程是产生数据,数据的取值范围为-10 ~

18、 10 之间的随机数。 程序如下: Private Const n = 10 Private a(1 To n) As Integer 'TJ过程是将一批数据中小于零的数及它们的积打印出来 '数据由SCSJ过程产生,数据的取值范围为-10 ~ 10 之间的随机整数 Public Sub TJ() Dim i As Integer Dim t As Single t=1 For i = 1 To 10 If a(i)<0 Then t = t * a(i) End If

19、 Next i Form1.Print "T="; t End Sub Public Sub SCSJ() Randomize Form1.Print "原始数据" Dim i As Integer Dim j As Integer For i = 1 To n '随机产生0或1,为0时取负,为1时取正 j = Int(Rnd * 2) If j=0 Then j = -1 a(i) = j * Int(Rnd * (n + 1))

20、 Form1.Print a(i); Next i Form1.Print End Sub 8.已有一模块文件Modify.Bas。该模块中的Money过程是用于统计一个有7个工作人员的餐厅发工资所需的100元、50元、10元、5元和1元的票面数,但不完整,请在横线上填入必要的内容,使其完整。 Modify.Bas模块中的SalaryData过程是给出7个员工的工资。(工资单位是元) 程序如下: Dim salary(7) As Integer Public Sub Money() Dim hundred As Inte

21、ger, totalhundred As Integer '100元票面数量、总数量 Dim fifty As Integer, totalfifty As Integer '50元票面数量、总数量 Dim ten As Integer, totalten As Integer '10元票面数量、总数量 Dim five As Integer, totalfive As Integer '5元票面数量、总数量 Dim one As Integer, totalone As Integer '1元票面数量、总数量 Dim totalsalary

22、As Integer '工资总计 Dim i As Integer, temp As Integer totalhundred = 0 totalfifty = 0 totalten = 0 totalfive = 0 totalone = 0 totalsalary = 0 For i = 1 To 7 temp = salary ( i ) hundred = Int(temp / 100) temp = temp – hundred * 100

23、 fifty = Int(temp / 50) temp = temp - fifty * 50 ten = Int(temp / 10) temp = temp - ten * 10 five = Int(temp / 5) temp = temp - five * 5 one = temp totalhundred = totalhundred + hundred totalfifty = totalfifty + fifty

24、 totalten = totalten + ten totalfive = totalfive + five totalone = totalone + one totalsalary = totalsalary + salary ( i ) Next i Form1.Print "共需100元" & Str(totalhundred) & "张" Form1.Print "共需50元" & Str(totalfifty) & "张" Form1.Print "共需10元" & Str(tot

25、alten) & "张" Form1.Print "共需5元" & Str(totalfive) & "张" Form1.Print "共需1元" & Str(totalone) & "张" Form1.Print "合计" & Str(totalsalary) & "元" End Sub Public Sub SalaryData() salary(1) = 1398 salary(2) = 1765 salary(3) = 689 salary(4) = 1500 salary(5) = 832

26、 salary(6) = 590 salary(7) = 1200 End Sub 9.已有一模块文件Modify.Bas。该模块中的 MaxLine 过程用于查找一个5行4列的二维数组中行平均值最大的行,并将该行所有数据调整到第一行的位置。 Modify.Bas模块中的DataProduce 过程用于产生原始数据;Average 过程用于计算各行的平均值;PrintArray过程用于打印二维数组和行平均值。 程序如下: Dim a(1 To 5, 1 To 4) As Integer Dim ave(1 To 5) As Integer Publ

27、ic Sub MaxLine() Dim i As Integer Dim j As Integer Dim temp As Integer Dim Line_no As Integer '最大平均值的行号 '找出最大平均值所在行 Line_no = 1 For i = 2 To 5 '****** 错误1 ******* If ave(Line_no) < ave(i) Then '****** 错误2 ******* Line_no = i En

28、d If Next i '交换第一行与最大平均值所在行 For j = 1 To 4 temp = a(1, j) '****** 错误3 ****** a(1, j)= a (Line_no, j) a (Line_no, j) = temp Next j '交换对应行的平均值 temp = ave(1) ave(1) = ave(Line_no) ave(Line_no) = temp '打印交换后的数据

29、 Form1.Print "交换后的数据和平均值" PrintArray End Sub Public Sub DataProduce() Dim i As Integer Dim j As Integer '产生5*4数组 For i = 1 To 5 For j = 1 To 4 a(i, j) = Int(100 * Rnd) Next j Next i End Sub Public Sub Average() Dim i As Int

30、eger Dim j As Integer Dim sum As Integer '计算各行平均值 For i = 1 To 5 sum = 0 For j = 1 To 4 '****** 错误4 ****** sum = sum + a(i, j) Next j ave(i) = sum / 4 Next i '将数组和平均值打印出来 Form1.Print "原始数据和平均值" PrintArray

31、End Sub Public Sub PrintArray() Dim i As Integer Dim j As Integer For i = 1 To 5 For j = 1 To 4 Form1.Print a(i, j); Spc(3); Next j Form1.Print "平均值="; ave(i) Next i End Sub 10.已有一模块文件Modify.Bas。该模块中的 Wrap 过程用于判断一个字符串是否“回文”。所谓“回文”是指字

32、符串顺读与倒读都是一样的,如“潮起潮落,落潮起潮”。 程序如下: Public Sub Wrap() Dim length As Integer Dim str1 As String Dim strleft As String Dim strright As String Dim k As Integer str1 = InputBox("请输入任意的字符串") '输入任意字符串, 如“潮起潮落,落潮起潮” '****错误1***** length = len(str1) k = 1

33、 Do '****错误2***** strleft = mid(str1, k,1) '从左边起逐个取出一个字符 '****错误3***** strright =mid(str1, length +1– k ,1) '从右边起逐个取出一个字符 '****错误4**** If strleft <> strright Then Exit Do End If k = k + 1 Loop While k <= lengt

34、h / 2 If k > length / 2 Then Form1.Print str1 & "是回文" Else Form1.Print str1 & "不是回文" End If End Sub 11.已有一模块文件Modify.Bas。该模块中的BubbleSort过程是冒泡排序法;GenerateData过程产生10个[1,20]之间互不相同的随机整数;Swap过程交换两个变量的数值。 程序如下: Private Const n = 10 Private a(1 To n) As Integer

35、'BubbleSort过程是冒泡排序 'Swap过程交换两个变量数值 'GenerateData过程产生10个[1,20]之间互不相同的随机整数 Public Sub BubbleSort() Dim i As Integer, j As Integer i = 1 Do For j = i + 1 To n If a(j) > a(i) Then '******* 1 ********* Swap a(j), a(i) ‘去掉括号,或改为

36、 call Swap (a(j), a(i)) End If Next j i = i + 1 '******* 2 ******* Loop While i < n Form1.Print "排序结果" For i = 1 To n Form1.Print a(i); Next i End Sub Public Sub GenerateData() Dim i As Integer Dim j As Integer Dim

37、 b As Boolean For i = 1 To n b = False Do While Not b a(i) = Int(20 * Rnd + 1) b = True '****** 3 ****** For j = 1 To i – 1 If a(i) = a(j) Then b = False Exit For

38、 End If Next j Loop Form1.Print a(i) Next i End Sub '******** 4 ******** Public Sub Swap(a As Integer, b As Integer) ‘去掉ByVal,数组不能以ByVal 传递 Dim temp As Integer temp = a a = b b = temp End Sub 12.已有一模块文件Modify.Bas。

39、该模块中的 Transfer 过程用于将一个十六进制整数转换为十进制整数;number 函数过程用于将一个十六进制符号转换为数值。 程序如下: Public Sub Transfer() Dim Hex As String '十六进制数 Dim Dec As Double '十进制数 Dim temp As String Dim i As Integer Dim n As Integer Hex = InputBox("输入一个十六进制整数") '****** 错误1 ******* n = len(H

40、ex) i = 0 Do '****** 错误2 ******* temp = Mid(Hex, n - i , 1) '****** 错误3 ******* Dec = Dec + number(temp) * 16 ^ i i = i + 1 Loop While i < n '****** 错误4 ****** Form1.Print Hex & "转换为十进制数为" & str(Dec) ‘去掉 的str,因为 Hex是字符串

41、End Sub Public Function number(str As String) As Integer Select Case str Case "a", "A" number = 10 Case "b", "B" number = 11 Case "c", "C" number = 12 Case "d", "D" number = 13 Case "e", "E"

42、 number = 14 Case "f", "F" number = 15 Case Else number = Val(str) End Select End Function 13.已有一模块文件Modify.Bas。该模块中的SortData 过程是把10个[30,50)的随机整数并按照从小到大的顺序打印出来,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的Swap过程用于交换两个变量的值。 程序如下: Public Sub S

43、ortData() '产生10个[30,50]的随机整数,并按从小到大的顺序打印出来 Dim a(10) As Integer Dim i As Integer, j As Integer For i = 1 To 10 a(i)= int(rnd*20+30) Next i For i = 1 To 9 For j=i+1 to 10 If a(i) > a(j) Then Swap a(i),a(j)

44、End If Next j Form1.Print a(i) Next i Form1.print a(i) ‘或 a(10) 即最后一个 End Sub Public Sub Swap(a As Integer, b As Integer) Dim temp As Integer temp = a a = b b = temp End Sub 14.已有一模块文件Modify.Bas。该模块中的PrintArray过程是用于打印一个5行5列的数字方阵,并使两对角线上元素均为1,

45、其余均为2。要求打印的数字方阵两列数字之间空3格,两行之间空一行。 程序如下: Public Sub PrintArray() '下面程序用于打印5行5列的数字方阵 '使两对角线上元素均为1,其余均为2 '要求打印的数字方阵两列数字之间空3格,两行之间空一行 '只要修改标出出错位置的下面那一条语句 Dim a(5, 5) As Integer Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5

46、'******** 错误1 ********* If i <> j and i <> 6 - j Then a(i, j) = 2 Else a(i, j) = 1 End If '******** 错误2 ********* Form1.Print a(i, j) & Space(3); ‘数字与空字符串不能相加 Next j '******* 错误

47、3 ******* Form1.Print : Form1.Print Next i End Sub 15.已有一模块文件Modify.Bas。该模块中的Combination过程是用于计算在m个数据中取出n个数据的排列组合值,计算公式为Cmn=m!/(n!*(m-n)!)。 Modify.Bas模块中的nFactor函数过程用于计算n!。 程序如下: Public Sub Combination() Dim m As Integer Dim n As Integer Dim Cmn As Long D

48、o m = Val(InputBox("请输入一个整数m")) n = Val(InputBox("请输入一个整数n(n<=m)")) '****** 错误1 ****** Loop While m < n '必须保证输入的两个数m>=n '****** 错误2 ****** Cmn = nFactor(m) /( nFactor(n) * nFactor(m - n)) Form1.Print "排列组合数为"; Cmn End Sub Public Function nFa

49、ctor(ByVal n As Integer) As Double Dim i As Integer Dim temp As Double temp = 1 For i = 1 To n temp = temp * i Next i '******错误 3 ****** nFactor = temp ‘去掉nFactor (n)中的(n)部分 '****** 错误4 ****** End Sub 16.已有一模块文件Modify.Bas。该模块中的FindMax过程

50、是用于查找一批数据中的最大数,并打印出最大数的值及最大数在数组中的下标值,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的GenerateData过程用于产生30个[1-500]之间的随机整数并5个一行打印出来。 程序如下: Dim a(30) As Integer Public Sub FindMax() Dim Position As Integer '最大数在数组中的下标 Dim max As Integer '最大数 Dim i As Integer GenerateData max = a(1

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服