试题

试题 试卷

logo

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

浙江省诸暨市牌头中学2018-2019学年高二上学期信息技术期中考试试卷

将数组a中的8个数据“18,33,5,26,86,0,60,200”按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换的次数是(  )
A、4 B、5 C、6 D、7
举一反三
【加试题】2016年某书城的部分书籍销售数据存放在相应的数据表中,如图a所示。小明编写了一个VB程序,实现如下功能:在文本框Text1中输人图书类别,单击“查询”按钮Command1,程序从数据库读取相关数据进行处理,在列表框List中显示该类图书所有的销售数据(从高到低排序),在文本框Text2中显示该类图书的总销售量。VB程序运行界面如图b所示。

实现上述功能的VB程序如下,请回答下列问题:

Dim num As Integer         ‘变量num存储数据库实际的记录数

Dim book(1 to 5 000)As String

Dim content(1 To 5 000)As String,content1(1 To 5 000)As String  ‘存储类别内容

Dim sales(1 To 5 000)As Long,sales1(1 To 5 000)As Long     ‘存储销售量

Private Sub Form Load( )

  Dim conn As New ADODB.Connection,rs As New ADODB.Recordset

  Dim strSQL As String

  conn. ConnectionString="Provider=Microsoft. ACE. OLEDB. 12. 0; Data Source="&App. Path&"\major. accdb"

  conn. Open

  strSQL="SEl.ECT*FROM count"

  Set rs.ActiveConnection=conn

  ‘从数据表中读取图书类别、类别内容、销售量分别存储到数组book、content、sales中

  ‘数据库实际读取的记录数存储在变量num中

  ‘代码略

End Sub

 Private Sub Command1_Click()

  Dim m As String,n As String,c As Integer,s As Long

  Dim i As Integer,j As Integer,k As Integer

  List1.Clear

  c=0:s=0

  m=Text1.Text

  For i=l To num    ‘将符合的类别内容、销售量重新存储到数组content1、sales1中

    If m=book(i)Then

        c=c+1

        content1(c)=content(i)

        sales1(c)=sales(i)

                              ‘①

    EndIf

  Next i

 

  For i=1 To                ‘②

    List1.AddItem content1(i)&"  "&Str(sales1(i))

  Next i

  Text2.Text=Str(s)

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

返回首页

试题篮