01.自编练习之冒泡排序(一)公开课.docx
天台中学高二信息技术自编练习冒泡排序(一)编者:蒋潮侃一、选择题注:选择题答案请填入对应方格内1.有7个数据依次存放在数组a (1)到a (7)中,使用如下程序段对7个数据从大到小排序123456789101112For i = 1 to 6For j = 7toi + 1 step -1If thentemp = a(j) :a(j)=a(j-l) :a(j-l)=temp End IfNext jNext i那么程序中划线处内容为()A、a(j) < a(j+l) B、a(j) < a(j-l) C> a(j) > a(j+l) D、a(j)>a(j-l)2. 7个数据21、12、13、17、16、15、20依次存放在数组a (1)到a (7)中,使用如下程序段 对7个数据进行从小到大的排序,程序段运行后,文本框Textl中显示的内容为()k=0For i = 1 to 6For j = 7 to i + 1 step -1If a(j) < a(j-l) thentemp = a(j) :a(j)=a(j-l) :a(j-l)=temp k = k+1End IfNext jNext iTextl.text = str(k)A、 7 B、 8 C、 9 D、 103.7个数据21、12、13、17、16、15、20依次存放在数组a (1)到a (7)中,使用如下程序段 对7个数据进行从小到大的排序,那么程序段运行后数组a (1)到a (7)中数据依次为()For i = 1 to 3For j = 7 to i + 1 step -1If a(j) < a(j-l) thentemp = a(j) :a(j)=a(j-l) :a(j-l)=temp End IfNext j Next iA、 12、 13、 15、 16、 17、 20、 21B、 12、 13、 15、 21、 16、 17、 20C、 21、 20、 17、 16、 15、 13、 12D、 21、 20、 17、 16、 12、 13、 154.数组元素a (1)到a (5)的值依次为“70, 50, 60, 20, 30”,经过该程序段“加工”后,数组元素a (1)到a (5)的值依次为()For i = 1 to 2For j = 1 to 5-iIf a(j) > a(j+l) thentemp = a(j) :a(j)=a(j+l) :a(j+l)=tempEnd IfNext jNext iA、 20, 30, 50, 60, 70B、 70, 60, 50, 30, 20C、 50, 20, 30, 60, 70D、 50, 60, 20, 30, 705 .数组元素a (1)到a (6)的值依次为“52, 6, 39, 47, 15, 21”,经过该程序段“加工” 后,数组元素a (1)到a (6)的值依次为()For i = 1 to 2For j = 1 to 6-iIf a(j) > a(j+l) thentemp = a(j) :a(j)=a(j+l) :a(j+l)=tempEnd IfNext jNext iA、6, 39, 15, 21, 47, 52B、6, 15, 21, 39, 47, 52C、6, 15, 39, 21, 47, 52I)、6, 21, 39, 15, 47, 526 .有以下VB程序段,a (1)到a (6)的值依次为“8, 6, 5, 7, 9, 3”,经过该程序段“加 工”后,列表框Listl中显示的是()For i = 1 to 3For j = i to 5If a(j) > a(j+l) thentemp = a(j) :a(j)=a(j+l) :a(j+l)=tempEnd IfNext jListl. Additem Str(a(i)Next iA、 8, 7, 6 B、 8, 7, 9 C、 6, 5, 3 D、 5, 6, 7.以下VB程序段的功能是对a数组(下标范围为1 to n)中的数据进行升序排列,那么程序 中划线对应填入的正确语句是()For i = For j = 1 to i-lIf a(j) > a(j+l) thentemp = a(j) :a(j)=a(j+l) :a(j+l)=tempEnd IfNext jNext iA> n to 2 step -1 B> 2 to n C、 n-l to 1 step -1 D、 1 to n-l.实现某排序算法的局部VB程序如下,在经过某一遍“加工”后,数组元素a (1)到a (5) 的值依次为“28, 70, 53, 57, 30”。那么下一遍排序“加工”后数组元素a (1)到a (5)的数据应该是()For i = 1 to 4For j = 5 to i+1 step -1If a(j) < a(j-l) then temp = a(j) :a(j)=a(j-l) :a(j-l)=tempNext jNext iA、28, 30, 70, 53, 57 B、28, 30, 53, 57, 70 C、28, 30, 57, 53, 70 D、28, 30, 53, 70, 57.有以下VB程序段,a (1)到a (6)的值依次为“ 1, 5, 7, 6, 9, 3”,经过该程序段“加工”后, 列表框Listl中显示的是()For i = 1 to 3For j = 5 to i step -1If a(j) < a(j+l) thentemp = a(j) :a(j)=a(j+l) :a(j+l)=tempEnd IfNext jListl. Additem Str(a(i)Next iA、9, 7, 6 B、1, 3, 5 C、9, 7, 6, 1, 5, 3 D、9, 7, 6, 5, 3, 1.有如下VB程序段,执行程序后,a数组各元素可能是()For i = 1 to 6a(i)=Int (Rnd() *10)+1If a(i) Mod 2 <> i Mod 2 Then i=i -1Next iFor i = 1 to 5For j = 6 to i+2 Step -1If a(j) < a(j-2) thentemp = a(j) :a(j)=a(j-2) :a(j-2)=tempEnd IfNext jNext iA、1,2, 3, 4, 5, 6 B、1,0,3, 6,5,8 C、3,2, 7, 6, 11,8 D、2, 1,4, 3, 10,9.有以下VB程序段,数组元素a (1)到a (5)的值依次为"48,36,78, 18,15",经过该程序 段“加工”后,数组元素a (1)到a (5)的值依次为()For i = 1 to 2For j = 1 to 5-iIf a(j) > a(j+l) thentemp = a(j) :a(j)=a(j+l) :a(j+l)=tempEnd IfNext jNext iA、36, 15, 18, 48,78 B、36, 18, 15, 48, 78 C、15, 18,36,48, 78 D、15, 18,48,36, 78.有以下VB程序段,a (1)到a (6)的值依次为“9, 4, 8, 7,2,5”,经过该程序段“加工”后, 列表框Listl中显示的内容是()For i = 1 to 4For j = 6 to i + 1 step -1If a(j) < a(j-l) then temp = a(j) :a(j)=a(j-l) :a(j-l)=temp Next jNext is 二“For i = 1 to 6s = s + Str(a(i) Next iListl. Additem sA、2, 9, 4, 8, 7, 5 B、2,4, 5, 9, 7,8 C、2, 4, 9, 5, 8, 7 D、2,4, 5, 7, 9,8二、程序题13.对班级学生进行排队,要求分别对男女生按身高进行升序排序,排序后男生在前,女生在后。 排序实例如下:排序前男女女男女男男男女女180161165176160185188170171166排序后男男男男男女女女女女170176180185188160161165166171实现上述功能的VB程序如下,但虚线框处代码有错误,请改正。Dim a(l To n) As Integer, b(1 To n) As StringConst n = 20Private Sub Commandl_Click()Dim s As String, i As Integer, j As IntegerDim tl As Integer, t2 As String'读取身高和性别数据,分别存储在数组a和数组b中,代码略For i = 1 To n - 1For j = n To i + 1 Step -1_ b(j) + b(j - 1)s _ Ifa(j - 1) > a(j)Then=a(j) : a(j) = tl=b(j) : b(j) = t2tl = a(j - 1) : a(j - 1) t2 = b(j - 1) : b(j - 1)Elself s = 女男 Thena(j) : a(j)= tlb(j) : b(j) = t2tl = a(j - 1) : a(j - 1) t2 = b(j - 1) : b(j - 1)End IfNext jNext i'依次输出排序后的数据,代码略End Sub