试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:普通

浙江省高一下学期信息技术期末考试试卷

把杂乱无章的数据变为有序的数据,这一过程称为排序。冒泡排序是其中一种最基础的排序方法,其中的升序是把数列中把较小的数据逐次向上推移的一种排序技术。它的方法是把待排序的n个元素的数组看成是垂直堆放的一列数据,从最下面一个元素起,自下而上的比较相邻两个元素中的数据,如果较小的数据在下面,那将较小的数据换到上面的元素中(否则不交换)重复这一过程,直到处理完最后两个元素中的数据,称为一遍加工,当第1遍加工完成时,最小的数据已经上升到第1个元素的位置;第2遍加工对余下的n-1个元素重复上述处理过程,第2遍加工完成后剩下最小的数据上升到第2个位置;直到n-1遍加工完成后发现数据完成了从小到大的排序。

假设有4个数据:27  36  32  18,需要4-1=3遍加工

第1遍加工如下:

第2遍加工如下:

第3遍加工如下:

假设4个数据放在数组d(1), d(2),d(3), d(4)

第1遍:比较d(j)、d(j-1),j=4,3,2,比较3次;

第2遍:比较d(j)、d(j-1),j=4,3,比较2次;

第3遍:比较d(j)、d(j-1),j=4,比较1次;

(1)、假设另有一组未经排序的数据如下:

45   67   23   87   13   30

按照上述规则进行从小到大冒泡排序,第一遍加工完成后这6个数的位次应该是

冒泡排序对应流程图片段如下:

(2)、下面程序片段要实现数据d(1)..d(n)的从小到大排序,请根据上面流程图说明,填写中间部分代码:

……

……

For  i=1 to n-1     '1到n-1遍加工

Next i

……

……

举一反三
【加试题】某排序算法思想如下:若有11个桶,编号从0~10,随机产生多个整数,每产生一个整数时,就在以该整数位编号的桶中放一面小旗子,最后只要按顺序数每个桶中有几面小旗子,就能得到这几个整数的有序排列。例如2号桶中有1个小旗子,表示2出现了一次;3号桶中有1个小旗子,表示3出现了一次;5号桶中有2个小旗子,表示5出现了两次;8号桶中有1个小旗子,表示8出现了一次,按桶的编号顺序读出旗子数量,没有旗子的桶略过,得到有序整数为“2,3,5,5,8”。

为此,小李编写了一个VB程序,功能如下:运行程序,窗体加载时随机产生6个[0,9]的随机整数,并在列表框List1中依次显示排序前数据,单击“排序”按钮Command1,在列表框List2 中显示经过上述排序算法后的数据。运行结果如图所示。

实现上述功能的VB代码如下,但横线处代码有错,请改正。

Dim a(10) As Integer'数组a表示桶的编号,如a(0)表示第0号桶

Private Sub Command1_Click()

Dim i As Integer, j As Integer

For i = 0 To 10

For j = 1 To     i      错①处

List2.AddItem CStr(i)

Next j

Next i

End Sub

Private Sub Form_Load()

Dim i As Integer

Randomize

For i = 0 To 10'将数组初始化为0

a(i) = 0

Next i

For i = 1 To 6'产生6个[0,9]的随机数

t = Int(Rnd * 10)

a(t) =  t + 1  '第t桶中小旗子数量加1  错②处

List1.AddItem CStr(t)

Next i

End Sub

①{#blank#}1{#/blank#} ②{#blank#}2{#/blank#} 

【加试题】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

返回首页

试题篮