常见数据类型、数组 知识点题库

下列(   )是日期型常量。    
A . “2/1/02” B . 2/1/02 C . #2/1/02# D . {2/1/02}
小明编写某 VB 程序,其功能如下:文本框 Text1 里输入数学表达式(假设表达式的

长度小于等于 100),在列表框 List1 里输出所有配对括号在表达式中的位置。例如在文本框 Text1 里入:“12*(3-(1+2))*3”,程序运行效果如图所示。

实现上述功能的 VB 代码如下,在划线的地方填入合适代码,完善程序。Private Sub Command1_Click()

Dim s As String

Dim a(1 To 100) As Integer


     

Dim i As Integer, top As Integer   s = Text1.Text


i = 1 top = 0

Do While i <= Len(s)

     If Mid(s, i, 1) = "(" Then

        top = top + 1

         

     End If

     If Mid(s, i, 1) = ")" Then

        List1.AddItem Str(a(top)) + "    " + Str(i)

         

     End If

     i=i+1 Loop

End Sub

【加试题】有如下VB程序段:

      flag = True : i = 1

      Do While i <= 6

          x = Int(Rnd * 100) + 1 

          If flag Or x >50 Then

               a(i)=x

               flag = Not flag

               i = i + 1

          End if

      Loop

执行该程序段后,在下列选项中,a(1)~a(6)各元素值不可能的是(  )

A . 52,95,46,74,77,83 B . 50,55,46,70,21,97 C . 62,78,57,61,69,50 D . 31,54,48,72,50,82
【加试题】某VB程序段如下:

i = 1: j = 10: temp = a(5)

Do While a(j) > temp j = j - 1

Loop

Do While a(i) < temp i = i + 1

Loop

temp = a(i) :a(i) = a(j):a(j) = temp

数组元素a(1)到a(10)的值依次为“36 91 36 17 93 99 2 9 97 97”,执行该程序段后,a(5)的值为(  )

A . 9 B . 93 C . 36 D . 97
已知数轴上有一条长度为L(L为偶数)的线段,左端点在原点,右端点在坐标L处。有n个不计体积的小球在线段上,开始时所有的小球都处在偶数坐标上,速度方向向右,速度大小为1单位长度每秒。当小球到达线段的端点(左端点或右端点)的时候,会立即向相反的方向移动,速度大小仍然为原来大小。当两个小球撞到一起的时候,两个小球会分别向与自己原来移动的方向相反的方向,以原来的速度大小继续移动。小王设计了一个模拟碰撞的小球的程序,其功能为:在文本框Text1、Text2和Text3中分别输入线段长度L、小球数量n以及运动时间t,在文本框Text4中输入n个小球的初始坐标位置,单击“求解”按钮Command1,计算t秒之后,各个小球的位置,并在标签框Label5上显示结果。

  1. (1) 实现上述功能的VB 程序如下,请在划线处填入合适代码。

    Private Sub Command1_Click()

        Dim n As Integer, L As Integer, t As Integer

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

        Dim s As String, result As String

        Dim a(1 To 50) As Integer, dir(1 To 50) As Integer

        L = Val(Text1.Text): n = Val(Text2.Text): t = Val(Text3.Text) s = Text4.Text

        s = s + ".": tmp = 0: k=0

        For i = 1 To Len(s)

            ch = Mid(s, i, 1)

            If ch >= "0" And ch <= "9" Then

                tmp = tmp * 10 + Val(ch)

            Else

                k = k + 1

                a(k) = tmp: dir(k) = 1

                tmp = 0

            End If

        Next i

        For i = 1 To t

           For j = 1 To n

                IfThen dir(j) = -dir(j)

                Else

                    For c = 1 To n

                        IfThen dir(c) = (-1) * dir(c)

                        dir(j) = (-1) * dir(j)

                    End If

                Next c

            End If

           

        Next j

        Next i

        For i = 1 To n

            result = result + Str(a(i))

        Next i

        Label5.Caption = Str(t) + "秒后小球的位置为:" + result

    End Sub

  2. (2) 若文本框Text3中输入的内容为“4”,单击“求解”按钮后,在标签框Label5中显示的结果为
下列VB程序实现数字字母混合序列分离后分别排序,最后又合并输出。具体算法如下:在文本框Text1输入若干组混合序列,每组序列中仅包含一组字母和一个多位数字,序列之间用逗号隔开,以逗号结束。单击“排序”按钮command1,把每组序列中的字母和数字分开,并分别排序,最后在列表框list1输出。排序规则如下:所有数字按从小到大升序排序,字母序列按长度升序排序,若长度相同,直接按字母序列大小升序排序(按字母的ASCII码排序,“A”<“Z”<“a”<“z”)。实现算法的部分程序界面如图所示,VB程序代码如下,回答下列问题:

Private Sub Command1_Click()

Dim a(1 To 6) As Integer, b(1 To 6) As String, i as integer, j as integer

Dim c As String, k As Integer, tmp1 As Integer, tmp2 As String

s=text1.text

i = 1: k = 1: tmp1 = 0: tmp2 = ""

