VB程序改错40题含答案.docx
- 文档编号:5403820
- 上传时间:2022-12-16
- 格式:DOCX
- 页数:58
- 大小:27.38KB
VB程序改错40题含答案.docx
《VB程序改错40题含答案.docx》由会员分享,可在线阅读,更多相关《VB程序改错40题含答案.docx(58页珍藏版)》请在冰豆网上搜索。
VB程序改错40题含答案
【程序改错】
题目:
该程序实现将输入的0-255之间的正整数转换成二进制数
OptionExplicit
PrivateSubForm_Click()
Constn=8
Dima(n)AsInteger,sAsString,mAsInteger,xAsInteger
x=Val(InputBox("请输入一个0-255之间的正整数:
"))
Printx
Form=1Ton
a(m)=xMod2
x=x/2
Nextm
s=""
Form=nTo0Step-1
s=Str(a(m))
Nextm
Prints
EndSub
答案:
=======(答案1)=======
Form=0Ton
=======(答案2)=======
x=x\2
=========或=========
x=int(x/2)
=======(答案3)=======
s=s+Str(a(m))
第3题(1.0分)题号:
463
'【程序改错】
'题目:
以下程序功能是输入三个数,由大到小排序。
OptionExplicit
DimAAsInteger
DimBAsInteger
DimCAsInteger
PrivateSubForm_Click()
DimnTempAsInteger
A=Val(InputBox("Pleaseinputfirstinteger","输入正整数"))
B=Val(InputBox("Pleaseinputsecondinteger","输入正整数"))
C=Val(InputBox("Pleaseinputthirdinteger","输入正整数"))
IfA<=CThen
nTemp=A
A=B
B=nTemp
EndIf
IfB<=CThen
nTemp=A
A=C
C=nTemp
EndIf
IfA<=BThen
nTemp=B
B=C
C=nTemp
EndIf
Print"Theintegersinorderis";A;B;C
EndSub
答案:
=======(答案1)=======
IfA<=BThen
=========或=========
IfB>=AThen
=======(答案2)=======
IfA<=CThen
=========或=========
IfC>=AThen
=======(答案3)=======
IfB<=CThen
=========或=========
IfC>=BThen
第4题(1.0分)题号:
127
'【程序改错】
'题目:
下面程序可输出如下图形:
'*
'***
'*****
'*******
'*********
'------------------------------------------------
OptionExplicit
PrivateSubForm_Click()
DimmAsInteger,nAsInteger,sAsString,iAsInteger,jAsInteger
n=4
m=1
s="*"
Fori=5To1Step-1
PrintSpc(n)
Forj=1To2*m-1
Prints;
Nextj
n=n+1
m=m-1
Nexti
EndSub
答案:
=======(答案1)=======
PrintSpc(n);
=========或=========
PrintSpc(i);
=========或=========
Spc(n);
=========或=========
Spc(i);
=======(答案2)=======
n=n-1
=========或=========
n=-1+n
=======(答案3)=======
m=m+1
第5题(1.0分)题号:
469
'【程序改错】
'题目:
已知一个函数f(x)=1000*sin(x),利用绘图方法
'在图片框中显示其图形。
结果如图1
OptionExplicit
PrivateConstpi=3.14159
PrivateSubCommand1_Click()
DimxAsInteger
Picture1.Scale(-pi,-1200)-(pi,1200)
Forx=-piTopiSteppi
Picture1.PSet(x,1000*pi*Sin(x)),vbRed
Nextx
EndSub
答案:
=======(答案1)=======
DimxAsSingle
=========或=========
Dimx!
=======(答案2)=======
Forx=-piTopiSteppi/180
=======(答案3)=======
Picture1.PSet(x,1000*Sin(x)),vbRed
=========或=========
Picture1.PSet(x,Sin(x)*1000),vbRed
第6题(1.0分)题号:
497
'【程序改错】
'题目:
编程求一个十进制整数n的各位数字之和,设n为小于或等于5位的数。
OptionExplicit
PrivateSubForm_Click()
DimNAsInteger,SumAsInteger,S1AsString,S2AsString
DimiAsInteger,ChAsString
Sum=0
N=InputBox("输入整数n")
S1=Str(N)
S1=RTrim(S1)
Fori=1ToLen(S1)
Ch=Mid(N,i,1)
Sum=Val(Ch)
Nexti
Print"该整数的各位数之和是:
";Sum
EndSub
答案:
=======(答案1)=======
S1=Trim(S1)
=========或=========
S1=lTrim(S1)
=======(答案2)=======
Ch=Mid(S1,i,1)
=======(答案3)=======
Sum=Sum+Val(Ch)
=========或=========
Sum=Sum+Val(Ch)
第7题(1.0分)题号:
454
'【程序改错】
'题目:
本程序的功能是随机产生的10个两位正整数,并进行递减排序。
OptionExplicit
PrivateSubCreateRND()
DimTempAsInteger
DimIAsInteger
DimNAsInteger
DimX(10)AsInteger
DimJAsInteger
N=10
Print"数据:
"
ForI=1ToN
X(I)=Int(Rnd()*90)
PrintX(I);
NextI
Print"排序:
"
ForI=0ToN-1
ForJ=I+1ToN
IfX(I)>X(J)Then
Temp=X(I)
X(J)=X(I)
X(I)=Temp
EndIf
NextJ
PrintX(I);
NextI
EndSub
PrivateSubCommand1_Click()
CreateRND
EndSub
答案:
=======(答案1)=======
X(I)=Int(10+Rnd()*90)
=========或=========
X(I)=Int(10+Rnd()*90)
=======(答案2)=======
IfX(I) =========或========= IfX(I)<=X(J)Then =========或========= IfX(J)>X(I)Then =========或========= IfX(J)>=X(I)Then =======(答案3)======= temp=X(J) 第9题(1.0分)题号: 130 '【程序改错】 '题目: 以下程序段用于计算5的N次方。 OptionExplicit PrivateSubForm_Click() DimnAsInteger,kAsInteger,sAsLong n=InputBox("Inputn") k=0 s=0 DoWhilek<=n s=s*5 k=k+1 Next Print"5的";"n次方是";s EndSub 答案: =======(答案1)======= k=1 =======(答案2)======= s=1 =======(答案3)======= Loop 第11题(1.0分)题号: 452 '【程序改错】 '题目: 用自定义函数的方法求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都是由用户输入。 OptionExplicit PrivateSubCommand1_Click() DimsAsSingle DimnAsInteger,xAsSingle,kAsInteger n=Val(InputBox("Pleaseinputaintegervalue: ")) x=Val(InputBox("Pleaseinputasinglevalue: ")) Ifn<=0Then k=MsgBox("数据输入错误! ",vbRetryCancel+vbExclamation,"数据输入") ExitSub EndIf s=Sum(x,n) Prints EndSub FunctionSum(xAsSingle,nAsInteger) DimiAsInteger,ssAsLong ss=1 Sum=0 Ifx>1Orx<-1Then ExitDo Else Fori=2Ton ss=ss*i Sum=x^(i-1)/ss Nexti EndIf EndFunction 答案: =======(答案1)======= exitFunction =======(答案2)======= Fori=2Ton+1 =========或========= Fori=2To1+n =======(答案3)======= sum=sum+x^(i-1)/ss 第14题(1.0分)题号: 136 '【程序改错】 '题目: 程序功能为打印下列图形: '* '** '*** '**** '***** '------------------------------------------------ OptionExplicit PrivateSubForm_Click() Cls DimiAsInteger DimjAsInteger Fori=1To7 Forj=1To5 Print"*"; Loop Print Nexti EndSub 答案: =======(答案1)======= Fori=1To5 =======(答案2)======= Forj=1Toi =======(答案3)======= Nextj =========或========= Next 第16题(1.0分)题号: 461 '【程序改错】 '题目: 产生30个小于100的成绩随机数,并统计出优、良 '、中等、及格、不及格数的个数,并计算出成绩属 '于优秀段的成绩平均分。 OptionExplicit PrivateSubForm_Click() Dimk%,a%,bjg%,jg%,zd%,lh%,yxAsInteger DimpjfAsInteger Randomize pjf=0 Fork=1To30 a=Int(Rnd()) SelectCasea Case0To59 bjg=bjg+1'不及格 Case60To69 jg=jg+1'及格 Case70To79 zd=zd+1'中等 Case80To89 lh=lh+1'良好 Case90To100 yx=yx+1'优秀 pjf=pjf+1 EndSelect Nextk Ifyx>0Thenpjf=pjf/30 Debug.Print"不及格"+Str$(bjg)+"人,及格"+Str$(jg)+"人,中等"+Str$(zd)+"人"; Debug.Print"良好"+Str$(lh)+"优秀"+Str$(yx)+"人" Debug.Print"优秀分数段成绩平均分"&pjf EndSub 答案: =======(答案1)======= a=Int(Rnd()*100) =========或========= a=Int(Rnd*100) =======(答案2)======= pjf=pjf+a =======(答案3)======= Ifyx>0Thenpjf=pjf/yx 第17题(1.0分)题号: 456 '【程序改错】 '题目: 挑选单数并排序程序: 程序启动后由计算机自动产 '生20个属于[100,300]之间的随机整数,单击"显 '示全体"按钮时,在Form1上显示这20个随机数; '单击"显示奇数"按钮时,在Form1上显示其中的奇数; '单击"排序"按钮时,在Form1上将这些奇数从小到大显示。 '要求显示格式为每行显示5个数据。 OptionExplicit Privatea(20)AsInteger,b(20)AsInteger PrivatekAsInteger PrivateSubcmdodd_Click() DimIAsInteger k=0 ForI=1To20 Ifa(I)/2=Int(a(I)/2)Then k=k+1 b(k)=a(I) EndIf NextI ForI=1Tok Printb(I); IfInt(I/5)<>I/5ThenPrint NextI Print EndSub PrivateSubcmdAll_Click() Randomize DimIAsInteger ForI=1To20 a(I)=Int(Rnd()*20+100) Printa(I), IfInt(I/5)=I/5ThenPrint NextI Print EndSub PrivateSubcmdsort_Click() DimIAsInteger DimJAsInteger DimTempAsInteger ForI=1Tok-1 ForJ=ITok Ifb(I)>b(J)ThenTemp=b(I): b(I)=b(J): b(J)=Temp NextJ NextI ForI=1Tok Printb(I); IfInt(I/5)=I/5ThenPrint NextI EndSub 答案: =======(答案1)======= Ifa(I)/2<>Int(a(I)/2)Then =========或========= Ifa(I)mod2<>0Then =========或========= If0<>a(I)mod2Then =========或========= Ifa(I)/2<>a(I)\2Then =========或========= Ifint(a(I)/2)<>a(I)/2Then =========或========= Ifa(I)\2<>a(I)/2Then =======(答案2)======= IfInt(I/5)=I/5ThenPrint =========或========= IfImod5=0ThenPrint =========或========= If0=Imod5ThenPrint =========或========= IfI/5=int(I/5)ThenPrint =========或========= IfI/5=I\5ThenPrint =========或========= IfI\5=I/5ThenPrint =======(答案3)======= a(I)=Int(Rnd()*200+100) 第19题(1.0分)题号: 499 '【程序改错】 '题目: 编程将一个数从已经有序(设从小到大排序)的数组 '中删除,使数组还继续保持有序而且其余元素按照下 '标连续存放。 OptionExplicit PrivateSubForm_Click() DimA()AsInteger,NAsInteger,FlagAsInteger DimiAsInteger,XAsInteger,PAsInteger Flag=0 N=InputBox("输入元素个数") DimA(N) Fori=1ToN A(i)=InputBox("输入数组的第"&i&"个元素") Nexti Print"删除某元素前的数组" Fori=1ToN PrintA(i); Nexti Start: X=InputBox("输入要删除的元素: ") Fori=1ToN IfX=A(i)ThenP=i: Flag=1 Nexti IfFlag=0ThenMsgBox("没有此元素"): GoToStart Fori=PToN-1 A(i+1)=A(i) Nexti N=N+1 Print"删除元素后的数组: " Fori=1ToN PrintA(i); Nexti EndSub 答案: =======(答案1)======= ReDimA(N) =======(答案2)======= A(i)=A(i+1) =========或========= A(i)=A(1+i) =======(答案3)======= N=N-1 第20题(1.0分)题号: 139 '【程序改错】 '题目: 随机产生并输出100以内大于50的20个整数,输 '出时每5个数一行。 OptionExplicit PrivateSubForm_Click() RandomizeTimer DimiAsInteger,maAsInteger i=1 DoUntili<20 ma=Rnd()*100\1 Ifma>50Then Printma; i=i+1 Ifi\5=0Then Print EndIf EndIf Loop EndSub 答案: =======(答案1)======= i=0 =======(答案2)======= Dowhilei<20 =========或========= Dowhile20>i =========或========= Dowhilei<=19 =========或========= Dowhile19>=i =======(答案3)======= Ifimod5=0Then 第23题(1.0分)题号: 474 '【程序改错】 '题目: 程序功能为求解一元二次方程的实根,请修正程序中错误。 OptionExplicit PrivateSubForm_Load() Dima! b! c! root1#,root2#,workAsDouble a=Val(InputBox("请输入系数a的值")) b=Val(InputBox("请输入系数b的值")) c=Val(InputBox("请输入系数c的值")) work=b*2-4*a*c Ifwork>=0Anda<>0Then root1=(Sqr(work))/(2*a) root2=(Sqr(work))/(2*a) Debug.P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 程序 改错 40 答案