相关试卷

  • 1、某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
  • 2、为分析数组a中各元素依次变化的情况,进行如下定义:

    ·变化段:数组中相邻两个元素构成一个变化段。变化段有上升段(a(i)>a(i-1))、下降段(a(i)<a(i-1))和持平段(a(i)=a(i-1))。数组a中的n个元素可构成n-1个依次排列的变化段。

    ·波峰:从上升段转到下降段形成一个波峰。波峰的起点是峰顶前所有连续上升段中的第1个。终点是峰顶后所有连续下降段中的最后1个。

    ·对称波峰:上升段与下降段个数相同的波峰称为对称波峰。

    图为一组数据的变化段及波峰示意图。

    现要求统计数组a中各元素依次变化过程中“对称波峰”的个数,小李依据上述描述设计了如下VB程序,请回答下列问题:

    (1)、数组元素“1,4,3,3,2,5,8,7,8,3,4,7,9,6,3,1”依次变化过程中,“对称波峰”的个数为
    (2)、请在画线处填入合适的代码。

    Const n=20

    Dim a(1 To n)As Integer

    Private Sub Form_Load( )

    ´读取数据,并存储到数组a中。代码略

    End Sub

      Dim flag As Integer     ‘存储变化段的状态:1表示升,-1表示降,0表示平。

      Dim count As Integer      ‘存储对称波峰的个数

      Dim steps As Integer

      Dim i As Integer

      flag=0:steps=0:count=0

      For i=   ①   To n

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

          If IsSymPeak(flag, steps)Then count=count+1

          If flag=0 Or flag=-1 Then

             ②   

          Else

            steps=steps+1

          End If

          flag=1

        ElseIf a(i)=a(i-1) Then

          If IsSymPeak(flag, steps) Then count=count+1

          steps=0:flag=0

        Else

          steps=steps-1

          flag=-1

        End If

      Next i

      If IsSymPeak(flag, steps) Then count=count+1

      Text1. Text=Str(count)

    End Sub

    Function IsSymPeak(flag As Integer, steps As Integer) As Boolean

      If   ③   Then

        IsSymPeak=True

      Else

        IsSymPeak=False

      End If

    End Function

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

  • 3、编写VB程序统计单词个数。要求:在文本框Text1中输入英语短文,单击“统计”按钮,单词的个数显示在Text2中(假定每个单词仅包含英文字母)。程序界面如图所示,按此要求编写程序如下:

    Function Stod(ch As String)As String

      Dim n As Integer, i As Integer

      Dims As String, st As String

      For i=1 To Len(ch)

        s=Mid(ch, i, 1)

        If s>="a" Ands<="z" Then

          s=Chr(Asc(s)-32)

        End If

        ______________

        Stod=st

      Next i

    End Function

    Private Sub Command1_Click()

      Dim article, f As String, s1, s2 As String

      Dim i As Integer, m As Integer

      Dim flag As Boolean

      article=Stod(Text1. Text):f=Stod(Text2. Text)

      m=0:flag=False

      For i=1 To Len(article)

        y=Mid(article, i, 1)

        If y>="A"Andy<="Z"Then

            If flag=False Then

                s1=

                s2=Mid(article, i+Len(f), 1)

                If s1=f And Not(s2>="A" And s2<="Z") Then

                  m=m+1

              End If

              flag=True

          End If

        Else

          flag=False

        End If

      Next i

      Label2.Caption="单词"+Text2.Text+“出现"+Str(m)+"次"

    End Sub

    (1)、要在文本框Text1中输入这段英文内容,需要修改Text1的属性值(单选,填字母:A .Caption/B .Text/C .Font/D .Height)。
    (2)、请将程序代码中的画线处语句补充完整。
    (3)、程序代码中的加框处有误,请改正。
    (4)、程序代码中,flag=表示一个单词的开始,即当前字一个单词的首字母。
  • 4、数组元素a(1)到a(5)的值依次为“24,16,4,33,77”,经过下面程序段加工后,数组flag中元素值为True的共有(  )

      Dim flag(1To 4)As Boolean

      For i=1 To 4

        For j=5 To i+1 Step-1

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

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

            flag(i)=True

          End If

        Next j

      Next i

    A、0个 B、1个 C、2个 D、4个
  • 5、有如下VB程序段:

    Dim a(1 To 10)As Integer

    Dim i As Integer, k As Integer

    For i=1 To 10 Step 2

        a(i)=1

    Next i

    For i=1 To 10

        If i Mod 3=0 Then a(i)=1-a(i)

    Next i

    For i=1 To 10

        If a(i)=1 Then k=k+1

    Next i

    该程序段执行后,变量k的值为(  )

    A、3 B、4 C、5 D、6
  • 6、有如下VB程序段:

    Dim a(0 To 9)As Integer

    Dim t As Long

    t=Val(Text1.Text):x=0

    Do While t>0

        a(t Mod 10)=1

        t=t\10

    Loop

    For i=0 To 9

        x=x+a(i)

    Next i

    若在文本框Text1中输入380305220,则程序执行后,变量x的值为(  )

    A、1 B、2 C、5 D、9
  • 7、有如下VB程序段:

    Dim a(0 To 25)As Integer

    s=Text1.Text

    For i=1 To Len(s)

        ch=Mid(s,i,1)

        If ch>=“a” And ch<=“z” Then

            m=Asc(ch)-97

            a(m)=a(m)+1

        End If

      Next i

    已知数组a中元素的初值为0,若文本框Text1中输入的内容是“One of the most important questions;”,执行该段程序后,数组元素a(14)的值为(  )

    A、0 B、2 C、4 D、5
  • 8、查找并删除重复数据的算法是基于顺序查找的优化,主要思路是把待查数据的起点元素设置成查找关键字,然后从后往前查找,通过结束时所停留的数据位置来判断查找结果(即结束时若停留在数据序列的起点,则表示数据序列中无重复数据;否则,存在重复数据,删除该数据后继续查找)。

    编写VB程序,实现上述算法。程序功能如下:运行程序时,在列表框List1中显示数组a中的原始数据,并在列表框List2中输出去重后的数组a中的数据,即相同的数据仅保留一个。同时在标签Label1中显示删除的数据总个数,运行效果如图所示,程序代码如下:

    Const maxn=10

    Dim a(1 To maxn)As Integer

    Private Sub Form_Load( )

    ´maxn个数据在数组a中,并在列表框List1中显示

    End Sub

    Private Sub Command1_Click( )

      Dim i As Integer, n As Integer       ‘n用于存储当前查找的数字长度

      Dim j As Integer, key As Integer       ‘key用于存储本次查找的关键字的数据位置

        key=1:n=maxn

        Do While key<=n

        i=n-1

        Do While       ‘①

            i=i-1

        Loop

        If i=key Then        ‘找到重复数据,删除;未找到,设定下一查找关键字

           key=key+1

        Else

          For j=i To n-1

              a(j)=a(j+1)

          Next j

          n=n-1

        End If

      Loop

      For i= 1To n

          List2.AddItem a(i)

      Next i

      Labell.Caption="共删除重复数据:"&___________&"个"

    End Sub

    (1)、程序代码“Sub Form_Load( )”中,Load是(单选,填字母:A .属性名/B .事件名/C .方法名/D .类名)。
    (2)、程序代码中,加框处循环条件有误,请改正。
    (3)、请将程序代码中的画线处赋值语句补充完整。
    (4)、如图所示的原始数据中,重复数是“1,7,10”,该程序运行时,最先删除的重复数是
  • 9、已知数组a中存储五个数据:8,13,24,32,45,现在Text1中输入一个整数x,将x插入到数组中,并使数据序列仍保持有序。

    Private Sub Command1_Click( )

    Dim n, i, j, x As Integer

    n=5:i=1

    x=Val(Text1.Text)

    If x>a(n)Then

      a(n+1)=x

    Else

      Do While x>a(i)

             ①   

        Loop

        For j=n To i Step-1

          a(j+1)=a(j)

        Next j

           ②   

      End If

      n=n+1

    End Sub

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

  • 10、有如下VB程序段:

    n=10

    For i=1 Ton-1

        For j=i+1 To n

            If a(i)=a(j)Then

              a(j)=a(n)

              n=n-1

            End If

        Next j

    Next i

    若数组a中的元素为“3,3,7,7,11,11,15,15,19,19”,则该程序执行后,数组a中的n个元素值依次为(  )

    A、3,19,7,15,11 B、3,7,11,15,19 C、3,3,7,7,11 D、3,19,7,19,11
  • 11、有如下VB程序段:

    m=Val(Text1.Text)

    i=n:f=False

    Do While i>0 And f=False

        If a(i)>m Then

          a(i+1)=a(i)

          i=i-1

        Else

          f=True

        End If

    Loop

    数组中的n个元素从小到大排序,如果要将Text1中输入的值m插入到数组中,仍使元素值保持有序,则应插入的正确位置是(  )

    A、i-1 B、i C、i+1 D、i+2
  • 12、编写寻找最长等差数列程序时,先随机生成n(n=20)个互不相同的整数,并降序排列后显示在List1中,找出由连续的数组元素构成的最长等差数列,并将其输出在列表框List2中(若长度相等,则输出靠前的一组),程序运行界面如图所示。

    实现上述功能的VB程序如下。

    Dim a(1 To 20)As Integer

    Dim n As Integer

    Private Sub Command1_Click( )

    ‘随机生成20个互不相同的整数,存储在数组a中,n记录了整数的个数,代码略

    End Sub

    Private Sub Command2_Click( )

      Dim t,max,w As Integer

      Dim i,c As Integer

      max=1:w=1

      i=2:t=2

         ①   

      Do While i<n

          If a(i+1)-a(i)=c Then

            t=t+1

            If t>max Then

              max=t

                 ②   

            End If

          Else

            t=2

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

          End If

          i=i+1

    Loop

    If max>2 Then

    For i=   ③   To w

            List2. AddItem Str(a(i))

        Next i

    Else

        List2. AddItem"没有找到等差数列"

    End If

    End Sub

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

  • 13、在一行数据(1,23,6,2,4,5,6,18,5,19)中,存在连续递增的数据序列(1,23),(6),(2,4,5,6,18),(5,19),其序列长度分别为2,1,5,2,则连续递增的数据序列长度的最大值max=5。求max值的VB程序如下,但加框处代码有错,请改正。

    Const n=10

    Dim a(1 To n)As Integer

    ‘Text1_KeyPress过程用于输入数据并将数据依次存放到数组a中

    Private Sub Text1_KeyPress(KeyAscii As Integer)

    ‘该过程代码略

    End Sub

    Private Sub Command1_Click( )

      Dim i,k,max As Integer

      max=1

      k=1

      For i=2 To n

          If  Then k=k+1 Else k=1         ‘⑴

          If k>max Then                    ‘⑵

      Next i

      Text2.Text=Str(max)

    End Sub

    以上程序段运行时,为了实现上述功能,加框处的代码应改正为:⑴;⑵

  • 14、下列VB程序段是选择排序程序的主要部分。其中框内代码用于寻找数据元素a(i)到a(n)的最小值。

    For i=1 To n-1

      k=i

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

    Next i

    框内代码运行结束时,保存最小值的数组元素一定是(  )

    A、a(n) B、a(j) C、a(i) D、a(k)
  • 15、有如下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)中的最大值
  • 16、有如下VB程序段:

    Dim a(1 To 20)As Integer

    For i=2 To 10

        For j=2 To 20\i

            a(i*j)=a(i*j)+1

        Next j

    Next i

    运行该程序段后,数组a中值为1的元素个数为(  )

    A、1个 B、2个 C、3个 D、4个
  • 17、有如下VB程序段:

    For i=1 To 10

      f=i Mod 2

      If f=0 Then a(i)=0 Else a(i)=1

      For j=1 To i

        If f=0 Then a(i)=a(i)+j Else a(i)=a(i)*j

      Next j

    Next i

    执行该程序段后,数组元素a(4)的值为(  )

    A、10 B、6 C、4 D、1
  • 18、有如下VB程序:

    Private Sub Command1_Click( )

      Dim a(0 To 4)As Integer

      Dim i As Integer

      a(4)=Val(Text1.Text)

      For i=3 To 1 Step-1

        a(i)=a(i+1)/2

      Next i

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

    End Sub

    在文本框Text1中输入“128”,连续单击2次按钮Command1后,文本框Text1中显示的内容是(  )

    A、2 B、8 C、16 D、32
  • 19、有如下VB程序段,该程序段运行后,在文本框中显示的内容是(  )

    Dim a(1 To 10)As Integer

    Dim i As Integer, j As Integer

    a(1)=1:a(2)=1

    For i=3 To 5

        a(i)=1

        For j=i-1 To 2 Step-1

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

        Next j

    Next i

    Text1.Text=Str(a(3))

    A、1 B、3 C、4 D、6
  • 20、有如下程序段:

    Dim a(10) As Integer

    Dim b(10) As Integer

    k=Val(Text1. Text)

    For i=1 To 5

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

        t=(i+k) Mod 10

        If t=0 Then t=10

        b(t)=a(i)

    Next i

    文本框Text1中的输入值为8,则执行该程序段后,b(3)的值为(  )

    A、0 B、3 C、4 D、5
上一页 1070 1071 1072 1073 1074 下一页 跳转