vb题库.docx
《vb题库.docx》由会员分享,可在线阅读,更多相关《vb题库.docx(14页珍藏版)》请在冰豆网上搜索。
![vb题库.docx](https://file1.bdocx.com/fileroot1/2023-1/26/8fbf98bd-1648-4240-ac18-addfcb557a03/8fbf98bd-1648-4240-ac18-addfcb557a031.gif)
vb题库
vb试题库
要求:
1、在我的电脑D:
盘下建文件夹,文件夹名为自己的学号如“20061331001”
2、在学号文件夹下新建文件夹,命名为试题编号:
“201000”,将所有的程序文件放在试题编号文件夹下
1.乘除计算
PrivateSubCommand1_Click()
Text1=""
Text2=""
Text3=""
EndSub
PrivateSubCommand2_Click()
Text3=Val(Text1)/Val(Text2)
EndSub
PrivateSubCommand3_Click()
Text1=Val(Text3)*Val(Text2)
EndSub
2.
PrivateSubCommand1_Click()
DimxAsInteger
x=#1/1/2011#-Date
Text1.Text="距离2011年新年还有"&x&"天"
EndSub
3.输入两个数,打印交换前和交换后的数
PrivateSubCommand1_Click()
Dimm,n,tAsInteger
m=InputBox("输入m")
n=InputBox("输入n")
Picture1.Print"交换前:
"
Picture1.Print"m=";m,"n=";n
t=m:
m=n:
n=t
Picture1.Print"交换后:
"
Picture1.Print"m=";m,"n=";n
t=m:
m=n:
n=t
EndSub
4.
PrivateSubForm_Click()
Dimsfgz,jbgz,xAsSingle
jbgz=Val(InputBox("输入基本工资","计算工资",300)) '
x=Val(InputBox("输入本月营业额"))
sfgz=jbgz+x*0.05
Label1="本月营业额为:
"&x&" 基本工资为:
"&jbgz&vbCrLf
Label1=Label1&"本月实发工资为:
"&sfgz '
EndSub
5..利用随机函数产生3个数字在指定区间的随机数字,程序的运行结果如图所示。
PrivateSubCommand1_Click()
DimmAsInteger,nAsInteger
m=Val(Text1.Text)
n=Val(Text2.Text)
Randomize
Text3.Text=Str(m+Int(Rnd*(n-m)))
Text4.Text=Str(m+Int(Rnd*(n-m)))
Text5.Text=Str(m+Int(Rnd*(n-m)))
EndSub
6.随机产生10个100~200之间的数,求最大值。
PrivateSubCommand1_Click()
Max=100
Fori=1To10
x=Int(Rnd*101+100)
Printx;
Ifx>MaxThenMax=x
Nexti
Print
Print"最大值=";Max
EndSub
7.下面程序是在键盘上输入任一个二进制数,单击命令按钮后,即能转换为十进制数。
PrivateSubCommand1_Click()
B$=Val(InputBox(″″,″″,0))
M=Len(B$)
ForJ=1ToM
Dec=Dec*2+val(Mid$(B$,J,1))
NextJ
Print″Thedecimalnumberis″;Dec
EndSub
8.给定年份,下列程序用来判断该年是否闰年,请在划线处将程序补充完整。
提示:
闰年的条件是年号可以被4整除但不能被100整除,或者能被400整除。
PrivateSubCommand6_Click()DimyAsIntegery=InputBox(″请输入年号″)If(yMod4=0andyMod100<>0)and(yMod400=0)ThenPrint″是闰年″ElsePrint″是普通年份″EndIfEndSub
9.判断输入的是否是素数
PrivateSubCommand1_Click()
Dimi%,m%,TagAsBoolean
m=Val(Text1)
Tag=True '假定是素数
Fori=2Tom-1
If(mModi)=0ThenTag=False
Nexti
IfTagThenPicture1.Printm&" 是素数"
EndSub
10.求最大公约数和最小公倍数
PrivateSubForm_Click()
n1=InputBox("输入n")
m1=InputBox("输入m")
Ifm1>n1Then '使得m>n
m=m1:
n=n1
Else
m=n1:
n=m1
EndIf
r=mModn
DoWhiler<>0
m=n
n=r
r=mModn
Loop
Printm1;",";n1;"的最大公约数为";n
Print"最小公倍数=",m1*n1/n
EndSub
11.判断输入的数字是几位数,并输出
Privatesubcommand1_click()
Dimnumber$,i%
number=Text1.Text
Picture1.Printnumber&"是一个"&Len(number)&"位数"
Fori=1ToLen(number)
Picture1.PrintMid(number,i,1);
Nexti
EndSub
12.已知x,y,z三个数,使得x>y>z。
If xt=x:
x=y:
y=t
EndIf
If yt=y:
y=z:
z=t
If xt=x:
x=y:
y=t
EndIf
EndIf
13.使用selectcase语句判断成绩优良,其中90分以上为“优’;80-89为“良”;70-79为“中”;60-69为“及格”;60以下为“差”。
PrivateSubCommand1_Click()
Dimcj%
IfIsNumeric(Text1.Text)Then
cj=Val(Text1.Text)
SelectCasecj
CaseIs>=90
Label2.Caption="成绩:
"&"优秀"
Case80To89
Label2.Caption="成绩:
"&"良好"
Case70To79
Label2.Caption="成绩:
"&"中等"
Case60To69
Label2.Caption="成绩:
"&"及格"
CaseElse
Label2.Caption="成绩:
"&"差"
EndSelect
EndIf
Printx,y,z
EndSub
14.有如下函数,输入X,计算Y的值。
Y=
PrivateSubCommand1_Click()
DimxAsSingle,yAsSingle
x=Val(Text1.Text)
Ifx<0Then
y=-x
ElseIfx<5Then
y=2*x
Else
y=3*x-5
EndIf
Text2.Te
xt=y
EndSub
15.判断输入的是什么字符
PrivateSubCommand1_Click()
DimchAsString*1
ch=InputBox("input")
IfUCase(ch)>="A"AndUCase(ch)<="Z"Then MsgBox(ch+"是字母字符")
ElseIfch>="0"Andch<="9"Then MsgBox(ch+"是数字字符")
Else
MsgBox(ch+"是其他字符")
EndIf
EndSub
16.统计文本框输入的字符串中26个字母出现的次数。
ForI=1Tole
c=UCase(Mid(Text1,I,1))
Ifc>="A"Andc<="Z"
Then j=Asc(c)-65+1
a(j)=a(j)+1
EndIf
NextI
Forj=1To26
Ifa(j)>0ThenPicture1.Print"";Chr$(j+64);"=";a(j);
Nextj
17..输入一元二次方程的三个系数,并依此判断根的情况
Privatesubcommand1_click()
Dima%,b%,c%,p%
a=input(“输入a”)
b=input(“输入b”)
c=input(“输入c”)
P=b*b-4*a*c
ifp=0then
print“有两个相等实根”
else
ifp>0then
print“有两个不相等实根”
else
print“有两个共轭复根”
endif
endif
endsub
18.随机生成1——100间10个数字,统计其中奇偶数的个数,并求和。
Privatesubcommand1_click()
Dima(9)asinteger
Dimsum%,m%,n%,i%
Fori=0to9
A(i)=int(100*rnd)+1
Nexti
Fori=0to9
Ifa(i)mod2=0then
M=m+1
Else
N=n+1
Endif
Sum=sum+a(i)
Nexti
Endsub
19.生成20个200到300之间的随机数,输出其中能被5整除的数并求出它们的和。
PrivateSubCommand1_Click()
Dimx%,i%,s%
s=0
Fori=1To20
x=Int(Rnd()*101+200)
IfxMod5=0Then
Printx
s=s+x
EndIf
Nexti
Print"sum=";s
EndSub
20.输入任意自然数,计算其阶乘。
DimIAsInteger,NAsInteger,FacAsSingle
PrivateSubForm_Load()
Frm.Show
TxtInput.SetFocus
EndSub
PrivateSubCmdOk_Click()
N=TxtInput.Text
Fac=1
I=1
WhileI<=N
Fac=Fac*I
I=I+1
Wend
LblResult.Caption=Str(N)&"的阶乘:
"&Str(Fac)
EndSub
21..求1~100的5或7的倍数的和
PrivateSubForm_Click()
Dimi%,sum%
sum=0
Fori=1To100
IfiMod5=0OriMod7=0Then
sum=sum+i
EndIf
Next i
PrintSum
EndSub
22.输出50以内自然数能被2整除的个数,能被3整除的个数。
PrivateSubCmd1_Click()
DimIasInteger,xasInteger,yasInteger
Print “ ”;
Do
I=I+1
If IMod2=0Thenx=x+1
If IMod2=0Theny=y+1
LoopUntilI>=50
Print“被2整除的自然数的个数为”&x
Print“被3整除的自然数的个数为”&y
EndSub
23.一个富翁与陌生人做一笔金钱交易,换钱规则为:
陌生人每天给富翁10万元,直到满30天为止;富翁第一天给陌生人1分钱,第二天给2分钱,第三天给4分钱,……,富翁每天给陌生人的钱是前一天的两倍,直到满一个月。
分别显示富翁给陌生人和陌生人给富翁的钱是多少?
PrivateSubForm_Click()
DimxAsSingle,yAsDouble
x=0.01
y=0.01
Fori=2To30
x=2*x
y=y+x
Nexti
Print"陌生人付钱:
";10*30;"万元"
Print"富翁付钱:
";y;"元"
EndSub
24.猴子吃桃子。
小猴在一天摘了若干个桃子,当天吃掉一半多一个;第二天接着吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半零一个,到第7天早上要吃时只剩下一个了,问小猴那天共摘下了多少个桃子?
PrivateSubForm_Click()
Dimn%,i%
x=1 '第7天的桃子
Print"第7天的桃子数为:
1只"
Fori=6To1Step-1
x=(x+1)*2
Print"第";i;"天的桃子数为:
";x;"只"
Nexti
EndSub
25.下面程序的功能是从文本框(数组)接收由键盘输入的6个整数,找出最大数和最小数所在的位置,并把两者对调,然后输出调整后的6个数。
PrivateSubCommand1_Click()Dima%(5),max%,min%,i%,j%,k%Fori=0To5a(i)=input("请输入第"&i&"个数","输入")”)Nextimin=a(0)max=a(0)Fori=1To5If min>a(i)Thenmin=a(i)k=iEndIfIfa(i)>maxThenmax=a(i)j=iEndIfNextit=a(k):
a(k)=a(j):
a(j)=t:
Fori=0To5Printa(i);NextiEndSub
26.随机产生2位数,并排序
Dima(9)AsInteger,i%,min%,imin%,j%,t%,n
PrivateSubform_Click()
Fori=0To9
a(i)=Int(Rnd*90+10)
Nexti
n=9
Fori=0To8
imin=i
Forj=i+1Ton
Ifa(j)>a(imin)Thenimin=j
Nextj
t=a(i)
a(i)=a(imin)
a(imin)=t
Printa(i);
Nexti
EndSub
27.冒泡法排序
Optionbase1
Privatesubcommand1_click()
Dima()asinteger
Dimi%,n%,j%,temp%
n=inputbox(“请输入要排序的整数个数”,”排序数字个数”)
redima(n)asinteger
fori=1ton
a(i)=inputbox(“输入数字,每次输一个”,”输入”)
fori=1ton-1
forj=1ton-i
ifa(j)>a(j+1)then
temp=a(j)
a(j)=a(j+1)
a(j+1)=temp
endif
nextj
nexti
fori=1ton
printa(i);
nexti
endsub
28.将文本框内的数据(用逗号分割)按照从大到小的顺序显示出来
PrivateSubCommand1_Click()
Dimnum()AsString
DimminAsInteger
Dimi,jAsInteger
DimdivmumAsInteger
DimmaxmumAsInteger
divnum=0
num=Split(Text1.Text,",")
min=Val(num(0))
Fori=0ToUBound(num)
IfVal(num(i))Nexti
Fori=1Tomin
divnum=0
Forj=0ToUBound(num)
IfVal(num(j))Modi=0Thendivnum=divnum+1
Nextj
Ifdivnum=(UBound(num)+1)Thenmaxnum=i
Nexti
Text2=maxnum
EndSub
29.100元买100只鸡,母鸡3元一只,公鸡2元一只,小鸡5毛一只。
计算可以买多少只鸡。
PrivateSubForm_Click()
Dimx%,y%,z%,n&
n=0
Print"母鸡","公鸡","小鸡"
Forx=0To33
Fory=0To50
Z=100-x-y
If3*x+2*y+0.5*z=100Andx+y+z=100Then
Printx,y,z
EndIf
Nextz
Nexty
Nextx
Print"共计算了",n,"次"
EndSub
30.随机生成50~100之间的五个正整数,然后按从小到大的顺序排序。
Dima(4)AsInteger
PrivateSubCommand1_Click() '生成随机数
DimkAsInteger
Fork=0To4
a(k)=Int(Rnd()*(100-50)+50)
Picture1.Printa(k);