经典算法程序实现11(选择法排序:变形)含答案

选择法排序变形2018

班级:________姓名:_________得分:

1.有6位裁判为运动员评分,给出的分数分别

为49,45,61,46,58,57。采用选择排序算法

对其进行排序,若完成第一遍时的结果为61,45,

49,46,58,57,则完成第二遍时的结果是()

A.61,45,49,46,58,57

B.61,58,57.49,45,46

C.61,58,57,46,45,49

D.61,58,49,46,45,57

2.将数组a中的8个数据“18,33,5,26,86,0,60,200”按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换的次数是()

A.4 B.5 C.6 D.7

3.有VB程序段如下:

For i=5To1 Step -1 ‘①

k=i

For j=6-ITo1Step-1 ‘②

If a(j)

Next j

If i<>k Then

t=a(i):a(i)=a(k):a(k)=t

End If

Next i

修改程序中画线语句后,可实现数组中的数降序

排序的是()

A.将③处语句修改为a(j)>a(k)

B.将②处语句修改为i﹣1 To 1 Step﹣1

C.将②处语句修改为6﹣i To i

D.将①处语句修改为1 To 5

4.有如下VB程序段:

Dim a(1To 5)As String

a(1)=“400“:a(2)=“33“:a(3)=“44“a(4)=“300“:a(5)=“8“

For i=1To 3

Forj=5To i+1Step﹣1

If a(j)>a(i) Then

t=a(j):a(j)=a(i):a(i)=t End If

Next j

Next i

该程序段运行后,数组元素a(1)到a(5)的依次为()

A.400 300 44 33 8

B.8 44 400 33 300

C.33 300 400 44 8

D.8 44 400 300 33

5.某VB程序段如下:

i=1

Do While i<=3

min=i

j=i+1

Do While j<=6

If a(j)<a(min)Then min=j j=j+1

Loop

If i<>min Then

tmp=a(i)

a(i)=a(min)

a(min)=tmp

End If

i=i+1

Loop

数据元素a(1)到a(6)的值依次为“7,8,3,9,6,2”,则该程序段运行后,数组元素a(1)到a(6)的数据依次是()

A.9,8,7,3,6,2

1 / 2

B.2,3,6,7,8,9

C.2,3,6,9,8,7

D.9,8,7,6,3,2

6.某排序算法的VB程序段如下:

For i=0To 9

Max=a(i)

For j=i To 9

If a(j)>Max Then

Max=a(j)

t=a(i):a(i)=a(j):a(j)=t End If

Next j

Next i

数组元素a(0)到a(9)的值依次为“25,64,15,40,74,80,27,65,84,53”.若该程序执行外层循环1次后得到的结果是()A.84 80 74 65 64 53 40 27 25 15

B.85 25 15 40 64 74 27 65 80 53

C.64 25 15 40 74 80 27 65 84 53

D.74 25 15 40 64 80 27 65 84 53

7.有如下程序段:

Count=0

For i=1 To 4

For j=5 To i+1 Stop﹣1

If a(j)>a (i) Then

Count=Count+1

t=a(j):a(i)=a(i):a(i)=t

End If

Next j

Next i

数组元素a(1)到a(5)的值依次为“63,14,12,26,81”,经过该程序段“加工”后,变量count 的值为()

A.2 B.3 C.4 D.5

8.某同学用VB编制了一段程序,想实随机产生10个10﹣100之间的整数,然后在列表框List1中按照从小到大的顺序输出.但是该同学在关键处出现问题,你能否帮他把程序补充完整.请在程序段划线处①②③④填上合适的语句.

Private Sub Command1_Click

Dim a(10)As Integer

Randomize

For i=1To 10

a(i)= _①__

Next i

For i=1To 9

For _②__ To 10

If a(i)>a(j) Then

r=a(i)

__③___

a(j)=r

End If

Next j

Next i

For i=1To 10

____④____

Next i

End Sub.

1.D

2.B

3.B

4.A

5.C

6.B

7.C 8①int(rnd*91)+10 ②j=j+1

③a(i)=a(j) ④List1.AddItemStr(a(i))

2 / 2

相关文档
最新文档