15-排序-浙江省2022届高中信息技术选考选择题专项训练
排序
1.(2009A9)有如下VB程序段
For i = 1 To n - 1
For j = ①
If ② Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
为实现 n 个数的降序排序,划线处的代码应为
A.①1 To n - i ②a(j) <a(j + 1)
B.①n - i To 1 Step -1 ②a(j) <a(j + 1)
C.①1 To n - i ②a(j) >a(j + 1)
D.①n - i To 1 Step -1 ②a(j) >a(j + 1)
【答案】A
2.(2010浙江十校)11.有如下VB程序段:
For i = 1 To 2
For j = 6 To i + 1 Step -1
If a(j) Mod 10 > a(i) Mod 10 Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
End If
Next j
Next i
执行上述程序段后,下列选项中,a(l)到a(6)各元素值的是
A. 74, 83, 41, 1, 70, 10 B. 79, 46, 4, 64, 53,71
C. 16, 75, 35, 60, 54, 91 D. 49, 56, 19, 25, 82, 32
【答案】D
3.(2010浙南名校)有如下 VB 程序段:
'生成 6 个随机正整数,依次存入数组 a(1)到(6),代码略
Const n = 6
k = Int(Rnd * 3)
For i = 1 To 2
For j = 1 To n - i - k
If a(j) > a(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
End If
Next j
Next i
执行上述程序段后,下列选项中,a(1)到 a(6)各元素的值不可能是( )
A. 2,1 ,4,5,5,8 B. 5,6,7,7,9,1
C. 1,7,6,7,6,5 D. 8,5,1,2,8,8
1
【答案】C
4.(2011 9+1)下列VB程序段实现以下功能:产生 10 个 1~100 之间的随机整数存储数组 a 中,引入一个数组 b,使得 a(b(i))升序,即 a(b(1) )≤a(b(2) ) ≤a(b(3) )……≤a(b(9) )≤a(b(10) )。
For i = 1 To 10
(1)
a(i) = Int(Rnd() * 100) + 1
Next i
For i = 1 To 9
For j = 10 To i + 1 Step -1
If (2) Then t=b(j) : b(j)= b(j-1) : b(j-1)=t
Next j
Next i
上述程序段 2个划线处的代码分别为
A. (1)b(i) = i (2)a(b(j)) < a(b(j-1)) B. (1)b(i) = i (2)b(j) < b(j-1)
C. (1)b(i) = 1 (2)a(b(j)) < a(b(j-1)) D. (1)b(i) = 1 (2)b(j) < b(j-1)
【答案】A
5.(2011杭州及周边重点学校期中联考)将一组数据(共 n *n 个数),分别存放在 a(1)…a(n*n)中,通过下面程序实现 n 段有序(升序),例 如:当 n=4 时, 排序结果如图所示:
有如下 VB 程序段:
For i = 1 To n
For j = n * (i - 1) + 1 To ①
For k = ② To ③
If a(k) > a(k + 1) Then
t =a(k): a(k) = a(k + 1): a(k + 1) = t
End If
Next k
Next j
Next i
上述程序段划线处的表达式正确的是( )
1
A.① n * i – 1 ② n * (i - 1) + 1 ③ n * (2 * i - 1) – j
B.① n * (i - 1) ② n * i – 1 ③ n * i - j
C.① n * i – 1 ② n * i + j ③ n * (2 * i - 1)
D.① n * i ② n * (i - 1) + 1 ③ n * i - j
【答案】A
6.(2011湖丽衢三地联考)有如下 VB 程序段:
For i = 1 To 5
k = i
For j = i + 1 To 6
If a(j) Mod 3 <= a(k) Mod 3 Then k = j
Next j
tmp = a(i): a(i) = a(k): a(k) = tmp
Next i
数组元素 a(1)~a(6)的值依次为“62,54,35,67,15,34”。执行该程序段后,a(1)~ a(6)的值依次为
A.15 54 34 67 35 62 B.54 15 67 34 62 35
C.15 34 35 54 62 67 D.15 34 67 62 54 35
【答案】A
7.(2011稽阳)有如下VB程序段:
n = 7
For i = 1 To n \ 2
For j = n - i To i + 1 Step -1
If a(j) > a(j - 1) Then
t = a(j): a(j) = a(j - 1): a(j - 1) = t
End If
Next j
If i Mod 2 = 0 Then
t = a(n - i + 1): a(n - i + 1) = a(i): a(i) = t
End If
Next i
已知a(1)到a(7)各元素初值分别是1,2,3,4,5,6,7, 运行上述程序段后,a(1)到a(7)各元素的值分别是
A.7,5,3,1,2,4,6 B. 6,4,2,1,3,5,7
C.7,6,5,4,3,2,1 D. 6,5,2,1,3,4,7
【答案】D
8.(2011金华十校)采用冒泡排序算法对数据序列“4,7,3,2,8”完成降序排序,则需交换的次数为( )
A. 5 B. 6 C. 8 D. 10
【答案】A
9.(2011七彩阳光)对一组数据采用冒泡排序算法进行排序,若第一趟排序完成后的数据序
1