VB實(shí)驗(yàn)習(xí)題答案_第1頁
VB實(shí)驗(yàn)習(xí)題答案_第2頁
VB實(shí)驗(yàn)習(xí)題答案_第3頁
VB實(shí)驗(yàn)習(xí)題答案_第4頁
VB實(shí)驗(yàn)習(xí)題答案_第5頁
已閱讀5頁,還剩119頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

VB開發(fā)環(huán)境與VB概述習(xí)題答案

習(xí)題

一、選擇題

1.2.3.4.5.6.7.8.9.10.

BAABDBAACB

11.12.13.14.

CDAD

常用控件與界面設(shè)計(jì)習(xí)題答案

習(xí)題

、選擇題

1.2.3.4.5.6.7.8.9.10.

CBCAABBBCC

11.12.13.14.15.16.17.18.19.20.

BBDABBBCCD

21.22.23.24.25.26.27.28.29.30.

BBBCCCABBC

31.32.33.34.35.36.37.38.39.40.

BCBBDBDDBA

41.42.43.44.45.46.47.48.49.50.

BABBDAABDC

51.52.53.54.55.56.57.58.59.60.

DDCDDCACCB

61.

B

第三章實(shí)驗(yàn)與習(xí)題

實(shí)驗(yàn)

實(shí)驗(yàn)3_1

,算術(shù)運(yùn)算

PrivateSubCommandl_Click()

ConstaAsSingle=3,bAsSingle=2,cAsSingle=-1,d

AsSingle=6

DimxAsSingle,yAsSingle,zAsSingle,mAsSingle

x=2:y=1:z=1:m=1

ListLClear

ListLAddltema/(b+c/b)

ListLAdditem(x+Sqr(xA2+1))A(1/3)

ListLAddltem((2*y)/(a*x+b*y)*(a*x-b*y))

Listl.Addlteml+l/(l+l/m)

ListLAddltem1/2*(d/3)A(2*x)

Listl.AdditemLog(y+Cos(x)A2)

ListLAddltemAbs((Exp(x)+Sin(x)A3)/(x+y))

Listl.AddltemLog((Exp(x*y)+Abs(l/Tan(z)+Cos(x)

人3))/(x+y-z))

ListLAddltemSin(45*3.1415/180)+(Exp(10)+

Log(10))/Sqr(x+y+1)

Listl.AddltemLog(a)/Log(b)

EndSub

,關(guān)系運(yùn)算

PrivateSubCommand2_Click()

ListLClear

Listl.AddltemMid(HVisualBasic11,1,12)=

Right("LanguageVisualBasic”,12)

Listl.AddltemHABCRGH>=nabcdeH

Listl.AddItemInt(134.69)>=CInt(134.9)

ListLAddltem78.9/32.77<=97.5/43.87And-45.4>

-4.98

ListLAddltemStr(32.345)=CStr(32.345)

EndSub

,邏輯運(yùn)算

PrivateSubCommand3_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%<0And

y%<0)

Listl.Addltemx=0Xory=0

Listl.AddltemCl+C2+C3>=255OrCl>90And

C2>90AndC3>80

EndSub

實(shí)驗(yàn)3_2

實(shí)驗(yàn)3_3

實(shí)驗(yàn)3_4

,零售結(jié)算

PrivateSubCommandl_Click()

DimdjAsSingle,siAsSingle,jeAsSingle,nAsInteger

Labell.Caption="金額:”