Do While i <= Len(s)

      c = Mid(s, i, 1)

      If c = "," Then

         a(k) = tmp1: b(k) = tmp2

         tmp1 = 0: tmp2 = ""

              ①    

      Else

        If  Then 

           tmp2 = tmp2 + c

        Else

         tmp1=tmp1*10+val(c)

        End If

      End If

      i = i + 1

    Loop

    For i = 1 To 5

      For j = 1 To 6 - i

        If a(j) > a(j + 1) Then tmp1 = a(j): a(j) = a(j + 1): a(j + 1) = tmp1

    If Len(b(j)) > Len(b(j + 1)) Or      ②       Then

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

        End If

      Next j

    Next i

    For i = 1 To 6

      List1.AddItem Str(a(i)) + b(i)

    Next i

    End Sub

  1. (1) 代码“list1.AddItem”中的AddItem是(单选,填字母:A .属性名   B .对象名   C .方法   D .事件名)
  2. (2) 在程序划线处填入合适代码,使程序完整

     ② 

  3. (3) 加框处代码有错,请改正
  4. (4) 若输入的字符串为“21ckk,gho63,TCP43,23Yes,no62,phy46,”,则程序运行后第3组字符是
有如下VB程序段:

For i = 1 To 6

a(i)= Int(Rnd * 10)+ 1

Next i

For i = 1 To 5

If i Mod 2 = 1 And a(i) > a(i + 1) Then

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

Else

a(i) = a(i) + 1

End If

Next i

执行该程序段后,a(1)~a(6)各元素可能的值是(  )

A . 11,11,7,9,3,9 B . 6,2,8,10,5,9 C . 6,9,3,7,8,12 D . 3,9,0,8,2,7
有如下VB语句:Dim a (-10 To 10) As Integer,以的理解有误的是(  )
A . 定义一维数组a B . 该数组有20个元素 C . 所有数组元素均为整型 D . a(-10) = 0表示对第1个元素进行赋值
有如下VB程序段:

For i=2 To 5

  j = i

  k = a(j)

  Do While a (j-1) < k And j > 1

    a(j) = a (j-1)

  Loop

  a (j) = k

Next i

数组元素a(1)~a(5)的值依次为79,20,34,5661,该程序段运行后,数组元素a(1)~a(5)的值依次是(  )

A . 79,56,34,20,61 B . 79,61,56,34,20 C . 20,34,56,61,79 D . 20,34,56,79,61
杨辉三角是二项式系数在三角形中的一种几何排列,以10行的杨辉三角为例,如图所示。

某同学设计了以下程序用来输出杨辉三角。在文本框Text1里输入需要输出的杨辉三角的行数n,单击“打印”按钮Command1后,在列表框List1中输出n行的杨辉三角。

  1. (1) 要使程序运行时自动清空文本框(Text1)中的内容,则应在事件处理过程(填字:A .Form_Load/B .Text1_Click/C .Command1_Click)中编写相应代码。
  2. (2) 实现上述功能的VB程序如下,请在划线处填入适当的代码。

    Private Sub Command1 _ Click( )

      Dim n As String, i As Integer, j As Integer

      Dim a(0 To 30) As Long

      Dim s As String

      List1. Clear

            ①     

      a(1)=1

      List. AddItem “ 1”

      For 1=2 To n

        a(1)=1

        s = “”

        For j=i To 1 Step-1

              ②     

          s=Str(a(3)) +”” + s

        Next j

                ③     

      Next i

    End sub

     ② ③ 

已知数组a中存储了某次考试某一指定科目的相关数据,数组a各元素的含义如表所示:

数组元素

数组元素的含义

a(1)

存储班级数n

a(2)

从a(2)到a(n+1)依次存储1、2、…、n班学生的人数

a(n+1)

a(n+2)

从a(n+2)开始依次存储1班每个学生的单科成绩,2班每个学生的单科成绩、……、n班每个学生的单科成绩

张老师依据数组a中的相关数据编写了VB程序来统计各班平均分。

程序功能如下:在文本框Text1中输入科目名称,单击“读取数据库”按钮Command1程序从数据库读取数据;单击“开始统计”按钮Command2程序进行统计处理,结果输出在列表框List1中。程序运行界面如图所示。

  1. (1) 根据程序运行界面中的数据及数组a各元素的含义,数组元素a(5)的值为(填写数值)。
  2. (2) 请在划线处填入合适的代码。

    Dim a (1 To 600) As Integer数组大小满足处理要求 Private Sub Command1_Click ( )

    ‘本过程从数据库读取指定科目的各相关数据,存储在数组a中

    ‘本过程语句略

    End Sub

    Private Sub Command2_Click ( )

    ‘依据数组a中的相关数据统计各班级平均分

      Dim i As Integer, j As Integer, n As Integer

      Dim p As Integer, sum As Integer, aver As Single

            ①     

      p=n+2

      For i =1 To n

        sum= 0

        For j=1 To a (i+1)

                ②     

          p=p+1

        Next j

        aver= sum/a (i +1)

        List1 AddItem Str(i)+ “” n+ str(a(i+1)) + “” + Str(aver)

      Next i

    End Sub

     ② 

