源代码及答案.docx

上传人:b****0 文档编号:12475356 上传时间:2023-04-19 格式:DOCX 页数:159 大小:53.40KB
下载 相关 举报
源代码及答案.docx_第1页
第1页 / 共159页
源代码及答案.docx_第2页
第2页 / 共159页
源代码及答案.docx_第3页
第3页 / 共159页
源代码及答案.docx_第4页
第4页 / 共159页
源代码及答案.docx_第5页
第5页 / 共159页
点击查看更多>>
下载资源
资源描述

源代码及答案.docx

《源代码及答案.docx》由会员分享,可在线阅读,更多相关《源代码及答案.docx(159页珍藏版)》请在冰豆网上搜索。

源代码及答案.docx

源代码及答案

问题、源代码及答案

问题、源代码及答案

问题、源代码及答案

问题、源代码及答案

程序功能:

求s=1+3+5+7+...直到s>2000为止。

程序中有两行有错误。

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

PrivateSubCommand1_Click()

DimiAsInteger,sAsLong

s=0

i=1

DoUntils<2000‘s>2000

s=s+i

i=i+1‘I=I+2

Loop

Prints

EndSub

答案:

2025

程序功能:

根据整型参数m的值,计算公式t=1-1/(2*2)-1/(3*3)-…-1/(m*m)的值(m=100)。

程序的函数fun()中有一行有错误。

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

PrivateSubCommand1_Click()

PrintFormat(fun(100),"0.######")

EndSub

PrivateFunctionfun(nAsInteger)AsInteger‘Single

DimtAsSingle

DimiAsInteger

i=2:

t=1

DoWhilei<=n

t=t-1/(i*i)

i=i+1

Loop

fun=t

EndFunction

答案:

0.365016

程序功能:

