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

【加试题】求矩阵主对角线元素之和。主对角线是矩阵左上角与右下角所对的直线。程序要求如下:

  ⑴用户通过输入n,点击按钮Command2生成规模为n×n的数字矩阵;

  ⑵矩阵元素随机生成,并按数组顺序保存,如规模为3×3的矩阵,元素对应数组的排列方式如图a所示;

  ⑶点击按钮Command1后输出主对角线上的元素以及其元素之和。

程序界面如图b所示,程序代码如下:

Dim a(100)As Integer,n As Integer

Private Sub Command1_Click()    ‘输出主对角线数据及其之和

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

  t=1:sum=0

  For i=1 To n

    For i= 1 To n

      If    ①    Then

      List2.AddItem Str(a(t))

      sum=sum+a(t)

    End If

    Next i

    ②   

  Next i

  List2.Addltem“和:  ”+Str(sum)

End Sub

Private Sub Command2_Click()        ‘生成数组矩阵

  Dim i As Integer,s As String

  n=Val(Text1.Text)            ‘获取矩阵规模

  List1.Clear:List2.Clear

  Randomize

  For i=1 To n2

    a(i)=99-Int(Rnd*90)

    s=s+Str(a(i))

    If   ③    Then

    List1.AddItem s

    s=“”

    End If

  Next i

End Sub

  1. (1) 请补充程序中①②③画线处的代码。

     ② ③ 

  2. (2) 该程序所生成的矩阵数组元素中最小的值可能是
如果需要用一个变量来存储数据5.7,则此变量定义的数据类型最好为(   )
A . integer B . long C . single D . double
有如下Visual Basic程序段:

k = 1

For j = 2 To 100

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

Next j

x = a(k)
该程序段执行后,变量x中存储的是(  )

A . a(1)至a(100)中的最小值 B . a(1)至a(100)中的最大值 C . a(2)至a(100)中的最小值 D . a(2)至a(100)中的最大值
下列是单精度型数据的有(  )
A . 25% B . 32.789 C . 5& D . 1.2D4
字符串变量有定长字符串变量和字符串变量。
有如下 VB 程序段:

i=1:n=5

Do while i<=n

   x=Int(Rnd*9)+1

    If x Mod 2=1 Then

        a(i)=x

    Else

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

    End If

   i=i+1 Loop

数组元素的初值均为0,执行该程序段后,a(1)至a(5)的值可能是( )

