试题

试题 试卷

logo

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

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

有如下VB程序段:

s =" shenzhen"

For i=1 To Len(s)

    a(i) = Mid(s,i,1)

    b(i) = i

Next i

For i=Len(s) To 2 Step-1

    If a(b(i)) >= a(b(i - 1)) Then

        t=b(i):b(i)=b(i-1):b(i-1)=t

    End If

Next i

Text1.Text = b(1)

文本框Text1中显示的内容是(    )

A、1 B、4 C、5 D、8
举一反三
原始的冒泡排序是单向的,它始终是从第一个(或最后一个)一个元素开始扫描。小王对冒泡排序进行了改进,从两端进行扫描,首先从数组的左端到右端进行扫描,把最大的数往后交换(以升序为例),再从右端到左端进行扫描,把最小的数往前交换,多次扫描后,最终得到一个有序的序列。他定义了left1、right1两个变量,变量left1表示左边指针,变量right1表示右边指针,每一遍排序,左边指针向右移动一位,右边指针向左移动一位。一趟排序,把最大值沉到最后一个,最小值冒泡到最前一个,最终让数组有序。运行界面如图a,单击“生成数据”按钮在列表框List1中显示生成的10个随机数,单击“排序”按钮后,将排序结果显示在列表框List2中。

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

Dim b(1 To 10) As Integer

Dim left1 As Integer, right1 As Integer Private Sub Cd1_Click()

Dim i As Integer, j As Integer

  For i = 1 To 10

b(i) = Int(Rnd * 100) + 10 List1.AddItem Str(b(i))

  Next i left1 = 1 right1  = 10

End Sub

Private Sub Cd2_Click()

Dim i As Integer, j As Integer, t As Integer

Do While left1 < right1

    For j = left1 To right1 - 1

    If b(j) > b(j + 1) Then

        t = b(j): b(j) = b(j + 1): b(j + 1) = t

    End If

    Next j

    For j = right1 To    ‘改错

        If b(j) < b(j - 1) Then

            t = b(j): b(j) = b(j - 1): b(j - 1) = t end If

    Next j

    right1 =           ‘填空

Loop

‘将排序结果显示在列表表框List2中,代码略

End Sub

活动课上,n个学生要两两组队进行拔河比赛,要求每个小组总体重不超过120kg,小林想知道最多可以组成多少个队伍,并希望得到可行的组队方案。于是设计了如下界面的程序,在文本框Text1中输入n 个学生的体重(数字之间用逗号隔开),单击“队伍”按钮Command1后在标签Label1上显示最多可组队数量,同时在列表框List1输出方案。

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

Dim n As Integer

Dim a(1 To 50) As Integer

Sub makedata(s As String)     ‘该过程实现将输入的体重分别存入数组a中

Dim in As Long, x As Long, c As String, i As Integer

m=Len (s) : n=0

For i=1 To m

 c=Mid(s, i, 1)

 If c >=“0” And c <=“9” Then

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

  x=x+Asc(c)-Asc(“0”)

 Else

  If x > 0 Then n=n+1: a(n)=x

  x=0

 End If

Next i

n=n+1: a(n)=x

End Sub

Private Sub Command1_Click()

Dim s As String, i As Integer, j As Integer, t As Integer

Dim cnt As Integer, st As Integer, ed As Integer

s=Text1.Text Call makedata(s)      ‘调用过程

For i=1 To n-1     ‘实现降序排序

For j=n To i+1 Step-1

If{#blank#}2{#/blank#}Then

a(j)=a(j)+a(j-1) : a(j-1)=a(j)-a(j-1) :{#blank#}3{#/blank#}

  End If

 Next j

Next i

‘下列程序段实现计算最多可组队伍

cnt=0: st=1: ed=n

Do While st < ed

 If a(st)+a(ecl) <=120 Then

  List1. AddItem Str(a(st))+“和”+Str(a(ed))+“组队”

  cnt=cnt+1

  st=st+1

  {#blank#}4{#/blank#}

 Else

  st=st+1

 End If

Loop

Label2. Caption=“最多可以组”+Str (cnt)+“组队伍”

End Sub

返回首页

试题篮