VB常用必背程序.docx
《VB常用必背程序.docx》由会员分享,可在线阅读,更多相关《VB常用必背程序.docx(28页珍藏版)》请在冰豆网上搜索。
VB常用必背程序
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(n\2)
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
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&"年是闰年")
Else
MsgBox(y&"年是平年")
EndIf
EndSub
5、已知x,y,z3个变量中存放了3个不同的数,比较它们的大小并进行调整,使得xPrivateSubCommand1_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
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
Print"s=";s
EndSub
7、计算100~300之间所有能被3和7整除的数之和。
PrivateSubForm_Click()
Fori=100To300
IfiMod21=0Then
s=s+i
Printi;
EndIf
Nexti
Print
Print"s=";s
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
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
Else
IfmarkIfmark>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
Fori=0To400
s=99+i
s1=(sMod100)\10
s2=sMod10
s3=s\100
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=a\100
m=c+b+d
Printm
EndSub
13、从键盘输入三角形的三条边a,b,c的值,根据其数值,判断能否构成三角形。
PrivateSubForm_Click()
Dima%,b%,c%
a=Val(InputBox("inputa"))
b=Val(InputBox("inputb"))
c=Val(InputBox("inputc"))
Ifa+b>cAnda+c>bAndb+c>aThen
MsgBox("能构成三角形")
Else
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
Print
Fori=5Ton
a(i-1)=a(i)
Nexti
n=n-1
ReDimPreservea(n)
Fori=0Ton
Printa(i);
Nexti
Print
EndSub
15、随机生成一个整型的二维数组,范围在[10,20]之间,以上三角形式输出该数组。
(下三角、全部元素)Dima%(4,4)
Dima%(4,4)
PrivateSubCommand1_Click()
Picture1.Cls
Fori=0To4
Forj=iTo4
Picture1.PrintTab(j*6);a(i,j);
Nextj
Picture1.Print
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
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
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
Print"最小值为";Min
Print"其下标为";"(";b,c;")"
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
imax=i
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)
Prints;
EndSub
20、输入一系列字符串,将字符串按递减次序排列。
请编程实现。
Dima()AsString,n%,i%,j%
PrivateSubCommand1_Click()
n=Text1
ReDima(1Ton)AsString
Fori=LBound(a)ToUBound(a)
a(i)=InputBox("请输入字符串")
Picture1.Printa(i);Spc
(1);
Nexti
EndSub
PrivateSubCommand2_Click()
Fori=1Ton
Forj=1Ton-i
Ifa(j)a(j)=a(j+1):
a(j+1)=t
Nextj
Nexti
Fori=1Ton
Picture2.Printa(i);Spc
(1);
Nexti
EndSub
PrivateSubForm_Load()
Text1=""
EndSub
21、随机产生10个[30,100]内的整数,求最大值、最小值和平均值。
Dima(1To10)AsInteger,amin,amax,i%,avera!
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
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()
Picture1.Cls
Fori=0To3
Forj=0To3
Picture1.PrintTab(j*6);a(i,j);
Nextj
Picture1.Print
Nexti
EndSub
PrivateSubCommand2_Click()
Picture2.Cls
Fori=0To3
Forj=0To3
Picture2.Printb(i,j);"";
Nextj
Picture2.Print
Nexti
EndSub
PrivateSubCommand3_Click()
Picture3.Cls
Fori=0To3
Forj=0To3
Picture3.PrintTab(j*7);c(i,j);
Nextj
Picture3.Print
Nexti
EndSub
PrivateSubForm_Load()
23、随机产生15个小写字母,放在字符数组中。
提示:
c=chr(int(rnd*26+97))
PrivateSubCommand1_Click()
Dimc$(14),i%
Picture1.Cls
Fori=0To14
c(i)=Chr(Int(Rnd*26+97))
Nexti
Fori=0To14
Picture1.Printc(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
a(i,j)=Int(Rnd*20+1)
Picture1.Printa(i,j);
Nextj
Nexti
Picture1.Print
Fori=0To3
Forj=0To3
b(i,j)=Int(Rnd*101+100)
Picture1.Printb(i,j);
Nextj
Nexti
Picture1.Print
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
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
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
Print"最小值为";Min
Print"其下标为";"(";b,c;")"
EndSub
28、随机生成一个整型的二维数组,范围在[10,20]之间,以上三角形式输出该数组。
(下三角、全部元素)Dima%(4,4)
Dima%(4,4)
PrivateSubCommand1_Click()
Picture1.Cls
Fori=0To4
Forj=iTo4
Picture1.PrintTab(j*6);a(i,j);
Nextj
Picture1.Print
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
Print
min=a(0):
imin=0
Fori=0Ton
Ifa(i)imin=i
Nexti
Print"min=";"imin=";imin
Fori=imin+1Ton
a(i-1)=a(i)
Nexti
ReDimPreservea(n-1)
Fori=0Ton-1
Ifa(i)>maxThenmax=a(i):
imax=i
Nexti
Print"max=";"imax=";imax
ReDimPreservea(n-2)
s=0
Fori=0Ton-2
s=s+a(i)
Printa(i);
Nexti
Print
Print"avr=";s/(n-1)
EndSub
30、编程输出n行杨辉三角图形,n由键盘输入。
PrivateSubCommand1_Click()