VB程序改错40题.docx

上传人:b****6 文档编号:6038494 上传时间:2023-01-03 格式:DOCX 页数:19 大小:18.46KB
下载 相关 举报
VB程序改错40题.docx_第1页
第1页 / 共19页
VB程序改错40题.docx_第2页
第2页 / 共19页
VB程序改错40题.docx_第3页
第3页 / 共19页
VB程序改错40题.docx_第4页
第4页 / 共19页
VB程序改错40题.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

VB程序改错40题.docx

《VB程序改错40题.docx》由会员分享,可在线阅读,更多相关《VB程序改错40题.docx(19页珍藏版)》请在冰豆网上搜索。

VB程序改错40题.docx

VB程序改错40题

第57题(1.0分)题号:

465

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

用InputBox函数输入一个字符串,编写程序按与

'输入的字符相反的次序用Msgbox函数输出这个字

'符串。

如输入字符串为"abcdefgh",则输出为"h

'gfedcba",输出效果如图1。

'------------------------------------------------

OptionExplicit

PrivateSubCommand1_Click()

DimpristrAsString,outstrAsString

DimiAsInteger

pristr=InputBox("pleaseinputastring")

'**********FOUND**********

Fori=0ToLen(pristr)

'**********FOUND**********

outstr=outstr+Mid(pristr,Len(pristr)-i)

Nexti

'**********FOUND**********

MsgBoxoutstr,,"TheOutputResult"

EndSub

 

答案:

=======(答案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,"TheOutputResult"

第59题(1.0分)题号:

147

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

下面的程序用来产生并输出图示的杨辉三角。

'1

'11

'121

'1331

'14641

'15101051

'------------------------------------------------

OptionExplicit

PublicSubreadin(a()AsInteger,nAsInteger)

Dimi,jAsInteger

Fori=1Ton

'**********FOUND**********

a(i,n)=1

a(i,1)=1

Nexti

Fori=3Ton

'**********FOUND**********

Forj=2Ton

a(i,j)=a(i-1,j)+a(i-1,j-1)

Nextj

Nexti

EndSub

PublicSubprintf(a()AsInteger,nAsInteger)

Dimi,jAsInteger

Fori=1Ton

'**********FOUND**********

Forj=1Ton

PrintTab(5*j+10);a(i,j);

Nextj

Print

Nexti

Print

EndSub

PrivateSubForm_Click()

Dimx(10,10)AsInteger

Callreadin(x(),6)

Callprintf(x(),6)

EndSub

 

答案:

=======(答案1)=======

a(i,i)=1

=======(答案2)=======

Forj=2Toi-1

=========或=========

Forj=2To-1+i

=======(答案3)=======

Forj=1Toi

第60题(1.0分)题号:

146

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

用辗转相除法求两个整数的最大公约数。

'------------------------------------------------

OptionExplicit

Functiongcd(ByValmAsInteger,ByValnAsInteger)AsInteger

DimrAsInteger

r=mModn

DoWhiler<>0

'**********FOUND**********

n=m

n=r

r=mModn

Loop

'**********FOUND**********

gcd=r

EndFunction

PrivateSubForm_Click()

DimaAsInteger,bAsInteger,cAsInteger

a=InputBox("输入一个整数")

b=InputBox("输入一个整数")

a=Val(a)

b=Val(b)

'**********FOUND**********

Callgcd(a,b)

Printa,b,c

EndSub

 

答案:

=======(答案1)=======

m=n

=======(答案2)=======

gcd=n

=======(答案3)=======

c=gcd(a,b)

第65题(1.0分)题号:

492

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

输入两个正整数m和n,求其最大公约数。

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

DimmAsInteger,nAsInteger,rAsInteger

m=InputBox("输入m的值:

")

n=InputBox("输入n的值:

")

DoWhilen<>0

'**********FOUND**********

r=m/n

m=n

'**********FOUND**********

n=m

Loop

'**********FOUND**********

Print"两数的最大公因子为:

";n

EndSub

 

答案:

=======(答案1)=======

r=mModn

=======(答案2)=======

n=r

=======(答案3)=======

Print"两数的最大公因子为:

";m

第66题(1.0分)题号:

467

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

从计算机输入三个数,找出中间数

'------------------------------------------------

OptionExplicit

PrivateSubFindMidNum()

DimxAsInteger,yAsInteger,zAsInteger,AAsInteger

x=InputBox("PLEASEINPUTTHEFIRSTNUMBER")

y=InputBox("PLEASEINPUTTHESECONDNUMBER")

z=InputBox("PLESSEINPUTTHETHIRDNUMBER")

'**********FOUND**********

Ifx>yThen

A=x

x=y

y=A

EndIf

'**********FOUND**********

Ify=zThen

Printy

'**********FOUND**********

ElseIfx=zThen

Printz

Else

Printx

EndIf

EndSub

PrivateSubForm_Click()

FindMidNum

EndSub

 

答案:

=======(答案1)=======

Ifx

=========或=========

Ify>xThen

=======(答案2)=======

Ify>=zThen

=========或=========

Ifz<=yThen

=======(答案3)=======

ElseIfx>=zThen

=========或=========

ElseIfz<=xThen

第70题(1.0分)题号:

142

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

程序功能根据输入的学习成绩,分别显示优秀

'(90分以上),良好(75分以上),及格(60分以上)

'不及格四个等级.

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

Cls

DimiAsInteger

i=InputBox("请输入学习成绩")

SelectCasei

'**********FOUND**********

Case0

MsgBox"成绩应该在0--100之间"""

'**********FOUND**********

Case90

Print"优秀"

Case75To89

Print"良好"

Case60To74

Print"及格"

'**********FOUND**********

Case

MsgBox"不及格",vbCritical

EndSelect

EndSub

 

答案:

=======(答案1)=======

Caseis>100,is<0

=========或=========

caseis<0,is>100

=======(答案2)=======

Case90to100

=======(答案3)=======

Caseelse

第71题(1.0分)题号:

473

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

下列程序进行-n阶乘运算,当阶乘的值超过-21147483648

溢出报错,并将结果输出为-1。

'------------------------------------------------

OptionExplicit

'**********FOUND**********

PrivateFunctionjc(ByValnAsInteger)AsInteger

DimIAsInteger

DimresultAsLong

result=1

I=1

DoWhileI<=n

Ifresult<2114748348/IThen

'**********FOUND**********

result=result

I=I+1

Else

lblerr.Caption="溢出"

'**********FOUND**********

jc=-I

ExitFunction

EndIf

Loop

jc=-result

EndFunction

PrivateSubForm_Click()

MsgBoxjc(3)

EndSub

答案:

=======(答案1)=======

PrivateFunctionjc(ByValnAsInteger)AsLong

=======(答案2)=======

result=result*I

=========或=========

result=I*result

=======(答案3)=======

jc=-1

第72题(1.0分)题号:

145

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

该程序的功能是求出100到200之间的全部素数,

'并且按每行4个、每个数据之间有10个空格的格

'式输出。

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

DimkAsInteger,iAsInteger,jAsInteger

k=0

Fori=100To200

'**********FOUND**********

Forj=1Toi-1

IfiModj=0ThenExitFor

Nextj

Ifj=iThen

'**********FOUND**********

Printi;Tab(10);

k=k+1

'**********FOUND**********

IfkMod5=0ThenPrint;

EndIf

Nexti

EndSub

 

答案:

=======(答案1)=======

Forj=2Toi-1

=========或=========

Forj=2To-1+i

=======(答案2)=======

Printi;Space(10);

=========或=========

Printi;Spc(10);

=======(答案3)=======

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实现

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

DimiAsInteger,sAsLong

'**********FOUND**********

Fori=2To8

s=s+fact(i)

Nexti

Prints

EndSub

'**********FOUND**********

PublicFunctionfact()

DimtAsLong

DimiAsInteger

t=1

Fori=1Ton

t=t*i

Nexti

'**********FOUND**********

fact=i

EndFunction

 

答案:

=======(答案1)=======

Fori=2To8Step2

=======(答案2)=======

PublicFunctionfact(ByValnAsInteger)

=========或=========

PublicFunctionfact(nAsInteger)

=========或=========

PublicFunctionfact(n%)

=========或=========

PublicFunctionfact(n)

=========或=========

PublicFunctionfact(ByValn%)

=========或=========

PublicFunctionfact(ByValn)

=======(答案3)=======

fact=t

第76题(1.0分)题号:

479

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

下面的程序用“冒泡”法完成数组a中的10个整数

'按升序排列,请修正程序中错误。

'------------------------------------------------

OptionExplicit

PrivateSubCommand1_Click()

Dima

DimiAsInteger,jAsInteger,a1AsInteger

a=Array(-2,5,24,58,43,-10,87,75,27,83)

Fori=1To9

'**********FOUND**********

Forj=iTo9

'**********FOUND**********

Ifa(j)>=a(i)Then

a1=a(i)

a(i)=a(j)

'**********FOUND**********

a(j)=a(i)

EndIf

Nextj

Nexti

Fori=0To9

Printa(i)

Nexti

EndSub

 

答案:

=======(答案1)=======

Forj=i+1To9

=========或=========

Forj=1+iTo9

=======(答案2)=======

Ifa(i)>=a(j)Then

=======(答案3)=======

a(j)=a1

第77题(1.0分)题号:

490

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

输入一个字符串,将所有的小写字母都转换为大写字母。

'------------------------------------------------

OptionExplicit

PrivateSubForm_Click()

Dims1AsString,s2AsString,iAsInteger,tAsString

s1=InputBox("输入字符串,#号结束")

i=1

'**********FOUND**********

s1=Mid(s1,i,1)

Whilet<>"#"

'**********FOUND**********

Ift>="a"Andt<="z"Thent=Chr(Asc(t)-30)

s2=s2+t

i=i+1

t=Mid(s1,i,1)

Wend

'**********FOUND**********

Print"新字符串为:

";s1

EndSub

 

答案:

=======(答案1)=======

t=Mid(s1,i,1)

=======(答案2)=======

Ift>="a"Andt<="z"Thent=Chr(Asc(t)-32)

=======(答案3)=======

Print"新字符串为:

";s2

第79题(1.0分)题号:

487

'------------------------------------------------

'【程序改错】

'------------------------------------------------

'题目:

设窗体中有图片框Pic1,现要求在其中绘制10个同心圆,

'然后将此图以Test.BMP作文件名存入磁盘。

'------------------------------------------------

OptionExplicit

PrivateSubCommand1_Click()

DimXAsInteger

DimYAsInteger

Dim

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > 公务员考试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1