
VB常用必背程序
1/281/28
1、求100以內的素數。
PrivateSubForm_Click()
Dimi%,j%
Fori=2To100
Forj=2Toi-1
IfiModj=0ThenExitFor
Nextj
Ifj=iThenPrinti
Nexti
EndSub
2、從鍵盤輸入任意長度的字符串,要求將字符順序倒置,例如,將輸入的“ABCDEFG”變
換成“GFEDCBA”。
PrivateSubCommand1_Click()
Dima$,I%,c$,d$,n%
a=InputBox$("輸入字符串")
n=Len(a)
ForI=1ToInt(n2)
c=Mid(a,I,1)
Mid(a,I,1)=Mid(a,n-I+1,1)
Mid(a,n-I+1,1)=c
NextI
Printa
EndSub
3、計算0~200之間所有能被11或5整除的數之和
PrivateSubForm_Click()
Dimn%,i%
n=0
Fori=1To200
VB常用必背程序
2/282/28
IfiMod11=0OriMod5=0Then
n=n+i
EndIf
Nexti
Printn
EndSub
4、輸入一年份,判斷它是否為閏年,并顯示有關信息。(判斷閏年的條件是:年份能被4
整除但不能被100整除,或者能被400整除)
PrivateSubCommand1_Click()
Dimy%
y=InputBox("請輸入年數")
IfyMod4=0AndyMod100<>0OryMod400=0Then
MsgBox(y&"年是閏年")
El
MsgBox(y&"年是平年")
EndIf
EndSub
5、已知x,y,z3個變量中存放了3個不同的數,比較它們的大小并進行調整,使得x
PrivateSubCommand1_Click()
Dimx!,y!,z!
x=InputBox("inputx")
y=InputBox("inputy")
z=InputBox("inputz")
Print"xyz"
Ifx>yThent=x:x=y:y=t
Ifx>zThent=x:x=z:z=t
Ify>zThent=y:y=z:z=t
Print"排序后";x;"";y;"";z
VB常用必背程序
3/283/28
EndSub
6、求s=a+aa+aaa+...aaaaa(n個a),其中a和n的值隨機產生,a的范圍是[1,9]的整數,n
的范圍是[5,10]。如a=3,n=6,則s=3+33+333+3333+33333+333333。編程確定n和a的值,并
計算s。
PrivateSubForm_Click()
Dims!,t!,i!,a%,n%
a=Int(Rnd*9+1)
n=Int(Rnd*6+5)
t=0:s=0
Print"a=";a,"n=";n
Fori=1Ton
t=t*10+a
s=s+t
Printt;
Nexti
Print"s=";s
EndSub
7、計算100~300之間所有能被3和7整除的數之和。
PrivateSubForm_Click()
Fori=100To300
IfiMod21=0Then
s=s+i
Printi;
EndIf
Nexti
Print"s=";s
VB常用必背程序
4/284/28
EndSub
8、編程求200--400范圍內5的倍數或7的倍數之和。(一個數如果同時是7和5的倍數,則
只能加一次。)
PrivateSubCommand1_Click()
Dims1%,s2%,s3%,i%
S1=0
S2=0
Fori=200to400
Ifimod5=0orimod7=0then
s1=s1+i
Endif
Nexti
Fori=200to400
Ifimod5=0orimod7=0then
s2=s2+i
Endif
Nexti
S3=s1-s2
Prints3
Endsub
9、找出被3、5、7除,余數為1的最小的5個正整數。
PrivateSubCommand1_Click()
DimCountN%,n%
CountN=0
n=1
Do
n=n+1
IfnMod3=1AndnMod5=1AndnMod7=1Then
VB常用必背程序
5/285/28
Printn
CountN=CountN+1
EndIf
LoopUntilCountN=5
EndSub
10、某次歌曲大獎賽,有7個評委。如果分別輸入7個評委對某個參賽者的打分數,按照
去掉一個最高分和一個最低分的計算辦法,求出該參賽者的平均得分。
PrivateSubCommand1_Click()
Dimmark!,max!,min!,aver!,i%
aver=0
Fori=1To7
mark=InputBox("輸入第"&i&"位評委的打分")
Ifi=1Then
max=mark:min=mark
El
Ifmark
Ifmark>maxThenmax=mark
EndIf
aver=aver+mark
Nexti
aver=(aver-min-max)/5
Printaver
EndSub
11、編程顯示100~500之間所有的水仙花數之和。(水仙花數是3位數,其各位數之和等于
該數本身)
PrivateSubForm_Click()
Dimi%,s%,s1%,s2%,s3%,a!
a=0
VB常用必背程序
6/286/28
Fori=0To400
s=99+i
s1=(sMod100)10
s2=sMod10
s3=s100
Ifs1^3+s2^3+s3^3=sThen
a=s+a
EndIf
Nexti
Printa
EndSub
12、隨機產生一個三位正整數,然后逆序輸出,產生的數與逆序數同時顯示。例如,產生
246,輸出是642。
Dima%,m%,b%,c%,d%
PrivateSubForm_Click()
a=Int(Rnd*900+100)
Printa
d=(aMod10)*100
b=(aMod100)-(aMod10)
c=a100
m=c+b+d
Printm
EndSub
13、從鍵盤輸入三角形的三條邊a,b,c的值,根據其數值,判斷能否構成三角形。
PrivateSubForm_Click()
Dima%,b%,c%
a=Val(InputBox("inputa"))
b=Val(InputBox("inputb"))
VB常用必背程序
7/287/28
c=Val(InputBox("inputc"))
Ifa+b>cAnda+c>bAndb+c>aThen
MsgBox("能構成三角形")
El
MsgBox("不能構成三角形")
EndIf
EndSub
14、已知數組a(),編程刪除a中第5個元素。數組a中的元素分別為{12,6,4,89,75,
63,100,20,31}。
PrivateSubForm_Click()
Dima(),i%,n%
a=Array(12,6,4,89,75,63,100,20,31)
n=UBound(a)
Fori=0Ton
Printa(i);
Nexti
Fori=5Ton
a(i-1)=a(i)
Nexti
n=n-1
ReDimPrervea(n)
Fori=0Ton
Printa(i);
Nexti
EndSub
15、隨機生成一個整型的二維數組,范圍在[10,20]之間,以上三角形式輸出該數組。(下三
VB常用必背程序
8/288/28
角、全部元素)Dima%(4,4)
Dima%(4,4)
PrivateSubCommand1_Click()
Fori=0To4
Forj=iTo4
ab(j*6);a(i,j);
Nextj
Nexti
EndSub
PrivateSubForm_Load()
Fori=0To4
Forj=0To4
a(i,j)=Int(Rnd*11+10)
Nextj
Nexti
EndSub
16、利用隨機函數生成一個4×4的矩陣(即二維矩陣),范圍是[20,50]內的整數,輸出每行中的
最大值和下標。
PrivateSubForm_Click()
Dima%(3,3),s0%,s1%,s2%,s3%,b0%,b1%,b2%,b3%
Max=40
Fori=0To3
Forj=0To3
a(i,j)=Int(Rnd*31+20)
PrintTab(j*5);a(i,j);
Ifa(0,j)>=MaxThens0=a(0,j):b0=j
VB常用必背程序
9/289/28
Ifa(1,j)>=MaxThens1=a(1,j):b1=j
Ifa(2,j)>=MaxThens2=a(2,j):b2=j
Ifa(3,j)>=MaxThens3=a(3,j):b3=j
Nextj
Nexti
Print"第一行";s0;"(";0;b0;")"
Print"第二行";s1;"(";1;b1;")"
Print"第三行";s2;"(";2;b2;")"
Print"第四行";s3;"(";3;b3;")"
EndSub
17、利用隨機函數生成一個4×4的矩陣(即二維矩陣),范圍是[40,80]內的整數,求它的最大
值及所對應的下標。
PrivateSubForm_Click()
Dima%(3,3)
Min=80
Fori=0To3
Forj=0To3
a(i,j)=Int(Rnd*41+40)
PrintTab(j*5);a(i,j);
Ifa(i,j)<=MinThen
Min=a(i,j):b=i:c=j
EndIf
Nextj
Nexti
Print"最小值為";Min
Print"其下標為";"(";b,c;")"
VB常用必背程序
10/2810/28
EndSub
18、輸入一系列字符串,編程求出長度最大的字符串并輸出其所對應的次序。
PrivateSubForm_Click()
Dima(5)asstring,b(4)asinteger,t%,max%,imax%
Fori=1to5
a(i)=inputbox("a")
Nexti
Fori=0to4
b(i)=len(trim(a(i)))
Nexti
Max=1
Fori=0to4
Ifmax
Nexti
Print"max=";a(i)
Print"cixu=",imax+1
Endsub
19、利用隨機函數生成一個4×4的矩陣(即二維矩陣),范圍是[20,50]內的整數,輸出該矩陣所
有數據之和
PrivateSubForm_Click()
Dima%(3,3)
Fori=0To3
Forj=0To3
a(i,j)=Int(Rnd*31+20)
PrintTab(j*5);a(i,j);
Nextj
Nexti
s=a(0,0)+a(1,1)+a(2,2)+a(3,3)+a(3,0)+a(2,1)+a(1,2)+a(0,3)
VB常用必背程序
11/2811/28
Prints;
EndSub
20、輸入一系列字符串,將字符串按遞減次序排列。請編程實現。
Dima()AsString,n%,i%,j%
PrivateSubCommand1_Click()
n=Text1
ReDima(1Ton)AsString
Fori=LBound(a)ToUBound(a)
a(i)=InputBox("請輸入字符串")
(i);Spc(1);
Nexti
EndSub
PrivateSubCommand2_Click()
Fori=1Ton
Forj=1Ton-i
Nextj
Nexti
Fori=1Ton
(i);Spc(1);
Nexti
EndSub
PrivateSubForm_Load()
Text1=""
EndSub
21、隨機產生10個[30,100]內的整數,求最大值、最小值和平均值。
Dima(1To10)AsInteger,amin,amax,i%,avera!
VB常用必背程序
12/2812/28
PrivateSubForm_Click()
Fori=1To10
a(i)=Int(Rnd*71+30)
Nexti
amin=a(1)
amax=a(1)
avera=a(1)
Fori=2To10
Ifa(i)>amaxThenamax=a(i)
Ifa(i)
avera=avera+a(i)
Nexti
Fori=1To10
Printa(i);
Nexti
Print"max=";amax,"min=";amin,"avera=";avera/10
EndSub
22、定義三個4×4的二維數組A,B,C,A和B中的元素均隨機生成,數組A的范圍是1~
20,數組B的范圍是100~200,數組C是A和B相乘得到的。請編程生成并輸出A,B,C。
(相加)Dima%(3,3),b%(3,3),c%(3,3)
PrivateSubCommand1_Click()
Fori=0To3
Forj=0To3
ab(j*6);a(i,j);
Nextj
VB常用必背程序
13/2813/28
Nexti
EndSub
PrivateSubCommand2_Click()
Fori=0To3
Forj=0To3
(i,j);"";
Nextj
Nexti
EndSub
PrivateSubCommand3_Click()
Fori=0To3
Forj=0To3
ab(j*7);c(i,j);
Nextj
Nexti
EndSub
PrivateSubForm_Load()
23、隨機產生15個小寫字母,放在字符數組中。提示:c=chr(int(rnd*26+97))
PrivateSubCommand1_Click()
Dimc$(14),i%
Fori=0To14
c(i)=Chr(Int(Rnd*26+97))
VB常用必背程序
14/2814/28
Nexti
Fori=0To14
(i);
Nexti
EndSub
24、隨機產生10個[30,100]內的整數,求最大值及所對應的下標
PrivateSubForm_Click()
Dima(1To10)AsInteger,i%,maxa%,m%
Fori=1To10
a(i)=Int(Rnd*70)+30
Nexti
maxa=a(1)
Fori=2To10
Ifa(i)>a(1)Then
maxa=a(i):m=i
EndIf
Nexti
Fori=1To10
Printa(i);
Nexti
Print"maxa="&maxa;"下標為"&m
EndSub
25、定義三個4×4的二維數組A,B,C,A和B中的元素均隨機生成,數組A范圍是1~20,
數組B的范圍是100~200,數組C是A和B相加得到的。請編程生成并輸出A,B,C。
PrivateSubCommand1_Click()
Dima(3,3),b(3,3),c(3,3),t%,m%
Fori=0To3
Forj=0To3
VB常用必背程序
15/2815/28
a(i,j)=Int(Rnd*20+1)
(i,j);
Nextj
Nexti
Fori=0To3
Forj=0To3
b(i,j)=Int(Rnd*101+100)
(i,j);
Nextj
Nexti
Fori=0To3
Forj=0To3
c(i,j)=a(i,j)+b(i,j)
Nextj
Nexti
EndSub
26、利用隨機函數生成一個4×4的矩陣(即二維矩陣),范圍是[20,50]內的整數,求它的兩條對
角線上元素之和。
PrivateSubForm_Click()
Dima%(3,3)
Fori=0To3
Forj=0To3
a(i,j)=Int(Rnd*31+20)
PrintTab(j*5);a(i,j);
Nextj
Nexti
VB常用必背程序
16/2816/28
s=a(1,1)+a(2,2)+a(3,3)+a(0,0)+a(0,3)+a(1,2)+a(2,1)+a(3,0)
Print"兩對角線上元素之和為:";s
EndSub
27、利用隨機函數生成一個4×4的矩陣(即二維矩陣),范圍是[40,80]內的整數,求它的最小值
及所對應的下標。
PrivateSubForm_Click()
Dima%(3,3)
Min=80
Fori=0To3
Forj=0To3
a(i,j)=Int(Rnd*41+40)
PrintTab(j*5);a(i,j);
Ifa(i,j)<=MinThen
Min=a(i,j):b=i:c=j
EndIf
Nextj
Nexti
Print"最小值為";Min
Print"其下標為";"(";b,c;")"
EndSub
28、隨機生成一個整型的二維數組,范圍在[10,20]之間,以上三角形式輸出該數組。(下三
角、全部元素)Dima%(4,4)
Dima%(4,4)
PrivateSubCommand1_Click()
Fori=0To4
VB常用必背程序
17/2817/28
Forj=iTo4
ab(j*6);a(i,j);
Nextj
Nexti
EndSub
PrivateSubForm_Load()
Fori=0To4
Forj=0To4
a(i,j)=Int(Rnd*11+10)
Nextj
Nexti
EndSub
29、有10個評委對歌手進行打分(分數存在A數組中)要求編程計算出歌手平均得分(按
去掉一個最高分和一個最低分的計算方法計算。)a=Array(98,97,95,91,90,99,93,94,93,
96)
PrivateSubForm_Click()
Dima(),max%,min%,imax%,imin%,s!
a=Array(98,97,95,91,90,99,93,94,93,96)
n=UBound(a)
Fori=0Ton
Printa(i);
Nexti
min=a(0):imin=0
Fori=0Ton
Ifa(i)
Nexti
VB常用必背程序
18/2818/28
Print"min=";"imin=";imin
Fori=imin+1Ton
a(i-1)=a(i)
Nexti
ReDimPrervea(n-1)
Fori=0Ton-1
Ifa(i)>maxThenmax=a(i):imax=i
Nexti
Print"max=";"imax=";imax
ReDimPrervea(n-2)
s=0
Fori=0Ton-2
s=s+a(i)
Printa(i);
Nexti
Print"avr=";s/(n-1)
EndSub
30、編程輸出n行楊輝三角圖形,n由鍵盤輸入。
PrivateSubCommand1_Click()
n=
ReDima(1Ton,1Ton)
Fori=1Ton
Forj=1Ton
a(i,1)=1
Ifi=jThena(i,j)=1
Nextj
VB常用必背程序
19/2819/28
Nexti
Fori=2Ton
Forj=2Ton
a(i,j)=a(i-1,j-1)+a(i-1,j)
Nextj
Nexti
Fori=1Ton
Forj=1Toi
(i,j);"";
Nextj
Nexti
EndSub
31、聲明一個整型的二維數組a(1to4,1to4),用隨機函數產生各元素,范圍介于[1,20]之間,
編程將第1行和第3行對應元素交換。
Dima%(1To4,1To4),t%
PrivateSubCommand1_Click()
Fori=1To4
Forj=1To4
ab(j*4);a(i,j);
Nextj
Nexti
EndSub
PrivateSubCommand2_Click()
Fori=1To4
Forj=1To4
VB常用必背程序
20/2820/28
t=a(1,j):a(1,j)=a(3,j):a(3,j)=t
ab(j*4);a(i,j);
Nextj
Nexti
EndSub
PrivateSubForm_Load()
Fori=1To4
Forj=1To4
a(i,j)=Int(Rnd*20+1)
Nextj
Nexti
EndSub
32、隨機產生15個小寫字母,放在字符數組中。提示:c=chr(int(rnd*26+97))
PrivateSubCommand1_Click()
Dimc$(14),i%
Fori=0To14
c(i)=Chr(Int(Rnd*26+97))
Nexti
Fori=0To14
(i);
Nexti
EndSub
33、編寫一個過程計算并輸出區間[100,1000]內所有素數的和(要求判斷素數使用過程(函
數或子過程)來實現。調用該過程。(提示:只能被1和自身整除的自然數稱為素數。)
Functionsushu%(ByValx%)
Dimm%,TagAsBoolean,i%
VB常用必背程序
21/2821/28
m=Val(x)
Tag=True
Fori=2Tom-1
If(mModi)=0ThenTag=Fal
Nexti
IfTagThensushu=x
EndFunction
PrivateSubCommand1_Click()
Dimi%,k%
Fori=100To1000
Ifsushu(i)mi
Nexti
Sum=0
Fork=unt-1
Sum=Sum+Val((k))
Nextk
Label1="[100,1000]內所有素數和為:"&Sum
EndSub
34、隨機產生10個1~100的正整數放入數組,顯示產生的數,求最大值、最小值、平均值。
PrivateSubForm_Click()
Dima(1To10)AsInteger,i%,maxa%,mina%,suma%
Fori=1To10
a(i)=Int(Rnd*71+30)
Nexti
mina=a(1)
maxa=a(1)
suma=a(1)
VB常用必背程序
22/2822/28
Fori=2To10
Ifa(i)>maxaThenmaxa=a(i)
Ifa(i)
suma=suma+a(i)
Nexti
Fori=1To10
Printa(i);
Nexti
Print"max=";maxa,"min=";mina;"aver=";suma/10
EndSub
35、已知一維數組a()中的元素已排序,分別為{12,15,21,25,27,35,36,39,48,52},
編程將30插入數組a,并使a依然有序。
PrivateSubCommand1_Click()
Dima(),i%,k%,x%,n%
a=Array(12,15,21,25,27,35,36,39,48,52)
n=UBound(a)
x=Val(Text1)
Fork=0Ton
Nextk
ReDimPrervea(n+1)
Fori=nTokStep-1
a(i+1)=a(i)
Nexti
a(k)=x
Fori=0Ton+1
Printa(i);
VB常用必背程序
23/2823/28
Nexti
EndSub
37、聲明一個整型的二維數組a(1to4,1to4),用隨機函數產生各元素,范圍介于[1,20]之間,
編程將第2行和第4行對應元素交換。
PrivateSubForm_Click()
Dima(0To3,0To3),i%,j%,t
Fori=0To3
Forj=0To3
a(i,j)=Int(Rnd*21+1)
PrintTab(j*5);a(i,j)
Nextj
Nexti
Forj=0To3
t=a(1,j):a(1,j)=a(3,j):a(3,j)=t
Nextj
Fori=0To3
Forj=0To3
PrintTab(j*5);a(i,j)
Nextj
Nexti
EndSub
38、隨機產生10個[30,100]內的整數,求最小值及所對應的下標。
PrivateSubForm_Click()
Dima(1To10)AsInteger,i%,mina%,m%
Fori=1To10
a(i)=Int(Rnd*70)+30
VB常用必背程序
24/2824/28
Nexti
mina=a(1)
Fori=2To10
mina=a(i):m=i
ElIfa(i)=a(1)Then
mina=a(i):m=i
EndIf
Nexti
Fori=1To10
Printa(i);
Nexti
Print"mina="&mina;"下標為"&m
EndSub
39、編一個判斷宿舍的通用過程(函數或子過程)。調用該過程,計算并輸出區間(1000,,1100)
內所有素數的和。
Functionss(n)AsInteger
Dimi%,tagAsBoolean
tag=True
Fori=3Ton/2
If(nModi)=0Thentag=Fal
Nexti
IftagThenss=n
EndFunction
PrivateSubPicture1_Click()
Dimi%,avera
avera=0
Fori=1000To1100
VB常用必背程序
25/2825/28
Ifss(i)<>0ThenPrintss(i)
avera=avera+ss(i)
Nexti
vera
EndSub
40、編一子過程ProcMin,求一維數組a中的最小值,子過程的形參自己確定。
PrivateSubForm_Click()
Dima(1To10),amin,i%
Fori=1To10
a(i)=Int(Rnd*101)
Printa(i);
Nexti
CallProcMin(a(),amin)
Print"amin=";amin
EndSub
SubProcMin(b(),min)
Dimi%
min=b(LBound(b))
Fori=LBound(b)+1ToUBound(b)
Ifb(i)
Nexti
EndSub
41、編一個冒泡排序法子過程,對已知的若干整數按遞減次序排列。提示:子過程的形式
為subsort1(a%())。提示:子過程的形式為subsort1(a%())。
PrivateSubCommand1_Click()
Dimb%(10),i%
Print"排序前"
VB常用必背程序
26/2826/28
Fori=0To9
b(i)=Int(Rnd*100)
Printb(i);
Nexti
Print"排序后"
Callsort(b())
EndSub
Subsort(a%())
Dimi%,m%,n%,min%,j%
n=UBound(a)
Fori=0Ton-1
Forj=0Ton-1-i
Nextj
Nexti
Fori=LBound(a)ToUBound(a)-1
Printa(i);
Nexti
EndSub
42、編一個選擇排序法子過程,對已知的若干整數按遞增次序排列。提示:子過程的形式
為subsort1(a%())。
PrivateSubCommand1_Click()
Dimb%(10),i%
Print"排序前"
Fori=1To10
b(i)=Int(Rnd*100)
Printb(i);
VB常用必背程序
27/2827/28
Nexti
Print"排序后"
Callsort(b())
EndSub
Subsort(a%())
Dimi%,m%,n%,min%,t%
n=UBound(a)
Fori=0Ton-1
min=i
Forj=i+1Ton
Nextj
m=a(i):a(i)=a(min):a(min)=m
Nexti
Fori=LBound(a)ToUBound(a)
Printa(i);
Nexti
EndSub
43、編一個冒泡排序法子過程,對已知的若干整數按遞增次序排列。提示:子過程的形式
為subsort1(a%())。
PrivateSubCommand1_Click()
Dimb%(10),i%
Print"排序前"
Fori=0To9
b(i)=Int(Rnd*100)
Printb(i);
Nexti
VB常用必背程序
28/2828/28
Print"排序后"
Callsort(b())
EndSub
Subsort(a%())
Dimi%,m%,n%,min%,j%
n=UBound(a)
Fori=0Ton-1
Forj=0Ton-1-i
Ifa(j)>a(j+1)Thenm=a(j):a(j)=a(j+1):a(j+1)=m
Nextj
Nexti
Fori=LBound(a)+1ToUBound(a)
Printa(i);
Nexti
EndSub
?贊(13)
?轉載(2686)
?分享(231)
?
本文發布于:2023-03-14 01:07:08,感謝您對本站的認可!
本文鏈接:http://m.newhan.cn/zhishi/a/1678727228122149.html
版權聲明:本站內容均來自互聯網,僅供演示用,請勿用于商業和其他非法用途。如果侵犯了您的權益請與我們聯系,我們將在24小時內刪除。
本文word下載地址:vb程序.doc
本文 PDF 下載地址:vb程序.pdf
| 留言與評論(共有 0 條評論) |