vb課后習題答案(紅色參考書)_第1頁
vb課后習題答案(紅色參考書)_第2頁
vb課后習題答案(紅色參考書)_第3頁
vb課后習題答案(紅色參考書)_第4頁
vb課后習題答案(紅色參考書)_第5頁
已閱讀5頁,還剩43頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第一章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

Print

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

Print

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

Print

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

Print

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

Print

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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論