VB程序设计多试题及答案_第1页
VB程序设计多试题及答案_第2页
VB程序设计多试题及答案_第3页
VB程序设计多试题及答案_第4页
VB程序设计多试题及答案_第5页
已阅读5页,还剩157页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

9、VisuaIBasic程序改错

1.程序功能:求s=l+3+5+7+...直到s>2000为止。程EndSub

答案:and;wend

序中有两行有错误。改正错误,使它能输出正确的结果。5.程序功能:求1到400间,同时能被3和7整除的

(2025)平方和数的个数。程序中有两行有错误。改正错误,使它能输

PrivateSubForm_Click()出正确的结果。(19)

DimiAsInteger,sAsLongPrivateSubForm_Click()

s=0:i=1DimcountAsInteger

DoUntilsv2000DimxAsInteger

s=s+iForx=1To400

i=i+1ifmod(x,3)=0aodmod(x、7)=0then

Loopcount=count+1

Printsendif

EndSubNextcount

答案:s>2000:i+2Printcount

2.程序功能:计算s=2!+4!+8!。程序中有两行有错误。EndSub

改正错误,使它能输出正确的结果。(40346)答案:xMod3=0AndxMod7=0;x

PrivateSubCommandl_Click()6.程序功能:求能被3整除且至少有一位数字为5的

DimkAsInteger,iAsInteger三位数的个数。程序中有两行有错误。改正错误,使它

DimsAsLong,tAsLong能输出正确的结果。(85)

s=0PrivateSubCommandl_Click()

i=1DimcountAsInteger

DoWhilei<=3DimaAsInteger,bAsInteger,cAsInteger

t=1DimxAsInteger

k=1x二100

Whilek<=2*idoWhilex<=999

t=t*kIfxMod3=0Then

k=k+1a=Int(x/100)

Wendb=Int((x-a*100)/10)

s=s+tc=x-a*100-b*10

i=i+1Ifa=5andb=5andc=5Then

wendcount=count+1

PrintsEndIf

EndSubEndIf

答案:k<=24;loopx=x+1

3.程序功能:计算s=2!+4!+6!+8!。程序中有错误。改wend

Printcount

正错误,使它能输出正确的结果。(41066)

EndSub

PrivateSubCommandl_Click()

答案:a=5orb=5orc=5;loop

DimkAsInteger,iAsInteger

7.程序功能:求三位偶数中,个位数字与十位数字之

DimsAsLong,tAsLong

和除以10所得的余数是百位数字的数的个数。程序中

s=0:i=1

有两行有错误。改正错误,使它能输出正确的结果。(45)

DoWhilei<=4

奇数都是45

t=1

PrivateSubCommandl_Click()

k=1

DimcountAsInteger

Whilek〈二2一i

DimaAsInteger,bAsInteger,cAsInteger

t=t*k

DimxAsInteger

k=k+1

count=0

Wend

x二100

s=s+t

Whilex<=999

i=i+1

a=Int(x/100)

wend

b=Int(x/10)-a*10

Prints

c=x-a*100-b*10

EndSub

IfMod(x,2)=0ormod(b+c,10)=aThen

答案:k<=2*i;loop

count=count+1

4.程序功能:求200到400间,能被3整除但不能被

EndIf

7整除的数的个数。程序中有两行有错误。改正错误,

x=x+1

使它能输出正确的结果。(57)

loop

PrivateSubCommandl_Click()

Printcount

DimcountAsInteger

EndSub

DimxAsInteger

答案:xMod2=0And(b+c)Mod10=a;wend

count=0

8.程序功能:求平方和小于2000的最大自然数。程序

x二200

中有两行有错误。改正错误,使它能输出正确的结果。

Whilex<=400

(18)

IfxMod3=0orxMod700Then

PrivateSubFormClick()

count=count+1

DimxAsInteger

EndIf

DimsAsInteger

x=x+1s=0

Loop

x=0

Printcount

DoWhiles>=2000

x=x+2DimnAsInteger,iAsInteger,jAsInteger,kAs

S=S+X*XInteger

loopForn=100To999

Printxi=n/100'百位

EndSubi=Int(n/10)-1*10,十位

答案:s<=2000;x=x+1k=nMod10

9.程序功能:解百马百瓦古题。大、小马和马驹共100Ifn=i*i*i+j*j*j+k*k*kThen

匹,共驮100片瓦。大马一驮三,小马一驮二,马驹二number=numbre+1

驮一,一次驮完,三种马都驮,共有多少种组合?程序EndIf