dj=InputBox("請(qǐng)輸入商品的單價(jià):“,“單價(jià)框”)

si=InputBox("請(qǐng)輸入商品的數(shù)量:“,“數(shù)量框”,1)

je=dj*si

n=MsgBox(n共計(jì)金額="&je,vbOKCancel+

vblnformation,"結(jié)果”)

Ifn=vbOKThenLabell.Caption="金額:”&Str(je)

&”元”

EndSub

,產(chǎn)生隨機(jī)數(shù)

PrivateSubCommand2_Click()

DimmAsInteger,nAsInteger

DimxlAsInteger,x2AsInteger,x3AsInteger

m=Val(Textl.Text):n=Textl.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="結(jié)果為:"&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),1,1)

t=Mid(CStr(a),2,1)

n=Right(CStr(a),1)

Label5.Caption=a&&Format(n*100+t*10

+h,”000”)

EndSub

實(shí)驗(yàn)3_5

習(xí)題

選擇題

1.2.3.4.5.6.7.8.9.10.

DBBDBDDBCA

11.12.13.14.15.16.17.18.19.20.

DDDCDDBADB

21.22.23.24.25.26.27.28.29.30.

DCDAABAACA

31.32.33.34.35.36.37.38.39.40.

BCADABBBCD

41.42.43.44.45.46.47.48.49.50.

BCBDCCADBA

51.52.53.54.55.56.57.58.59.60.

CBDDDABAAA

61.62.63.64.65.66.67.68.69.70.

BBCABBDAAA

71.72.73.74.75.76.77.78.79.80.

CBBDDCBDAD

81.82.83.84.85.86.87.88.89.

CBDBBBADC

填空題

1、2-32768?32767

2、整型長(zhǎng)整型單精度雙精度

3、0False

4、Chr(Int(Rnd*(Asc(“L”)-Asc("C”))+Asc(“C”)))

x>0Andy>0Orx<0Andy<0

c>="a"Andcv="z"Orc>="A"Andcv="Z"

x>=10Andx<20

x<zXory<z

5、False

2

True

False

True

True

True

True

6、188

200100

68.56

876554

7、a=lb=l

a=2b=l

a=3b=l

a=4b=l

8、YMod4=0AndYMod100<>0OrYMod400=0

9、HeSaid,“Goodmorning^^.

10、EDEF

11>(A>0AndA<>Int(A))And(B<0AndB<>Int(B))

12、a+b+c+d

(a+b+c+d)/4

sum

aver

13、(f-2*h)/2

(4*h-f)/2

簡(jiǎn)答題

1、略

2、PrivateSubForm_Click()

Constg=9.8

DimVOAsSingle,tAsSingle

DimSAsSingle

VO=InputBox(”請(qǐng)輸入VO的值:”)

t=InputBox("請(qǐng)輸入時(shí)間t的值:”)

S=(l/2)*g*tA2+V0*t

MsgBox("位移量為:H&S)

EndSub

3、PrivateSubCommandl_Click()

Dim1AsSingle,wAsSingle,hAsSingle

DimsAsSingle

1=Textl.Text

w=Textl.Text

h=Text3.Text

s=(l*w+l*h+w*h)*2

Labell.Caption=s

EndSub

第四章選擇分支與循環(huán)

實(shí)驗(yàn)答案

實(shí)驗(yàn)4-1

方法一:x<=5;y

方法二:Is<=2;CaseElse

實(shí)驗(yàn)4-2

Shapel.BackColor=vbRed;

Inter=15;

Inter=Inter-l;

Inter;

實(shí)驗(yàn)4-3

b<c

b=a

a=k

實(shí)驗(yàn)4-4

方法二:s*n;t/s<10A-5

實(shí)驗(yàn)4-5

方法一:m>=l0A-4;(-l)A(n+l)*m

實(shí)驗(yàn)4-6

x2=x3;<10A-6

實(shí)驗(yàn)4-7

實(shí)驗(yàn)4-8

i+2*j+5*k=10;n

實(shí)驗(yàn)4-9

題目一:a)5

b)i=16p=12n=5

c)i=9p=8n=l

題目二:12010

實(shí)驗(yàn)4-10

N=1;S=N&"*3''&”+l"

實(shí)驗(yàn)4-11

Len(st);Ch=Lcase(ch);CaseElse;Mid(Char,I,l)&St

實(shí)驗(yàn)4-12

i\100;(iMod100)\10

習(xí)題

一、選擇題

1.2.3.4.5.6.7.8.9.

cCADABBDB

二、填空題

1.Is=0;1To10;Is>10

2.9

3.3;415

4.thisisabook;ThisIsABook

5.3;3;35

6.320

7.4

8.151

9.1;401;104

10.123;13;1

11.(3)

12.2024

13.1014

14.BAABCCBAABC

15.XModP=0;X=X+1;Find=FaIse

16.abs(t)<10A(-7);s+t

17.Mid(n,l,l)=Mid(n,2,l)AndMid(n,3,l)=Mid(n,4,l)

S=S+1

18.Mid(n,i,l)>Mid(n,i+l,l)

19.“輸入n”;N/I=0;PrintI

第五章數(shù)組

實(shí)驗(yàn)

5_1

Int(90*Rnd)+10

a(i)=a(21-i)

a(21-i)=t

5_2

k=xMod10

i=i+1

53

5_4

max<a(i,j)

row=I

col=j

5_5

1

ReDimPreserveprime(m)

prime(j)

5_6

dMod2

5_7

ExitFor

a(j+1)=a(j)

5_8

N-I

A(j)=A(j+l)

5_9

A(i,1)

J

Min=Max

NotFlag

5_10

ch>="0"Andch<=H9H

P=P&ch

ReDimPreserveC(k)

5_H

PrivateSubForm_Click()

DimxAsInteger,iAsInteger,kAsInteger;jAsInteger

Dima()AsInteger

x=InputBox("輸入正整數(shù)x=")

i=2

Printx;”的質(zhì)因子為:";

DoWhilex>=i

IfxModi=0Then

k=k+1

ReDimPreservea(k)

a(k)=i

x=x\i

Else

i=i+1

EndIf

Loop

Forj=1ToUBound(a)

Printa(j);

Nextj

EndSub

習(xí)題

-選擇題

1.2.3.4.5.6.7.8.9.10.

ACDCBDDBDB

11.12.

BD

二填空題

1.Variant

2.ReDimA(N)

A(l)

IfM<A(I)ThenM=A⑴

3.Int(26*Rnd)+65

Chr(t)

i+1To10

A(i)>A(j)

4.InStr(s,n,n)

Right(s,Len(s)-n)

s

5.456

654

321

6.T-l

1+1

7.k=6-i-j

max=m

8.j=a

j=j-3

9.i+1

i=i+1

10.2

3

7

三編程題

1.

OptionExplicit

OptionBase1

PrivateSubCommandl_Click()

Dima(10)AsInteger

DimiAsInteger,maxAsInteger

Fori=1To10

a(i)=Int(90*Rnd)+10

Printa(i);

Nexti

Print

i=1

max=0

DoWhilei<=10

Ifa(i)Mod3=0Then

Ifa(i)>maxThen

max=a(i)

EndIf

EndIf

i=i+1

Loop

Ifmax=0Then

Print”無要找的數(shù)”

Else

Printmax&”是最大的能被3整除的數(shù)”

EndIf

EndSub

2.

OptionExplicit

OptionBase1

PrivateSubCommandl_Click()

DimAOAsInteger

DimIAsInteger,mAsInteger

DimKAsInteger

ReDimA(10)

ForI=1To10

A(I)=I

PrintA(I);

NextI

Print

m=InputBox(HEaEemn)

K=9+m

ReDimPreserveA(K)

ForI=11ToK

A(I)=A(I-10)

NextI

ForI=1To10

A⑴=A(I+m-l)

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

1=1+1

Loop

Flag=False

NextK

EndSub

4.

OptionExplicit

PrivateSubCommandlClickQ

DimA(10)AsInteger

DimB(10)AsInteger,SAsString

DimIAsInteger,JAsInteger,XAsInteger

A⑴=Int(90*Rnd)+10

S=A(1)

ForI=2To10

Do

X=Int(90*Rnd)+10

ForJ=lToI-l

IfX=A(J)ThenExitFor

NextJ

IfJ=IThen

A(I)=X

S=S&Hn&A(I)

ExitDo

EndIf

Loop

NextI

Textl.Text=S

B(l)=Int(90*Rnd)+10

S=B(l)

ForI=2To10

Do

X=Int(90*Rnd)+10

ForJ=lToI-l

IfX=B(J)ThenExitFor

NextJ

IfJ=IThen

B(I)=X

S=S&nM&B(I)

ExitDo

EndIf

Loop

NextI

Textl.Text=S

s=,,,,

ForI=1To10

ForJ=1To10

IfA(I)=B(J)Then

S=S&HH&A(I)

EndIf

NextJ

NextI

Text3.Text=S

EndSub

PrivateSubCommand2_Click()

Textl.Text=

Textl.Text=

Text3.Text=

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(I)=J

Sum=Sum+J

K=K\10

1=1+1

LoopUntilK=0

Textl.Text=Sum

EndSub

6.

OptionExplicit

PrivateSubCommandl_Click()

Dima(100,2)AsInteger,KAsInteger

DimIAsInteger,JAsInteger

DimMAsInteger,NAsInteger

K=1

ForI=1To99

ForJ=1To99

Ifl>JThen

M=I-J

N=I+J

IfSqr(M)=Int(Sqr(M))AndSqr(N)

Int(Sqr(N))Then

ListLAdditemI&nn&J

a(K,1)=I

a(K,2)=J

K=K+1

EndIf

EndIf

NextJ

NextI

EndSub

第六章參考答案

實(shí)驗(yàn)

實(shí)驗(yàn)6-1

1、ExitDo

2、Y(X)

3、X>=-1

實(shí)驗(yàn)6-2

【題目二】42、26、8

實(shí)驗(yàn)6-3

1、si,key

2、sAsString

3、ch>="a"Andch<="z"

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<=chAndch<=Then

IfAsc(ch)-k<Asc(HAH)Then

Mid(s,i,1)=Chr(Asc(ch)-k+26廠小

于A的ASCII值則加上26

Else

Mid(s,i,1)=Chr(Asc(ch)-k)

EndIf

Elselfch>="a"Andch<="z"Then'多分

支格式,ch介于小寫a與z之間

IfAsc(ch)-k<Asc("an)Then

Mid(s,i,1)=Chr(Asc(ch)-k+26)

于a的ASCII值則加上26

Else

Mid(s,i,1)=Chr(Asc(ch)-k)

EndIf

EndIf

Nexti

EndSub

實(shí)驗(yàn)6-4

1、bOAsInteger,stAsString

2、L<=R

3、ReDimPreserveb(R)

4、L=L+1

輾轉(zhuǎn)相除法求最大公約數(shù)函數(shù)

PrivateFunctionGcd(ByValpAsInteger,ByVaiqAs

Integer)AsInteger

DimrAsInteger

r=pModq

DoWhiler<>0

p=q

q=r

r=pModq

Loop

Ged=q

EndFunction

實(shí)驗(yàn)6-5

【題目一】

age=age(n-1)-3

【題目二】

1、(Left+Right)/2

2、Left=Mid+1

實(shí)驗(yàn)6-6

1、3-1

2、74

3、3-1

4、70

實(shí)驗(yàn)6-7

【題目一】

1、Sqr(2+1)

2、Abs(a-1)<eps

【題目二】

1、DimXAsInteger

2、HS(H&I&”尸"&S(I)

3、(j*i+l)

習(xí)題參考答案

一選擇題

1.2.3.4.5.6.7.8.9.10.

BDCCDBBBAD

11.12.13.14.15.16.17.18.19.20.

DAAABBDCDB

21.22.23.24.25.26.27.28.

CCBADDAB

二、填空

1(1)形式____________(2)實(shí)在__________

2(1)按地址傳遞(2)ByVai_________

3(1)窗體模塊________(2)標(biāo)準(zhǔn)模塊、(3)

類模塊

4(1)6

5(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⑴、(2)Fun=p

11(1)4、(2)20.7

12(1)29、(2)28.7

13(1)k=i、(2)b。AsInteger

14(1)1ec、(2)ee>(3)3

15(1)pl=TrueAndp2=True或plAndp2、(2)

pl=p2-2、

(3)Isp=True、(4)mModi=0

16(1)Converter、(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)

三、改錯(cuò)題

1、

OptionBase1

PrivateSubCommandl_Click()

DimA()AsInteger,IAsInteger,JAsInteger,LogicAs

Boolean

DimKAsInteger

ReDimA(l)

A(l)=50

-------------------------'K=l

ForI=51To149

K=1,位置錯(cuò)

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=True

NextI

EndSub

2、

OptionExplicit

OptionBase1

PrivateSubCommandl_Click()

DimIAsInteger,FigAsBoolean,SIAsInteger,S2As

Integer

DimJAsInteger,KAsInteger,P()AsInteger

ReDimP(l)

P(l)=2

ForI=3To150Step2

ForJ=2ToSqr(I)

IfIModJ=0ThenExitFor

NextJ

IfJ>Sqr(I)Then

ReDimPreserveP(UBound(P)+1)

P(UBouiid(P)+1)=I

?P(UBound(P))=I

EndIf

NextI

ForI=80To125

IffunCI,P,S1,S2)ThenIffun(I,P,SI,

S2)

Textl=Textl&Str$(I)&&Str(Sl)&

&Str$(S2)&vbCrLf

EndIf

NextI

EndSub

PrivateFunctionfun(NAsInteger,P()AsInteger,SIAs

Integer,S2AsInteger)AsBoolean

DimIAsInteger,JAsInteger

ForI=1ToUBound(P)

ForJ=1ToUBound(P)-1

IfN=P(I)*P(J)Then

SI=P(I)

S2=P(J)

____________,fun=True

ExitFunction

fun=True,位置錯(cuò)

EndIf

NextJ

NextI

EndFunction

3、

OptionExplicit

PrivateSubGet_Chess(ChessOAsInteger,idxAsInteger,

OverAsInteger)'ByVaiidxAsInteger

DimUbAsInteger,CounterAsInteger,KAsInteger

Ub=UBound(Chess)

Chess(idx)=0

Counter=1

K=0,位置錯(cuò)

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="從第"&&”號(hào)棋子開始取”

ExitFor

EndIf

NextI

EndSub

5、

OptionExplicit

PrivateSubForm_Click()

DimSAsString,FigAsBoolean

Do

S=InputBox("輸入一個(gè)自然數(shù)”)

IfS=HHOrNotIsNumeric(S)Then

MsgBox”請(qǐng)重新輸入”,48+vbOKOnly

Else

ExitDo

EndIf

Loop

iudge(S,Fie)'Calljudge(S,Fig)或

judgeS,Fig

IfFigThen

PrintS;”是回文數(shù)”

Else

PrintS;”不是回文數(shù)”

EndIf

EndSub

PrivateSubjudge(ChAsString,FAsBoolean)

DimLAsInteger,IAsInteger

L=Len(Ch)

F=True'F=False

ForI=1ToL

IfMid$(Ch,I,1)<>Mid$(Ch,L+1-I,1)Then

ExitSub

NextI

F=Fake'F=True

EndSub

四、編程題

1、編程驗(yàn)證任一大于2的偶數(shù)可以表示成兩個(gè)素?cái)?shù)之和。

PrivateFunctionPrime(aAsInteger)AsBoolean

DimiAsInteger

Fori=2ToSqr(a)

IfaModi=0ThenExitFunction

Nexti

Prime=True

EndFunction

,方法一

PrivateSubCommandl_Click()

DimmAsInteger,iAsInteger

m=InputBox("請(qǐng)輸入一個(gè)大于2的偶數(shù)”)

Ifm<=2OrmMod2<>0ThenMsgBox”請(qǐng)輸入大于

2的偶數(shù)”:ExitSub

IfPrime(2)AndPrime(m-2)Then

Printm&”=2+”&m-2

Else

Do

i=i+1

IfPrime(2*i+1)AndPrime(m-(2*i+1))

Then

Printm&&2*i+l&&m-(2

*i+l)

ExitDo

EndIf

LoopWhile2*i+l〈m-(2*i+l)

EndIf

EndSub

方法二

PrivateSubCommand2_Click()

DimmAsInteger,iAsInteger,p()AsInteger,nAs

Integer

DimfigAsBoolean

m=InputBox(”請(qǐng)輸入大于2的偶數(shù)”)

Ifm<=2OrmMod2<>0ThenMsgBox”請(qǐng)輸入大于

2的偶數(shù)”:ExitSub

ReDimp(l)

P(l)=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)

flg=True

ExitFor

EndIf

Nextj

Ifflg=TrueThenExitFor

Nexti

EndSub

2、求組合數(shù)就扁y(n>=m),程序中必須包含一個(gè)求階

乘的通用過程。

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,請(qǐng)重新輸入“

Textl.Text=

Textl.Text=

Textl.SetFocus

EndIf

EndSub

PrivateSubCommand2_Click()

Textl.Text=

Text2.Text=

Text3.Text=

Textl.SetFocus

EndSub

3、編寫一個(gè)查找10到300之間所有同構(gòu)數(shù)的程序,程序中

必須包含一個(gè)判定某數(shù)是否是同構(gòu)數(shù)的Function過程Istgso

若一個(gè)數(shù)出現(xiàn)在自己平方數(shù)的右端,則此數(shù)為同構(gòu)數(shù)。如5

在52=25的右端,25在25?=625的右端,故5和25為同構(gòu)

數(shù)。

PrivateFunctionIstgs(nAsInteger)

AsBoolean

DimsAsString,LAsInteger

L=Len(CStr(n))

s=CStr(nA2)

IfRight(s,L)=nThenIstgs=True

EndFunction

PrivateSubCommandl_Click()

DimnAsInteger

Forn=10To300

IfIstgs(n)ThenListLAddltemn&"人2"&&

nA2

Nextn

EndSub

PrivateSubCommand2_Click()

End

EndSub

4、編寫程序,隨機(jī)生成一個(gè)由三位正整數(shù)組成的3行4列

的數(shù)組,求數(shù)組每一行的最大元素及其所在列號(hào),程序中必

須包含一個(gè)求一行中最大元素及其所在列號(hào)的通用過程。

(若一行中有多個(gè)最大元素則取其中之一即可)

PrivateSubCmdDispCIickQ

Dima(3,4)AsInteger,iAsInteger,jAsInteger

DimmAsInteger,mj

Integer

Randomize

Fori=1To3

Forj=1To4

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、一個(gè)整數(shù)N的因子和(不包括N)等于N,則N被成為

完全數(shù)。例如,28=1+2+4+7+14,28是完全數(shù)。編寫程序驗(yàn)

證:介于10到10000之間的完全數(shù),把它們的各位數(shù)字加

起來得到一個(gè)數(shù),再把這個(gè)數(shù)的各位數(shù)字加起來又得到一個(gè)

數(shù),一直做下去,直到得到一個(gè)一位數(shù),這個(gè)數(shù)是1,程序

中必須包含一個(gè)判定某數(shù)是否是完全數(shù)的過程。例如,28

的各位數(shù)字加起來得到一個(gè)數(shù)10,再把10這個(gè)數(shù)的各位數(shù)

字加起來又得到一個(gè)數(shù)是lo

PrivateFunctionIsWqs(nAsInteger)AsBoolean

DimsumAsInteger,iAsInteger

Fori=1Ton/2

IfnModi=0Thensum=sum+i

Nexti

Ifsum=nThenIsWqs=True

EndFunction

PrivateSubCommandl_Click()

DimnAsInteger

DimsumAsInteger

Forn=10To10000

IflsWqs(n)Then

t=n

Printt;"=>”;

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;

"J;sum;

Else

PrintMid(CStr(t),i,1);sum;

EndIf

t=sum

LoopUntilsum=1

Print

EndIf

Nextn

EndSub

PrivateSubCommand2_Click()

End

EndSub

6、找出500以內(nèi)的超完全數(shù),程序中必須包含一個(gè)判定某

數(shù)是否是超完全數(shù)的過程。設(shè)符號(hào)①(N)表示N的所有因

子的和(包括N在內(nèi)),若①(①(N))=2N,則N就是一

個(gè)超完全數(shù)。例如,16的因子和為1+2+4+8+16=31,而31

的因子為1+31=32,32=2*16,故16是一個(gè)超完全數(shù)。

PrivateFunctionJudge(nAsInteger)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、編寫程序,通過調(diào)用通用過程找出100以內(nèi)的所有不可

表示成兩個(gè)平方數(shù)之和的數(shù)。

PrivateFunctionpfh(nAsInteger)AsBoolean

DimiAsInteger,tAsSingle

Fori=1ToInt(Sqr(n))

t=n-iA2

IfSqr(t)=Int(Sqr(t))Thenpfh=True

Nexti

EndFunction

PrivateSubCommandlClickQ

DimnAsInteger,tAsInteger

Forn=1To100

Ifpfh(n)=FalseThen

t=t+1

Printn;

IftMod10=0ThenPrint

EndIf

Nextn

EndSub

8、編寫程序,通過調(diào)用通用過程找出30以內(nèi)所有的無平方

因子數(shù)。若一個(gè)數(shù)不能被大于1的數(shù)的平方整除,則該數(shù)就

是一個(gè)無平方因子數(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、編寫程序,通過調(diào)用通用過程驗(yàn)證下列命題:任意一個(gè)

正整數(shù)和其反序數(shù)相加,得到一個(gè)新的正整數(shù),再對(duì)這個(gè)新

整數(shù)重復(fù)上述步驟,最終一定可以得到一個(gè)回文數(shù)(例如,

正整數(shù)351,其反序數(shù)為153,351+153=504,504+405=909,

909是回文數(shù))。

,求反序數(shù)

PrivateFunctionfxs(nAsLong)AsLong

DimiAsInteger,sAs

String

Fori=1ToLen(CStr(n))

s=Mid(CStr(n),i,1)

Nexti

fxs=s

EndFunction

,判斷某數(shù)是否為回文數(shù)

PrivateFunctionHws(nAsLong)AsBoolean

DimiAsInteger,sAsString,LAsInteger

s=CStr(n):L=Len(s)

Fori=1ToLen(s)/2

IfMid(s,i,1)<>Mid(s,L+1-i,1)ThenExit

Function

Nexti

Hws=True

EndFunction

PrivateSubCommandl_Click()

DimxAsLong,tAsLong

x=InputBox(”請(qǐng)輸入一個(gè)正整數(shù):”)

t=x

DoWhileHws(t)=False

Printt;fxs(t);t+fxs(t)

t=t+fxs(t)

Loop

EndSub

10、找出1000以內(nèi)所有的奇妙平方數(shù),程序中必須包含一

個(gè)判定某事是否是奇妙平方數(shù)的過稱。所謂奇妙平方數(shù),是

指此數(shù)的平方與它的逆序數(shù)的平方互為逆序數(shù)。例如,

122=144,212=441,12與21互逆,144與441互逆,12就

是奇妙平方數(shù)。

,求反序數(shù)

PrivateFunctionfxs(nAsLong)AsLong

DimiAsInteger,sAsString

Fori=1To?我奇妙平方欺

奇妙平方數(shù):因?yàn)椋?/p>

21122=144212=441

Len(CStr(n))3113-2=16931*2=961

201102*2=10404201*2=40401

301103*2=10609301^2=90601

211112"2=12544211*2=44521

311113*2=12769311*2=96721

s=Mid(CStr(n),i,1)221122*2=14884221"2=48841

I:.笠叫5j

Nexti

fxs=s

EndFunction

PrivateSubCommandl_Click()

DimnAsLong,tAsLong

Forn=1To999

t=fxs(n)

IftA2=fxs(nA2)AndnMod10<>0Andn<t

Then

Listl.Additemn&H

List2.AddItemn&''人2"&&nA2&H

M&t&HA2H&n=n&tA2

EndIf

Nextn

EndSub

11、編寫程序,查找介于300?2000之間的所有只有兩個(gè)數(shù)

字相同的完全平方數(shù),程序中必須包含一個(gè)判定某數(shù)是否是

只有兩個(gè)數(shù)字相同的完全平方數(shù)的過程。所謂完全平方數(shù)是

指其平方根為整數(shù)的數(shù)。例如676、900、1521等都是介于

300?2000之間符合條件的數(shù)。

PrivateFunctionJudge(nAsInteger)AsBoolean

DimiAsInteger,LAsInteger,a(9)AsInteger,tAs

Integer

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?符合條件的完全平方數(shù)二[回區(qū)I

400

441

484

IfSum=L-1Then676

900

Judge=True

EndIf

EndFunction

PrivateSubCom

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論