某同学设计了一个排序算法,先将数组a中奇数位置的元素、偶数位置的元素分别进行排序,然后再进行后续处理,直至所有元素按降序排列。算法的VB程序段如下:

′待排序数据已存储在数组a中(a(1)~a(n))

For i = 1 To n - 2

k = i

For j =                ′①

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

Next j

If k <> i Then t = a(i): a(i) = a(k): a(k) = t

Next i

For i = 1 To n \ 2

j = 2 * i - 1

If a(j) < a(j + 1) Then t = a(j): a(j) = a(j + 1): a(j + 1) = t

Next i

For i =                ′②

t = a(i): j = i - 1

Do While t > a(j)

a(j + 1) = a(j): j = j - 1

Loop

                      ′③

Next i

上述程序段中 3 处方框处的代码分别为 (   )

A . ①i+1 To n Step 2   ②2 To n Step 2    ③a(j+1)=t B . ①i+2 To n Step 2   ②3 To n Step 2    ③a(j+1)=t C . ①i+2 To n Step 2   ②2 To n Step 2    ③a(j)=t D . ①i+1 To n Step 2   ②3 To n Step 2    ③a(j)=t
下列关于VB中数组的叙述,错误的是(  )。
A . 数组是一种基本数据类型 B . 数组是一组相同类型的变量集合 C . 数组中的所有元素可看作一个整体 D . 数组元素的引用形式为“数组名(下标)”
有如下VB程序段:

Dim a(1 To 10) As Integer

Dim i, j As Integer

For i = 1 To 10

    j = i

    Do While j <= 10

        If j Mod i = 0 Then

            a(j) = a(j) + 1

        End If

        j = j + 1

    Loop

Next i

Text1.Text = Str(a(3))

数组a各元素初值为0,执行上述程序段后,文本框Text1中显示的内容为(    )

A . 1 B . 2 C . 3 D . 4
小岩设计了一个顺时针旋转矩阵的程序,其功能为:运行程序时,在文本框Text1中输入矩阵规模n,点击“产生矩阵”按钮Command1,在列表框List1中显示一个n*n的矩阵,该矩阵数据由从1开始的连续自然数组成。点击“旋转矩阵”按钮Command2,该矩阵顺时针旋转90度并显示在列表框List2中,此后每点一次“旋转矩阵”按钮Command2,列表框List2中显示的矩阵顺时针旋转90度。请完成程序填空。

Dim n As Integer

Dim st As String

Dim a(1 To 100) As Integer

Dim b(1 To 100) As Integer

Private Sub Command1_Click()

    '产生矩阵,代码略

End Sub

Private Sub Command2_Click()      '旋转矩阵

    For i=1 To n      '行

        st= “”

        For j= 1 To n            '列

            b((i-1)*n+j)=

            st=st+adj(Str(b((i-1)*n+j)),3)

        Next j

        List2.AddItem st

    Next i

End Sub

Function adj(a As String, n As Integer) As String

    '在字符串a前加入适当的空格,使a的长度为n位,代码略

End Function

某用户预订了商品编号为“ID2315937”、单价为20元、数量为2,可将这3个不同类型的简单数据组织成一个复合数据类型元组。记作:BookInfo1=("ID2315937",20,2),下列选择正确的是(      )
A . BookInfo1[1]的值是"ID2315937" B . BookInfo1[1]*BookInfo1[2]的值为40 C . BookInfo1(1)的值是20 D . len(BookInfo1)的值为4,len(BookInfo1[2])的值为1
有如下 VB 程序段:

Dim a(1 To 6) As Integer

Dim d(1 To 6) As Integer

a(1) = 10: a(2) = 21: a(3) = 28: a(4) = 11: a(5) = 12: a(6) = 30

Const n = 6

For i = n To 1 Step -1

    d(i) = 0

    For j = n To i +1 Step -1

        If a(j) > a(i) Then d(i) = d(j) + 1

    Next j

    If d(i) > Max Then Max = d(i)

Next i

Text1.Text = Str(Max)

执行该程序段,文本框Text1中显示的是(   )

A . 1 B . 2 C . 3 D . 4
已知list=[“a”,”b”,1,2],则list[-1]的值为(   )
A . a B . b C . -1 D . 2
请把程序补充完整

age=float(input('请输入age='))     #输入年龄

=float(input('请输入HRrest='))      #输入安静心率

low=(220-age-HRrest)*0.6+ HRrest     #计算最适宜运动心率低值

high=(220-age-HRrest)*0.8+HRrest     #计算最适宜运动心率高值

print("最适宜的心率是:",low,"~",high)

input("运行完毕,请按回车键退出...")

有如下程序段:

Dim i As Integer, Sum As Integer

Dim a(1 To 11) As Integer

Sum=6

a(11) = 49

For i=10 To 1 Step-1

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

  If a(i)Mod 3=0 Then Sum=Sum+a(i)

Next i

Text1. Text = Str( Sum)

该程序段运行后,文本框text1中显示的内容是(     )

A . 180 B . 174 C . 42 D . 36