3.2 数据与结构 知识点题库

以下可作为Visual Basic变量名的是(   )。 (多选) 
A . F1.1 B . pi C . F2A D . 2FA
有下列VB程序段:执行该程序段后,数组元素a(1)到a(5)的数据依次为(  )

a(1)=”231”:a(2)=”44”:a(3)=”23”:a(4)=”244”:a(5)=”124”

For i=5 To 4 step-1

  k=i

  For j=i-1 To 1 Step-1

    If a(j) >a(k) Then k=j

  Next j

  If k<>i Then

    t=a(k):a(k)=a(i):a(i)=t

  End If

Next i

A . ”124”,”23”,”231”,”44”, ”244” B . ”124”,”23”,”231”,”244”,”44” C . ”23”,”44”,”231”,”124”,”244” D . ”231”,”124”,”23”,”244”,”44”
小杜编写了一个会议签到统计的VB程序。假设人员名单中没有重名,运行界面如图所示,列表框1显示会议应到人员名单,列表框2显示会议实际出席人员名单,单击“统计”按钮Command1,列表框3示缺席人员名单。实现上述功能的VB程序如下:

请将划线处的代码补充完整。

Dim b (1 To n) As String     '存储会议实际到的人员名单

Dim flag (1 To n) As Boolean, m As Integer

Private Sub Form_Load()

'将n个应到人员姓名依次存储在数组a中,将m个实际参加会议人员姓名依次存储在数组b中

'在列表柱1显示应到人员姓名,在列表框2显示实到人员姓名,该过程代码略

End Sub

Private Sub Command1_Click()

Dim i As Integer, j As Integer

For i=1 To n

flag(i)=False

Next i

i=1

Do While i<=m

For j=1 To n

If      ①    Then

flag(j)=True

Exit For         '退出for循环

End If

Next j

i=i+1

Loop

For i=1 To n

If   ②   Then List3. AddItem a(i)

Next i

End Sub

 ② 

有如下VB程序段:

    a(1) = 5: a(2) = 7: a(3) = 12: a(4) = 12

    a(5) = 15: a(6) = 20: a(7) = 25: a(8) = 27

    low = 1: high = 8

    key = Text1.Text

    Do While low <= high

      m = (low + high) \ 2

      If a(m) >= key Then

         high = m - 1

      Else

         low = m + 1

      End If

Loop

执行该程序段后,变量low的值为3,则文本框Text1中输入的值不可能是(  )

A . 10 B . 11 C . 12 D . 13
在“抗击疫情,‘宅’出精彩”征文活动中,每位选手可以提交一篇作品。活动以互评的形式展开:每位选手对m篇作品进行打分(本人作品回避),方法如下:

① 用1-n数字代表n个作品,打乱顺序后分配给n个选手。分配方案保存在数组a中,如图a存储了两组分配方案(n=5)。在第一个分配方案中把4号作品分配给1号参赛者,1号作品分配给2号参赛者(选手编号与序号错开)……。

图a

②分配方案的形成方法: 将1~n之间的随机数字依次放到第1个位置、第2个位置……,随机数不能与位置号相同,并且要防止分配冲突,如前三个分配序号是“2 3 4”,那么在第4位上只能放“5”(如放“1”会导致第5个位置没有符合要求的数字,因此位置n-1需要判断数“n”是否已经分配,如果未分配,位置n-1放置数“n”),最终方案“2 3 4 5 1”。

③评m个作品需要m个分配方案。方案间要避免同一个人拿到重复的作品。如图a第3行上的数据“5 1 2 3 4”不符合要求,因为会使第2号选手重复拿到1号作品。

小明依据上述方法设计了VB程序,功能如下:在文本框Text1和Text2分别输入参赛人数和每人打分的作品数量,单击“分配”按钮Command1,在列表框List1中输出结果。程序运行效果如图b所示。请回答下列问题:

