题型:综合题 题类:常考题 难易度:困难
浙江省台州市2020届高三上学期信息技术11月选考科目教学质量评估试卷
⑴查找相邻两个非降序数据段在未处理的数据区域中,从前往后找出第一个最长非降序数据段。若该数据段后而没有元素,则本轮处理完毕;否则在第1个数据段的后面,从前往后找出数组中第二个最长非降序数据段。
⑵合并两个数据段
借助数组tmp,将查找到的两个相邻数据段合并成一个非降序数据段,然后将合并后的数据依次存回到原数组中。
⑶若数组中还有未处理的数据,则重复⑴⑵步骤。
每一轮数据处理完毕后,重新从数组第1个数据开始进行下一轮处理。若检测到某一轮没有合并处理,则说明n个数据己构成非降序数据段,数据处理结束。
Const n As Integer = 10
Dim a(1 To n+5) As Integer
Dim tmp(1 To n + 5) As Integer
Private Sub Form_Load())
‘读取n个整数保存到数组a中,并在文本框Textl中显示,代码略。
End Sub
Function Position(low As Integer) As Integer
Dim i As Integer
For i=low To n-1
If ① Then Exit For
Next i
Position=i
End Function
Then Exit For
Function Merge() As Boolean
Dim i As Integer, flag As Boolean, p1 As Integer, p2 As Integer
Dim low1 As Integer, high1 As Integer, high2 As Integer
flag=False:low1=1
Do While lowl1<n
High1=Position(low1)
If high1=n Then Exit Do Else flag=True
high2=Position(high1+1)
p1=low1:p2=high1+1
i=low1
Do While ②
If p2>high2 Or p1<=high1 And a(p1)<a(p2) Then
tmp(i)=a(p1):p1=p1+1
Else
tmp(i)=a(p2):p2=p2+1
End If
i=i+1
Loop
For i=low1 To high2
a(i)=tmp(i)
Nexti
③
Loop
Merge=flag
End Function
Private Sub Command1_Click()
Do While True
If Not Merge() Then Exit Do
‘’在列表框List1中输出这一轮合并后的数据,代码略。
Loop
End Sub
① ② ③
例如,有如下年龄存在数组a中:
a(1) | a(2) | a(3) | a(4) | a(5) | a(6) | a(7) | a(8) | a(9) | a(10) |
20 | 19 | 18 | 19 | 15 | 12 | 15 | 20 | 17 | 19 |
利用一个数组b(b(10 To 20))记录每个数出现的次数:
b(10) | b(11) | b(12) | b(13) | b(14) | b(15) | b(16) | b(17) | b(18) | b(19) | b(20) |
0 | 0 | 1 | 0 | 0 | 2 | 0 | 1 | 1 | 3 | 2 |
根据数组b对数组a进行排序:
a(1) | a(2) | a(3) | a(4) | a(5) | a(6) | a(7) | a(8) | a(9) | a(10) |
12 | 15 | 15 | 17 | 18 | 19 | 19 | 19 | 20 | 20 |
Dim a(10000) As Integer ‘存放读入的年龄数据
Dim b(100) As Integer ‘存放各个年龄出现的个数
Private Sub Command1_Click()
‘从数据库读入年龄数据放入数组a中
End Sub
Private Sub Command2_Click()
For i = 1 To 100
b(i) = 0
Next i
For i = 1 To 10000 ‘统计每个年龄数据的个数
①
Next i
End Sub
Private Sub Command3_Click()
j = 0
For i = 1 To 100
If b(i) <> 0 Then
Do While b(i) <> 0
②
a(j) = i
‘③
Loop
End If
Next i
For i = 1 To 10000
List2.AddItem Str(a(i))
Next i
End Sub
试题篮