A . 1 , 3 , 5 , 5 , 0 B . 3 , 3 , 0 , 8 , 8 C . 0 , 1 , 0 , 4 , 2 D . 7 , 1 , 3 , 9 , 8
由n行数字组成的数字三角形如图所示。设计一个算法,对于由n行数字组成的数字三角形(数字范围[1,50],计算从三角形的顶至底的路径经过的数字和的最大值,每一步可以从当前点走到左下方的点也可以走到右下方的点。

寻求路径最大值的算法设计如下:

按三角形的行划分,若有n行,则有n-1个步骤

①从底层开始,本身数即为最大值

②倒数第二层的计算取决于底层的数据:

12+6=18,13+14=27,24+15=39,24+8=32;

③倒数第三层的计算取决于底二层的数据:

27+12=39,39+7=46,39+26=65;

④倒数第四层的计算取决于底三层的数据:

46+11=57,65+8=73;

④最后的路径:13—8—26—15—24其和为86。

根据上述算法描述,设计程序界面如下图所示,点击“生成金字塔”按钮,在列表框中生成数字金字塔,点击“寻求路径最大值”按钮,在文本框text1中输出最大值。

依据上述描述设计如下VB程序:

Const n = 5

Dim sx As String

Dim i, j, k, a(1 To 100) As Integer Private Sub Command1_Click() List1.Clear

For i = 1 To n For j = 1 To i

    ①  

sx = sx + Str(a((i - 1) * n + j)) Next j

For k = n To i Step -1 sx = " " + sx

Next k List1.AddItem sx sx = ""

Next i End Sub

Private Sub Command2_Click() For i = n To 1 Step -1

For j = 2 To i

If    ②   Then

a((i - 2) * n + j - 1) = a((i - 1) * n + j - 1) + a((i - 2) * n + j - 1)

Else

a((i - 2) * n + j - 1) = a((i - 1) * n + j) + a((i - 2) * n + j - 1)

End If Next j

Next i

    ③  

End Sub

请回答下列问题:

  1. (1) 若数字金字塔如图 ,输出路径最大值是
  2. (2) 请在①②③划线处填入合适的代码。

     ② ③ 

有如下VB程序段:

For i= 1 To 49

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

  Do While a(j)=5

    a(j)=0

    j = j + 1

    a(j) = a(j) + 1

  Loop

Next i

数组a中各元素初始值均为0,该程序执行后,数组a中各元素之和为(  )

A . 9 B . 0 C . 3 D . 49
下图算法的运行结果为 。

刘月在她设计的VB程序中,使用了下列变量名,其中合法的是(  )。
A . Q_5 B . If C . 6X D . a@2
下列VB表达式中,值为字符串类型的是(   )。

⑴Abs(x)   ⑵Text1.Text   ⑶”123+45”⑷Sqr(x)  ⑸Labell.Caption

A . (1)(3)(5) B . (2)(3)(5) C . (2)(4)(5) D . (1)(2)(3)
在Visual Basic中,要定义一个由50个元素构成的一维整型数组cp,下列语句正确的是(     )
A . Const cp(1 to 50) As Integer B . Dim cp(1 To 50) As Integer C . Const cp(1 To 5) As Integer D . Dim cp As Integer
小新编制了一个python程序如下,但程序无法执行,你帮他找出程序中一共有几处错误(    )

1a=3

b=input()

c=a+b

print("c")

A . 1 B . 2 C . 3 D . 4
某VB程序的部分代码如下:

Dim a(1 To 9)As Integer

Text 1.Text=""

For i=1 To 9

    a(x(i))=a(x(i))+1

Next i

For i=1 To 9

    For j=1 To a(i)

        Text1.Text=Str(i)+Text1.Text

    Next j

Next i

若数组x(1)到x(9)的值依次为“8,9,7,3,2,7,1,4,2”,则执行该程序段后,在文本框Text1中显示的是(  )

A . 1 2 3 4 7 8 9 B . 1 2 2 3 4 7 7 8 9 C . 9 8 7 4 3 2 1 D . 9 8 7 7 4 3 2 2 1
小王编写统计工厂中生产某种零件的工人数量的VB程序,运行程序后,从数据库中获取每个工人生产的零件数量,并存储在数组xs中:在文本框Text1中输入达标零件数da,单击“开始统计”按钮Command1,筛选数组xs中大于等于所输入零件数da的数据,并依次存储在数组bf中。最后统计数组bf中生产相同零件数量的人数,存储在数组tj后,将统计结果输出在列表框List1中,数组tj中各元素的含义如下表所示,程序运行界面如图所示。

数组元素

数组元素的含义

tj(1)

存储查找到第1个大于da的零件数

tj(2)

存储生产了tj(1)个零件的工人数量

tj(2*i-1)

存储查找到第i个大于da的零件数

tj(2*i)

存储生产了tj(i)个零件的工人数量

例如:tj(1)=1948,tj(2)=12。这对数据的含义为:共有12个工人生产了1948个零件。

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

  1. (1) 根据程序运行界面的数据及数组tj中各元素的含义进行分析,数组元素tj(8)的值是(填数值)。
  2. (2) 请在画线处填入合适的代码。

    Private Sub Command1_Click( )

      Dim bf(1 To 1000)As Integer

      Dim maxn, d, k, sa As Integer

      Dim I, j, flag As Integer

      da=Val(Text1.Text):maxn=0:k=1

      For j=1 To n

        If xs(j)>=da Then maxn=maxn+1

        bf(maxn)=xs(j)

      Next j

      For i=1 To maxn

        flag=0

        For j=1 To i-1

            If bf(i)=bf(j) Then flag=1

        Next j

        If flag=0 Then

             ①   

          d=1

            For j=i+1 To maxn

              If bf(i)=bf(j) Then   ②   

            Next j

            tj(2*k)=d

            k=k+1

          End If

        Next i

        k=k-1

        For j=1 To   ③   

          List1. Addltem Str(tj(j))+"     "+Str(tj(j+1))

        Next j

    End Sub

    以上程序段运行时,为了实现上述功能,画线处应填入的代码分别为:①;②;③

有以下VB程序段

For i = 1 To 3

   For j = 1 to 10

      If j Mod i = 0 Then

          a(j) = 1 – a(j)

   Next j

Next i

sum = 0

For i = 1 To 10

   sum = sum + a(i)

Next i

已知数组a的所有元素初值均为0,运行上述程序段后,变量sum的值是(   )

A . 2 B . 3 C . 4 D . 5
下列不属于浮点数类型的是?(       )
A . 36.0 B . 96e4 C . -77 D . 9.6E-5
有如下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
海面波浪实际上是各种不同波高、周期、行进方向的多种波的无规则组合。为了海洋工程设计的方便,实际工程中常采用具有某种统计特征值的波作为代表波,其中有效波(三分之一大波)应用较为广泛。将任一由n个波浪组成的波群的波高由大到小依次排列,其中前面⌊n/3⌋个波的平均波高即为有效波高。编写Python程序,实现有效波高的计算,结果四舍五入保留两位小数并输出,程序运行结果如下图所示:

请在划线处填入合适的代码。

s=input("请输入波群(m)")

a=[]

s=s+","

for j in range(len(s)):

    if s[j] == ",":

        t = float(s[i:j])

        a.append(t)       #append方法用于在列表末尾添加新元素

        

a.sort(reverse = True)    #将a列表中的元素从大到小排列

sumbg=0

for k in range(len(a)//3):

    sumbg = sumbg + a[k]

print("有效波高(m):",aver)

在VB中,数据3.14属于整型常量。