vb期末重点.docx
《vb期末重点.docx》由会员分享,可在线阅读,更多相关《vb期末重点.docx(6页珍藏版)》请在冰豆网上搜索。
![vb期末重点.docx](https://file1.bdocx.com/fileroot1/2023-1/29/54d4736f-60e1-472b-91bd-4d2f473e43fc/54d4736f-60e1-472b-91bd-4d2f473e43fc1.gif)
vb期末重点
《VB期末范围题总汇》
1.求随机10个整数的最大值、最小值、平均值以及和;
Dima(1To10)
PrivateSubCommand1_Click()
Randomize
Picture1.Print"产生的随机数为:
"
Fori=1To10
a(i)=Int(Rnd*99+1)
Picture1.Printa(i);
Nexti
Picture1.Print
EndSub
PrivateSubCommand2_Click()
Dimmax,min,ave
max=a
(1)
min=a
(1)
ave=0.1*a
(1)
Fori=2To10
Ifa(i)>maxThenmax=a(i)
Ifa(i)ave=ave+0.1*a(i)
Nexti
Picture1.Print"最大数为:
";max
Picture1.Print"最小数为:
";min
Picture1.Print"平均数为:
";ave
EndSub
2.求水仙花数
PrivateSubForm_Click()
Dima,b,cAsInteger'a(个)b(十)c(百)
Fora=0To9
Forb=0To9
Forc=1To9
Ifa^3+b^3+c^3=a+10*b+100*cThen
MsgBox100*c+10*b+a
EndIf
Nextc
Nextb
Nexta
EndSub
3.百元买百鸡问题;
OptionExplicit
Consta=5,b=3,c=1
PrivateSubForm_Activate()
DimiAsInteger,jAsInteger,kAsInteger,nAsInteger
Fori=1To100
Forj=1To100
Fork=1To100
Ifi*a+j*b+k*c=100Then
n=n+1
List1.AddItem"公鸡:
"&i&"母鸡:
"&j&"小鸡:
"&k
EndIf
Next:
Next:
Next
MsgBox"共有组合:
"&n
EndSub
求1000以内的所有完数
一个按钮里调用的过程
PrivateSubCommand1_Click()
OutputWanNumber1000
EndSub
4.'求完数的过程
PrivateSubForm_Click()
Dimi,jAsInteger
Fori=4To1000
temp=1
Forj=2Toi/2
IfiModj=0Then
temp=temp+j
EndIf
Nextj
Iftemp=iThen
Printi
EndIf
Nexti
EndSub
5.求各位数字之和
inputa:
'输入任意数
do
b=amod10:
'取a的末位数
sum=sum+b:
'求和
a=a\10:
'去掉末位数
loopuntila=0
print"sum=";sum:
'输出
end
(dimnasstring
inputn
fori=1tolen(n)
sum=sum+val(mid(n,i,1))
nexti
printsum)
6.求最小公倍数
PrivateSubForm_Load()
Form1.AutoRedraw=True
Dimn1%,m1%,m%,n%,r%
n1=InputBox("输入n1")
m1=InputBox("输入m1")
Ifm1>n1Then'为了求最小公倍数,增加m,n变量
m=m1:
n=n1
Else
m=n1:
n=m1
EndIf
Do
r=mModn
Ifr=0ThenExitDo
m=n
n=r
Loop
Printn1;",";m1;"的最大公约数为";n
Print"最小公倍数=",m1*n1/n
EndSub
7.求逆序数(感觉题目类型太多)
8.级数有限项求和问题(题目类型太多)
9.求质因子问题
PrivateSubCommand1_Click()
DimNAsInteger,IAsInteger
N=Val(InputBox("请输入2的整数:
"))
I=2
Do
IfNModI=0Then
PrintI;
N=N\I
Else
I=I1
EndIf
LoopWhileN1
EndSub
10.字符统计
OptionBase1
OptionExplicit
PrivateSubCommand1_Click()
Dimiasinteger,A(26)asinteger,nasinteger
DimSasstring*1,Strlasstring
Strl=Text1
n=Len(Strl)
Fori=1Ton
S=Mid(Strl,i,1)
IfUCase(S)>=”A”AndUCase(S)<=”Z”Then
A(Asc(UCase(S))-64)+1
EndIf
Nexti
Fori=1To26
List1.AdditemChr(64+i)&“:
”&A(i)
Netxi
EndSub
PrivateSubCommand_Click()
End
EndSub
第二大题
1.判定素数过程
Functionisprime(NumAsLong)AsBoolean
IfNum<2Thenisprime=False:
ExitFunction
DimiAsLong
Fori=2ToSqr(Num)
If(NumModi)=0Then
isprime=False
ExitFunction
EndIf
Nexti
isprime=True
EndFunction
PrivateSubCommand1_Click()
DimiAsLong
Fori=1To1000
Ifisprime(i)Then
Printi
EndIf
Nexti
EndSub
2.求最大公约数过程;
FunctionMax公约数(AAsLong,BAsLong)'求出两个数的最大公约数
DimXAsLong,YAsLong,KAsLong
X=IIf(A>=B,A,B)'x存入最大值
Y=IIf(A<=B,A,B)'y存入最小值
Do'辗转相除法
K=XModY:
IfK=0ThenExitDo
X=Y:
Y=K
Loop
Max公约数=Y
EndFunction
3.冒泡排序过程
PrivateSubCommand1_Click()
Dima(9)AsInteger
DimiAsInteger
Fori=0To9
a(i)=InputBox("输入整数")
Next
Sorta
Fori=0To9
Printa(i)
Next
EndSub
PrivateSubSort(ByRefa()AsInteger)
DimiAsInteger
DimjAsInteger
DimtAsInteger
Fori=LBound(a)+1ToUBound(a)
Forj=UBound(a)ToiStep-1
Ifa(j-1)>a(j)Then
t=a(j-1)
a(j-1)=a(j)
a(j)=t
EndIf
Next
Next
EndSub
4顺序查找过程
PrivateSubCommand1_Click()
Dimi,j,t,a(1To10)
Randomize
Print"原数组:
"
Fori=1To10
a(i)=Rnd*10
Print"a("&i&")="&a(i)&Space
(2),
IfiMod2=0ThenPrint
Nexti
Print
Fori=1To9
Forj=i+1To10
Ifa(j)t=a(i)
a(i