题型:综合题 题类:常考题 难易度:困难
浙江省台州市2017-2018学年高三上学期信息技术期末质量评估卷
该程序采用两种查询方式:
⑴按的汽车的排量查询信息
在文本框Text1中输入需要的汽车的排量,单击Command1按钮,在列表框List1中显示等于该排量汽车的相关车辆信息。
⑵按车主查询信息
在文本框Text1中输入车主信息(手机号码或姓名),单击Command2按钮,在列表框List1中显示车辆信息。
该程序运行时的界面如图2所示。
实现上述功能的VB程序如下,请回答下列问题:
Dim id(1 To 1 000)As Integer ‘存储记录的ID
Dim s(1 To 1 000)As String ‘存储车牌号
Dim D(1 To 1 000)As Single ‘存储排量
Dim cz(1 To 1 000)As String ‘存储车主信息
Dim zt(1 To 1 000)As String ‘存储车辆状态
Dim n As Integer,key As String
Private Sub Form_Load()
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
conn.ConnectionString=“provider=Microsoft.Jet.OLEDB.4.0;Data Source=“+App.Path+”\car.mdb”
conn.Open
Set rs.ActiveConnection=conn
Dim sq1 As String
sq1=”SELECT*FROM qicheinfo”
rs.Open sq1
rs.MoveFirst
Do While Not rs.EOF
n=n+1
id(n)=rs.Fields(“ID”):s(n)=rs.Fields(“车牌号”)
p(n)=rs.Fields(“排量”):cz(n)=rs.Fields(“车主”)
zt(n)=rs.Fields(“状态”)
rs.MoveNext
Loop
End Sub
‘按排量查询车辆信息
Private Sub Command1_Click()
key=Val(Text1.Text)
If px(1)=True Then
List1.Clear
x=0
For i=1 To n
If p(i)>=key Then
List1.AddItem id(i)&“”& s(i)&“”&.p(i)&“”&.cz(i)
&“”& zt(i)
①
End If
Next i
If x>0 Then
List1.AddItem“共找到”+Str(x)&.”条记录!”
Else
List1.Additem”没找到相关信息!¨
End If
End If
End Sub
‘按车主信息查询车辆信息
Private Sub Command2_Click()
List1.Clear
Key=Text1.Text
If px(2) Then
i=chazhao(key)
If i>0 Then
List1.AddItem id(i) &””& s(i) &””&p(i)&””& cz(i)” &”
“&.zt(i)
Else
List1.AddItem”没找到相关信息!”
End If
End If
End Sub
Private Function px(m As Integer)As Boolean
Dim flag As Boolean
If m=1 Or m=2 Then
px=True
flag==False
For pa=1 To n-1
For pb=n To pa+1 Step-l
If m=1 Then flag=p(pb) <p(pb-1)
If m=2 Then flag=cz(pb)<cz(pb-1)
If flag Then
tid=id(pb):id(pb)=id(pb-1):id(pb-1)=tid
ts=s(pb):s(pb)=s(pb-1):s(pb-1)=ts
tp=p(pb):p(pb)=p(pb-1):p(pb-1)=tp
tz=cz(pb):cz(pb)=cz(pb-1):cz(pb-)=tz
tzt=zt(pb):zt(pb)=zt(pb-1):zt(pb-1)=tzt
②
End If
Next pb
Next pa
Else
px=False
End If
End Function
Private Function chazhao(key As String)As Integer
Dim mk As Integer
I=1:j=n
Do While i<j
mk=(i+j)\2
If cz(mk)=key Then
③
Exit Do
Elself key<cz(mk)Then
j=mk-1
Else
i=mk+1
End If
Loop
End Function
① ② ③
①两位D组裁判分别打“难度分”,取平均值作为该参赛选手的最终难度分。
②五位E组裁判分别打“完成分”,在5个E组打分结果中,去掉一个最高分和一个最低分,然后取平均值作为该参赛选手的最终完成分。
③难度分和完成分之和,即该参赛选手的最终得分。
例如:某参赛选手打分如下:
D组裁判打分 |
E组裁判打分 |
|||||
6.5 |
6.9 |
9.5 |
9.0 |
8.3 |
8.8 |
7.6 |
该选手“难度分”为(6.5+6.9)/2=6.7。E组裁判打分去掉一个最高分和一个最低分之后,计算“完成分”为(9.0+8.3+8.8)/3=8.7。所以该选手最终得分为6.7+8.7=15.4分。
小杜编写一个VB程序:程序运行时从数据库读取参赛选手人数和参赛选手的打分数据,依次存储在数组a中;单击“统计”按钮,依据数组a中的相关数据统计各选手的“难度分”“完成分”和“最终得分”,并在列表框List1中输出。数组a各元素的含义如下,程序运行界面如图所示。
数组元素 | 数组元素的含义 |
a(0) | 存储参赛人数n |
a(1) | a(1)和a(2)为第1位选手的D组两位裁判的打分。 a(3)、a(4)、…、a(7)为第1位选手的E组五位裁判的打分 |
… | |
a(7) | |
a(8) | a(8)和 a(9)为第2位选手的D组两位裁判的打分。 a(10)、a(11)、…、a(14)为第2位选手的E组五位裁判的打分 |
… | |
a(14) | |
… | … |
实现上述功能的VB程序如下,请回答下列问题:
1 | 5 | 7 | 9 |
4 | 6 | 10 | 15 |
8 | 11 | 12 | 19 |
14 | 16 | 18 | 21 |
已知数据逐行存储在数组a中,在杨氏矩阵数组中查找某数字是否存在的VB程序段如下:
cz = False : i = 1 : j = n
Do While j >= 1 And i <= n
If key < a(s) Then
⑵
ElseIf key > a(s) Then
⑶
Else
cz = True:Exit Do
End If
Loop
方框中的代码由以下三部分组成:
①j = j - 1
②s = (i - 1) * n + j
③i = i + 1
代码顺序正确的选项是( )
试题篮