VISUAL BASIC程序设计上机考试试题及答案
- 格式:pdf
- 大小:115.02 KB
- 文档页数:10
1.某数组有20个元素,其值为随机产生的两位整数。现要求将前10个元素与后10个元素对换。即第1个元素与第20个元素互换,第2个数与第19个元素互换,…,第10个元素与第11个元素互换。在窗体上输出数组原来各元素的值与对换后各元素的值。
Option Explicit
Dim a(1To20)As Integer,i As Integer,j As Integer,t As Integer
Private Sub Form_Load()
Show
Print"原始数组是:"
Randomize
For i=1To20
a(i)=Int(Rnd*90)+10
Print a(i);
Next i
Print"现在数组是:"
For i=1To10
j=21-i
t=a(i):a(i)=a(j):a(j)=t
Next i
For i=1To20
Print a(i);
Next i
End Sub
2.从数组中删除一个数。先定义一个一维数组,大小、数组的值自定。从键盘上输入一个数,若这个数在数组当中,就把它删除;若这个数不在数组中,提示“该数不在数组中”
注意:1)如果数组中存在多个与该数相同的元素,每一个都能删除;
2)能实现多次删除
Option Explicit
Dim a()As Integer,i As Integer,j As Integer,n As Integer,k As Integer,m As Integer
Dim f As Boolean
Private Sub Command1_Click()
n=InputBox("查找的数是:","请输入")
i=0:f=False
Do
If a(i)=n Then
j=i:f=True
For k=j To UBound(a)-1
a(k)=a(k+1)
Next k
ReDim Preserve a(UBound(a)-1)
i=i-1
End If
i=i+1
Loop While(i<=UBound(a))
If f=False Then
MsgBox n&"不在该数组中"
Else
Print"删除"&n&"后的数组是:"
For i=0To UBound(a)
Print a(i);
Next i
End If
End Sub
Private Sub Form_Load()
Show
ReDim a(9)As Integer
m=1
Print"原来数组为:"
For i=0To9
a(i)=InputBox("请输入第"&m&"个数:")
Print a(i);
m=m+1
Next i
End Sub
3.数组a中存放着升序排列的数据,使用array赋值,将inputbox输入的新数插入到数组中,插入后数组仍有序。
注意:要求利用动态数组,能够实现多次插入
Option Explicit
Dim a()As Variant,i As Integer,n As Integer,j As Integer,b As Integer,c As Integer
Private Sub Command1_Click()
ReDim Preserve a(c+1)
n=InputBox("插入的数是","请输入")
For i=0To c
b=n-a(i)
If b<=0Then
For j=c+1To i+1Step-1
a(j)=a(j-1)
Next j
a(i)=n
Exit For
End If
Next i
If i=c+1Then a(c+1)=n
For i=0To c+1
Print a(i);
Next i
c=UBound(a)
End Sub
Private Sub Form_Load()
Show
ReDim a(9)
a=Array(3,6,9,11,15,19,33,44,56,67)
c=UBound(a)
For i=0To c
Print a(i);
Next i
End Sub
4.6个评委为4位歌手打分,分数介于1-100之间。去掉一个最高分,一个最低分,求出每位选手的最后得分。将4位歌手得分从高到低排列输出,同时输出该选手的编号。
如:歌手395分
歌手187分
歌手480分
歌手270分
Option Explicit
Dim a(4)As Integer,m(4)As Integer,i As Integer,j As Integer,t As Integer,min As Integer,max As Integer, p As Integer
Dim s(4)As Integer
Private Sub Form_Load()
Show
For i=1To4
s(i)=0
min=100:max=1
For j=1To6
a(i)=InputBox("第"&j&"个评委给"&i&"打分1-100")
s(i)=s(i)+a(i)
If a(i)>max Then max=a(i)
If a(i) Next j a(i)=(s(i)-min-max)/4 m(i)=a(i) Next i For i=1To3 p=i For j=i+1To4 If a(j)>a(p)Then p=j Next j t=a(i):a(i)=a(p):a(p)=t Next i For i=1To4