已知24有8个正整数因子(即:

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

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

程序中有两行有错误。

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

PrivateSubCommand1_Click()

DimNAsInteger

DimsAsInteger

DimiAsInteger

ForN=300To100‘step-1

s=0

Fori=1ToN

IfNModi=0Then

s=s+1

EndIf

Nexti

IfsModN=0Then‘NMods=0

PrintN

ExitFor

EndIf

NextN

EndSub

答案:

296

程序功能:

求四位偶数中,各位数字之和是30的倍数的数之和。

程序中有错误,改正错误,使程序能输出正确结果。

PrivateSubCommand1_Click()

Dimx%,a%,b%,c%,d%

Dimnum1&

num1=0

Forx=1000To9999

a=Int(x/1000)

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

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

d=x-a*1000-b*100-c*10

Ifa+b+c+dMod30=0Then

num1=num1+x

EndIf

Nextx

Printnum1

EndSub

答案:

288840

修改如下:

Forx=1000To9999Step2

a=Fix(x/1000)

b=Fix((x-a*1000)/100)

c=Fix((x-a*1000-b*100)/10)

d=x-a*1000-b*100-c*10

If(a+b+c+d)Mod30=0Then

程序功能:

求s=1+3+5+7+...直到s>3000为止。

程序中有两行有错误。

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

PrivateSubCommand1_Click()

DimiAsInteger,sAsLong

s=0

i=1

DoUntils<3000‘S>3000

s=s+i

i=i+1‘I=I+2

Loop

Prints

EndSub

答案:

3025

程序功能:

根据整型参数m的值,计算公式t=1-1/(2*2)-1/(3*3)-…-1/(m*m)的值(m=123)。

程序的函数fun()中有一行有错误。

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

PrivateSubCommand1_Click()

PrintFormat(fun(123),"0.######")

EndSub

PrivateFunctionfun(nAsInteger)AsInteger

DimtAsSingle

DimiAsInteger

i=2:

t=1

DoWhilei<=n

t=t-1/(i*i)

i=i+1

Loop

fun=t

EndFunction

答案:

0.363163

改为:

PrivateFunctionfun(nAsInteger)AsSingle

程序功能:

求100~200之间的素数个数,程序中有错误。

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

PrivateSubForm_Click()

Number=0

Forx=101To199Step2

i=2

k=Int(x/2)

DoWhilei<=k

IfxModi=0ThenExitFor‘ExitDo

i=i+1

Loop

IfikThen

Number=Number+1

EndIf

Nextx

PrintNumber

EndSub

答案:

21

程序功能:

求满足以下条件的(a,b,c)的组数:

(1)1/(a^2)+1/(b^2)=1/(c^2);

(2)a>b>c;(3)a+b+c<100。

程序中有错误,改正错误,使程序能输出正确的结果。

PrivateSubCommand1_Click()

Dimc%,b%,a%,s$

s=0

Forc=1To100

Forb=1To100

Fora=1To100

Ifa+b+c<100Or1/(a^2)+1/(b^2)=1/(c^2)Thens=s+1

Nexta,b,c

Prints

EndSub

答案:

2

改为:

Ifa+b+c<100And1/(a^2)+1/(b^2)=1/(c^2)And(a>b)And(b>c)Thens=s+1

程序功能:

计算s=2!

+4!

+8!

程序中有两行有错误。

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

PrivateSubCommand1_Click()

DimkAsInteger,iAsInteger

DimsAsLong,tAsLong

s=0

i=1

DoWhilei<=3

t=1

k=1

Whilek<=2*I‘2^i

t=t*k

k=k+1

Wend

s=s+t

i=i+1

Wend‘loop

Prints

EndSub

答案:

40346

程序功能:

根据整型参数m,计算1-123的平方根的倒数之和。

程序的函数fun()中有一行有错误,改正错误,使它能输出正确的结果。

PrivateSubCommand1_Click()

PrintFormat(fun(123),"#.######")

EndSub

PrivateFunctionfun(mAsInteger)Assingle

y=0

Fori=1Tom

t=1/Sqr(i)

y=y+t

Nexti

fun=t‘fun=y

EndFunction

答案:

20.76577

程序功能:

求sum=d+dd+ddd+……+ddd..d(d为1-9的数字)。

例如,3+33+333+3333(此时d=3,n=4)从键盘上输入d的值为3,n的值为4。

程序中有错误。

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

PrivateSubForm_Click()

DimdAsInteger,nAsInteger,iAsInteger

DimsumAsLong

sum=0

d=Val(InputBox("请输入数值d:

"))

n=Val(InputBox("请输入数值n:

"))

Fori=1Ton

tn=tn+d‘tn=tn*10+d

sum=sun+tn‘sum=sum+tn

Nexti

Printsum

EndSub

答案:

3702

程序功能:

求满足以下条件的(a,b,c)的组数:

(1)1/(a^2)+1/(b^2)=1/(c^2);

(2)a>b>c;(3)a+b+c<50。

程序中有错误,改正错误,使程序能输出正确的结果。

PrivateSubCommand1_Click()

Dimc%,b%,a%,s$

s=0

Forc=1To50

Forb=1To50

Fora=1To50

Ifa+b+c<50Or1/(a^2)+1/(b^2)=1/(c^2)Thens=s+1

Nexta,b,c

Prints

EndSub

答案:

1

改为:

Ifa+b+c<50And1/(a^2)+1/(b^2)=1/(c^2)And(a>b)And(b>c)Thens=s+1

程序功能:

计算s=2!

+4!

+6!

+8!

程序中有两行有错误。

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

PrivateSubCommand1_Click()

DimkAsInteger,iAsInteger

DimsAsLong,tAsLong

s=0

i=1

DoWhilei<=3‘I<=4

t=1

k=1

Whilek<=2^I‘k<=2*i

t=t*k

k=k+1

Wend

s=s+t

i=i+1

Wend‘loop

Prints

EndSub

答案:

41066

程序功能:

用公式pi/4=1-1/3+1/5-1/7+…求pi(pi为圆周率)的近似值,直到最后一项的绝对值小于指定的数(参数num)为止。

程序的fun()函数中有一行有错误。

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

PrivateSubCommand1_Click()

PrintFormat(fun(0.0001),"#.####")

EndSub

PrivateFunctionfun(numAsSingle)AsSingle

pi=1:

t=1:

s=1:

n=1

Do

s=-s

n=n+2

t=s*1/n

pi=pi+t

LoopUntilt

pi=pi*4

fun=pi

EndFunction

答案:

3.1418

程序功能:

求水仙花的个数(所谓水仙花数是指一个三位数,该数的各位数字立方之和等于该数本身。

例如153是一个水仙花数,因为1^3+5^3+3^3=153)程序中有错误。

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

OptionExplicit

PrivateSubForm_Click()

DimnumberAsInteger

DimnAsInteger,iAsInteger,jAsInteger,kAsInteger

Forn=100To999

i=n/100‘I=n\100

j=Int(n/10)-i*10‘j=(n-I*100)\10

k=nMod10

If(n=i*i*i+j*j*j+k*k*k)Then

number=numbre+1‘number=number+1

EndIf

Nextn

Printnumber

EndSub

答案:

4

程序功能:

求四位奇数中,所有各位数字之积(积不为0)是60的倍数的数之和。

程序中有错误,改正错误,使程序能输出正确的结果。

PrivateSubCommand1_Click()

Dimx%,a%,b%,c%,d%

Dimnum1&

num1=0

Forx=1001To9999

a=Int(x/1000)

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

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

d=x-a*1000-b*100-c*10

Ifa*b*c*dMod60=0Then

num1=num1+x

EndIf

Nextx

Printnum1

EndSub

答案:

3456254

Forx=1001To9999step2

a=x\1000

b=(x-a*1000)\100

c=(x-a*1000-b*100)\10

d=x-a*1000-b*100-c*10

Ifa*b*c*dMod60=0Anda*b*c*d<>0Then

程序功能:

求200到400间,能被3整除但不能被7整除的数的个数。

程序中有两行有错误。

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

PrivateSubCommand1_Click()

DimcountAsInteger

DimxAsInteger

count=0

x=200

Whilex<=400

IfxMod3=0OrxMod7<>0Then‘and

count=count+1

EndIf

x=x+1

Loop‘wend

Printcount

EndSub

答案:

57

程序功能:

根据以下公式pi/2=1+1/3+1/3*2/5+1/3*2/5*3/7+1/3*2/5*3/7*4/9+…求pi(pi为圆周率)的值。

当最后一项的值小于0.0005时停止计算。

程序的fun()函数中有一行有错误,改正错误,使它能输出正确的结果。

PrivateSubCommand1_Click()

Printfun(0.0005)

EndSub

PrivateFunctionfun(epsAsSingle)AsSingle

s=0:

t=1:

n=1

While(t>eps)

s=s+t

t=t*n/(2*n+1)

n=n+1

Wend

fun=s‘fun=2*s

EndFunction

答案:

3.140578

程序功能:

求数列2/1,3/2,5/3,13/8,……的前10项之和。

程序中有错误。

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

PrivateSubForm_Click()

DimiAsInteger,tAsInteger,nAsInteger

DimaAsInteger,bAsInteger

DimsAsSingle

a=2:

b=1:

n=10

Fori=1Ton

s=s+a/b

t=b‘t=a

a=a+b

a=t‘b=t

Nexti

Prints

EndSub

答案:

16.47991

程序功能:

所谓回文数是从左至右与从右至左读起来都是一样的数字,如:

121是一个回文数。

求100~200之间所有回文数之和。

程序中有错误,改正错误,使程序能输出正确的结果。

PrivateSubCommand1_Click()

Dima%,b%,c%,x%,s%

s=0

Forx=100To200

a=x/100‘a=x\100

b=x/10-a*10‘b=(z-a*100)\10

c=x-a*100-b*10

Ifa=cThens=s+x

Next

Prints

EndSub

答案:

1460

程序功能:

求200到500间,能被13整除但不能被17整除的数的个数。

程序中有两行有错误。

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

PrivateSubCommand1_Click()

DimcountAsInteger

DimxAsInteger

count=0

x=200

Whilex<=500

IfxMod13=0OrxMod17<>0Then‘and

count=count+1

EndIf

x=x+1

Loop‘wend

Printcount

EndSub

答案:

21

程序功能:

计算两个数的最小公倍数。

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

PrivateSubCommand1_Click()

Printfun(248,848)

EndSub

PrivateFunctionfun(u,v)

t=u

DoWhiletModu<>0andtModv<>0

t=t+u

Loop

fun=u

EndFunction

答案:

26288

改为:

DoUntiltModu=0AndtModv=0

t=t+u

Loop

fun=t

程序功能:

猴子第1天摘下若干桃子,当即吃掉一半,又多吃一个,第二天将剩余的部分吃掉一半还多一个;以此类推,到第10天只剩余1个。

问第1天共摘了多少桃子。

程序中有错误。

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

PrivateSubForm_Click()

DimdayAsInteger,sumAsInteger

day=10;sum=1

DoWhileday>0

sum=sum*2

day=day-1

Loop

Printsum

EndSub

答案:

3070

改为:

sum=(sum+1)*2

程序功能:

求100~10000之间每位数字之和等于5的整数的个数。

程序中有错误,改正错误,使程序能输出正确的结果。

PrivateSubCommand1_Click()

Dimk%,i%,i1%,i2%,i3%,i4%

k=0

Fori=100To5000

SelectCasei

Case104To500

i1=Int(i/100)

i2=Int((i-i1*100)/10)

i3=i-i1*100-i2*10

Ifi1+i2+i3=5Thenk=k+1

Case1004To5000

i1=Int(i/1000)

i2=Int((i-i1*1000)/10)

i3=Int((i-i1*1000-i2*100)/10)

i4=i-i1*1000-i2*100-i3*10

Ifi1+i2+i3+i4=5Thenk=k+1

Endcase‘EndSelect

Nexti

Printk

EndSub

答案:

50

改为:

Int全改为Fix答案有误,应为20

程序功能:

求1到400间,同时能被3和7整除的数的个数。

程序中有两行有错误。

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

PrivateSubForm_Click()

DimcountAsInteger

DimxAsInteger

Forx=1To400

ifmod(x,3)=0andmod(x,7)=0then

count=count+1

endif

Nextcount

printcount

EndSub

答案:

19

IfxMod3=0AndxMod7=0Then

Nextx

程序功能:

计算两个数的最小公倍数。

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

PrivateSubCommand1_Click()

Printfun(482,248)

EndSub

PrivateFunctionfun(u,v)

t=u

DoWhiletModu<>0andtModv<>0

t=t+1

Loop

fun=u

EndFunction

答案:

59768

DoUntiltModu=0AndtModv=0

 

Fun=t

程序功能:

一个两位数的正整数,如果将其个位数与十位数字对调所生成的数称为其对调数,如28是82的对调数。

现给定一个两位的正整数,请找到另一个两位的整数,使这两个数之和等于它们的各自的对调数之和。

这样的另一个两位数有多少个。

程序中有错误(从键盘输入的两位数为46)改正错误,使它能输出正确的结果。

PrivateSubForm_Click()

DimxAsInteger,yAsInteger,numberasInteger

DimxfAsInteger,yfAsInteger

Number=0

Do

x=Val(InputBox("请输入一个2位正整数:

"))

LoopWhile(x<9)Or

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

当前位置:首页 > PPT模板 > 节日庆典

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

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