题型:综合题 题类:模拟题 难易度:困难
浙江省名校信息技术仿真训练卷(二)
实现上述功能的VB程序如下,请回答下列问题:
Dim num As Integer ‘变量num存储数据库实际的记录数
Dim book(1 to 5 000)As String
Dim content(1 To 5 000)As String,content1(1 To 5 000)As String ‘存储类别内容
Dim sales(1 To 5 000)As Long,sales1(1 To 5 000)As Long ‘存储销售量
Private Sub Form Load( )
Dim conn As New ADODB.Connection,rs As New ADODB.Recordset
Dim strSQL As String
conn. ConnectionString="Provider=Microsoft. ACE. OLEDB. 12. 0; Data Source="&App. Path&"\major. accdb"
conn. Open
strSQL="SEl.ECT*FROM count"
Set rs.ActiveConnection=conn
‘从数据表中读取图书类别、类别内容、销售量分别存储到数组book、content、sales中
‘数据库实际读取的记录数存储在变量num中
‘代码略
End Sub
Private Sub Command1_Click()
Dim m As String,n As String,c As Integer,s As Long
Dim i As Integer,j As Integer,k As Integer
List1.Clear
c=0:s=0
m=Text1.Text
For i=l To num ‘将符合的类别内容、销售量重新存储到数组content1、sales1中
If m=book(i)Then
c=c+1
content1(c)=content(i)
sales1(c)=sales(i)
‘①
EndIf
Next i
For i=1 To ‘②
List1.AddItem content1(i)&" "&Str(sales1(i))
Next i
Text2.Text=Str(s)
End Sub
①②
科目 |
政治 |
历史 |
地理 |
物理 |
化学 |
生物 |
技术 |
人数 |
193 |
151 |
112 |
186 |
167 |
103 |
179 |
设计VB程序,实现功能:将每个科目的选课人数按照选考人数降序排序后输出。其中,科目名称存放在数组a(i)中,人数存放在数组b(i)中。
程序运行界面设计如图所示,左边列表框List1是显示科目名称和选课人数,单击“排序”按钮Command1后,在右边的列表框List2中显示排序后的科目名称和选课人数。
Command1的处理事件过程如下,但加框处代码有错,请改正。
Private Sub command1_click()
Dim a(1 To 7) As String
Dim b(1 To 7) As Integer
Dim i As Integer, j As Integer, p As String, q As Integer
For i = 1 To 7
List1.AddItem a(i) + " " + Str(b(i))
Next i
For i = 1 To 6
k = i
For j = i + 1 To 7
Next j
If i <> k Then
p = a(i): a(i) = a(k): a(k) = p
End If
Next i
For i = 1 To 7
List2.AddItem a(i) + " " + Str(b(i))
Next i
End Sub
①{#blank#}1{#/blank#} ②{#blank#}2{#/blank#}
原始数据:
a(1) |
a(2) |
a(3) |
a(4) |
1 |
2 |
3 |
4 |
方法一:
①向右旋转1步:
a(1) |
a(2) |
a(3) |
a(4) |
4 |
1 |
2 |
3 |
②向右旋转2步:
a(1) |
a(2) |
a(3) |
a(4) |
3 |
4 |
1 |
2 |
③向右旋转3步:
a(1) |
a(2) |
a(3) |
a(4) |
2 |
3 |
4 |
1 |
方法二:
①将a(1)值放至旋转3个位置后位置a(4):
a(1) |
a(2) |
a(3) |
a(4) |
1 |
2 |
3 |
1 |
②将原a(4)值放至旋转3个位置后位置a(3):
a(1) |
a(2) |
a(3) |
a(4) |
1 |
2 |
4 |
1 |
③将原a(3)值放至旋转3个位置后位置a(2):
a(1) |
a(2) |
a(3) |
a(4) |
1 |
3 |
4 |
1 |
④将原a(2)值放至旋转3个位置后位置a(1):
a(1) |
a(2) |
a(3) |
a(4) |
2 |
3 |
4 |
1 |
有n个数存储在数组a中,给定一个整数p(1≤p≤n),将数组a的前p个数与后n-p个数分别向右旋转k次。例如数组a的各个数值分别是1,2,3,4,5,6,7,当p=4,k=1时,旋转后的结果为4,1,2,3,7,5,6。小明为此编写了VB程序,功能如下:在文本框Text2、Text3中依次输入p和k的值,单击“旋转数组”按钮Command1后,数组旋转后结果显示在Text4中。程序运行界面如图1所示,请回答下列问题:
图1
试题篮