图b

  1. (1) n=5,m=3,a(1)~a(10)中的数据如图a所示,a(11)~a(15)的数据可能是(单选,填字母,:A .5 4 3 1 2/B .5 4 1 3 2/C .3 4 5 1 2)
  2. (2) 请在划线处填入合适的代码。

    Dim n As Integer   '总人数/总作品数

    Dim m As Integer   '每人分配篇数

    Dim a(1 To 500) As Integer  '数组a大小满足处理要求

    Dim c(1 To 100) As Integer  '数组c大小满足处理要求

    Private Sub Command1_Click()

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

        n = Val(Text1.Text): m = Val(Text2.Text)

        Randomize

        i = 1

        Do While i <= m

          For j = 1 To n

            c(j) = 0    '本轮分配方案中还没有数字j, c(j)=0,否则c(j)=1

          Next j

          For j = 1 To n

              If j = n - 1 And c(n) = 0 Then

                        ①    

              Else

                 k = r(n, j)

              End If

              a((i - 1) * n + j) = k    '分配数字k到当前方案的第j个位置上

              c(k) = 1

          Next j

              If         ②        Then i = i + 1   

        Loop

        s = ""

        For i = 1 To n

            s = "参赛者" & i & ":"

            For j = 1 To m

                s = s + Str(a((j - 1) * n + i))+ ","

            Next j

            List1.AddItem s

            s = ""

        Next i

    End Sub

    Function r(x As Integer, y As Integer) As Integer 

    '生成一个取值在[1,x]之间,可以放在y位置上的随机数,满足条件r<>y andc(r)=0

    End Function

    Function check(c As Integer) As Boolean  

    '本轮方案和前面几次的分配方案比较,如果有人分到了重复作品,返回FALSE

      Dim p As Integer,f As Boolean

      f = True

      p = 1

      For i = 1 To c * n

            If         ③         Then

               f = False: Exit For

            End If

        p = p mod n +1

         Next i

         check = f

    End Function

     ② ③ 

有一批货物,已知每件货物的重量和货架号,机器人在可承受的载量范围内,每趟按货物顺序连续装载尽量多的货物,并将各货物送到其货架号相应的货架上。如图a所示,货架构成是环形结构,货架是按顺时针方向从1到10进行编号,第10号货架(即图中A处)不装货物,机器人在A处装载货物。每趟装载货物后,机器人按所装载货物的倒序配送货物,配送过程中尽可能走更短的路线,例如:某趟机器人所装载货物的货架号依次为:3,1,7,9,则机器人按倒序配送货物的路线如图a中带箭头虚线所示,配送完成后回到A处继续下一趟配送任务。现要求在限定配送趟数内完成任务时,计算机器人所能承受装载的最大重量至少为多少?机器人完成所有趟数的配送任务并回到A点的总行程是多少?

图 a

小李编写VB程序实现上述功能:在列表框List1中按货物顺序显示其重量和货架号,在文本框Text1中输入机器人送货趟数,单击“结果”按钮Command1后,标签Label3和Label4中分别显示要求机器人可承受的最大载重最小值和送货总行程。程序运行界面如图b所示。

图 b

请回答下列问题:

  1. (1) 如图b所示,机器人最大载量达到20时,机器人第3趟配送的货物数量是件。
  2. (2) 实现机器人送货功能的VB程序如下,请在划线处填入合适的代码。

    Const num = 8     '货物数量

    Const shelf = 10     '货架数量,1-9号货架可供存储货物,第10号货架用作机器人装货点

    Dim g(1 To num) As Integer      '各货物的重量

    Dim s(1 To num) As Integer       '各货物的货架号

    Private Sub Form_Load()

    '从数据库中读入num件物品的重量、货架号,分别存储在数组g、s中

    '将各物品数据显示在list1中,代码略。

    End Sub

    Private Sub Command1_Click()

    Dim i As Integer, j As Integer, n As Integer, max As Integer, total As Integer

    Dim head As Integer, tail As Integer, dis As Integer, part As Integer

    total = g(1)

    For i = 2 To num

    If g(i) > max Then max = g(i)

    total = total + g(i)

    Next i

    n = 0

    For i = max To total

    part = 0: n = 0: head = 1: dis = 0

    For j = 1 To num

    part = part + g(j)

    If part > i Then

        n = n + 1: j = j - 1: tail = j

        dis = dis + tran(head, tail)

        part = 0: head = tail + 1

    End If

        Next j

    If part > 0 Then

    n = n + 1

    dis = dis + tran(head, tail)

    End If

    If n <= Val(Text1.Text) Then Exit For

    Next i

    Label3.Caption = "机器人可承受的最大载量至少为:" + Str(i)

    Label4.Caption = "机器人完成各趟任务的总行程为:" + Str(dis)

    End Sub

    Function tran(p As Integer, q As Integer) As Integer '计算机器人每趟按装货倒序配送并回到A 处的行程

    Dim temp As Integer, t1 As Integer, t2 As Integer, k As Integer

    temp = 0: t2 = shelf

    For i = q To p Step -1

    t1 = t2: t2 = s(i)

    k = 

    If k > (shelf + 1) \ 2 Then k = shelf - k

    temp = temp + k

    Next i

    If t2 <= shelf \ 2 Then temp = temp + t2 Else temp = temp + shelf - t2

    tran = temp

    End Function

