版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章VB開發(fā)環(huán)境與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(“請輸入商品的數(shù)量:“,”數(shù)量框”,1)
je=dj*si
n=MsgBox("共計金?額="&jc,vbOKCancel+vblnformation,"結果")
Ifn=vbOKThenLabell.Caption="金額:"&Str(je)&"元”
EndSub
'產生隨機數(shù)
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
,求逆序數(shù)
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
第四章選擇分支與循環(huán)
實驗答案實驗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
第五章數(shù)組實驗
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「輸入正整數(shù)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”無要找的數(shù)”
Else
Printmax&”是最大的能被3整除的數(shù)”
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)
思考:解密函數(shù)
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
輟轉相除法求最大公約數(shù)函數(shù)
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("輸入一個自然數(shù)”)
IfS=OrNotIsNumeric(S)Then
MsgBox”請重新輸入”,48+vbOKOnly
Else
ExitDo
EndIf
Loop
judge(S,Fig)'Calljudge(S,Fig)或judgeS,Fig
IfFigThen
Prints;”是回文數(shù)”
Else
PrintS;”不是回文數(shù)”
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的偶數(shù)可以表示成兩個素數(shù)之和。
PrivateFunctionPrime(aAsInteger)AsBoolean
DimiAsInteger
Fori=2ToSqr(a)
IfaModi=0ThenExitFunction
Nexti
Prime=True
EndFunction
,方法一
PrivateSubCommandl_Click()
DimmAsInteger,iAsInteger
m=InputBox("請輸入一個大于2的偶數(shù)”)
Ifm<=2OrmMod2<>0ThenMsgBox”請輸入大于2的偶數(shù)":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的偶數(shù)”)
Ifm<=2OrmMod2<>0ThenMsgBox”請輸入大于2的偶數(shù)“: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、求組合數(shù)(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之間所有同構數(shù)的程序,程序中必須包含一個判定某數(shù)是否是同構數(shù)的Function
過程Istgs,若一個數(shù)出現(xiàn)在自己平方數(shù)的右端,則此數(shù)為同構數(shù)。如5在52=25的右端,25在252=625
的右端,故5和25為同構數(shù)。
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、編寫程序,隨機生成一個由三位正整數(shù)組成的3行4列的數(shù)組,求數(shù)組每一行的最大元素及其所在列
號,程序中必須包含一個求一行中最大元素及其所在列號的通用過程.(若一行中有多個最大元素則取其
中之一即可)
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、一個整數(shù)N的因子和(不包括N)等于N,則N被成為完全數(shù).例如,28=1+2+4+7+14,28是完全數(shù)。
編寫程序驗證:介于10到10000之間的完全數(shù),把它們的各位數(shù)字加起來得到一個數(shù),再把這個數(shù)的各
位數(shù)字加起來又得到一個數(shù),一直做下去,直到得到一個一位數(shù),這個數(shù)是1,程序中必須包含一個判定
某數(shù)是否是完全數(shù)的過程.例如,28的各位數(shù)字加起來得到一個數(shù)10,再把10這個數(shù)的各位數(shù)字加起來
又得到一個數(shù)是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以內的超完全數(shù),程序中必須包含一個判定某數(shù)是否是超完全數(shù)的過程.設符號G(N)表示
N的所有因子的和(包括N在內),若①(①(N))=2N,則N就是一個超完全數(shù)。例如,16的因子和為
1+2+4+8+16=31,而31的因子為1+31=32,32=2*16,故16是一個超完全數(shù)。
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以內的所有不可表示成兩個平方數(shù)之和的數(shù).
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以內所有的無平方因子數(shù)。若一個數(shù)不能被大于1的數(shù)的平方
整除,則該數(shù)就是一個無平方因子數(shù)。
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、編寫程序,通過調用通用過程驗證下列命題:任意一個正整數(shù)和其反序數(shù)相加,得到一個新的正整數(shù),
再對這個新整數(shù)重復上述步驟,最終一定可以得到一個回文數(shù)(例如,正整數(shù)351,其反序數(shù)為153,
351+153=504,504+405=909,909是回文數(shù)).
,求反序數(shù)
PrivateFunctionfxs(nAsLong)AsLong
DimiAsInteger,sAsString
Fori=1ToLen(CStr(n))
s=Mid(CStr(n),i,l)&s
Nexti
fxs=s
EnclFunction
,判斷某數(shù)是否為回文數(shù)
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(”請輸■入一個正整數(shù):*')
t=x
DoWhileHws(t)=False
Printt;?'+?';fxs(t);”=";t+fxs(t)
t=t+fxs(t)
Loop
EndSub
10、找出1000以內所有的奇妙平方數(shù),程序中必須包含一個判定某事是否是奇妙平方數(shù)的過稱。所謂奇
妙平方數(shù),是指此數(shù)的平方與它的逆序數(shù)的平方互為逆序數(shù)。例如,122=144,212=441,12與21互逆,
144與441互逆,12就是奇妙平方數(shù)。
求反序數(shù)
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之間的所有只有兩個數(shù)字相同的完全平方數(shù),程序中必須包含一個判定
某數(shù)是否是只有兩個數(shù)字相同的完全平方數(shù)的過程.所謂完全平方數(shù)是指其平方根為整數(shù)的數(shù).例如676、
900、1521等都是介于300~2000之間符合條件的數(shù).
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個不相等的三位正整數(shù),將他們顯示在列表框1中,并在列表框2中顯示其
中的奇偶間隔數(shù),程序中必須包含一個判定某數(shù)是否是就間隔數(shù)的過程。所謂奇偶間隔數(shù)是指:該數(shù)據的
各位與百位為奇數(shù),十位為偶數(shù)。例如14
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年學校語文教師工作計劃例文(三篇)
- 2024年小學安全教育計劃范例(二篇)
- 2024年土建工程師崗位的工作職責說明例文(七篇)
- 2024年學校公務用車管理制度模版(三篇)
- 2024年小學教研活動總結標準范本(二篇)
- 2024年小學圖書借閱制度模版(五篇)
- 2024年固定資產借款合同范本(二篇)
- 2024年單位年終工作總結(四篇)
- 2024年安全生產工作總結簡單版(四篇)
- 2024年工程預算員工作職責(四篇)
- 投資建廠房收租合同模板
- 西安熱工研究院有限公司招聘筆試題庫2024
- 生理學(醫(yī)類專業(yè))學習通超星期末考試答案章節(jié)答案2024年
- 2024年高三數(shù)學復習備考策略講座
- 2024延遲退休政策詳解
- 高職計算機專業(yè)《數(shù)據庫原理與應用》說課稿
- 2024至2030年中國新型肥料行業(yè)發(fā)展現(xiàn)狀分析及市場分析預測報告
- 8 網絡新世界 第三課時(教學設計)統(tǒng)編版道德與法治四年級上冊
- 2024-2030年全球與中國金屬線柵偏振片行業(yè)市場現(xiàn)狀調研分析及發(fā)展前景報告
- 六年級語文總復習課《修改病句》修改課件市公開課一等獎省賽課獲獎課件
- 2024年山東濟南地鐵招聘筆試參考題庫含答案解析
評論
0/150
提交評論