For i=1 To 5
f(i)=False
Next i
For i=1 To 4
k=i
For j=5 To i+1 Step-1
If a(j)<a(k) Then
k=j
End If
Next j
If k<>I Then
tmp=a(k); a(k)=a(i); a(i)=tmp
f(i)=True
End If
Next i
当数组元素a(1)到a(5)的值依次为“8,2,1,21,3”,执行该程序段,f数组中元素值为True的个数有( )
A.1个
B.2个
C.3个
D.4个
【答案】:C
【本题解析】
本题考查选择排序。题目问的是f数组中值为True的个数,根据程序可知,f数组中初值都为False,如果发生交换则将f(i)所对应的值改为True,根据所给的数组中5个元素,按照选择排序算法执行,共交换了3次,故C项正确。