有如下VB程序段,该程序段执行后,变量x中存储的是(  )

k=1

For j=2 To 100

  If a(j)>a(k)Then k=j

Next j

x=a(k)

A . a(1)至a(100)中的最小值 B . a(1)至a(100)中的最大值 C . a(2)至a(100)中的最小值 D . a(2)至a(100)中的最大值
(消失的pigs)用VB编写程序实现:从某一字符串中删除指定的字符串,并将处理后的字符串重新输出。程序界面如图1所示,在文本框Text1中输入原始字符串,在文本框Text2中输入需要删除的字符串,单击“删除字符串”按钮Command1后,在文本框Text3中输出处理后的结果。

图1

  1. (1) 在设计应用程序界面时,应使用图2所示“控件工具箱”中的(填写相应编号)添加按钮。

    图2

  2. (2) 窗体按钮上显示的文字“删除字符串”是需要修改按钮Command1的属性值修改为“删除字符串”。
  3. (3) 为实现上述功能,请在划线处填入合适的代码。

    Private Sub Command1_Click()

      Dim s As Integer, r As Integer, c As Integer

      Dim source As String, delstr As String, ch As String

      c = 0: i = 1

      source = Text1.Text:delstr = Text2.Text

      s = Len(source)

      r = Len(delstr)

      Do While s-i+1 >= r

        ch = Mid(source, i, r)

        If ch = delstr Then

            source = Mid(source,1, i-1) +

            s = Len(source)

             

        Else

            i = i + 1

        End If

      Loop

      Label4.Caption = "共删除:" + Str(c) + "处"

      Text3.Text = source

    End Sub

Python中,若用变量a存储学生的身份证:号码,则变量a的数据类型为(    )
A . 布尔型 B . 实型 C . 字符串型 D . 整型
N维数组对象ndarray是(    )的基本数据结构。
A . NumPy B . SciPy C . Pandas D . Matplotlib
有如下 VB 程序段:

a(1) = 68: a(2) = 88: a(3) = 76: a(4) = 60: a(5) = 98

a(6) = 100: a(7) = 64: a(8) = 85: a(9) = 99: a(10) = 59

For i = 1 To 9

    b(i) = Abs(a(i + 1) - a(i))

    c(b(i) \ 10) = c(b(i) \ 10) + 1

Next i

For i = 0 To 10

    If c(i) > 0 Then Label1.Caption = Label1.Caption + " " + Str(c(i))

Next i

数组c各元素初值为0,执行该程序段,标签Label1上显示的内容是(    )

A .  2 3 2 1 1 B . 1 3 2 2 1 C . 2 3 2 2 1 D . 1 3 2 1 2
已知str1="hello python",则str1[2]表示的是下列哪个字符(      )
A . "h" B . "e" C . "l" D . "o"
有如下VB程序段:

Const n=10

Dim a(1 To 10) As Integer

m = Int(Rnd( ) *n+ 1)

For i=1 To n

    a(i)= 0

Next i

i=0:j=0:c=1:ans=""

Do While c<=3

    i=i Mod n+1

    If a(i)=0 Then j=j+1

    If j=m Then

        a(i)=1:c=c+1

        j=0: ans = ans+ str(i)

    End If

Loop

Text1.Text = ans

执行上述程序段后,文本框Text1中不可能显示的内容是(     )

