源代码及答案.docx
- 文档编号:12475356
- 上传时间:2023-04-19
- 格式:DOCX
- 页数:159
- 大小:53.40KB
源代码及答案.docx
《源代码及答案.docx》由会员分享,可在线阅读,更多相关《源代码及答案.docx(159页珍藏版)》请在冰豆网上搜索。
源代码及答案
问题、源代码及答案
问题、源代码及答案
问题、源代码及答案
问题、源代码及答案
程序功能:
求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
Ifi
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文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 源代码 答案