VB上机试题及答案_vb上机试题及答案
VB上机试题及答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“vb上机试题及答案”。
上机操作练习题
1.某数组有20个元素,其值为随机产生的两位整数。现要求将前10个元素与后10个元素对换。即第1个元素与第20个元素互换,第2个数与第19个元素互换,…,第10个元素与第11个元素互换。在窗体上输出数组原来各元素的值与对换后各元素的值。
Option explicit Dim a(1 to 20)as integer, I as integer, j as integer, t as integer Private Sub Form_Load()Show Print “原始数组是:” Randomize For i = 1 To 20
a(i)= Int(Rnd * 90)+ 10
Print a(i);If i Mod 10 = 0 Then Print Next i Print Print “现在数组是:” For i = 1 To 10
j = 211
a(k)= a(k + 1)
Next k
ReDim Preserve a(UBound(a)1 End If i = i + 1 Loop While(i
注意:要求利用动态数组,能够实现多次插入 Private Sub Form_Load()Show n = 8: ReDim a(n)a = Array(5, 15, 23, 52, 68, 88, 90, 99)n = n + 1: ReDim Preserve a(n)m = InputBox(“请输入要插入的数据:”)For i = 1 To n1)Next k a(k)= m For i = 1 To n
Print a(i);Next i Print End Sub 4.6个评委为4位歌手打分,分数介于1-100之间。去掉一个最高分,一个最低分,求出每位选手的最后得分。将4位歌手得分从高到低排列输出,同时输出该选手的编号。
如:
歌手3 95分 歌手 1 87分 歌手 4 80分 歌手 2 70分/ 19
Option Base 1
Private Type geshou
xuhao As String
fenshu(6)As Integer
score As Integer
pingjun As Integer End Type Dim singer(1 To 4)As geshou Private Sub Command1_Click()For i = 1 To 4 For j = 1 To 6
singer(i).fenshu(j)= Int(Rnd * 100)
singer(i).xuhao = “歌手” & i Next Next Call paixu End Sub
Private Sub paixu()Dim p As geshou For i = 1 To 4
For j = 1 To 5
For k = j To 6
If singer(i).fenshu(j)> singer(i).fenshu(k)Then
t = singer(i).fenshu(j)
singer(i).fenshu(j)= singer(i).fenshu(k)
singer(i).fenshu(k)= t
End If
Next
Next Next For i = 1 To 4 For j = 2 To 5
singer(i).score = singer(i).score + singer(i).fenshu(j)Next singer(i).pingjun = singer(i).score / 4 Next
For i = 1 To 3 For j = i To 4
If singer(i).score
p = singer(i): singer(i)= singer(j): singer(j)= p
End If Next/ 19
Next For i = 1 To 4 Print singer(i).xuhao & “得分:” & singer(i).pingjun Next End Sub Private Sub Form_Load()End Sub 10个评委给10个选手打分 Private Sub Form_Load()Show n = UBound(b)For i = 1 To 10
For j = 1 To 10
a(i, j)= Val(InputBox(“请第” & j & “位评委给第” & i & “位选手打分:”))Next j Next i For i = 1 To 10
max = a(i, 1): sum = 0
min = a(i, 1): ave = 0
For j = 1 To 10
If a(i, j)> max Then max = a(i, j)
If a(i, j)
sum = sum + a(i, j)
Next j
ave =(summin)/(n1
For j = i + 1 To n
If b(i)
t = b(i): b(i)= b(j): b(j)= t
End If
Next j Next i Print “选手的得分由高到低为:” For i = 1 To 10
Print b(i);Next i End Sub 5.编写函数求一元二次方程ax2+bx+c=0的解。
注意:要求考虑方程有两相等实根、两不等实根和两个虚根的情况。Dim a As Single, b As Single, c As Single Dim s As Single a = InputBox(“请输入a”)/ 19
b = InputBox(“请输入b”)c = InputBox(“请输入c”)s = b ^ 2Sqr(s))/ 2 * a End If End Sub 6.任意输入一组字符,统计出大写字母多少个,小写字母多少个,数字多少个?要求用过程实现。
Call tongji(a, n, m, o)Print “数字:” & n & Chr(13)& “小写:” & m & Chr(13)& “大写:” & o End Sub Private Sub tongji(a As String, n As Integer, m As Integer, p As Integer)For i = 1 To Len(a)If Asc(Mid(a, i, 1))> 47 And Asc(Mid(a, i, 1))
n = n + 1 ElseIf Asc(Mid(a, i, 1))> 96 And Asc(Mid(a, i, 1))
m = m + 1 ElseIf Asc(Mid(a, i, 1))> 64 And Asc(Mid(a, i, 1))
p = p + 1 End If Next End Sub 7.随机产生一个5*5的矩阵,将主对角线和次对角线元素都置为1,并求出矩阵的四周元素之和,显示在列表框中。
Option Base 1 Private Sub Form_Load()Dim a(5, 5)As Integer Dim s As Integer For i = 1 To 5 For j = 1 To 5
If i = j Or i = 6Asc(Mid(s1, i, 1))+ 64)ElseIf Asc(Mid(s1, i, 1))96 Then convert = convert & Chr(1235: g = e
For j = 1 To n
If j > i Then
a(i, j)= 0
Else
If i = j Then
a(i, j)= 1
Else
a(i, j)= a(i1, ji + 1);String(2 *(i1)/ 2 To 1 Step(-1)
c = c + 1
s = Chr(64 + ii + c + 1);String(2 *(j1)/ 2 Else
x = x / 2 End If i = i + 1 Loop
ReDim Preserve a(UBound(a))If y
/ 19
convert = convert & a(i)Next End If
End Function Private Sub Command1_Click()Dim y As Integer Text1.Text = “” y = InputBox(“请输入十进制数字”)Text1.Text = convert(y)
End Sub
Private Sub Form_Load()
End Sub 14.输入一个整数N,产生N个随机数(范围1—10*N),然后采用任何2种算法实现由小到大的排序。将排序前后的数据显示出来。
Option Base 1 Private Sub Command1_Click()Dim a()As Integer, n As Integer n = InputBox(“请输入数列项数”)ReDim a(n)For i = 1 To n
a(i)= Int(Rnd * 10 * n + 1)
Print a(i);Next Print ReDim Preserve a(n)For i = 1 To n1 For j = 1 To n2)+ fact(n2 s = s1 + s2: t = s2: s2 = s: s1 = t Next End Function
Private Sub Command2_Click()n = InputBox(“请输入n”)Print s(n)End Sub 17.编写2个函数,分别采用递归法和递推法求斐波纳契数列的第n个月的兔子数,n使用inputbox输入,调用函数的结果在窗体上显示。Private Sub Command1_Click()List1.Clear Dim i As Integer For i = Val(Text1.Text)To Val(Text2.Text)If isprime(i)= True Then
List1.AddItem(i)
c = c + 1
If i Mod 10 = 9 Then/ 19
List1.Selected(c1 If n Mod i = 0 Then
isprime = False
Exit For End If Next End Function 18 Dim sum As Long Private Sub Command1_Click()
Dim i As Integer, j As Integer, a(40)As Long
a(1)= 1
a(2)= 1
For i = 3 To 40
a(i)= a(i2)
Next i
sum = 0
For j = 1 To 40
sum = sum + a(j)
Next j End Sub
Private Sub Command2_Click()
Open “out18.txt” For Output As #1
Print #1, “数列1,1,2,3,5,8…的前四十项的之和是:”
Print #1, sum
Close #1 End Sub 1.百钱买百鸡
Option Explicit
Private Sub Command1_Click()Dim a As Integer, b As Integer For a = 1 To 34
For b = 1 To 20
If 3 * a + 5 * b +(100b)/ 3 = 100 Then/ 19
Print a;
Print b;
Print 100b
End If
Next b Next a End Sub 2.分钱作业
Private Sub Command1_Click()Dim a As Single,b as single,c as single a = Text1.Text b = Fix(a / 100)Print “100元:”;Print b c = ab * 50
b = Fix(c / 20)Print “20元:”;Print b c = c0.05 * b b = Fix((c + 0.005)/ 0.02)Print “0.02元:”;Print b c = c1
If a(i)= a(j)Then
GoTo aaa
End If
Next j
Next i For i = 1 To 10
Print a(i);Next i Print End Sub
Private Sub Command2_Click()Dim i As Integer, j As Integer, t As Integer For i = 1 To 9
For j = 1 + i To 10
If a(i)> a(j)Then
t = a(j)
a(j)= a(i)
a(i)= t
End If
Next j Next i For i = 1 To 10
Print a(i);Next i Print
End Sub
Private Sub Command3_Click()Dim i As Integer, j As Integer, t As Integer For i = 1 To 9
For j = 1 To 10c)> 10 ^(-5)i =(a + b)/ 2
If i ^ 2c = 0 Then
Exit Do
Else
a = i
End If Loop MsgBox(i)End Sub 7.闰年
Option Explicit
Private Sub 计算_Click()Dim i As Integer i = InputBox(“请输入一个年份”)If i Mod 4 = 0 And i Mod 400 = 0 Then
If i Mod 100 0 Then
MsgBox “NOT”
Else
MsgBox “YES”
End If Else
MsgBox “NOT” End If
End Sub 8.三角
Option Explicit Private Sub Command1_Click()/ 19
Dim a As Single Dim b As Single Dim c As Single Dim p As Single Dim s As Single
a = Text1.Text b = Text2.Text c = Text3.Text
p =(a + b + c)/ 2
s = Sqr((pb)* p +(p1
If n Mod i = 0 Then
MsgBox “NOT”
Exit For
End If Next i If i = n Then
MsgBox “YES” End If End Sub
Private Sub Command2_Click()
Dim a As Boolean, n As Double, i As Double a = False n = InputBox(“请输入一个数:”)For i = 2 To n-1
If n Mod i = 0 Then
a = True
Exit For
End If Next i If a = True Then/ 19
MsgBox “NOT” Else
MsgBox “YES” End If End Sub
Private Sub Command3_Click()Dim n As Double, i As Double n = InputBox(“请输入一个数:”)i = 2 Do While i
If n Mod i = 0 Then
MsgBox “NOT”
Exit Do
End If i = i + 1 Loop If i = n Then
MsgBox “YES” End If End Sub
Private Sub Command4_Click()Dim n As Double, i As Double, sushu As Boolean n = InputBox(“请输入一个数:”)i = 2 sushu = True Do While i
If n Mod i = 0 Then
sushu = False
End If i = i + 1 Loop If sushu = True Then
MsgBox “YES” Else
MsgBox “NOT” End If End Sub/ 19