下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、(二)程序调试(参照答案)程序调试题的操作步骤是:(1)成立一标准EXE工程,将这一模块程序增添到工程中。如果你是经过双击标准模块程序Model1.BAS进入VisualBasic系统的,则首先需要增添一个窗体模块。(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!。程序如下:PublicFunctionnFactor(ByValnAsInteger)AsDoubleDimi
3、AsIntegerDimtempAsDoubletemp=1Fori=1Tontemp=temp*iNextinFactor=tempEndFunctionPublicSubsummary()DimsumAsDoubleDimiAsIntegerDimnAsIntegern=20Fori=1Tonsum=sum+nFactor(i)NextiForm1.Printsum=&sumEndSub2已有一模块文件Modify.Bas。该模块中的Calculate过程是产生100个0,99范围内的随机整数,统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并打印出来。程序如下:Pu
4、blicSubcalculate()Dima(1To100)AsIntegerDimx(1To10)AsIntegerDimiAsInteger,pAsInteger产生100个0,99范围内的随机整数每行10个打印出来Fori=1To100*错误1*a(i)=int(Rnd*100)Ifa(i)10ThenForm1.PrintSpace(2);a(i);ElseForm1.PrintSpace(1);a(i);EndIfIfiMod10=0ThenForm1.PrintNexti统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数并将统计结果保留在数组x(1),x(2),
5、.,x(10)中,将统计结果打印出来Fori=1To100*错误2*p=Int(a(i)mod10)求个位上的数字Ifp=0Thenp=10*错误3*x(p)=x(p)+1NextiForm1.Print统计结果Fori=1To10p=iIfi=10Thenp=0*错误4*Form1.Print个位数为+Str(p)+共+Str(x(i)+个NextiEndSub个位数为0统计结果保留在x(10)中3.已有一模块文件Modify.Bas。该模块中的Findat过程是用于在一个字符串变量中查找at,并用消息框给出查找结果的报告:没有找到或找到的个数,但不完整,请在横线上填入必要的内容,使其完整。
6、程序如下:PublicSubFindat()在字符串str1中查找atDimstr1AsStringDimlengthAsInteger字符串长度DimsumAsInteger查到的个数DimiAsIntegerstr1=InputBox(请输入一个字符串)length=len(str1)i=1sum=0DoWhileiRX)Form1.Print太大了,持续猜!CaseElseForm1.PrintEndSelecttimes=times+1*错误3*LoopWhiletimes5ThenForm1.Print猜数失败太小了,持续猜,游戏结束!*错误Form1.PrintEndIfEndSu
7、b4*正确答案为&Str(R)5.已有一模块文件Modify.Bas。该模块中的ArmstrongNumber过程是用于求出1-999之间所有的Armstrong数,并打印出来,但不完整,请在横线上填入必要的内容,使其完整。所谓数字的立方和。比如:371=33+73+13,那么371就是一个Armstrong程序如下:Armstrong数。数是指一个数等于它每位上PublicSubArmstrongNumber()DimarmstrongAsIntegerDimiAsIntegerDimhundredAsInteger百位上的数字DimtenAsInteger十位上的数字DimoneAsInt
8、eger个位上的数字Fori=1To999hundred=i100ten=(i-hundred*100)10one=imod10Ifi=hundred3+ten3+one3ThenForm1.Printi;isarmstrongnumberEndIfNextiEndSub6.已有一模块文件Modify.Bas。该模块中的CountTo60过程是用于从一堆一分、二分、五分的硬币中取出20枚,使其总值为程序如下:60分,要求输出取法的数量及每一种取法的一分、二分、五分的个数。PublicSubCountTo60()从一堆一分、二分、五分的硬币中取出20枚,使其总值为60分输出取法的数量及每一种取法
9、的一分、二分、五分的个数DimoneAsInteger一分硬币个数DimtwoAsInteger二分硬币个数DimfiveAsInteger五分硬币个数Constn=20总数20枚DimkAsInteger取法数量k=0Forone=1Ton*错误1*Fortwo=1Ton-onefive=n-one-two*错误2*Ifone+two*2+five*5=60Thenk=k+1Form1.Printone=;one;two=;two;five=;fiveEndIf*错误3*Nexttwo*错误4*NextoneForm1.Printk=;kEndSub7.已有一模块文件Modify.Bas。该
10、模块中的TJ过程是将一批数据中小于零的数及它们的积打印出来,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的SCSJ过程是产生数据,数据的取值范围为-1010之间的随机数。程序如下:PrivateConstn=10Privatea(1Ton)AsIntegerTJ过程是将一批数据中小于零的数及它们的积打印出来数据由SCSJ过程产生,数据的取值范围为-1010之间的随机整数PublicSubTJ()DimiAsIntegerDimtAsSinglet=1Fori=1To10Ifa(i)0Thent=t*a(i)EndIfNextiForm1.PrintT=;tEndSu
11、bPublicSubSCSJ()RandomizeForm1.Print原始数据DimiAsIntegerDimjAsIntegerFori=1Ton随机产生0或1,为0时取负,为1时取正j=Int(Rnd*2)Ifj=0Thenj=-1a(i)=j*Int(Rnd*(n+1)Form1.Printa(i);NextiForm1.PrintEndSub8.已有一模块文件Modify.Bas。该模块中的Money过程是用于统计一个有7个工作人员的餐厅发薪资所需的100元、50元、10元、5元和1元的票面数,但不完整,请在横线上填入必要的内容,使其完整。Modify.Bas模块中的SalaryDa
12、ta过程是给出7个职工的薪资。(薪资单位是元)程序如下:Dimsalary(7)AsIntegerPublicSubMoney()DimhundredAsInteger,totalhundredAsInteger100元票面数量、总数量DimfiftyAsInteger,totalfiftyAsInteger50DimtenAsInteger,totaltenAsInteger10DimfiveAsInteger,totalfiveAsInteger5DimoneAsInteger,totaloneAsInteger1DimtotalsalaryAsInteger薪资总计DimiAsInteg
13、er,tempAsIntegertotalhundred=0totalfifty=0totalten=0totalfive=0totalone=0totalsalary=0Fori=1To7temp=salary(i)hundred=Int(temp/100)temp=temphundred*100fifty=Int(temp/50)temp=temp-fifty*50元票面数量、总数量元票面数量、总数量元票面数量、总数量元票面数量、总数量ten=Int(temp/10)temp=temp-ten*10five=Int(temp/5)temp=temp-five*5one=temptotalh
14、undred=totalhundred+hundredtotalfifty=totalfifty+fiftytotalten=totalten+tentotalfive=totalfive+fivetotalone=totalone+onetotalsalary=totalsalary+salary(i)NextiForm1.Print共需100元&Str(totalhundred)&Form1.Print共需50元&Str(totalfifty)&张Form1.Print共需10元&Str(totalten)&张Form1.Print共需5元&Str(totalfive)&张Form1.Pr
15、int共需1元&Str(totalone)&张Form1.Print共计&Str(totalsalary)&元EndSub张PublicSubSalaryData()salary(1)=1398salary(2)=1765salary(3)=689salary(4)=1500salary(5)=832salary(6)=590salary(7)=1200EndSub9.已有一模块文件Modify.Bas。该模块中的MaxLine过程用于查找一个5行4列的二维数组中行平均值最大的行,并将该行所有数据调整到第一行的地点。Modify.Bas模块中的DataProduce过程用于产生原始数据;Ave
16、rage过程用于计算各行的平均值;PrintArray过程用于打印二维数组和行平均值。程序如下:Dima(1To5,1To4)AsIntegerDimave(1To5)AsIntegerPublicSubMaxLine()DimiAsIntegerDimjAsIntegerDimtempAsIntegerDimLine_noAsInteger最大平均值的行号找出最大平均值所在行Line_no=1Fori=2To5*错误1*Ifave(Line_no)ave(i)Then*错误2*Line_no=iEndIfNexti互换第一行与最大平均值所在行Forj=1To4temp=a(1,j)*错误3*
17、a(1,j)=a(Line_no,j)a(Line_no,j)=tempNextj互换对应行的平均值temp=ave(1)ave(1)=ave(Line_no)ave(Line_no)=temp打印互换后的数据Form1.Print互换后的数据和平均值PrintArrayEndSubPublicSubDataProduce()DimiAsIntegerDimjAsInteger产生5*4数组Fori=1To5Forj=1To4a(i,j)=Int(100*Rnd)NextjNextiEndSubPublicSubAverage()DimiAsIntegerDimjAsIntegerDimsum
18、AsInteger计算各行平均值Fori=1To5sum=0Forj=1To4*错误4*sum=sum+a(i,j)Nextjave(i)=sum/4Nexti将数组和平均值打印出来Form1.Print原始数据和平均值PrintArrayEndSubPublicSubPrintArray()DimiAsIntegerDimjAsIntegerFori=1To5Forj=1To4Form1.Printa(i,j);Spc(3);Form1.Print平均值=;ave(i)NextiEndSub10已有一模块文件Modify.Bas符串顺读与倒读都是同样的,如。该模块中的Wrap“潮起潮落,落潮
19、起潮过程用于判断一个字符串是否”。“回文”。所谓“回文”是指字程序如下:PublicSubWrap()DimlengthAsIntegerDimstr1AsStringDimstrleftAsStringDimstrrightAsStringDimkAsIntegerstr1=InputBox(请输入随意的字符串)输入随意字符串,如“潮起潮落,落潮起潮”*错误1*length=len(str1)k=1Do*错误2*strleft=mid(str1,k,1)从左边起逐个取出一个字符*错误3*strright=mid(str1,length+1k,1)从右边起逐个取出一个字符*错误4*Ifstrl
20、eftstrrightThenExitDoEndIfk=k+1LoopWhileklength/2ThenForm1.Printstr1&是回文ElseForm1.Printstr1&不是回文EndIfEndSub11.已有一模块文件Modify.Bas。该模块中的BubbleSort过程是冒泡排序法;GenerateData过程产生10个1,20之间互不相同的随机整数;Swap过程互换两个变量的数值。程序如下:PrivateConstn=10Privatea(1Ton)AsIntegerBubbleSort过程是冒泡排序Swap过程互换两个变量数值GenerateData过程产生10个1,2
21、0之间互不相同的随机整数PublicSubBubbleSort()DimiAsInteger,jAsIntegeri=1DoForj=i+1TonIfa(j)a(i)Then*1*Swapa(j),a(i)去掉括号,或改为callSwap(a(j),a(i)EndIfNextji=i+1*2*LoopWhileinForm1.Print排序结果Fori=1TonForm1.Printa(i);NextiEndSubPublicSubGenerateData()DimiAsIntegerDimjAsIntegerDimbAsBooleanFori=1Tonb=FalseDoWhileNotba(
22、i)=Int(20*Rnd+1)b=True*3*Forj=1Toi1Ifa(i)=a(j)Thenb=FalseExitForEndIfNextjLoopForm1.Printa(i)NextiEndSub*4*PublicSubSwap(aAsInteger,bAsInteger)去掉ByVal,数组不能以ByVal传达DimtempAsIntegertemp=aa=bb=tempEndSub12.已有一模块文件Modify.Bas。该模块中的Transfer过程用于将一个十六进制整数变换为十进制整数;number函数过程用于将一个十六进制符号变换为数值。程序如下:PublicSubTra
23、nsfer()DimHexAsString十六进制数DimDecAsDouble十进制数DimtempAsStringDimiAsIntegerDimnAsIntegerHex=InputBox(输入一个十六进制整数*错误1*n=len(Hex)i=0Do)*错误2*temp=Mid(Hex,n-i,1)*错误3*Dec=Dec+number(temp)*16ii=i+1LoopWhileia(j)ThenSwapa(i),a(j)EndIfNextjForm1.Printa(i)NextiForm1.printa(i)或a(10)即最后一个EndSubPublicSubSwap(aAsInt
24、eger,bAsInteger)DimtempAsIntegertemp=aa=bb=tempEndSub14.已有一模块文件Modify.Bas。该模块中的PrintArray过程是用于打印一个5行5列的数字方阵,并使两对角线上元素均为1,其余均为2。要求打印的数字方阵两列数字之间空3格,两行之间空一行。程序如下:PublicSubPrintArray()下面程序用于打印5行使两对角线上元素均为5列的数字方阵1,其余均为2要求打印的数字方阵两列数字之间空3格,两行之间空一行只需改正标出犯错地点的下面那一条语句Dima(5,5)AsIntegerDimiAsInteger,jAsInteger
25、Fori=1To5Forj=1To5*错误1*Ifijandi6-jThena(i,j)=2Elsea(i,j)=1EndIf*错误Form1.Printa(i,j)Nextj2*&Space(3);数字与空字符串不能相加*错误3*Form1.Print:Form1.PrintNextiEndSub15.已有一模块文件Modify.Bas。该模块中的Combination合值,计算公式为Cmn=m!/(n!*(m-n)!)。Modify.Bas模块中的nFactor函数过程用于计算n!。过程是用于计算在m个数据中取出n个数据的排列组程序如下:PublicSubCombination()Dimm
26、AsIntegerDimnAsIntegerDimCmnAsLongDom=Val(InputBox(请输入一个整数m)n=Val(InputBox(请输入一个整数n(n=m)*错误1*LoopWhilem=nCmn=nFactor(m)/(nFactor(n)*nFactor(m-n)Form1.Print排列组合数为;CmnEndSubPublicFunctionnFactor(ByValnAsInteger)AsDoubleDimiAsIntegerDimtempAsDoubletemp=1Fori=1Tontemp=temp*iNexti*nFactor*错误3*=temp错误4*去掉
27、nFactor(n)中的(n)部分EndSub16.已有一模块文件Modify.Bas。该模块中的FindMax过程是用于查找一批数据中的最大数,值及最大数在数组中的下标值,但不完整,请在横线上填入必要的内容,使其完整。GenerateData过程用于产生30个1-500之间的随机整数并5个一行打印出来。并打印出最大数的Modify.Bas模块中的程序如下:Dima(30)AsIntegerPublicSubFindMax()DimPositionAsInteger最大数在数组中的下标DimmaxAsInteger最大数DimiAsIntegerGenerateDatamax=a(1)Posi
28、tion=1Fori=2To30Ifa(i)maxThenmax=a(i)Position=iEndIfNextiForm1.Print最大值=&Str(max)Form1.Print最大值的下标=&Str(Position)EndSubPublicSubGenerateData()DimiAsIntegerFori=1To30a(i)=Int(500*Rnd()+1)Form1.Printa(i),IfiMod5=0ThenForm1.PrintNextiEndSub17.已有一模块文件Modify.Bas。该模块中的Prime过程是求出100到200之间所有的素数,并打印出来,但不完整,请在横线上填入必要的内容,使其完整。程序如下:PublicSubprime()打印出100到200之间所有的素数,并统计素数的个数DimiAsIntegerDimjAsIntegerDimkAsIntegerDimtAsInteger统计素数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 无边玻璃隔断施工方案(3篇)
- 法律援助-应急预案(3篇)
- 营销方案申请模板(3篇)
- 旗袍营销推广方案(3篇)
- 直播带货广告创意与用户转化优化
- 环卫处2026年工作计划(2篇)
- 移动广告市场分析-第3篇
- 网络文摘版权保护
- 深圳前海湾软土地基沉降预测:模型对比与精准方法构建
- 深入剖析加权遍历定理:理论、证明与多元应用
- 2025年度安徽合肥合燃华润燃气有限公司校园招聘23人笔试参考题库附带答案详解
- 邮政知识考试题及答案
- 《高等机构学(第2版)》课件-第1章-数学基础
- 2024-2025学年河南工业贸易职业学院单招《职业适应性测试》真题及答案详解(夺冠系列)
- 城管执法舆情培训课件
- 2025年青岛市农业农村局所属部分事业单位招聘紧缺急需专业人才笔试模拟试题带答案详解
- 园林绿化项目文明作业及减少扰民保障措施
- 电子电路基本技能训练课件:电子焊接基本操作
- 医院融资计划书民营医院融资计划书
- 文化和旅游部直属事业单位招聘考试真题2024
- 高校融资管理制度
评论
0/150
提交评论