中有三行有错误。改正错误,使它能输出正确的结果。Nextn

(6)Printnumber

PrivateSubForm_Click()EndSub

DimxAsInteger,yAsInteger,zAsInteger答案:j=Int((n-i*100)/10);number=number+l

DimsAsInteger13.程序功能:求数列2/1,3/2,5/3,8/5,13/8,……

s=0的前10项之和。程序中有两行有错误。改正错误,使

Forx=1To33它能输出正确的结果。16.47991

Fory=1To50PrivateSubForm_Click()

z=100-x-yDimiAsInteger,tAsInteger,nAsInteger

If3*x+2*v+z/2olOOThenDimaAsInteger,bAsInteger

s=s+1DimsAsSingle

EndIfa=2:b=1:n=10:s=0

NextxFori=1Ton

Nextys=s+a/b

Printst=b

EndSuba=a+b

答案:3*x+2*y+z/2=100;Nexty;Nextxa二t

10.程序功能:求100-200之间的所有素数个数,程序Nexti

中有两行有错误。改正错误,使它能输出正确的结果。Prints

(21)EndSub

PrivateSubCommand1_Click()•t=a,b—t

谑赢偏子第天摘下若干桃子,当即吃掉一半,

Number=014.M1

Forx=101To199Step2又多吃一个,第二天将剩余的部分吃掉一半还多一个;

i=2以此类推,到第10天只剩余1个。问第1天共摘了多

k=Int(x/2)少桃子。程序中有两行有错误。改正错误,使它能输

DoWhilei<=k出正确的结果。1534

IfxModi=0ThenExitforPrivateSubForm_Click()

i=i+1DimdayAsInteger,sumAsInteger

Loopday=10:sum=1

Ifi<kThenDoWhileday>1

Number=Number+1sum-sum*2

EndIfday=day-1

NextxLoop

PrintNumberPrintsum

EndSubEndSub

答案:exitdo;i>k答案:day=10:sum=1:sum=(sum+1)*2

11.程序功能:sum=d+dd+ddd+..+ddd..d(d为1-9的15.程序功能:求1〜200之间的能被7整除的数的平方

数字)。例如:3+33+333+3333(此时d=3,n=4)。从和。程序有两处错误。改正错误,使它能输出正确的

康蠢上输入d的值为8,n的值为9,求sum的值。速结果。377986

序中有两行有错误。改正错误,使它能输出正确的结PrivateSubCommandlClick()

果。987654312DimxAsInteger

PrivateSubFormClick()DimsumAsInteger

DimdAsInteger,nAsInteger,iAsIntegerx二1

DimsumAsLongsum二0

sum=0Whilex<=200

d=Vai(InputBox(z,d:z,))IfxMod7=0