A . 2  4  6 B . 7  4  2 C . 5  10  6 D . 6  2  8
数据结构中栈和队列的共同特点是(     )
A . 处理数据时满足先进后出 B . 处理数据时满足先进先出 C . 只允许在端点处插入和删除数据 D . 没有共同点
整理书目清单。统计某书店每天畅销书的销售清单,计算库存,并根据每本书的警戒库存进行分组处理,按库存数小于等于警戒1库存数,库存数大于警戒1库存数但小于等于警戒2库存数,大于警戒2库存数的分成三组,并按库存数降序排序。某同学编写VB程序如下:从数据库读取销售清单并显示在列表框list1中,点击按钮“书目整理”计算每本书的库存(库存=原有库存数-已经销售的数量,不存在销售数量大于库存数的情况),根据每本书的两个警戒库存,将书目分成三组,每组书目按库存数量降序显示在列表框list2中,程序运行界面如图1所示。

图1

例如某天的销售清单,库存数据如图2所示,根据每本书的警戒1和警戒2库存,分组后的数据如图3所示。

图2

图3

  1. (1) 若有140本畅销书,用两位数编码(每位数可以是0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F),则该编码对应的最小的进制数是进制。
  2. (2) 实现上述功能的 VB 程序如下,请在划线处填入合适的代码。

    Dim stock(1 To 52) As Integer        '存储每本书警戒1和警戒2的库存数量

    Dim num(1 To 100) As Integer           '存储每本书每次的销售数量

    Dim bm(1 to 26) As String           '存储每本书的书名编码

    Dim kc(1 To 26) As Integer          '存储每本书的库存数量

    Dim sell(1 To 26) As Integer,q(1 To 26) As Integer

    Private Sub Form_Load()

        '从数据库读取书目销售清单数据,显示在list1中,分别存在数组

        'stock(1),stock(2)存书名编码A的警戒1库存,警戒2库存;stock(3),stock(4)存书名编码B的警戒1库存,警戒2库存,依次类推,代码略

    End sub

    Private Sub Command1_Click()

        For i = 1 To 100         '处理100条销售清单数据

            k = Asc(bm(i)) - 64

         

        Next i

        n = 0

        For i = 1 To 26      '更新库存数据

            If sell(i) > 0 Then

                n = n + 1

               

                kc(i) = kc(i) - sell(i)

            End If

        Next i

        head = 0: tail = n + 1: j = 1

        Do While j < tail

            r = kc(q(j))

            If r <= stock(2 * q(j) - 1) Then

                head = head + 1

                If  Then t = q(head): q(head) = q(j): q(j) = t

                j = j + 1

            ElseIf r > stock(2 * q(j)) Then

                tail = tail - 1

                t = q(j): q(j) = q(tail): q(tail) = t

            Else

                j = j + 1

            End If

        Loop

        '分组排序及排序后数据显示在列表框list2中,代码略

    End Sub

数据类型用来定义一系列        及应用于这些值的一系列        。(    )
A . 值;操作 B . 值;变量 C . 变量;数值 D . 常量;数值
以下不能创建一个字典的语句是(  )
A . dict1 =   } B . dict2 =  3 : 5 } C . dict3 = [1,2,3]: “uestc”} D . dict4 = (1,2,3): “uestc”}
已知字符串a="python",则a[-1]的值为(    )
A . "p" B . "n" C . "y" D . "o"
下列给变量名b的赋值语句中,赋值后变量a是整型的是(     )
A . a=0x16 B . a=8/4 C . a =1e-2 D . a ='1'
下列VB程序段功能为:在文本框 Text中显示整型数组元素a(1)到a(9)中的最小值和最大值。

amin= a(1) : amax=a(1)

i=2 : j=9

Do While i <= j

    If a(i) > a(j) Then

       

        

    Else

       

       

    End If

    i=1 : j=j-1

Loop

Text 1. Text= Str(amin)+"," Str(amax)

上述程序段中方框处可选语句为:

①If a(j)>amax Then amax =a(j)

②If a(j)< amin Then amin =a(j)

③If a(i)<amin Then amin =a(i)

④If a(i)>amin Then amin =a(i)

则(1)(2)(3)(4)处语句依次可为(    )

A . ④③②① B . ④②③① C . ③②④① D . ③①④②
最近更新