版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章VB开发环境与VB概述习题答案
习题一、选择题
1.B2.A3.A4.B5.D6.B7A.8.A9.C10.B11.C12.D13.A14.D
第二章常用控件与界面设计习题答案
习题一、选择题
1.C2,B3.C4.A5.A6.B7.B8.B9.C10.Cll.B12.B13.D14.A15.B16.B17.B18.C19.C20.D
21.B22.B23.B24.C25.C26.C27.A28.B29.B30.C31.B32.C33.B34.B35.D36.B37.D38.D39JB40.A41.B
42.A43.B44.B45.D46.A47.A48.B49.D50.C51.1)52.D53.C54.D55.D56.C57.A58.C59.C60.B61.B
第三章实验与习题
实验实验3」,算术运算
PrivateSubCommandl_Click()
ConstaAsSingle=3,bAsSingle=2,cAsSingle=-1,dAsSingle=6
DimxAsSingle,yAsSingle,zAsSingle,mAsSingle
x=2:y=l:z=l:m=l
Listl.Clear
Listl.Addltema/(b+c/b)
Listl.Addltem(x+Sqr(xA2+1))A(1/3)
Listl.Addltem((2*y)/(a*x+b*y)*(a*x-b*y))
ListLAddlteml+l/(l+l/m)
ListLAddltem1/2*(d/3)A(2*x)
Listl.AddltemLog(y+Cos(x)A2)
Listl.AddltemAbs((Exp(x)+Sin(x)A3)/(x+y))
Listl.AddltemLog((Exp(x*y)+Abs(l/Tan(z)+Cos(x)A3))/(x+y-z))
Listl.AddltemSin(45*3.1415/180)+(Exp(10)+Log(10))/Sqr(x+y+1)
Listl.AddltemLog(a)/Log(b)
EndSub
'关系运算
PrivateSubCommand2_Click()
Listl.Clear
Listl.AddltemMid(nVisualBasic",1,12)=Right(nLanguageVisualBasic”,12)
ListLAddltem'ABCRG">=MabcdeM
Listl.AddltemInt(134.69)>=CInt(134.9)
ListLAddltem78.9/32.77<=97.5/43.87And-45.4>-4,98
Listl.AddltemStr(32345)=CStr(32.345)
EndSub'逻辑运算
PrivateSubConimand3_Click()
DimxAsInteger,yAsInteger
DimClAsInteger,C2AsInteger,C3AsInteger
Cl=70:C2=80:C3=90
x=9:y=-2
Listl.Clear
Listl.Addltemx+y<10Andx-y>0
Listl.Addltem(x%>=0Andy%>=0)Or(x%<0Andy%<0)
Listl.Addltemx=0Xory=0
ListLAddltemCl+C2+C3>=255OrCl>90AndC2>90AndC3>80
EndSub
实验3_2略实验3_3略实验3_4,零售结算
PrivateSubCommandl_Click()
DinidjAsSingle,siAsSingle,jeAsSingle,nAsInteger
Labell.Caption="金额:'*
dj=InputBox(“请榆入商品的单价:",“单价框")
si=InputBox(“请输入商品的数量:“,”数量框”,1)
je=dj*si
n=MsgBox("共计金•额="&jc,vbOKCancel+vblnformation,"结果")
Ifn=vbOKThenLabell.Caption="金额:"&Str(je)&"元”
EndSub
'产生随机数
PrivateSubCommand2_Click()
DimmAsInteger,nAsInteger
DimxlAsInteger,x2AsInteger,x3AsInteger
m=Val(Textl.Text):n=Text2.Text
Randomize
xl=Int(Rnd*(n-m+1)+m)
x2=Int(Rnd*(n-m+1)+m)
x3=Int(Rnd*(n-m+1)+m)
Label4.Caption="结果为:“&Str(xl)&Str(x2)&Str(x3)
EndSub
,求逆序数
PrivateSubCommand3_Click()
DimaAsInteger,hAsInteger,tAsInteger,nAsInteger
Randomize
a=Int(Rnd*(999-100+1)+100)
h=Mid(CStr(a),l,l)
t=Mid(CStr(a),2,1)
n=Right(CStr(a),1)
LabelS.Caption=a&&Format(n*100+t*10+h,“000”)
EndSub
实验3_5略
习题选择题
LD2.B3.B4.D5.B6.D7.D8.B9.C10.A11.D12.D13.D14.C15.D16.D17B18.A19.D20.B
21.D22.C23.D24.A25.A26.B27.A28.A29.C30.A31.B32.C33.A34.D35.A36.B37.B
38.B39.C40.D41.B42.C43.B44.D45.C46.C47.A48.D49.B50.A51.C52.B53.D54.D55.D
56.DA7.B58.A59.A60.A61.B62.B63.C64.A65.B66.B67.D68.A69.A70.A71.C72.B73.B74.D
75.D76.C77.B78.D79.A80.D81.C82.B83.D84.B85.B86.B87.A88.D89.C
填空题
1、2-32768〜327672、整型长整型单精度双精度3、0False
4、Chr(Int(Rnd*(Asc(“L”)-Asc(uCf))+Asc(“C")))
x>0Andy>0Orx<0Andy<0
c>=''a"Andcv="z"Orc>="A”Andcv='Z'
x>=10Andx<20
x<zXory<z
5、False2TYueFalseTYueTYueTrueTrue
656876554
7、a=lb=l
a=2b=l
a=3b=l
a=4b=l
8、YMod4=0AndYModlOOoOOrYMod400=0
9、HeSaid,“Goodmorning”.10、EDEF
11、(A>0AndAoInt(A))And(B<0AndBoInt(B))
12、a+b+c+d(a+b+c+d)/4sumaver
13、(f-2*h)/2(4*h-f)/2
简答题1、略
2、PrivateSubForni_Ciick()
Constg=9.8
DimV0AsSingle,tAsSingle
DimSAsSingle
V0=InputBox("请输入V0的值:”)
t=InputBox(”请输入时间t的值:*')
S=(l/2)*g*tA2+V0*t
MsgBox("位移量为:n&S)
EndSub
3、PrivateSubCommandl_Click()
Dim1AsSingle,wAsSingle,hAsSingle
DimsAsSingle
1=Textl.Text
w=Textl.Text
h=Text3.Text
s=(1*w+1*h+w*h)*2
[>abell.Caption=s
EndSub
第四章选择分支与循环
实验答案实验4-1方法一:x<=5;y方法二:Isv=2;CaseElse
实验'4-2Shapel.BackColor=vbRed;Inter=15;Inter=Inter-l;Inter
实验4-3b<cb=aa=k
实验4-4方法二:s*n;t/s<10A-5
实验4-5方法一:m>=10A-4;(-l)A(n+l)*ni
实险"4-6x2=x3;<10A-6实验4-7
实验4-8i+2*j+5*k=10;n
实验4-9题目'-*:a)5b)i=16p=12n=5c)i=9p=8n=l
题目二:12010
,
实验4-10N=1;S=N&"*3"&'+l”
实验4-11Len(st);Ch=Lcase(ch);CaseElse;Mid(CharJ,l)&St
实验4-12ii\100;(iMod100)\10
习题一、选择题
l.C2.C3.A4.D5.A6.B7.B8.D9.B
二、填空题
1.Is=0;lTolO;Is>102.93.3;4154.thisisabook;ThisIsABook
5.3;3;356.3207.48.151
9.1;401;10410.123;13;111.(3)
12.202413.101414.BAABCCBAABC
15.XModP=0;X=X+1;Find=False16.abs⑴<10人(-7);s+t
17.Mid(n,14)=Mid(n,2J)AndMid(n,3,D=Mid(n,4,l)S=S+1
18.Mid(n,i,l)>Mid(n,i+l,l)19•”输入nH;N/I=0;PrintI
第五章数组实验
5_1Int(90*Rnd)+10a(i)=a(21-i)a(21-i)=t
5_2k=xMod10i=i+l
5_3s
5_4max<a(i,j)row=Icol=j
5_51ReDimPreserveprime(m)prime(j)
5_6dMod2
5_7ExitFora(j+l)=a(j)
5_8N-IA(j)=A(j+l)
5_9A(i,1)JMin=MaxNotFlag
5_10ch>="0"Andch<=H9MP=P&chReDimPreserveC(k)
5_11PrivateSubForni_Click()
DimxAsInteger,iAsInteger,kAsInteger,jAsInteger
Dima()AsInteger
x=InputBox「输入正整数x=")
i=2
Printx;”的质因子为:";
DoWhilex>=i
IfxModi=0Then
k=k+l
ReDimPreservea(k)
a(k)=i
x=x\i
Else
i=i+l
EndIf
Loop
Forj=1ToUBound(a)
Printa(j);
Nextj
EndSub
习题
一选择题
1.A2.C3.D4.C5.B6.D7.D8.B9.D10.B1LB12.D
二填空题
1.Variant2.RcDimA(N)A(l)IfM<A(I)ThenM=A(I)
3.Int(26*Rnd)+65Chr(t)i+1To10A⑴>A(j)
4.InStr(s,M,H)Right(s,Len(s)-n)s
5.456654321
6.T-l1+1
7.k=6-i-jmax=m8・j=aj=j・3
9.i+1i=i+l10.237
三编程题
1.OptionExplicit
OptionBase1
PrivateSubCommandl_Click()
Dima(10)AsInteger
DimiAsInteger,maxAsInteger
Fori=1To10
a(i)=Int(90*Rnd)+10
Printa(i);
Nexti
i=l
max=0
DoWhilei<=10
Ifa(i)Mod3=0Then
Ifa(i)>maxThen
max=a(i)
EndIf
EndIf
i=i+l
Loop
Ifmax=0Then
Print”无要找的数”
Else
Printmax&”是最大的能被3整除的数”
EndIf
EndSub
2.OptionExplicit
OptionBase1
PrivateSubCommandl_Click()
DimA()AsInteger
DimIAsInteger,mAsInteger
DimKAsInteger
ReDimA(10)
ForI=1To10
A(I)=I
PrintA(I);
NextI
m=InputBox("6?4?m")
K=9+m
ReDimPreserveA(K)
ForI=11ToK
八⑴二人。」。)
NextI
ForI=1To10
A(I)=A(I+m-1)
NextI
ForI=1To10
PrintA(I);
NextI
EndSub
3.OptionExplicit
PrivateSubCommandl_Click()
DimIAsInteger,JAsInteger,KAsInteger
Dima()AsInteger,nAsInteger,pAsInteger
DimsAsString,FlagAsBoolean
P=1
ForK=10To100
1=1
DoWhileI<=10AndNotFlag
J=1
DoWhileJ<=10AndNotFlag
n=IA2+JA2
Ifn=KThen
Flag=True
ReDimPreservea(p)
a(p)=K
P=P+1
s=I&Str(J)&Str(K)
Listl.Addltems
EndIf
J=J+1
Loop
Loop
Flag=False
NextK
EndSub
4.OptionExplicit
PrivateSubCommandl_Click()
DimA(10)AsInteger
DimB(10)AsInteger,SAsString
DimIAsInteger,JAsInteger,XAsInteger
A(l)=Int(90*Rnd)+10
S=A(1)
ForI=2To10
Do
X=Int(90*Rnd)+10
ForJ=lToI-l
IfX=A(J)ThenExitFor
NextJ
IfJ=1Then
A(I)=X
S=S&•'"&A(I)
ExitDo
EndIf
Loop
NextI
Text1.Text=S
B(l)=Int(90*Rnd)+10
S=B(1)
ForI=2To10
Do
X=Int(90*Rnd)+10
ForJ=1ToI-1
IfX=B(J)ThenExitFor
NextJ
IfJ=IThen
B(I)=X
S=S&"
ExitDo
EndIf
Loop
NextI
Text2.Text=S
S=n"
ForI=1To10
ForJ=lTolO
IfA(I)=B(J)Then
S=S&nH&A(I)
EndIf
NextJ
NextI
Text3.Text=S
EndSub
PrivateSubCommand2_C)ick()
Textl.Text=,,H
Text2.Text=,,M
Text3.Text=MH
Textl.SetFocus
EndSub
5.
OptionExplicit
PrivateSubCommandl_Click()
DimIAsInteger,JAsInteger
Dima()AsInteger,KAsInteger,SumAsInteger
K=Val(Textl.Text)
1=1
Do
J=KMod10
ReDimPreservea(I)
a⑴=J
Sum=Sum+J
K=K\10
1=1+1
LoopUntilK=0
Text2.Text=Sum
EndSub
6.
OptionExplicit
PrivateSubCommandl_Click()
Dima(100,2)AsInteger,KAsInteger
DimIAsInteger,JAsInteger
DimMAsInteger,NAsInteger
K=1
ForI=1To99
ForJ=lTo99
IfI>JThen
M=I-J
N=I+J
IfSqr(M)=Int(Sqr(M))AndSqr(N)=Int(Sqr(N))Then
ListLAddltemI&Hn&J
a(K,l)=I
a(K,2)=J
K=K+1
EndIf
EndIf
NextJ
NextI
EndSub
第六章参考答案
实验实验6・1
1、ExitDo2、Y(X)3、X>=-1
实验6・2【题目二】42、26、8
实验6-31、si,key2、sAsString3、ch>="a"Andch<="zM
4、Mid(s,i,1)=Chr(Asc(ch)+k-26)
思考:解密函数
PrivateSubdec(sAsString,kAsInteger)'解密过程
DimiAsInteger,chAsString*1
Fori=1ToLen(s)
ch=Mid(s,i,1)
If"A"<=chAndch<=HZHThen
IfAsc(ch)-k<Asc("A")Then
Mid(s,i,l)=Chr(Asc(ch)-k+26)'小于A的ASCII值则加上26
Else
Mid(s,i,1)=Chr(Asc(ch)-k)
EndIf
Elselfch>=*,aMAndch<=HznThen,多分支格式,ch介于小写a与z之间
IfAsc(ch)-k<Asc(”a”)Then
Mid®i,l)=Chr(Asc(ch)-k+26)**b于a的ASCII值则加上26
Else
Mid(s,i,l)=Chr(Asc(ch)-k)
EndIf
EndIf
Nexti
EndSub
实验6-4
1、b()AsInteger,stAsString
2、L<=R
3、ReDimPreserveb(R)
4、L=L+1
辍转相除法求最大公约数函数
PrivateFunctionGcd(ByValpAsInteger,ByVaiqAsInteger)AsInteger
DimrAsInteger
r=pModq
DoWhiler<>0
p=q
q=r
r=pModq
Loop
Ged=q
EndFunction
实验6・5【题目-1age=age(n-1)-3
【题目二】1、(Left+Right)/22、Left=Mid+1
实验6/1、3-12.743、3-14、70
实脸6-7【题目一】1、Sqr(2+1)2、Abs(a-1)<eps
【题目二】1、DimXAsInteger2、HS(H&I&”4”&SOO
3、(j*i+l)
习题参考答案
-选择题.
l.B2.D3.C4.C5.C6.B7.B8.B9.A10.Dll.D12.A13.A14.A15.B16.B17.D
18.C19.D20.B21.C22.C23.B24.A25.D26.D27.A28.B
二、填空
1(1)形式、(2)实在
2(1)按地址传递、(2)ByVai
3(1)窗体模块、(2)标准模块、(3)类模块
4(1)65(1)420101
6(1)626、(2)-298
7(1)106、(2)5-5
8(1)65、(2)87
9(1)11,(2)7
10(1)Fun(i)、(2)Fun=p
11(1)4、(2)20.7
12(1)29、(2)28.7
13(1)k=j、(2)b()AsInteger
14(1)gee、(2)ge、(3)3
15(1)pl=TrueAndp2=True或plAndp2、(2)pl=p2-2、
(3)Isp=I¥ue、(4)inModi=0
16(1)Convert(st)、(2)Len(s)、
(3)"A"To"F"、(4)k=k+p*h
17(1)isualVi.(2)sualVisu
18(1)s+a、(2)n+1、
(3)xAsSingle,nAsInteger、(4)p*(x+i)/((2*i-1)*i*x)
三、改错题
1、OptionBase1
PrivateSubCommandl_Click()
DimA()AsInteger,IAsInteger,JAsInteger,LogicAsBoolean
DimKAsInteger
ReDimA(l)
A(l)=50
--------------------K=1
ForI=51To149
K=1'位置错
Logic=False
CallSubl(A,I,Logic)
IfLogicThen
K=K+1
ReDimA(K)ReDimPreserveA(K)
A(K)=I
EndIf
NextI
ForI=1ToUBound(A)
Textl=Textl&Str$(A(I))
IfIMod5=0ThenTextl=Textl&vbCrLf
NextI
EndSub
PrivateSubSubl(A()AsInteger,NAsInteger,FAsBoolean)
DimIAsInteger,JAsInteger,UbAsInteger
Ub=UBound(A)
ForI=1ToUb
ForJ=2ToA(I)
IfA(I)ModJ=0AndNModJ=0Then
ExitFor'ExitSub
EndIf
NextJ
F=l¥ue
NextI
EndSub
2、
OptionExplicit
OptionBase1
PrivateSubCommandl_Click()
DimIAsInteger,FigAsBoolean,SIAsInteger,S2AsInteger
DimJAsInteger,KAsInteger,P()AsInteger
ReDimP(l)
P(D=2
ForI=3To150Step2
ForJ=2ToSqr(I)
IfIModJ=0ThenExitFor
NextJ
IfJ>Sqr(I)Then
ReDimPreserveP(UBound(P)+1)
P(UBound(P)+1)=1'P(UBound(P))=I
EndIf
NextI
ForI=80To125
Iffun(I,P,S1,S2)Then'Iffun(I,P,SI,S2)
Textl=Textl&Str$(I)&M="&Str(Sl)&&Str$(S2)&vbCrLf
EndIf
NextI
EndSub
PrivateFunctionfun(NAsInteger,P()AsInteger,SIAsInteger,S2AsInteger)AsBoolean
DimIAsInteger,JAsInteger
ForI=1ToUBound(P)
ForJ=lToUBound(P)-l
IfN=P(I)*P(J)Then
SI=P(I)
S2=P(J)
Tun=True
ExitFunction
fun=l¥ue,位置错
EndIf
NextJ
NextI
EndFunction
3、
OptionExplicit
PrivateSubGet_Chess(Chess()AsInteger,idxAsInteger,OverAsInteger)1ByVaiidxAsInteger
DimUbAsInteger,CounterAsInteger,KAsInteger
Ub=UBound(Chess)
Chess(idx)=0
Counter=1
K=0,位置错
DoUntilCounter=Ub-1
DoUntilK=2
idx=idx+1
Ifidx>UbThenidx=1
K=K+Chess(idx)
Loop
Chess(idx)=0
Counter=Counter+1
Loop
ForOver=1ToUb
IfChess(Over)<>0ThenExitFor
NextOver
EndSub
PrivateSubCommandl_Click()
DimChess(32)AsInteger,IAsInteger,JAsInteger
DimKAsInteger,idxAsInteger
ForI=1To32
ForJ=1To32
Chess(J)=1
NextJ
CallGet_Chess(Chess,I,K)
IfK=23Then
Textl="从第"&St帚I)&”号棋子开始取”
ExitFor
EndIf
NextI
EndSub
5、OptionExplicit
PrivateSubForm_Click()
DimSAsString,FigAsBoolean
Do
S=InputBox("输入一个自然数”)
IfS=OrNotIsNumeric(S)Then
MsgBox”请重新输入”,48+vbOKOnly
Else
ExitDo
EndIf
Loop
judge(S,Fig)'Calljudge(S,Fig)或judgeS,Fig
IfFigThen
Prints;”是回文数”
Else
PrintS;”不是回文数”
EndIf
EndSub
PrivateSubjudge(ChAsString,FAsBoolean)
DimLAsInteger,IAsInteger
L=Len(Ch)
F=TYue*F=False
ForI=1ToL
IfMid$(Ch,1,1)<>Mid$(Ch,L+l-1,1)ThenExitSub
NextI
F=False'F=TYue
EndSub
四、编程题
1、编程验证任一大于2的偶数可以表示成两个素数之和。
PrivateFunctionPrime(aAsInteger)AsBoolean
DimiAsInteger
Fori=2ToSqr(a)
IfaModi=0ThenExitFunction
Nexti
Prime=True
EndFunction
,方法一
PrivateSubCommandl_Click()
DimmAsInteger,iAsInteger
m=InputBox("请输入一个大于2的偶数”)
Ifm<=2OrmMod2<>0ThenMsgBox”请输入大于2的偶数":ExitSub
IfPrime(2)AndPrime(m-2)Then
Printm&M=2+"&m-2
Else
Do
i=i+1
IfPrime(2*i+1)AndPrime(m-(2*i+1))Then
Printm&"=H&2*i+1&&m-(2*i+l)
ExitDo
EndIf
LoopWhile2*i+l<m-(2*i+l)
EndIf
EndSub
'方法二
PrivateSubConimand2_Click()
DimmAsInteger,iAsInteger,p()AsInteger;nAsInteger
DimflgAsBoolean
m=InputBox(”请输入大于2的偶数”)
Ifm<=2OrmMod2<>0ThenMsgBox”请输入大于2的偶数“:ExitSub
ReDimp(l)
p⑴=2
n=1
Fori=3Tom-2Step2
IfPrime(i)Then
n=n+1
ReDimPreservep(n)
p(n)=i
EndIf
Nexti
Fori=1Ton
Forj=1Ton
Ifp(i)+p(j)=mThen
Printm&&p(i)&&p(j)
fig=True
ExitFor
EndIf
Nextj
Iffig=TrueThenExitFor
Nexti
EndSub
2、求组合数(n>=m),程序中必须包含一个求阶乘的通用过程。
PrivateFunctionFact(aAsInteger)AsLong
Ifa=0Ora=1Then
Fact=1
Else
Fact=a*Fact(a-1)
EndIf
EndFunction
PrivateSubCommandl_Click()
DimnAsInteger,mAsInteger,resultAsSingle
n=Val(Textl.Text)
m=Val(Text2.Text)
Ifn>=mThen
result=Fact(n)/Fact(m)/Fact(n-m)
Text3.Text=result
Else
MsgBox”要求n>=m,请重新输入“
Textl.Text=HH
Text2.Text=,M,
Textl.SetFocus
EndIf
EndSub
PrivateSubCommand2_Click()
Textl.Text=HH
Text2.Text=HH
Text3.Text=,,H
Textl.SetFocus
EndSub
3、编写一个查找10到300之间所有同构数的程序,程序中必须包含一个判定某数是否是同构数的Function
过程Istgs,若一个数出现在自己平方数的右端,则此数为同构数。如5在52=25的右端,25在252=625
的右端,故5和25为同构数。
PrivateFunctionIstgs(nAsInteger)AsBoolean
DimsAsString,LAsInteger
L=Len(CStr(n))
s=CStr(nA2)
IfRight(s,L)=nThenIstgs=True
EndFunction
PrivateSubCommandl_Click()
DimnAsInteger
Forn=10lb300
IfIstgs(n)ThenListl.Addltemn&,,A2n&&nA2
Nextn
EndSub
PrivateSubCommand2_Click()
End
EndSub
4、编写程序,随机生成一个由三位正整数组成的3行4列的数组,求数组每一行的最大元素及其所在列
号,程序中必须包含一个求一行中最大元素及其所在列号的通用过程.(若一行中有多个最大元素则取其
中之一即可)
PrivateSubCmdDisp_Click()
Dima(3,4)AsInteger,iAsInteger,jAsInteger
DinimAsInteger,mjAsInteger
Randomize
Fori=1To3
Forj=lTo4
a(i,j)=Int(900*Rnd+100)
Printa(i,j);
Nextj
Nexti
Fori=1To3
m=0
Callmax(a,i,m,mj)
Print"第“&i&”行最大值为“&m&”海第“&mj&”列“
Nexti
EndSub
PrivateSubmax(a()AsInteger,iAsInteger;mAsInteger,maxjAsInteger)
DimjAsInteger
m=a(i,1):maxj=1
Forj=2ToUBound(a,2)
Ifa(i,j)>mThen
m=a(i,j)
maxj=j
EndIf
Nextj
EndSub
PrivateSubCmdEnd_Click()
End
EndSub
5、一个整数N的因子和(不包括N)等于N,则N被成为完全数.例如,28=1+2+4+7+14,28是完全数。
编写程序验证:介于10到10000之间的完全数,把它们的各位数字加起来得到一个数,再把这个数的各
位数字加起来又得到一个数,一直做下去,直到得到一个一位数,这个数是1,程序中必须包含一个判定
某数是否是完全数的过程.例如,28的各位数字加起来得到一个数10,再把10这个数的各位数字加起来
又得到一个数是1.
PrivateFunctionIsWqs(nAsInteger)AsBoolean
DimsumAsInteger,iAsInteger
Fori=1Ton/2
IfnModi=0Thensum=sum+i
Nexti
Ifsum=nThenIsWqs=True
EndFunction
PrivateSubCommandl_Click()
DimnAsInteger
DimsumAsInteger
Forn=10To10000
IfIsVVqs(n)Then
t=n
Printt;n=>H;
Do
sum=0
Fori=1ToLen(t)-1
sum=sum+Mid(CStr(t),i,1)
PrintMid(CStr(t),i,1);“+”;
Nexti
sum=sum+Mid(CStr(t),i,1)
Ifsum<>1Then
PrintMid(CStr(t),i,1);”=";sum;H,H;sum;"=>n;
Else
PrintMid(CStr(t),i,1);n=";sum;
EndIf
t=sum
LoopUntilsum=1
EndIf
Nextn
EndSub
PrivateSubCommand2_Click()
End
EndSub
6、找出500以内的超完全数,程序中必须包含一个判定某数是否是超完全数的过程.设符号G(N)表示
N的所有因子的和(包括N在内),若①(①(N))=2N,则N就是一个超完全数。例如,16的因子和为
1+2+4+8+16=31,而31的因子为1+31=32,32=2*16,故16是一个超完全数。
PrivateFunctionJudgefnAsInteger)AsBoolean
DimsumAsInteger
sum=yz(n)
Ifyz(sum)=2*nThenJudge=True
EndFunction
PrivateFunctionyz(nAsInteger)AsInteger
DimiAsInteger
Fori=1Ton
IfnModi=0Thenyz=yz+i
Nexti
EndFunction
PrivateSubCommandl_Click()
DimnAsInteger
Forn=1To500
IfJudge(n)ThenPrintn
Nextn
EndSub
7、编写程序,通过调用通用过程找出100以内的所有不可表示成两个平方数之和的数.
PrivateFunctionpfh(nAsInteger)AsBoolean
DimiAsInteger,tAsSingle
Fori=1ToInt(Sqr(n))
t=n-iA2
IfSqr(t)=Int(Sqr(t))Thenpfh=TYue
Nexti
EndFunction
PrivateSubCommandl_Click()
DininAsInteger,tAsInteger
Forn=1To100
Ifpfh(n)=FalseThen
t=t+1
Printn;
IftMod10=0ThenPrint
EndIf
Nextn
EndSub
8、编写程序,通过调用通用过程找出30以内所有的无平方因子数。若一个数不能被大于1的数的平方
整除,则该数就是一个无平方因子数。
PrivateSubCommandl_Click()
DimnAsInteger,jAsInteger,figAsBoolean
Forn=2To30
fig=False
Forj=2Ton
Ifpfs(j)AndnModj=0Then
fig=True
ExitFor
EndIf
Nextj
Iffig=FalseThenPrintn;
Nextn
EndSub
PrivateFunctionpfs(nAsInteger)AsBoolean
IfSqr(n)=Int(Sqr(n))Thenpfs=True
EndFunction
9、编写程序,通过调用通用过程验证下列命题:任意一个正整数和其反序数相加,得到一个新的正整数,
再对这个新整数重复上述步骤,最终一定可以得到一个回文数(例如,正整数351,其反序数为153,
351+153=504,504+405=909,909是回文数).
,求反序数
PrivateFunctionfxs(nAsLong)AsLong
DimiAsInteger,sAsString
Fori=1ToLen(CStr(n))
s=Mid(CStr(n),i,l)&s
Nexti
fxs=s
EnclFunction
,判断某数是否为回文数
PrivateFunctionHws(nAsLong)AsBoolean
DimiAsInteger,$AsString,LAsInteger
s=CStr(n):L=Len(s)
Fori=1ToLen(s)/2
IfMid®i,1)<>Mid(s,L+l-i,1)ThenExitFunction
Nexti
Hws=True
EndFunction
PrivateSubCommandl_Click()
DimxAsLong,tAsLong
x=lnputBox(”请输■入一个正整数:*')
t=x
DoWhileHws(t)=False
Printt;•'+•';fxs(t);”=";t+fxs(t)
t=t+fxs(t)
Loop
EndSub
10、找出1000以内所有的奇妙平方数,程序中必须包含一个判定某事是否是奇妙平方数的过称。所谓奇
妙平方数,是指此数的平方与它的逆序数的平方互为逆序数。例如,122=144,212=441,12与21互逆,
144与441互逆,12就是奇妙平方数。
求反序数
PrivateFunctionfxs(nAsLong)AsLong
DimiAsInteger,sAsString
Fori=1ToLen(CStr(n))
s=Mid(CStr(n),i,1)&s
Nexti
fxs=s
EndFunction
PrivateSubCommand1_Click()
DimnAsLong,tAsLong
Forn=1To999
t=fxs(n)
IftA2=fxs(nA2)AndnMod10<>0Andn<tThen
ListLAddltemn&""&t
List2.AddItemn&,,A2n&&nA2&MH&t&,,A2"&"=H&tA2
EndIf
Nextn
EndSub
11.编写程序,查找介于300~2000之间的所有只有两个数字相同的完全平方数,程序中必须包含一个判定
某数是否是只有两个数字相同的完全平方数的过程.所谓完全平方数是指其平方根为整数的数.例如676、
900、1521等都是介于300~2000之间符合条件的数.
PrivateFunctionJudge(nAsInteger)AsBoolean
DiniiAsInteger,LAsInteger,a(9)AsInteger,tAsInteger
IfSqr(n)=Int(Sqr(n))Then
L=Len(CStr(n))
Fori=1ToL
t=Mid(CStr(n),i,1)
a(t)=1
Nexti
Fori=0To9
Sum=Sum+a(i)
Nexti
IfSum=L-1ThenJudge=TYue
EndIf
EndFunction
PrivateSubCommandl_Click()
DimaAsInteger
Fora=300To2000
IfJudge(a)ThenListl.Addltema
Nexta
EndSub
12、编写程序,通机生成8个不相等的三位正整数,将他们显示在列表框1中,并在列表框2中显示其
中的奇偶间隔数,程序中必须包含一个判定某数是否是就间隔数的过程。所谓奇偶间隔数是指:该数据的
各位与百位为奇数,十位为偶数。例如14
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 消防设施电伴热施工合同
- 建筑拆除施工总价承包合同
- 互联网公司CTO招聘合同样本
- 物流运输木门更换工程合同
- 汽车维修项目审计要点
- 建筑隔震工程倒板施工协议
- 媒体行业薪酬分配改革管理办法
- 网络文学改编剧招聘合同
- 咨询公司公关部聘用合同
- 建筑检测探伤施工合同
- 2025年考研政治政治理论时政热点知识测试题库及答案(共三套)
- 古希腊文明智慧树知到期末考试答案章节答案2024年复旦大学
- 2024年山东济南地铁招聘笔试参考题库含答案解析
- 幼教培训课件:《幼儿园班级区域创设》
- 康复评定技术说课课程汇报
- 医疗护理品管圈QCC成果汇报之提高住院病人健康宣教的知晓率(问题解决型)
- PRTV方案(完整范本)
- 知识产权贯标工作总结
- 窗边的小豆豆.ppt
- 水的电离和溶液的酸碱性pH的应用与计算
- 铸造废砂循环再生利用项目可行性研究报告模板
评论
0/150
提交评论