二程序调试参考答案概要Word文件下载.docx
- 文档编号:8466961
- 上传时间:2023-05-11
- 格式:DOCX
- 页数:22
- 大小:22.13KB
二程序调试参考答案概要Word文件下载.docx
《二程序调试参考答案概要Word文件下载.docx》由会员分享,可在线阅读,更多相关《二程序调试参考答案概要Word文件下载.docx(22页珍藏版)》请在冰点文库上搜索。
'
产生100个[0,99]范围内的随机整数
每行10个打印出来
Fori=1To100
********错误1***********
a(i)=int(Rnd*100)
Ifa(i)<
10Then
Form1.PrintSpace
(2);
a(i);
Else
Form1.PrintSpace
(1);
EndIf
IfiMod10=0ThenForm1.Print
统计个位上的数字分别为1,2,3,4,5,6,7,8,9,0的数的个数
并将统计结果保存在数组x
(1),x
(2),...,x(10)中,将统计结果打印出来
********错误2**********
p=Int(a(i)mod10)'
求个位上的数字
Ifp=0Thenp=10
********错误3**********
x(p)=x(p)+1
统计结果"
Fori=1To10
p=i
Ifi=10Thenp=0
********错误4*********
个位数为"
+Str(p)+"
共"
+Str(x(i))+"
个"
‘个位数为0统计结果保存在x(10)中
3.已有一模块文件Modify.Bas。
该模块中的Findat过程是用于在一个字符串变量中查找"
at"
,并用消息框给出查找结果的报告:
没有找到或找到的个数,但不完整,请在横线上填入必要的内容,使其完整。
PublicSubFindat()
在字符串str1中查找"
Dimstr1AsString
DimlengthAsInteger'
字符串长度
DimsumAsInteger'
查到的个数
str1=InputBox("
请输入一个字符串"
)
length=len(str1)
i=1
sum=0
DoWhilei<
=length
Ifmid(str1,i,2)="
Then
sum=sum+1
i=i+1
Loop
Ifsum=0Then
MsgBox"
没有找到!
"
找到了"
Str(sum)&
"
4.已有一模块文件Modify.Bas。
该模块中的Guess过程是猜数游戏,由计算机产生一个[1,100]的任意整数,输入猜数后计算机给出提示,如果5次后还没有猜中就结束游戏并公布正确答案。
PublicSubGuess()
DimRAsInteger
DimXAsInteger
DimtimesAsInteger
Randomize
******错误1******
R=int(Rnd*100+1)'
产生一个1--100的任意整数或int(Rnd*100)+1
times=1
Do
X=Val(InputBox("
输入猜数X"
))
SelectCaseX
CaseR
猜中了"
ExitDo
*****错误2******
CaseIS>
R
太大了,继续猜!
CaseElse
太小了,继续猜!
EndSelect
times=times+1
******错误3******
LoopWhiletimes<
=5
Iftimes>
5Then
猜数失败,游戏结束!
******错误4******
正确答案为"
Str(R)
5.已有一模块文件Modify.Bas。
该模块中的ArmstrongNumber过程是用于求出1--999之间所有的Armstrong数,并打印出来,但不完整,请在横线上填入必要的内容,使其完整。
所谓Armstrong数是指一个数等于它每位上数字的立方和。
例如:
371=3^3+7^3+1^3,那么371就是一个Armstrong数。
PublicSubArmstrongNumber()
DimarmstrongAsInteger
DimhundredAsInteger'
百位上的数字
DimtenAsInteger'
十位上的数字
DimoneAsInteger'
个位上的数字
Fori=1To999
hundred=i\100
ten=(i-hundred*100)\10
one=imod10
Ifi=hundred^3+ten^3+one^3Then
Form1.Printi;
isarmstrongnumber"
6.已有一模块文件Modify.Bas。
该模块中的CountTo60过程是用于从一堆一分、二分、五分的硬币中取出20枚,使其总值为60分,要求输出取法的数量及每一种取法的一分、二分、五分的个数。
PublicSubCountTo60()
从一堆一分、二分、五分的硬币中取出20枚,使其总值为60分
输出取法的数量及每一种取法的一分、二分、五分的个数
一分硬币个数
DimtwoAsInteger'
二分硬币个数
DimfiveAsInteger'
五分硬币个数
Constn=20'
总数20枚
DimkAsInteger'
取法数量
k=0
Forone=1Ton
*******错误1********
Fortwo=1Ton-one
five=n-one-two
*******错误2*********
Ifone+two*2+five*5=60Then
k=k+1
one="
;
one;
two="
two;
five="
five
*******错误3********
Nexttwo
Nextone
k="
k
7.已有一模块文件Modify.Bas。
该模块中的TJ过程是将一批数据中小于零的数及它们的积打印出来,但不完整,请在横线上填入必要的内容,使其完整。
Modify.Bas模块中的SCSJ过程是产生数据,数据的取值范围为-10~10之间的随机数。
PrivateConstn=10
Privatea(1Ton)AsInteger
'
TJ过程是将一批数据中小于零的数及它们的积打印出来
数据由SCSJ过程产生,数据的取值范围为-10~10之间的随机整数
PublicSubTJ()
DimtAsSingle
t=1
Ifa(i)<
0Then
t=t*a(i)
T="
t
PublicSubSCSJ()
原始数据"
DimjAsInteger
随机产生0或1,为0时取负,为1时取正
j=Int(Rnd*2)
Ifj=0Thenj=-1
a(i)=j*Int(Rnd*(n+1))
Form1.Printa(i);
Form1.Print
8.已有一模块文件Modify.Bas。
该模块中的Money过程是用于统计一个有7个工作人员的餐厅发工资所需的100元、50元、10元、5元和1元的票面数,但不完整,请在横线上填入必要的内容,使其完整。
Modify.Bas模块中的SalaryData过程是给出7个员工的工资。
(工资单位是元)
Dimsalary(7)AsInteger
PublicSubMoney()
DimhundredAsInteger,totalhundredAsInteger'
100元票面数量、总数量
DimfiftyAsInteger,totalfiftyAsInteger'
50元票面数量、总数量
DimtenAsInteger,totaltenAsInteger'
10元票面数量、总数量
DimfiveAsInteger,totalfiveAsInteger'
5元票面数量、总数量
DimoneAsInteger,totaloneAsInteger'
1元票面数量、总数量
DimtotalsalaryAsInteger'
工资总计
DimiAsInteger,tempAsInteger
totalhundred=0
totalfifty=0
totalten=0
totalfive=0
totalone=0
totalsalary=0
Fori=1To7
temp=salary(i)
hundred=Int(temp/100)
temp=temp–hundred*100
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
totalten=totalten+ten
totalfive=totalfive+five
totalone=totalone+one
totalsalary=totalsalary+salary(i)
共需100元"
Str(totalhundred)&
张"
共需50元"
Str(totalfifty)&
共需10元"
Str(totalten)&
共需5元"
Str(totalfive)&
共需1元"
Str(totalone)&
合计"
Str(totalsalary)&
元"
PublicSubSalaryData()
salary
(1)=1398
salary
(2)=1765
salary(3)=689
salary(4)=1500
salary(5)=832
salary(6)=590
salary(7)=1200
9.已有一模块文件Modify.Bas。
该模块中的MaxLine过程用于查找一个5行4列的二维数组中行平均值最大的行,并将该行所有数据调整到第一行的位置。
Modify.Bas模块中的DataProduce过程用于产生原始数据;
Average过程用于计算各行的平均值;
PrintArray过程用于打印二维数组和行平均值。
Dima(1To5,1To4)AsInteger
Dimave(1To5)AsInteger
PublicSubMaxLine()
DimtempAsInteger
DimLine_noAsInteger'
最大平均值的行号
找出最大平均值所在行
Line_no=1
Fori=2To5
******错误1*******
Ifave(Line_no)<
ave(i)Then
******错误2*******
Line_no=i
交换第一行与最大平均值所在行
Forj=1To4
temp=a(1,j)
a(1,j)=a(Line_no,j)
a(Line_no,j)=temp
Nextj
交换对应行的平均值
temp=ave
(1)
ave
(1)=ave(Line_no)
ave(Line_no)=temp
打印交换后的数据
交换后的数据和平均值"
PrintArray
PublicSubDataProduce()
产生5*4数组
Fori=1To5
a(i,j)=Int(100*Rnd)
PublicSubAverage()
DimsumAsInteger
计算各行平均值
sum=sum+a(i,j)
ave(i)=sum/4
将数组和平均值打印出来
原始数据和平均值"
PublicSubPrintArray()
Form1.Printa(i,j);
Spc(3);
平均值="
ave(i)
10.已有一模块文件Modify.Bas。
该模块中的Wrap过程用于判断一个字符串是否“回文”。
所谓“回文”是指字符串顺读与倒读都是一样的,如“潮起潮落,落潮起潮”。
PublicSubWrap()
DimlengthAsInteger
DimstrleftAsString
DimstrrightAsString
DimkAsInteger
请输入任意的字符串"
)'
输入任意字符串,如“潮起潮落,落潮起潮”
****错误1*****
k=1
****错误2*****
strleft=mid(str1,k,1)'
从左边起逐个取出一个字符
****错误3*****
strright=mid(str1,length+1–k,1)'
从右边起逐个取出一个字符
****错误4****
Ifstrleft<
>
strrightThen
LoopWhilek<
=length/2
Ifk>
length/2Then
Form1.Printstr1&
是回文"
不是回文"
11.已有一模块文件Modify.Bas。
该模块中的BubbleSort过程是冒泡排序法;
GenerateData过程产生10个[1,20]之间互不相同的随机整数;
Swap过程交换两个变量的数值。
BubbleSort过程是冒泡排序
Swap过程交换两个变量数值
GenerateData过程产生10个[1,20]之间互不相同的随机整数
PublicSubBubbleSort()
DimiAsInteger,jAsInteger
Forj=i+1Ton
Ifa(j)>
a(i)Then
*******1*********
Swapa(j),a(i)‘去掉括号,或改为callSwap(a(j),a(i))
*******2*******
LoopWhilei<
n
排序结果"
PublicSubGenerateData()
DimbAsBoolean
b=False
DoWhileNotb
a(i)=Int(20*Rnd+1)
b=True
******3******
Forj=1Toi–1
Ifa(i)=a(j)Then
ExitFor
Form1.Printa(i)
********4********
PublicSubSwap(aAsInteger,bAsInteger)‘去掉ByVal,数组不能以ByVal传递
temp=a
a=b
b=temp
12.已有一模块文件Modify.Bas。
该模块中的Transfer过程用于将一个十六进制整数转换为十进制整数;
number函数过程用于将一个十六进制符号转换为数值。
PublicSubTransfer()
DimHexAsString'
十六进制数
DimDecAsDouble'
十进制数
DimtempAsString
Hex=InputBox("
输入一个十六进制整数"
n=len(Hex)
i=0
temp=Mid(Hex,n-i,1)
******错误3*******
Dec=Dec+number(temp)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序 调试 参考答案 概要