n=Vai(InputBox(〃n:"))sum=sum+x2

Fori=1TonEndIf

in=In+dX=X+1

sum=sun+inWend

NextiPrintsum

PrintsumEndSub

EndSub答案:DimsumAsDouble;IfxMod7=0Then

答案:tn二tn*10+d;sunFsum+tn16.程序功能:求「99的平方根的和并输出结果。(保

12.程序功能:输出水仙花的个数(所谓水仙花数是指一留小数点两位),程序中有两行有错误。改正错误,

个三位十进制数,该数的各位数字立方之和等于该数使它能输出正确的结果。661.46

本身。例如153是一个水仙花数,因为PrivateSubCommand1_C1ick()

「3+5-3+3-3=153)程序中有两行有错误。改正错误,DimxAsInteger

使它能输出正确的结果。4DimsumAsinteger

PrivateSubFormCiick()x=1

DimnumberAsIntegerDoWhilex<=99

sum=sum+Sqrt(x)

X=X+1答案:x=x*2;loopuntils>9000

Loop21.程序功能:已知24有8个正整数因子(即:

PrintRound(sum,2)1,2,3,4,6,8,12,24),而24正好被其因子个数8整除。

EndSub问[100,300]之间有多少个这样的数。程序中有两行有

答案:DimsumAsSingle;sum=sum+Sqr(x)错误。改正错误,使它能输出正确的结果。19

17.程序功能:求[1,5000]内能被5整除的前若干个偶数PrivateSubCommandl_Click()

之和,直到和大于50000为止。程序中有两行有错误。DimnlAsInteger,n2AsInteger

改正错误,使它能输出正确的结果。50500DimxAsInteger

PrivateSubCommand1_C1ick()DimiAsInteger

DimxAsIntegern2=0

DimsAsLongForx=100To300

x=2nl=0

DoWhilex<=5000Fori=1To100

IfxMod5=0ThenIfxModi=0Then

S=S+Xnl=nl+1

Ifs>50000ThenEndIf

ExitforNexti

EndIfIfxModnl=0Then

EndIfn2=n2+1

x=x+2EndIf

LoopNextx

PrintsPrintn2

EndSubEndSub

答案:exitdo(只有一处有错)an]二0,x

18.程序功能:求3000以内能被17或23整除的正整数22.程有功'能:我国今年的国民生产总值为45600亿元,

的个数。程序中有两行有错误。改正错误,使它能输若今后每年以9%的增长率增长,计算多少年后能实现

出正确的结果。299国民生产总值翻一番?程序中有两行有错误。改正错

PrivateSubCommandl_Click()误,使它能输出正确的结果。9

DimxAsIntegerPrivateSubCommandl_Click()

DimcountAsIntegerDimpAsLong,plAsLong

Forx=1To3000Step」DimnAsInteger

IfxMod17=0andxMod23=0Thenn=0

count=count+1pl=45600

EndIfP=Pl

NextxDo

PrintcountD=D*(1+9)

EndSubn=n+1

答案:1jorLoopUntilp_<2*pl

19.短用功能:已知一个数列的前3项为0,0,1,以后Printn

每项为前3项的和,求此数列的第36项。程序中有两EndSub

行有错误。改正错误,使它能输出正确的结果。答案:p=p*(1+0.09);>=

33474577723.程序功能:已知24有8个正整数因子

PrivateSubCommand1Click()(即:1,2,3,4,6,8,12,24),而24正好被其因子个数8

DimaAsLong整除。求[100,300]之间能被其因子数目整除的数中最

DimbAsLong大的数。程序中有两行有错误。改正错误,使它能输

DimcAsLong出正确的结果。296

DimdAsLongPrivateSubCommandl_Click()

DimiAsIntegerDimNAsInteger

a=0:b=0:c=1DimsAsInteger

Fori=1To36DimiAsInteger

d=aForN=300To100Step-1

a=bs=0

b=cFori=1ToN

c=a+b+cIfNModi=0Then

Nextis=s+1

PrintcEndIf

EndSubNexti

答案:33;c=a+b+dIfsModN=0Then

20.程序功能:求数列序4,8,16,32,…前若干项之和。PrintN

当和大于9000时,终止求和并输出结果。程序中有两ExitFor

行有错误。改正错误,使它能输出正确的结果。16382EndIf

PrivateSubCommandl_Click()NextN

DimsAsIntegerEndSub

DimxAsInteger答案:Nmods=0(只有一处错误)

x二124.程序功能:有一个三位数满足下列条件:(1)三位数

Do字各不相同;(2)此数等于它的各位数字的立方和。求

x=x+2这种三位数的个数。程序中有两行有错误。改正错误,

s=s+x使它能输出正确的结果。4153370371407

Untils>9000PrivateSubCommand1_C1ick()

PrintsDimxAsInteger,aAsInteger,bAsInteger

EndSubDimcAsInteger,nAsInteger

n=0EndSub

x=100答案:8;x+y*2+z*5=100

DoWhilex>=99928.程序功能:求区间[500,2500]中按递增顺序的第25

a=Int(x/100)个素数。程序中有两行有错误。改正错误,使它能输

b=Int(x/10)-a*10出正确的结果。659

c=x-a*100-b*10PrivateSubCommandl_Click()

Ifa<>cAndb◊cAnda<>bAndx=a-3+n=0

b,3+c"3ThenForx=500To2500

n=n+1flag=False

EndIfFori=2Tox-1

x=x+1IfxModi=0Then

Loopflag=True

PrintnExitFor

EndSubEndIf

答案:x<=999;将or全部换成andNexti

25.程序功能:求[3,500]内所有素数之和。程序中有一IfflagThen

行错误,改正错误,使它能输出正确的结果。21534n=n+1

PrivateSubCommandl_Click()Ifn=25ThenExitFor

Sum=0EndIf

Forx=3To500Nextx

flag=TruePrintx

Fori=2Tox-1EndSub

IfxModi=0Then答案:notflag(只有一处错误)

flag=False29.程序功能:设某四位数的千位数字与十位数字的和等

ExitFor于百位数字与个位数字的积,例如,对于四位数:9512,

EndIf9+1=5*2,求所有这样的四位数之和。程序中有一行有

Nexti错误。改正错误,使它能输出正确的结果。1078289

IfnoIflagThenPrivateSubCommandl_Click()

Sum=Sum+xSum二0

EndIfForx=1000To9999

Nextxa=Int(x/1000)

PrintSumb=Int(x/100)-a*10

EndSubc=Int(x/10)-a*100-b*10

答案:flagd=x-a*1000-b*100-c*10

26.程序功能:求[3-1000]之间最大的五个素数之和。程Ifa+c=b*dThen

序中有两行有错误。改正错误,使它能输出正确的结Sum=Sum+x

果。4919EndIf

PrivateSubCommandl_Click()Nextx

n=0:Sum=0PrintSum

x=1000EndSub

Do答案:b=Ini(x/100)-a*10这样的数:2079992

flag=True30.程序功能:求[200,300]之间的有奇数个不同因子的

Fori=2Tox-1最大整数。程序中有两行有错误。改正错误,使它能

IfxModi=0Then输出正确的结果。289

flag=FalsePrivateSubCommand1_C1ick()

ExitdoForx=300To200SlepT

EndIfn=0

NextiFori=1Tox

IfflagThenIfxModi=0Then

Sum=Sum+xn=n+1

n=n+1EndIf

Ifn=5ThenExitDoNexti

EndIfIfn/2◊0Then

x=x-1Printx

LoopWhilex<=3ExitFor

PrintSumEndIf

EndSubNextx

答案:exitfor;x>=3EndSub

27.程序功能:把一张一元钞票,换成一分、二分和五分答案:x二300To200Step-1;nMod200

硬币,每种至少8枚,求方案数。程序中有两行有错误。31.程序功能:计算

改正错误,使它能输出正确的结果。80y=l+2/3+3/5+4/7+…+n/(2*n-l)(n=50),要求:按四

PrivateSubCommandl_Click()舍五入的方式精确到小数点后第二位。程序中有两行

n=0有错误。改正错误,使它能输出正确的结果。26.47

Forx二」To100PrivateSubCommandl_Click()

Fory=8To50DimsAsSingle

Forz=8To20DimnAsInteger

Ifx+y*2+z*5=100Thenn=n+1s=0

NextzForn=1To50

Nextys二s+n/2*n-l

NextxNextn

PrintnPrintround(s)

EndSubIfcock+hen+chick=100Then

答案:s=s+n/(2*n-l);round(s,2)s=s+1

32.程序功能:求当N=20时,EndIf

1/(1*2)+1/(2*3)+1/(3*4)+・・・・+1/(N*(N+l))的值。要hen=hen+1

求:按四舍五入的方式精确到小数点后第二位。程序Loop

中有一行有错误。改正错误,使它能输出正确的结果。cock=cock+1

0.95Loop

PrivateSubCommandl_Click()Prints

s=0:n=1EndSub

DoWhilen<=20答案:cock*5+hen*3+chick/3=100(一处错)

s-s+l/n*(n+l)37.程序功能:求500以内最大的10个能被13或17整

n=n+1除的自然数之和。程序中有两行有错误。改正错误,

Loop使它能输出正确的结果。4622

PrintFormat(s,"##0.##")PrivateSubCommandl_Click()

EndSubs=0:n=0

答案:s=s+1/(n*(n+1))x二500

33.程序功能:求m=50时,表达式DoWhilex>=1

t=1-1/(2*2)-1/(3*3)的值。要求:按四IfxMod13=0andxMod17=0Then

舍五入的方式精确到小数点后第四位。程序中有两行s=s+x

有错误。改正错误,使它能输出正确的结果。0.3749n=n+1

PrivateSubCommand1_C1ick()EndIf

DimtAsSingleIfn=10ThenExitDo

DimmAsIntegerx二x+1

m=2Loop

t=1Prints

DoWhilem<=50EndSub

t=t-1/m*m答案:0r;x=x-1

m=m+138.、谊序动能:求[10,1000]之间的所有完数之和。各

wend真因子之和(不包括自身)等于其本身的正整数称为

PrintFormat(t,"0.####")完数。例如:6=1+2+3,6是完数。程序中有有错误。

EndSub改正错误,使它能输出正确的结果。524

答案:(m*m);loopPrivateSubCommand1Click()

34.程序功能:求[10,1000]之间满足除以7余5、除以5DimsumAsInteger

余3、除以3余1的所有整数的个数。程序中有两行DimxAsInteger,kAsInteger

有错误。改正错误,使它能输出正确的结果。9DimiAsInteger

PrivateSubCommandl_Click()sum=0

DimxAsIntegerForx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论