相关试卷

  • 1、如果两个质数的差为2,则这两个质数称为李生质数对。编写VB程序,实现如下功能:单击“显示孪生质数对”按钮Command1,在列表框List1中显示100以内的所有孪生质数对。如图所示。

    实现上述功能的VB代码如下,但加框处代码有误,请改正。

    Dim a(1 To 50)As Integer

    Private Sub Command1_Click( )

      Dim i As Integer

      k=0:i=3

      Do While i<=100

          If  Then     ‘①

              k=k+1

              a(k)=i

          End If

          i=i+2

      Loop

      For i=2 To k

          If   Then     ‘②

              List1.Addltem Str(a(i-1))+ "和"+Str(a(i))

          End If

      Next i

    End Sub

    Function prime(x As Integer) As Boolean

      prime=False

      For i=2 To Int(Sqr(x))

        If x Mod i=0 Then

          prime=True

          Exit For

        End If

      Next i

    End Function

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

  • 2、在计算机系统中,数值一律用补码表示和存储(补码的计算方法:正整数的补码用其二进制数表示,负整数的补码是将其对应的正整数二进制数的所有位取反后加1)。小明为了更好地了解数值在计算机中是以什么形式传输的,编写了如下VB程序段。在文本框Text1中输入一个整数(-128至127之间的整数),单击“计算”按钮,在文本框Text2中输出对应的补码。程序运行界面如图所示。

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

    Private Sub Command1_Click( )

        Dim n As Integer, i As Integer

        Dim b(1 To 8) As Integer

        Dims As String

        s="":n=Val(Text1. Text)

        If n>=0 Then

            For i=1 To 8

                b(i)=n Mod 2:n=n\2

            Next i

        Else

            n=Abs(n)

            For i=1 To 8

                b(i)=(n+1) Mod 2:n=n\2

            Next i

            b(1)=b(1)+1

            i=1

            Do While b(i)=2

                b(i)=0

                i=i+1

                __________

            Loop

        End If

        For i=8 To 1 Step-1

            s=

        Next i

        Text2. Text=s

    End Sub

    (1)、观察运行界面,程序至少使用了类控件。
    (2)、根据程序规定的算法,-20的补码是
    (3)、请将程序代码中的画线处语句补充完整。
    (4)、程序代码中,加框处赋值语句有误,请改正。
  • 3、来种编码以4位二进制码为一组,每组前两位表示方向,后两位表示距离。编写一个程序,将编码翻译成方向和距离,距离值为每组编码后两位二进制数转换为十进制数的值。具体功能如下:在文本框Text1中连续输入多组编码,单击“翻译”按钮Command1,结果显示在列表框List1中。程序运行界面如图所示。

    (1)、要使程序运行时,文本框Text1的Width属性值为2018,可在Form_Load事件过程中添加语句(单选,填字母:A .Width=2018/B .Text1.Width=2018/C .Width.Textl=2018)。
    (2)、实现上述功能的VB程序如下,请在画线处填入合适的代码。

    Private Sub Command1_Click( )

    Dims As String, c As String,d As String

    Dim n As Integer, b1 As Integer, b2 As Integer, v As Integer, i As Integer

    s=Text1.Text:n=Len(s):i=1

    Do While i<=n

        c=Mid(s,i,2)

        If c="00"Then

          d="东"

        ElseIfc="01"Then

          d=“南"

        ElseIf c="10" Then

          d="西(vi)"

        Else

          d="北"

        End If

        b1=Val(Mid(s, i+2, 1))

        b2=Val(Mid(s ,i+3, 1))

        v=   ①  

        List1.AddItemd+""+Str(v)

           ②  

    Loop

    End Sub

     ② 

    (3)、若文本框Text1中输入的内容为“1111”,单击“翻译”按钮,列表框List1中显示的内容是
  • 4、奇偶校验是一种校验数据传输正确性的方法。其中奇校验方法:统计二进制数据的数位中“1”的个数,若个数为奇数,则校验位值为0,否则校验位值为1。小李编写了一个计算奇校验位值的VB程序,功能如下:在文本框Tex1中输入十进制下1~255间的待校验数,单击“计算”按钮Commana1 后,在文本框Text2中显示该数对应的二进制值,并在标签Label3中显示该数的校验位值。程序运行界面如图所示。

    (1)、在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的属性。
    (2)、实现上述功能的VB程序如下,请在画线处填入合适的代码。

    Private Sub Command1_Click( )

      Dim a As Integer,s As String

      Dim n As Integer,t As Integer,v As Integer

      n=Val(Text1.Text)

      t=0

      s=""

      Do While n>0

        a=n Mod 2

        n=n\2

        t=   ①  

        s=Str(a)+s

      Loop

      v=t Mod 2

      Text2.Text=s

      Label3.Caption="校验位值:"+   ②  

    End Sub

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

    (3)、运行该程序,在文本框Text1中输入2,单击“计算”按钮,则显示的校验位值是
  • 5、将数组a中各元素均初始化为0,执行以下程序:

    i=0

    Do While i<n

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

        Do While a(j)=5

            a(j)=0

            j=j+1

            a(j)=a(j)+1

        Loop

    Loop

    当n=98时,程序结束后数组a中各元素相加的和为(  )

    A、3 B、6 C、10 D、14
  • 6、有如下VB程序段(数组a中各元素的初始值均为0):

    n=Len(Text1.Text):c=1

    For i=1 To n

        s=Mid(Text1.Text,i,1)

        If s>="0"And s<="1"Then

            a(c)=a(c)*2+Val(s)

        Else

            If a(c)>0 Then c=c+1

        End If

    Next i

    在文本框Text1中输入“A:1010 C:1100 E:1110”。执行该程序后,数组a(2)中的元素值为(  )

    A、2 B、12 C、22 D、2200
  • 7、某校秋季运动会共有n名运动员参赛,小明编写了根据号码牌查询学生信息的程序,输入号码牌就能查询该号码牌所属的班级和选手姓名。数组a,b,c分别保存了本次运动会所有选手的号码牌、班级、姓名信息。第i个选手的号码牌保存在a(i)中,对应的班级和姓名保存在b(i)和c(i)中。程序界面如图所示,在文本框Text1中输入号码牌,单击“查询”按钮(Command1),如果找到对应的信息,就显示所属班级和选手姓名;如果没有找到,则显示“未找到”。

    (1)、分析程序,可知数据库的文件名为 , 当前数据表的名称为
    (2)、填入适当的代码,把程序补充完整。

    Dim n As Integer     ‘用于存储运动员总人数

    Dim a(1000)As Integer, b(1000)As String, c(1000)As String

    Private Sub Form_Load( )

      Dim conn As New ADODB. Connection

      Dim rs As New ADODB. Recordset

      conn. ConnectionString ="Provider =Microsoft. Jet. OLEDB. 4.0;DATA Source=" &App. Path & "\sport.accdb"

        conn.Open

        Set rs. ActiveConnection=conn

        rs.Open"Select*from号码牌"

        Do While Not rs. EOF  ‘到记录集rs的最后一条记录后退出循环

          n=n+1

          a(n)=rs. Fields("号码牌")    ‘读取当前记录“号码牌”字段值

          b(n)=     ①                ‘读取当前记录“班级”字段值

          c(n)=rs. Fields("姓名")      ‘读取当前记录“姓名”字段值

              ②                        ‘移动到下一条记录

        Loop

    ‘号码牌按升序排序后,显示在列表框List1中,其他代码略

    End Sub

    Private Sub Command1_Click( )

        Dim x As Integer

        x=Val(Text1.Text)

        pos=        ③         

        If pos>0 Then

          Text2.Text=b(pos):Text3.Text=c(pos)

        Else

          Text2.Text="未找到"

        End If

    End Sub

      Function Search(Key As Integer)As Integer

        Dim i As Integer,j As Integer

        i=1:j=n:Search=0

        Do While i<=j

            m=Fix((i+j)/2)

            If Key=a(m)Then

                Search=m:Exit Function

            ElseIf   ④   Then

                j=m-1

            Else

                i=m+1

            End If

        Loop

    End Function

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

  • 8、如下代码将记录集rs中“售价”字段的数据通过循环依次存入数组a中。

    i=0

    Do While Not rs. EOF

        i=i+1

        a(i)=rs. Fields("售价")

        rs. MoveNext                  ‘①

    Loop

    若记录集rs共有10条记录,执行循环前,当前记录为第1条。循环结束后,①处代码共执行的次数为(  )

    A、8次 B、9次 C、10次 D、11次
  • 9、通过ADO的Recordset对象,实例rs打开了如下表所示的记录集:

    序号

    书名

    作者

    售价

    数量

    1

    水浒传

    施耐庵

    20.4

    10

    2

    西游记

    吴承恩

    18.2

    15

    3

    红楼梦

    曹雪芹

    25.6

    20

    4

    三国演义

    罗贯中

    23.8

    18

    当前记录是第2条,要用Fields集合返回第3个字段的信息,正确的表示是(  )

    A、rs. Fields(0) B、rs. Fields(1) C、rs. Fields("作者") D、rs. Fields("售价")
  • 10、通过ADO的Recordset对象从数据库中获取数据,有以下程序段:

    Dim rs As new ADODB. Recordset

    Set rs.ActiveConnection=conn

    rs.open "select*from s_info"

    记录集rs成功打开后,获取的数据为(  )

    A、数据库中的所有表的数据 B、数据库中表“s_info”里的所有记录 C、数据表中“s_info”里的某一条记录 D、数据库中任意一张表的所有记录
  • 11、n个数据的冒泡排序需要经过n-1遍的加工,每一遍加工都自下而上比较相邻的两个数据,把较小者交换到上面,在第i遍加工过程中需要进行n-i对数据的比较。在某些情况下,第i遍加工过程中,在上面部分较小的数据已经有序的情况下,不需要再进行n-i对数据的比较,如对“17,18,19,24,23,20”这6个数据排序时,第1遍排序结束后的数据为“17,18,19,20,24,23”,那么第2遍排序时就不再需要对20及其前面3个数据进行比较。以下程序实现了冒泡排序的优化,其程序运行界面如图所示,但加框处代码有误,请改正。

    Dim n As Integer

    Dim a(1 to 10)As Integer

    Private Sub Form_Load( )

        ‘n=10,排序前生成的数据存储在数组a中,并在列表框List1中显示

        ‘代码略

    End Sub

    Private Sub Command1_Click( )

        Dim i,j As Integer

        Dim start As Integer

                               ‘①

        Do While i<n

            start=n

            For j=n To i Step-1

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

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

                    start=j

                End If

            Next j

                        ‘②

        Loop

      For i=1 To n

          List2.AddItem Str(a(i))

      Next i

    End sub

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

  • 12、小吴为了研究冒泡排序过程中数据的“移动”情况,编写了一个VB程序,功能如下:在列表框List1中显示排序前的数据(存储在数组a中),在文本框Text1中输入初始位置(即下标值),单击“排序”按钮Command1后,在标签Label1中显示指定初始位置的数据在排序过程中的位置变化情况,排序后的数据显示在列表框List2中。程序运行界面如图所示。

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

    Dim a(1 To 8)As Integer

    Dim n As Integer

    Private Sub Form_Load( )

      a(1)=30:a(2)=47:a(3)=30:a(4)=72

      a(5)=70:a(6)=23:a(7)=99:a(8)=24

      n=8

      For i=1 To 8

          List1.AddItem a(i)

      Next i

    End Sub

    Private Sub Command1_Click( )

      Dim i,j,k,pos As Integer

      Dims As String

      s=Text1.Text

      pos=Val(Text1.Text)

      For i=1 To n-1

          For j=n

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

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

              ‘如果pos位置的数据参与交换,则更新pos值,记录pos变化位置

                If pos=j Then

                    pos=j-1

                    s=s+"→"+Str(pos)

                

                    pos=j

                    s=s+"→"+Str(pos)

                End If

              End If

          Next j

      Next i

      Label1.Caption=“位置变化情况:"+s

      For i=1 To n

          List2.AddItem Str(a(i))

      Next i

    End Sub

    (1)、程序中语句“List2.AddItem Str(a(i))”用于将数组元素在List2中显示出来。类似的,可以使用“List2.Removeltem2”删除List2中的第2项(项号从0开始),则Removeltem是(单选,填字母:A .事件名/B .属性名/C .方法名/D .对象名)。
    (2)、请将程序代码中的画线处语句补充完整。
    (3)、程序代码中加框处有误,请改正。
    (4)、程序代码“pos=j-1”表明该元素是和它的一项发生了位置交换(单选,填字母:A .前/B .后/C .没有)。
  • 13、有如下VB程序段:

    n=Val(Text1.Text)

    For i=1 To n

        a(i)=i

    Next i

    For i=1 To n/2-1

        For j=n To 2*(i+1)Step-2

            If   ①   Then

              t=a(j):a(j)=a(j-2):a(j-2)=t

            End If

        Next j

        For j=1 To n-i*2-1 Step 2

        If   ②   Then

          t=a(j):a(j)=a(j+2):aj+2)=t

        End If

      Next j

    Next i

    当n为8时,上述程序段的运行结果a(1)至a(8)的值分别为1,8,3,6,5,4,7,2,则画线处应填入的代码分别为(  )

    A、a(j)<a(j-2),a(j)<a(j+2) B、a(j)<a(j-2),a(j)>a(j+2) C、a(j)>a(j-2),a(j)<a(j+2) D、a(j)>a(j-2),a(j)>a(j+2)
  • 14、有如下VB程序段:

    For i=6 To 4 Step-1

      j=1

      Do While j<=i-1

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

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

          End If

          j=j+1

      Loop

    Next i

    若数组元素a(1)到a(6)的值依次为“26,13,23,18,7,14”,则执行该程序段后,数组元素a(1)到a(6)的值依次为(  )

    A、26,13,23,18,7,4 B、13,7,14,18,23,26 C、7,13,14,18,23,26 D、26,23,18,14,13,7
  • 15、某排序算法的VB程序段如下:

    For i=1 To 2

      For j=2 To7-i

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

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

        End If

      Next j

    Next i

    若数组元素a(1)到a(6)的值依次为“8,2,9,3,5,1”,则经过该程序段“加工”后,数组元素a(1)到a(6)的值依次为(  )

    A、2,8,3,5,1,9 B、2,3,5,1,8,9 C、2,3,1,5,8,9 D、2,1,3,5,8,9
  • 16、有10个数据:56,45,43,34,26,76,90,13,15,21依次存放在数组a(1)到a(10)中,部分VB程序段如下所示:

    n=Val(Text1.Text)

    ans=0

    For i=1 To n-1

      For k=n To i+1 Step-1

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

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

              ans=ans+1

          End If

      Next k

    Next i

    Text2.Text=Str(ans)

    在文本框Text1中输入“8”,则在文本框Text2中输出的值是(  )

    A、2 B、11 C、4 D、-77
  • 17、有如下VB程序段:

    s="  "

    For i=1 To 3

        For j=1 To 8-i

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

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

          End If

        Next j

        s=Str(a(i))+s

    Next i

    若数组元素a(1)到a(6)的值依次为“32,48,24,76,38,17,64,52”,则经过该程序段“加工”后,s的值为(  )

    A、38,76,48 B、48,76,38 C、17,24,32 D、76,64,52
  • 18、有如下VB程序段:

    For i=1 To 2

      j=1

      Do While j<6-i

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

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

          End If

      Loop

    Next i

    若数组元素a(1)到a(6)的值依次为“71,54,58,29,31,78”,则经过该程序段“加工”后,数组元素a(1)到a(6)的值依次为(  )

    A、29,31,54,58,71,78 B、78,71,58,54,31,29 C、54,29,31,58,71,78 D、71,58,54,78,31,29
  • 19、小明对教材上的冒泡算法进行优化,当数据已经有序时就停止加工,为此他编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前的数据,单击“排序”按钮Command1,在列表框List2中显示这些数据按升序排序后的结果,在标签Label1中显示排序过程的加工遍数,在标签Label2中显示排序过程的数据交换次数。运行效果如图所示。

    实现上述功能的VB代码如下,但加框处代码有误,请改正。

    Const n=10

    Dim a(1 To n)As Integer

    Private Sub Form_Load( )

    ‘排序前的数据存储在数组a中,并在List1中显示,代码略

    End Sub

    Private Sub Command1_Click( )

      Dim flag As Boolean

      Dim x As Integer, y As Integer

      x=0:y=0

      flag=True:i=1

      Do While i<=n-1 And flag

        flag=False

        For j=n To i+1 Step-1

          If   Then    ‘①

              t=a(j)

              a(j)=a(j-1)

              a(j-1)=t

              flag=True

                   ‘②

          End If

      Next j

      y=y+1

            ‘③

    Loop

    Label1.Caption="经过"+Str(y)+"遍排序数据有序!"

    Label2.Caption="数据总共交换"+Str(x)+"次!"

    For i=1 To n

      List2.AddItem Str(a(i))

    Next i

    End Sub

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

  • 20、完成某排序算法的VB程序段如下:

    For i=1 To 7

      flag=False

      For j=8 To i+1 Step-1

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

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

            flag=True

        End If

      Next j

      If Not flag Then Exit For

    Next i

    数组a(1)到a(8)存储的数据依次为“38,11,21,62,59,65,77,79”,如果用上述算法排序,程序执行后,变量i的值为(  )

    A、2 B、3 C、4 D、7
上一页 1074 1075 1076 1077 1078 下一页 跳转