相关试卷

  • 1、小张编写程序,实现把数据temp插入到升序序列中,得到一个新的升序序列,原升序序列各元素已依次存放在数组元素a(1),a(2),a(3),……,a(n)中。他编写的VB程序段如下:

    If temp>=a(n) Then

        a(n+1)=temp

    Else

        j=n

        Do While j>=1 And temp<a(j)

           

            j=j-1

        Loop

       

    End If

    要使程序实现上述功能,则方框①②中的语句分别是(   )

    A、a(j+1)=a(j)   a(j+1)=temp B、a(j)=a(j-1)   a(j+1)=temp C、a(j+1)=a(j)   a(j)=temp D、a(j)=a(j-1)   a(j)=temp
  • 2、数组a中存储n个2位正整数,从倒数第2个数开始,利用对分查找的思想,找到它的所在位置,并插入正确位置中,实现整个数组有序。实现该功能的VB程序如下:

    Const n = 100

    Dim a(n) As Integer

    Private Sub Form_Load()

    ′产生n个2位正整数,并显示在文本框Text1中,代码略

    End Sub

    Private Sub Command1_Click( )

        Dim i As Integer, j As Integer, left As Integer

        Dim right As Integer, m As Integer, t As Integer

        i = n-1

        Do While i > = 1

            ________

            right = n

            t = a(i)

            Do While left < = right

                m = Int((left + right)/2)

                If a(m) = t Then right = m: Exit Do

                If a(m) < t Then

                    left = m + 1

                Else

                    right = m-1

                End If

            Loop

            For j = i To right-1

                a(j) = a(j + 1)

            Next j

            ________________

            i = i-1

            s = “”

            For j = 1 To n

                s = s + Str(a(j))

            Next j

            List1.AddItem s

        Loop

    End Sub

    (1)、语句“Listl.AddItem s”中的AddItem是(单选,填字母:A .对象名/B .属性名/C .事件名/D .方法名)。
    (2)、程序代码中,加框处有错,请改正。
    (3)、程序代码中,将横线处语句补充完整。
    (4)、若删除语句“If a(m) = t Then right = m: ExitDo”,则下列说法正确的是(单选,选填字母:A .程序进入死循环,无法正常运行/B .输出排序的结果不变/C .输出排序的结果将改变)。
  • 3、有如下VB程序段:

    For i=4 To 3 Step-1

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

            tmp=a(i)

            For j=i-1 To 1 Step-1

                If tmp>a(j) Then Exit For

                a(j+1)=a(i)

            Next j

            a(j+1)=tmp

        End If

    Next i

    数组元素a(1)到(6)的值依次为“19,8,96,92,85,88”,经过该程序段“加工”后,数组元素a(1)到a(6)的值依次为(   )

    A、8,19,92,96,85,88 B、8,19,85,88,92,96 C、19,8,92,96,85,88 D、19,8,85,92,96,88
  • 4、编写一个查找最接近的数的VB程序:程序运行时,在文本框Text1中输人产生随机数的个数(1到100之间),单击命令按钮“产生随机数并升序排列”后,在列表框List1中显示已经按升序排列后的随机整数,然后在文本框Text2中输入要查找的整数,单击命令按钮"查找"后,在标签Label3中显示随机整数序列中与待查找数最接近的整数(当最接近的数有2个时,输出较大的一个)。程序运行效果如图所示:

    实现上述功能的VB代码如下,请在横线处填入合适代码。

    Dim n As Integer          '存储随机数的个数

    Dim f(1To100)As Boolean

    'f(i)为True时表示随机整数i已经产生过

    Dim a(1 To 100)As Integer

    '依次存放升序排序后的n个随机数

    Private Sub Command1_Click()

    '命令按钮“产生随机数并升序排列”的单击事件

        Dim i As Integer

        Randomize

        For i=1 To 100

            f(i)=False

        Next i

        n=Val(Text1. Text)

        For i=1 To n

            t=Int(Rnd * 100+1)

            Do While f(t)=True

                t=Int(Rnd * 100+1)

            Loop

           

        Next i

        j=0

        For i=1 To 100        '实现排序并输出

            If f(i)=True Then

               

                a(j)=i

                List1.AddItem Str(i)

            End If

        Next i

    End Sub

    Private Sub Command2_Click()

    '命令按钮“查找”的单击事件

        Dim key As Integer

        key=Val(Text2. Text)

        If key <=a(1) Then Label3. Caption=Str(a(1)): Exit Sub

        If key >=a(n) Then Label3. Caption=Str(a( n)): Exit Sub

        L=1: R=n

        Do While L<=R                '找到与 key 较为接近的两个数a(R)和a(L)

            m=(L+R)\2

            If key<=a(m)Then

                R=m-1

            Else

                L=m+1

            End If

        Loop

        If Then

        '在a(R)和 a(L)中选出更接近key的数

            Label3. Caption=Str(a(R))

        Else

            Label3. Caption=Str(a L))

        End If

    End Sub

  • 5、下列VB程序段的功能为:生成n个不重复的随机整数,保存在数组a中,并升序排序。

    Const n = 6

    Dim a(1 To n) As Integer, f(1 To 10) As Boolean

    Dim tmp As Integer, i As Integer, j As Integer, t As Integer

    ‘f数组各元素的初值置为False,代码略

    For i = 1 To   ⑴ 

        t = Int(1 + Rnd * 10)

        If Not f(t) Then

            a(i) = t : f(t) = True

            For j =   ⑵ 

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

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

                End If

            Next j

        Else

          ⑶ 

        End If

    Next i

    上述程序段3个方框处的表达式分别为(   )

    A、(1)n - 1 (2)2 to i(3)i = i - 1 B、(1)n(2)i to 2 Step -1(3)i = i - 1 C、(1)n - 1(2)2 to i(3)t = Int(1 + Rnd * 10) D、(1)n(2)i to 2 Step -1(3)t = Int(1 + Rnd * 10)
  • 6、某VB程序部分程序段如下:

    For i=1 To n-1

        For j=________

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

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

            End If

        Next j

    Next i

    为了使此程序段能实现数组a中的数据升序排列,则划线处应填入的代码是(   )。

    A、1 to n-I B、2 to n-i+1 C、n to i+1 D、i+1 to n
  • 7、有如下程序段:

    s="ABCDEFGH"

    i=1

    Do While i<=Len(s)

        If i mod 2=0 then

            s=mid(s, i+1, len(s)-i) & mid(s, 1, i-1)

        End If

        i=i+1

    Loop

    Text1.text=s

    A、ACEG B、CDEFG C、CDEGH D、GHACD
  • 8、下列选项中,将数学公式 a+b2a|ab| 改写成VB表达式,正确的是(   )
    A、sqr(a+b)2aabs(ad) B、sqr(a+b)/2a* abs(a-b) C、sqr(a+b)/(2*a* abs(a-b)) D、sqr(a+b)/(2a* abs(a-b))
  • 9、字符串变量a、b的值分别为98、34,则表达式a+b的值是(   )
    A、98+34 B、9834 C、132 D、"132"
  • 10、在VB中,判断一个数c是完全平方数(如4=2^2,4就是完全平方数)的VB表达式是(   )
    A、sqr(c)=int(sqr(c)) B、c/2=int(c/2) C、c mod 2=0 D、c\2=0
  • 11、设a=10,b=20,则能在标签label1上显示“c=30”的语句是(   )
    A、label1.caption="c=a+b" B、label1.caption="c"+str(a+b) C、label1.caption="c="+str(a+b) D、label1.caption="c="+val(a+b)
  • 12、在VB中,表达式Mid("里约奥运", 2, 2)的结果是(   )
    A、里约 B、奥运 C、约奥 D、
  • 13、在VB中,下列函数的值属于字符串常量的是(   )
    A、Val("10") B、Len("10") C、Str(10) D、Sqr(10)
  • 14、某密码强度判断程序功能如下:在文本框Text1中输入由大写字母、小写字母、数字和其他字符4种不同类型字符组成的密码字符串,单击“判断”按钮Cmd1,在标签框Label3中显示判断结果。程序运行界面如图所示。

    密码强度判断条件如下:密码长度小于6,则强度为“弱”。在密码长度大于等于6的情况下,若只出现一种字符,则密码强度为“弱”;若出现两种不同字符,则密码强度为“中”,出现三种以上不同字符,则密码强度为“强”。

    (1)、Cmd1对象属于类。(单选,填字母:A .Label/B .TextBox/C .CommandButton)
    (2)、实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Cmd1_Click()

        Dim n As Integer, i As Integer, m As Integer, s As String, c As String

       

        If n<6 Then

            Label3.Caption="弱"

        Else

            s="0000"

            For i=1 To n

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

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

                    Mid(s, 4, 1)="1"            '将字符串s第4位上的字符替换为"1"

                ElseIf c>="A" And c<="Z" Then

                    Mid(s, 3, 1)="1"

                ElseIf c>="a" And c<="z" Then

                    

                Else

                    Mid(s, 1, 1)="1"

                End If

            Next i

            m=0

            For i=1 To 4

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

            Next i

            If m<2 Then

                Label 3.Caption="弱"

            ElseIf m=2 Then

                Label 3.Caption="中"

            Else

               Label3.Caption="强"

            End If

        End If

    End Sub

    (3)、若文本框 Text1中输入的内容为“a26$gh2!”,则单击“判断”按钮Cmd1,事件过程运行结束时,变量s的值为
  • 15、一个十进制整数的二进制表示中,如果数字“1”的个数多于数字“0”的个数,则称该整数为A类数。如十进制整数26的二进制表示为11010,26就是一个A类数。以下VB程序的功能:寻找前1000个自然数中所有A类数在List1中输出,并将统计个数在Text1中输出。请回答以下问题:
    (1)、十进制数37(选填:是/不是)A类数。
    (2)、请在划线处填入合适的代码。

    Private Sub Command1_Click()

        Dim i As Integer, n As Integer

        Dim s As Integer            's为A类数的个数

        Dim t As Integer            't为二进制数中“1”的个数

        Dim k As Integer           'k为二进制数中“0”的个数

        s=0

        For i=1 To 1000

            n=i: t=0: k=0

            Do While n>0

                If Then t=t+1 Else k=k+1

               

            Loop

            If t>k Then

                List1.Additem Str(i)

                s=s+1

            End If

        Next i

        Text1.Text=Str(s)

    End Sub

  • 16、现有n根棍子,第i根棍子的长度为a<sub>1</sub>,现设计了以下VB程序段,想要从中选出三根棍子组成周长尽可能长的三角形,输出最大的周长;若无法组成三角形,则输出0。如当n=5,a={2,3,4,5,10}时,输出12,即选择了3、4、5。当n=4,a={4,5,10,20}时,无法组成三角形,输出0。实现上述功能的VB程序代码如下,但加框处代码有误,请改正。

    Dim a(1 To 1000) As Integer

    Dim n As Integer

    Private Sub Form_Load()

    '确定n的值和数组a的各个元素值,即每根棍子的长度值,代码略

    End Sub

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

        If x>y Then

            max=x

        Else

            max=y

        End If

    End Function

    Private Sub Command1_Click()

        Dim i As Integer, J As Integer, K As Integer

        Dim ans As Integer, c As Integer, longest As Integer,

        rest As Integer

        ans=0

        '让i<j<k,保证棍子不会被重复选中

        For i=1 To n

            For j=i+1 To n

                For k=j+1 To n

                    c=a(i)+a(j)+a(k)

                    longest=      '①

                    rest=c-longest        'rest 保存最短的两条边的和

                    If Then      '②

                        ans=max(ans, c)

                    End If

                Next k

            Next j

        Next i

        Print ans

    End Sub

    (1)、①处应改为
    (2)、②处应改为
  • 17、在text1文本框内输入字符串,单击去重按钮,将字符串后面相同的字符删除,并在text2中输出经过删除的字符串。程序界面如图所示。请在下面划线处填入合适的代码。

    Private Sub Command1_Click()

        Dim s As String, s1 As String, c As String

        s = Text1.Text

        For i = 1 To Len(s)

            c = Mid(s, i, 1)

            s1 =    ⑴   

            For j =    ⑵   

                If c <> Mid(s, j, 1) Then

                    s1 = s1 + Mid(s, j, 1)

                End If

            Next j

               ⑶    

        Next i

    Text2.Text = s

    End Sub

    A、(1)s1 = Mid(s, 1, 1) (2)i + 1 To Len(s)(3)s1 = s B、(1)s1 = Mid(s, 1, 1)(2)i To Len(s)(3)s1 = s C、(1)s1 = Mid(s, 1, i)(2)i To Len(s)(3)s = s1 D、(1)s1 = Mid(s, 1, i)(2)i + 1 To Len(s)(3)s = s1
  • 18、下面程序的功能是:产生20个[1,100]范围内的随机整数,并统计这20个随机数中的整数的个数(重复出现算1个),结果显示在标签Label1中。例如:5个随机数[10,20,20,31,32]中不重复数字个数为3。程序部分代码如下:

    count = 0

    For i = 1 To 20

        a(i) = Int(Rnd ∗ 100) + 1

    Next i

    For i = 1 To 20

              

    Next i

    For i = 1 To 100

        If b(i) <> 0 Then count = count + 1

    Next i

    Label1.Caption= "不重复数字个数" + Str(count)

    为实现上述功能,则程序①处应填入的语句为(   )

    A、b(i)=1 B、b(a(i))=a(b(i))+1 C、b(i)=b(i)+1 D、b(a(i))=b(a(i))+1
  • 19、向文本框Text1中输入一串包含大小写的字母,统计出现次数最多的字母(不区分大小写)并将该字母以大写方式输出到文本框Text2,如有多个字母次数相同的,则只记录最后出现的字母,部分程序如下:

    Dim c(1 To 26)As Integer

    s=Text1.Text

    For i=1 To Len(s)

        x=Mid(s, i, 1)

        If x>="a" Then

            t=Asc(x)-Asc("a")+1

        Else

            t=Asc(x)-Asc("A")+1

        End If

           ① 

        If c(t)>=Max Then Max=c(t):   ②  

    Next i

    Text 2.Text=Chr(f+Asc("A"))

    划线处应该填入的正确语句是(   )

    A、①c(t-1)=c(t-1)+1②f=t B、①c(t)=c(t)+1②f=t C、①c(t-1)=c(t-1)+1②f=t-1 D、①c(t)=c(t)+1②f=t-1
  • 20、有如下所示VB程序段:

    str1 = “ABCDEFGHIJKLMNOPQRSTUVWXYZ”

    s = “”

    For i = 1 To 4

        t = Int(Rnd*10) + 1

        If t Mod 2 = i Mod 2 Then

            t = t + 1

        Else

            t = t + 2

        End If

        s = s + Mid(str1,t,1)

    Next i

    List1.AddItem s

    执行该程序段后,列表框List1中可能显示的内容是(   )

    A、BADC B、BCDY C、DEFG D、CDEF
上一页 864 865 866 867 868 下一页 跳转