试题

试题 试卷

logo

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

浙江省嘉兴市2021届高三上学期信息技术12月教学测试技术试题卷

采用冒泡排序算法对数据序列“8,7,2,3,9,6,5”完成升序排序,排序2趟后,正确的顺序是(    )
A、2,3,8,7,5,6,9 B、2,3,8,7,9,6,5 C、2,3,5,6,7,8,9 D、2,3,7,5,6,8,9
举一反三
【加试题】某排序算法思想如下:若有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       ①{#blank#}1{#/blank#}

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    ② {#blank#}2{#/blank#}

        List1.AddItem  CStr(t)

    Next i

End Sub

编写一个查找最接近的数的VB程序:程序运行时,在文本框Text1中输人产生随机数的个数(1到100之间),单击命令按钮“产生随机数并升序排列”后,在列表框List1中显示已经按升序排列后的随机整数,然后在文本框Text2中输入要查找的整数,单击命令按钮"查找"后,在标签Label3中显示随机整数序列中与待查找数最接近的整数(当最接近的数有2个时,输出较大的一个)。程序运行效果如图所示:

实现上述功能的VB代码如下,请在横线处填入合适代码。

Dim n As Integer          '存储随机数的个数

Dim f(1To100)As Boolean

'f(i)为True时表示随机整数i已经产生过

Dim a(1 To 100)As Integer

'依次存放升序排序后的n个随机数

Private Sub Command1_Click()

'命令按钮“产生随机数并升序排列”的单击事件

    Dim i As Integer

    Randomize

    For i=1 To 100

        f(i)=False

    Next i

    n=Val(Text1. Text)

    For i=1 To n

        t=Int(Rnd * 100+1)

        Do While f(t)=True

            t=Int(Rnd * 100+1)

        Loop

        {#blank#}1{#/blank#}

    Next i

    j=0

    For i=1 To 100        '实现排序并输出

        If f(i)=True Then

            {#blank#}2{#/blank#}

            a(j)=i

            List1.AddItem Str(i)

        End If

    Next i

End Sub

Private Sub Command2_Click()

'命令按钮“查找”的单击事件

    Dim key As Integer

    key=Val(Text2. Text)

    If key <=a(1) Then Label3. Caption=Str(a(1)): Exit Sub

    If key >=a(n) Then Label3. Caption=Str(a( n)): Exit Sub

    L=1: R=n

    Do While L<=R                '找到与 key 较为接近的两个数a(R)和a(L)

        m=(L+R)\2

        If key<=a(m)Then

            R=m-1

        Else

            L=m+1

        End If

    Loop

    If {#blank#}3{#/blank#}Then

    '在a(R)和 a(L)中选出更接近key的数

        Label3. Caption=Str(a(R))

    Else

        Label3. Caption=Str(a L))

    End If

End Sub

返回首页

试题篮