VB程序改错40题Word格式文档下载.docx
《VB程序改错40题Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《VB程序改错40题Word格式文档下载.docx(19页珍藏版)》请在冰豆网上搜索。
答案:
=======(答案1)=======
Fori=0ToLen(pristr)-1
=========或=========
Fori=0To-1+Len(pristr)
=======(答案2)=======
outstr=outstr+Mid(pristr,Len(pristr)-i,1)
outstr=Mid(pristr,Len(pristr)-i,1)+outstr
=======(答案3)=======
MsgBoxoutstr,vbQuestion,"
第59题(1.0分)题号:
147
下面的程序用来产生并输出图示的杨辉三角。
1
11
121
1331
14641
15101051
PublicSubreadin(a()AsInteger,nAsInteger)
Dimi,jAsInteger
Fori=1Ton
a(i,n)=1
a(i,1)=1
Fori=3Ton
Forj=2Ton
a(i,j)=a(i-1,j)+a(i-1,j-1)
Nextj
PublicSubprintf(a()AsInteger,nAsInteger)
Forj=1Ton
PrintTab(5*j+10);
a(i,j);
Print
PrivateSubForm_Click()
Dimx(10,10)AsInteger
Callreadin(x(),6)
Callprintf(x(),6)
a(i,i)=1
Forj=2Toi-1
Forj=2To-1+i
Forj=1Toi
第60题(1.0分)题号:
146
用辗转相除法求两个整数的最大公约数。
Functiongcd(ByValmAsInteger,ByValnAsInteger)AsInteger
DimrAsInteger
r=mModn
DoWhiler<
>
0
n=m
n=r
Loop
gcd=r
EndFunction
DimaAsInteger,bAsInteger,cAsInteger
a=InputBox("
输入一个整数"
b=InputBox("
a=Val(a)
b=Val(b)
Callgcd(a,b)
Printa,b,c
m=n
gcd=n
c=gcd(a,b)
第65题(1.0分)题号:
492
题目:
输入两个正整数m和n,求其最大公约数。
DimmAsInteger,nAsInteger,rAsInteger
m=InputBox("
输入m的值:
"
n=InputBox("
输入n的值:
DoWhilen<
r=m/n
m=n
Print"
两数的最大公因子为:
;
n
r=mModn
n=r
Print"
两数的最大公因子为:
m
第66题(1.0分)题号:
467
从计算机输入三个数,找出中间数
PrivateSubFindMidNum()
DimxAsInteger,yAsInteger,zAsInteger,AAsInteger
x=InputBox("
PLEASEINPUTTHEFIRSTNUMBER"
y=InputBox("
PLEASEINPUTTHESECONDNUMBER"
z=InputBox("
PLESSEINPUTTHETHIRDNUMBER"
Ifx>
yThen
A=x
x=y
y=A
EndIf
Ify=zThen
Printy
ElseIfx=zThen
Printz
Else
Printx
FindMidNum
Ifx<
Ify>
xThen
=zThen
Ifz<
=yThen
ElseIfx>
ElseIfz<
=xThen
第70题(1.0分)题号:
142
程序功能根据输入的学习成绩,分别显示优秀
(90分以上),良好(75分以上),及格(60分以上)
不及格四个等级.
Cls
DimiAsInteger
i=InputBox("
请输入学习成绩"
SelectCasei
Case0<
i<
100
MsgBox"
成绩应该在0--100之间"
Case90
优秀"
Case75To89
良好"
Case60To74
及格"
Case
不及格"
vbCritical
EndSelect
Caseis>
100,is<
0
caseis<
0,is>
100
Case90to100
Caseelse
第71题(1.0分)题号:
473
下列程序进行-n阶乘运算,当阶乘的值超过-21147483648
溢出报错,并将结果输出为-1。
PrivateFunctionjc(ByValnAsInteger)AsInteger
DimIAsInteger
DimresultAsLong
result=1
I=1
DoWhileI<
=n
Ifresult<
2114748348/IThen
result=result
I=I+1
lblerr.Caption="
溢出"
jc=-I
ExitFunction
jc=-result
MsgBoxjc(3)
PrivateFunctionjc(ByValnAsInteger)AsLong
result=result*I
result=I*result
jc=-1
第72题(1.0分)题号:
145
该程序的功能是求出100到200之间的全部素数,
并且按每行4个、每个数据之间有10个空格的格
式输出。
DimkAsInteger,iAsInteger,jAsInteger
k=0
Fori=100To200
Forj=1Toi-1
IfiModj=0ThenExitFor
Ifj=iThen
Printi;
Tab(10);
k=k+1
IfkMod5=0ThenPrint;
Printi;
Space(10);
Spc(10);
IfkMod4=0ThenPrint
If0=kMod4ThenPrint
ifk/4=k\4thenPrint
ifk\4=k/4thenPrint
ifk/4=int(k/4)thenPrint
第73题(1.0分)题号:
132
求s=2!
+4!
+6!
+8!
,阶乘的计算用Function过程
fact实现
DimiAsInteger,sAsLong
Fori=2To8
s=s+fact(i)
Nexti
Prints
PublicFunctionfact()
DimtAsLong
t=1
Fori=1Ton
t=t*i
fact=i
Fori=2To8Step2
PublicFunctionfact(ByValnAsInteger)
PublicFunctionfact(nAsInteger)
PublicFunctionfact(n%)
PublicFunctionfact(n)
PublicFunctionfact(ByValn%)
PublicFunctionfact(ByValn)
fact=t
第76题(1.0分)题号:
479
下面的程序用“冒泡”法完成数组a中的10个整数
按升序排列,请修正程序中错误。
Dima
DimiAsInteger,jAsInteger,a1AsInteger
a=Array(-2,5,24,58,43,-10,87,75,27,83)
Fori=1To9
Forj=iTo9
Ifa(j)>
=a(i)Then
a1=a(i)
a(i)=a(j)
a(j)=a(i)
Fori=0To9
Printa(i)
Forj=i+1To9
Forj=1+iTo9
Ifa(i)>
=a(j)Then
a(j)=a1
第77题(1.0分)题号:
490
输入一个字符串,将所有的小写字母都转换为大写字母。
Dims1AsString,s2AsString,iAsInteger,tAsString
s1=InputBox("
输入字符串,#号结束"
i=1
s1=Mid(s1,i,1)
Whilet<
"
#"
Ift>
="
a"
Andt<
z"
Thent=Chr(Asc(t)-30)
s2=s2+t
i=i+1
t=Mid(s1,i,1)
Wend
新字符串为:
s1
t=Mid(s1,i,1)
Ift>
Thent=Chr(Asc(t)-32)
新字符串为:
s2
第79题(1.0分)题号:
487
设窗体中有图片框Pic1,现要求在其中绘制10个同心圆,
然后将此图以Test.BMP作文件名存入磁盘。
DimXAsInteger
DimYAsInteger
Dim