VB上机考试 习题以及答案
VB上机考试
1、利用随机函数产生25个100到999之间的整数,构成55的矩阵,输出该矩阵。Dim a(1 To 5, 1 To 5)
Private Sub Form_Click()
Randomize
For i = 1 To 5
For j = 1 To 5
a(i, j) = Int(Rnd * (999 - 100 + 1) + 100)
Print a(i, j);
Next j
#
Next i
End Sub
2、利用随机函数产生25个10到99之间的整数,求其平均值(要求保留3位小数,第4位四舍五入)。Private Sub Form_Click()
For i = 1 To 25
a = Int(Rnd * (99 - 10 + 1) + 10)
Print a;
s = s + a
Next i
!
Avg = s / 25
Print Avg
End Sub
3、在窗体上按下鼠标的右键,记录其坐标。
Private Sub Form_Load()
= 1
= 2
End Sub
!
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 2 Then
= X & "," & Y
End If
End Sub
4、利用随机函数产生25个10到99之间的整数,按从小到大的顺序显示。Dim a(1 To 25)
Private Sub Form_Click()
Cls
For i = 1 To 25
a(i) = Int(Rnd * (99 - 10 + 1) + 10)
*
Print a(i);
Next i
For i = 1 To 25 - 1
For j = 1 To 25 - i
If a(j) > a(j + 1) Then tmp = a(j): a(j) = a(j + 1): a(j + 1) = tmp
Next j
Next i
For i = 1 To 25
Print a(i);
\
Next i
End Sub
5、利用随机函数产生50个[1,6] 之间的整数, 分别统计出1的个数,2的个数,3的个数,4的个数,5的个数和6的个数。Dim a(1 To 6)
Private Sub Form_Click()
For i = 1 To 6
a(i) = 0
Next i
For j = 1 To 50
{
x = Int(Rnd * (6 - 1 + 1) + 1)
a(x) = a(x) + 1
Next j
For i = 1 To 6
Print i & "出现了" & a(i); "次"
Next i
End Sub
】
6、在文本框中输入一些英语单词,统计空格的个数。
Dim n%, x As String, s% Private Sub Form_Click()
n = Len
x =
For i = 1 To n
If Mid(x, i, 1) = " " Then s = s + 1
Next i
Print "共出现了" & s & "个空格"
End Sub
/
7、编程计算下列公式的值,其中n (<10)为从键盘输入的正整数。
S=1!+3!+5!+……+(2*n-1)!Private Sub Form_Click()
n = Val(InputBox("请输入一个不大于10的整数"))
s = 0
For i = 1 To 2 * n - 1 Step 2
p = 1
For j = 1 To i
p = p * j
Next j
】
s = s + p
Next i
Print s
End Sub
8、编程计算下列公式的值,其中n (<10)为从键盘输入的正整数。
S=2!+4!+6!+……+(2*n)!Private Sub Form_Click()
n = Val(InputBox("请输入一个不大于10的整数"))
s = 0
For i = 2 To 2 * n Step 2
<
p = 1
For j = 1 To i
p = p * j
Next j
s = s + p
Next i
Print s
End Sub
9、用For …Next语句编程,双击窗体后,在屏幕上显示如图:\
Private Sub Form_Click()
a = 0
For i = 1 To 3
Print Tab(8 - 2 * i - 1);
For j = 1 To 2 * i - 1
a = a + 1
Print Str(a);
Next j
Next i
|
End Sub
10、用For …Next语句编程,双击窗体后,在屏幕上显示如图:
Private Sub Form_DblClick()
For i = 1 To 3
Print Tab(11 - 3 * i);
For j = 2 To 10 Step 2
Print j;
Next j
Next i
(
End Sub
11、用For …Next语句编程,双击窗体后,在屏幕上显示如图:
Private Sub Form_Click()
For i = 1 To 3
Print Tab(10 - 3 * i);
For j = 1 To 5
Print x;
-
Next j
Next i
End Sub
12、从文本框输入一个正整数,判断该数是否为素数。Dim a As Long
Private Sub Form_Click()
a = Val
If a = 2 Then
Tag = True
ElseIf a Mod 2 = 0 Then
@
Tag = False
Else
Tag = True
For i = 3 To Sqr(a) Step 2
If a Mod i = 0 Then Tag = False: Exit For
Next i
End If
If Tag = True Then
Print a; "是素数"
Else
@
Print a; "不是素数"
End If
End Sub
13、利用随机函数产生并显示10个3位数的正整数,找出其中的最大数。Option Explicit
Dim i%, max%, loc%
Dim a(1 To 10) As Integer
Private Sub Form_Click()
Randomize
~
For i = 1 To 10
a(i) = Int(Rnd * (999 - 100 + 1) + 100)
Print a(i)
Next i
max = a(1): loc = 1 '变量赋值,假设a(1)为最大数
If a(i) > max Then max = a(i): loc = i
Next i
Print "最大的数是"; max
Print "在数组中是第"; loc; "个数"
,
End Sub
14、利用随机函数产生并显示10个4位数的正整数,找出其中的最小数。Option Explicit
Dim i%, min%, loc%
Dim a(1 To 10) As Integer
Private Sub Form_Click()
Randomize
For i = 1 To 10
a(i) = Int(Rnd * (9999 - 1000 + 1) + 1000)
Print a(i)
,
Next i
min = 9999
For i = 1 To 10
If a(i) < min Then min = a(i): loc = i
Next i
Print "最小的数是"; min
Print "在数组中是第"; loc; "个数"
End Sub
15、当按下鼠标左键时,窗体的背景色变为红色;松开鼠标左键时,窗体的背景色变为绿色。Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then = vbRed
…
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then = vbGreen
End Sub
16、编制一个时钟程序,如下图
:Option Explicit
Private Sub Form_Load()
|
= vbWhite
= 1
= 2
= True
= 1000
End Sub
Private Sub Timer1_Timer()
= Time
End Sub
:
17、从键盘输入10个数,按输入的顺序和按输入顺序相反的顺序输出。Option Explicit
Dim i%
Dim a(1 To 10) As Single
Private Sub Form_Click()
For i = 1 To 10
a(i) = Val(InputBox("请输入第" & i & "个数"))
Print a(i);
Next i
For i = 10 To 1 Step -1
|
Print a(i);
Next i
End Sub
18、计算圆面积的程序。程序运行时,单击窗体,然后在下图所示的输入框中输入圆的半径,即可在窗体上显示计算出的圆面积。
Option Explicit
Dim r%, a As Single
Const pi As Single =
Private Sub Form_Click()
《
r = Val(InputBox("请输入圆半径" & vbCrLf & "(1-9):", "输入", 5))
a = pi * r ^ 2
Print "半径为"; r; "的圆面积为"; a
End Sub
19、编写一个时钟程序,当选择“24小时”时,以24小时的方式显示如A,当选择“12小时”时,以12小时的方式显示如B。
Private Sub Form_Load()
= 1000
End Sub
Private Sub Timer1_Timer()
!
Select Case True
Case
= Time
Case
= Format(Time, "HH:MM:SS AM/PM")
End Select
End Sub
20、设计一个程序,用户界面如图所示。程序运行后,用户在文本框中输入一段文字,然后按需要单击选择框,用以改变文本的字体、字型、颜色以及大小。Option Explicit
/
Private Sub Check1_Click()
If = 1 Then
= "黑体"
Else
= "宋体"
End If
End Sub
Private Sub Check2_Click()
If = 1 Then
.
Else
= False
End If
End Sub
Private Sub Check3_Click()
If = 1 Then
= 20
Else
;
= 9
End If
End Sub
Private Sub Check4_Click()
If = 1 Then
= vbGreen
Else
= vbBlack
-
End If
End Sub
Private Sub Command1_Click()
= ""
End Sub
Private Sub Command2_Click()
End
End Sub
:
20做出2个周期的正弦波形. Private Sub Form_Click()
Dim i%, x#, y#
Const pi As String =
(-2 * pi, -(2 * pi,
(-2 * pi, 0)-(2 * pi, 0)
(0, -(0,
For x = -2 * pi To 2 * pi Step
y = Sin(x)
(x, y)
Next x
,
21以窗体为中心,产生1000个半径颜色随机的同心圆. Private Sub Form_Click()
For i = 1 To 1000
x = / 2
y = / 2
r = Int(Rnd * y)
c = RGB(255 * Rnd, 255 * Rnd, 255 * Rnd)
(x, y), r, c
{
Next
End Sub
22.九九乘法表
Private Sub Form_Click()
Dim i%, j%
= "九九乘法表"
Print Tab(48); Caption
Print Tab(48); "-------------"
For i = 1 To 9
For j = 1 To i
Print Tab((j - 1) * 12 + 1); i; "*"; j; "="; i * j;
Next j
Next i
End Sub
23求最大公约数和最小公倍数
Private Sub Command2_Click()
= ""
End Sub
Private Sub command1_Click()
Dim m%, n%, r%, t%
m = Val
n = Val
If m < n Then t = m: m = n: n = t
t = m * n
Do
r = m Mod n
m = n
n = r
Loop Until r = 0
= "公约数:" & m
= "公倍数" & t / m
24.用随机函数产生50个两位数,保存于一个一维数组中,要求找出其中的最大值,最小值及所在位置.
(