试题

试题 试卷

logo

题型:单选题 题类:常考题 难易度:普通

浙江省之江教育评价2020-2021学年高三下学期信息技术返校联考试卷

采用选择排序算法对某数据序列进行排序,经过第一轮排序后的结果是“2,8,3,7,5,6,9”,那么原数据序列不可能是(    )
A、3,8,2,7,5,6,9 B、5,8,3,7,2,6,9 C、8,3,2,7,5,6,9 D、2,8,9,7,5,6,3
举一反三
【加试题】某校举行班班有歌声比赛,参赛班级的成绩按照班级序号保存在“bbygs.accdb”数据库文件中,为了快速计算每个班级最终的分,设计了一个VB程序,该程序能够将8个评委的打分按照从高到低的顺序排序,然后去掉一个最高分和一个最低分,最后计算平均值作为参赛班级的成绩。程序界面如图:单击“提取”按钮Command1,在列表框list1中显示班级序号和该班级8个评委的打分成绩,单击“排序”按钮Command2后,在列表框list2中按降序排序。单击计算得分按钮Command3,在文本框text1中显示最终成绩。按此要求编写程序如下:

Dim class(1 To 30) As Integer '存放班级序号的数组定义为class

Dim score(1 To 8) As single '存放班级各评委打分的数组定义为score

Private Sub Formload()      '提取某班级的评委打分

   Dim conn As New ADODB.Connection

Dim rs As New ADODB.Recordset

   conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + App.Path + "\bbygs.accdb "

   conn.Open

   Set rs.ActiveConnection = conn

   rs.Open "SELECT * FROM score " 

   n = 0

Do While Not rs.EOF   '到最后一条记录后退出循环

   n = n + 1

   class (n) = rs.Fields("班级序号").Value

   score (n) = rs.Fields("评委打分").Value

   rs.MoveFirst      '①指针移动到下一条记录

Loop

rs.Close

cn.Close

Set rs = Nothing

Set cn = Nothing

for i=1 to n

    List1.AddItem str(score(i))

Next i

End sub

Private Sub Command1Click()  

Dim i as integer

Dim j as integer

Dim t as single

For i = 1 to 8

  For j=1 to i

    If   ②  then  

t=score(j) 

score(j)=score(j+1)

score(j+1)=t

End if

  Next j

Next i

For i=1 to 8

   List2.AddItem str(score(i))

Next i

End sub

Private Sub Command2Click()   '计算班级平均得分

Dim i As Integer

Dim sum As single

For i=2 to 7

   sum=sum+score(i)

Next i

Text1.text=  ③ 

End sub

学校需要统计学生的作业完成数,需要将学生的完成数按从高到低显示,下列程序模拟该信息处理过程,程序在数据库stud中找到的学生信息(编号和完成次数),并将所有学生按照完成数从高到低显示。先将所有学生的编号和完成次数从数据库stud的info表中ID和finshed两字段中取出分别保存在数组a和数组b中,第i个学生的编号保存在a(i)中,对应的作业完成次数保存在b(i)中。

数据库文件“stud. accdb”信息如图所示。

程序界面如图所示,左边列表框List1中显示所有学生信息(包括编号和完成次数),单击“排序”按钮(Command),所有编号按照作业完成次数从高到低显示在列表框List2中。

代码如下:

Dim conn As New ADODB. Connection

Dim rs As New ADODB. Recordset

Dim n As Integer

Dim a(500)As String

Dim b(500)As Integer

Private Sub Fom Load()

    Dim i As Integer

    conn. Connection String="Provider=Mi-crosoft. AC

    A.OLEDB. 12.0;DATA Source="& App. Path &"\stud. accdb"

    conn Open

    Set rs. Active Connection=conn

    rs. Open "Select*From info"

    n=0

    Do While not rs.EOF            '到记录集最后一条记录后退出循环

        n=n+1

        a(n)=rs. fields("id")

        b(n)=rs. fields("finshed")

        rs. MoveNext                 '移动到下一条记录

    Loop

    For i=1 To n

        List1. AddItem a(i)+" "+Str(b(i))

    Next i

    rs. Close

    conn. Close

    Set rs= Nothing

    Set conn= Nothing

End sub

Private Sub Command1_Click()

    Dim i As Integer, j As Integer, t1 As Integer, t2 As String, k As Integer

    For i=1 To n-1             'n表示学生总数

        k=i           'k保存第i大的数,一开始假定是a(i)

        For j=i+1 To n

            If b(k)<b(j) Then k=j            '比较完成数

                ①      

            If    ②      Then

                t1=b(i): b(i)=b(k): b(k)=t1           '交换完成次数

                t2=a(i): a(i)=a(k): a(k)=t2           '交换编号

            End If

        Next j

    Next i

    For i=1 To n          '在列表框List2中输出排序结果

        Listt2. Addltem a(i)+" "+Str(b(i))

    Next i

End sub

返回首页

试题篮