VB上机考试习题以及答案.docx
《VB上机考试习题以及答案.docx》由会员分享,可在线阅读,更多相关《VB上机考试习题以及答案.docx(15页珍藏版)》请在冰点文库上搜索。
VB上机考试习题以及答案
VB上机考试
1、利用随机函数产生25个100到999之间的整数,构成55的矩阵,输出该矩阵。
Dima(1To5,1To5)
PrivateSubForm_Click()
Randomize
Fori=1To5
Forj=1To5
a(i,j)=Int(Rnd*(999-100+1)+100)
Printa(i,j);
Nextj
Print
Nexti
EndSub
2、利用随机函数产生25个10到99之间的整数,求其平均值(要求保留3位小数,第4位四舍五入)。
PrivateSubForm_Click()
Fori=1To25
a=Int(Rnd*(99-10+1)+10)
Printa;
s=s+a
Nexti
Print
Avg=s/25
PrintAvg
EndSub
3、在窗体上按下鼠标的右键,记录其坐标。
|4202820
PrivateSubForm_Load()
Label1.BorderStyle=1
Label1.Alignment=2
EndSub
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAs
Single,YAsSingle)
IfButton=2Then
Label1.Caption=X&","&Y
EndIf
EndSub
4、利用随机函数产生25个10到99之间的整数,按从小到大的顺序显示。
Dima(1
To25)
PrivateSubForm_Click()
Cis
Fori=1To25
a(i)=Int(Rnd*(99-10+1)+10)
Printa(i);
Nexti
Print
Fori=1To25-1
Forj=1To25-i
Ifa(j)>a(j+1)Thentmp=a(j):
a(j)=a(j+1):
a(j+1)=tmp
Nextj
Nexti
Fori=1To25
Printa(i);
Nexti
EndSub
5、利用随机函数产生50个[1,6]之间的整数,分别统计出1的个数,2的个
数,3的个数,4的个数,5的个数和6的个数。
Dima(1To6)
PrivateSubForm_Click()
Fori=1To6
a(i)=0
Nexti
Forj=1To50
x=Int(Rnd*(6-1+1)+1)
a(x)=a(x)+1
Nextj
Fori=1To6
Printi&"出现了"&a(i);"次"
Nexti
EndSub&在文本框中输入一些英语单词,统计空格的个数
丄|口収|
VisualBasiccompuitei'proctieI
单词的个数Kb6|统计
Dimn%,xAsString,s%
PrivateSubForm_Click()n=Len(Text1.Text)x=Text1.Text
Fori=1Ton
IfMid(x,i,1)=""Thens=s+1
Nexti
Print"共出现了"&s&"个空格"EndSub7、编程计算下列公式的值,其中n(<10)为从键盘输入的正整数。
S=1!
+3!
+5!
+……+(2*n-1)!
PrivateSubForm_Click()
n=Val(lnputBox("请输入一个不大于10的整数"))
s=0
Fori=1To2*n-1Step2
p=1
Forj=1Toi
P=P*j
Nextj
s=s+p
Nexti
Prints
EndSub8、编程计算下列公式的值,其中n(<10)为从键盘输入的正整数。
S=2!
+4!
+6!
++(2*n)!
PrivateSubForm_Click()
n=Val(lnputBox("请输入一个不大于10的整数"))
s=0
Fori=2To2*nStep2
p=1
Forj=1Toi
p=p*j
Nextj
s=s+p
Nexti
Prints
EndSub
9、用For…Next语句编程,双击窗体后,在屏幕上显示如图:
□jjcJ
1
234
56769
PrivateSubForm_Click()
a=0
Fori=1To3
PrintTab(8-2*i-1);
Forj=1To2*i-1
a=a+1
PrintStr(a);
Nextj
Print
Nexti
EndSub
10、用For…Next语句编程,双击窗体后,在屏幕上显示如图:
PrivateSubForm_DblClick()
Fori=1To3
PrintTab(11-3*i);
Forj=2To10Step2
Printj;
Nextj
Print
Nexti
EndSub
11、用For…Next语句编程,双击窗体后,在屏幕上显示如图:
□
—35
357
35T
357
57
7
PrivateSubFormClick()
Fori=1To3
x=2*i+1
PrintTab(10-3*i);
Forj=1To5
Printx;
Nextj
Print
Nexti
EndSub
12、从文本框输入一个正整数,判断该数是否为素数。
DimaAsLong
PrivateSubForm_Click()
a=Val(Text1.Text)
Ifa=2Then
Tag=True
ElseIfaMod2=0Then
Tag=False
Else
Tag=True
Fori=3ToSqr(a)Step2
IfaModi=0ThenTag=False:
ExitFor
Nexti
EndIf
IfTag=TrueThen
Printa;"是素数"
Else
Printa;"不是素数"
EndIf
EndSub
13、利用随机函数产生并显示10个3位数的正整数,找出其中的最大数
Explicit
Dimi%,max%,loc%
Dima(1To10)AsInteger
PrivateSubForm_Click()
Randomize
Form1.Cls
Fori=1To10
a(i)=Int(Rnd*(999-100+1)+100)
Printa(i)
Nexti
max=a
(1):
loc=1'变量赋值,假设a
(1)为最大数
Fori=2To10
Ifa(i)>maxThenmax=a(i):
loc=i
Nexti
Print"最大的数是";max
Print"在数组中是第";loc;"个数"
EndSub
14、利用随机函数产生并显示10个4位数的正整数,找出其中的最小数
Explicit
Dimi%,min%,loc%
Dima(1To10)AsInteger
Option
Option
PrivateSubForm_Click()
Randomize
Forml.CIs
Fori=1To10
a(i)=Int(Rnd*(9999-1000+1)+1000)
Printa(i)
Nexti
min=9999
Fori=1To10
Ifa(i)loc=i
Nexti
Print"最小的数是";min
Print"在数组中是第";loc;"个数"
EndSub
15、当按下鼠标左键时,窗体的背景色变为红色;松开鼠标左键时,窗体的背景色变为绿色。
PrivateSubForm_MouseDown(ButtonAsInteger,ShiftAs
Integer,XAsSingle,YAsSingle)
IfButton=1ThenForm1.BackColor=vbRed
ShiftAsInteger,XAsSingle.
EndSub
PrivateSubForm_MouseUp(ButtonAsInteger,YAsSingle)
IfButton=1ThenForm1.BackColor=vbGreenEndSub
16、编制一个时钟程序,如下图
PrivateSubForm_Load()Label1.BackColor=vbWhiteLabel1.BorderStyle=1Label1.Alignment=2
Timer1.Enabled=TrueTimer1.Interval=1000
EndSub
PrivateSubTimer1_Timer()
Label1.Caption=Time
EndSub
Option
17、从键盘输入10个数,按输入的顺序和按输入顺序相反的顺序输出
Explicit
Dimi%
Dima(1To10)AsSingle
PrivateSubForm_Click()
Fori=1To10
a(i)=Val(InputBox("请输入第"&i&"个数"))
Printa(i);
Nexti
Print
Fori=10To1Step-1
Printa(i);
Nexti
EndSub
OptionExplicit
Dimr%,aAsSingle
ConstpiAsSingle=3.14159
PrivateSubForm_Click()
r=Val(InputBox("请输入圆半径"&vbCrLf&"(1-9):
","输入",5))
a=pi*rA2
Print"半径为";r;"的圆面积为";a
EndSub
19、编写一个时钟程序,当选择“24小时”时,以24小时的方式显示如A,当选择“12小时”时,以12小时的方式显示如Bo
Timerl.lnterval=1000
EndSub
PrivateSubTimer1_Timer()
SelectCaseTrue
CaseOption1.Value
Label1.Caption=Time
CaseOption2.Value
Label1.Caption=Format(Time,"HH:
MM:
SSAM/PM")
EndSelect
EndSub
20、设计一个程序,用户界面如图所示。
程序运行后,用户在文本框中输入一段文字,然后按需要单击选择框,用以改变文本的字体、字型、颜色以及大小。
OptionExplicit
PrivateSubCheck1_Click()
IfCheck1.Value=1Then
Text1.FontName="黑体”
Else
Text1.FontName="宋体”
EndIf
EndSub
PrivateSubCheck2_Click()
IfCheck2.Value=1Then
Text1.FontUnderline=True
Else
Text1.FontUnderline=False
EndIf
EndSub
PrivateSubCheck3_Click()
IfCheck3.Value=1Then
Text1.FontSize=20
Else
Textl.FontSize=9
EndIf
EndSub
PrivateSubCheck4_Click()
IfCheck4.Value=1Then
Text1.ForeColor=vbGreen
Else
Text1.ForeColor=vbBlack
EndIf
EndSub
PrivateSubCommand1_Click()
Text1.Text=""
EndSub
PrivateSubCommand2_Click()
End
EndSub
20做出2个周期的正弦波形.PrivateSubForm_Click()
Dimi%,x#,y#
ConstpiAsString=3.1415926
Forml.Scale(-2*pi,1.2)-(2*pi,-1.2)
Forml.Line(-2*pi,0)-(2*pi,0)
Form1.Line(0,1.2)-(0,-1.2)
Forx=-2*piTo2*piStep0.01
y=Sin(x)
Form1.PSet(x,y)
Nextx
EndSub
21以窗体为中心,产生1000个半径颜色随机的同心圆.
PrivateSubForm_Click()
Fori=1To1000
x=Form1.ScaleWidth/2
y=Form1.ScaleHeight/2
r=Int(Rnd*y)
c=RGB(255*Rnd,255*Rnd,255*Rnd)
Form1.Circle(x,y),r,c
Next
EndSub
22.九九乘法表
PrivateSubForm_Click()
Dimi%,j%
Forml.Caption="九九乘法表"
PrintTab(48);Caption
PrintTab(48);""
Fori=1To9
Forj=1Toi
PrintTab((j-1)*12+1);i;"*";j;"=";i*j;
Nextj
Print
Nexti
EndSub
23求最大公约数和最小公倍数
PrivateSubCommand2_Click()
Text1.Text=""
EndSub
PrivateSubcommand1_Click()
Dimm%,n%,r%,t%
m=Val(Text1.Text)
n=Val(Text2.Text)
Ifmm=n:
n=t
t=m*n
Do
r=mModn
LoopUntilr=0
Text3.Caption="公约数:
"&m
Text4.Caption="公倍数"&t/m
EndSub
,最小值及所
24.用随机函数产生50个两位数,保存于一个一维数组中,要求找出其中的最大值在位置.