相关试卷

  • 1、在美国国家信息交换码中,ASCII值从32到127是可以打印并显示的字符,把这96个字符随机调整次序,生成密码本。根据输入的密钥和明文,单击“加密”按钮Command1,输出密文。基本算法如下:

    1)用数组mab分别记录1~96个字符的ASCII值,用数组zm记录对应字符在密码本中位置,如mab(9)=65,表示密码本中第9个字符是“A”,则对应的zm(65)=9;

    2)把密钥中每个字符的ASCII值的各个数字进行累加(如Hi分别为(7+2)+(1+0+5)),将累加的和除以9取余数后加7,作为将密码本转换成二维表的列数;

    3)每个明文在转换后二维表中位置作为密文,该位置是用十六进制表示的行号和列号。

    程序运行的界面如下图所示:

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

    (1)、若输入密钥为“AB”,则根据算法及密码本,字母“A”加密后的密文是
    (2)、请在划线处填入合适的代码。

    Dim Mab(96) As Integer        '存储密码本中每个字符的ASCII值

    Dim zm(127) As Integer         '存储ASCII值32至127的字符在密码本数组mab中的下标

    Private Sub Form_Load()

        '产生密码本及96个字符在密码本中位置,代码略。

    End Sub

    Function p(s As String) As Integer

        Dim i As Integer, t1 As Long

        Dim sum As Integer, s1 As String

        t1=0

        i=1

        Do While i<=Len(s)

            s1=Mid(s, i, 1)

            t1=Asc(s1)

           

            i=i+1

        Loop

        p=sum Mod 9+7

    End Function

    Private Sub Command1_Click()

        Dim i As Integer, t As Integer, hang As Integer

        Dim s As String, s1 As String, Lie As Integer

        List1.Clear

        s1=Text1.Text

        t=p(s1)

        Label5.Caption= “将密码本换成一张”+Str(t)+ “列的二维表”

        i=1

        Do While i<=96

            s=s+Chr(Mab(i))+ “”

            If i Mod t=0 Or i=96 Then

                List1.AddItem s

                s= “”

            End If

            i=i+1

        Loop

        wz= “123456789ABCDEF”

        s=Text2.Text

        For i =1 To Len(s)

            s1=Mid(s, i, 1)

           

            hang=(t1-1)\t+1

            lie=(t1-1) Mod t+1

            s2=

        Next i

        Text3.Text=s2

    End Sub

  • 2、小岩设计了一个顺时针旋转矩阵的程序,其功能为:运行程序时,在文本框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

  • 3、对一个n×n的矩阵以“行”为单位进行升序排序,如下表所示是一个4×4的矩阵以行为单位进行升序排序。

    小杜编写了实现上述功能的程序,程序功能如下:程序运行时,在文本框Text1中输入n(1<=n<=10),单击“产生”按钮Command1产生n×n个随机数,随机数的范围为[0,9],随机存储在数组a中,并以矩阵的形式在列表框List1上显示单击“排序”按钮Command2,对矩阵以“行”为单位进行升序排序,并在列表框List2输排序后的矩阵。在程序运行界面如下图所示,实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Dim n As Integer

    Dim a(1 To 100) As Integer

    ‘随机生成数并存储在List1中,代码略

    Private Sub Command1_Click()     ‘按行排序

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

        Dim s As String

        s=“”

        For i=1 To

            k=i

            For j=i+1 To

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

            Next j

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

            If I Mod n=0 Then List2.AddItem s: s=“”

        Next i

    End Sub

    Private Sub Command2_Click()     ‘按列排序

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

        Dim s As String

        s= “”

        For i=1 To i-1

            k=i

            For j= i+n To

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

            Next j

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

            If I Mod n=0 Then List2.AddItem s: s= “”

        Next i

    End Sub

  • 4、某仓库物品代码格式为“X-XXX-XXXXX-Y”,其中“X”和“Y”均为0到9之间的数字,“Y”为校验码。校验码由前面9个X计算得到,计算方法为:从左边开始,第1个数字乘以1 加上第2个数字乘以2……依此类推,直到加上第9个数字乘以9,将该结果除以10,所得余数即为校验码。

    小吴设计一个根据校验码校验物品代码的VB程序,功能如下:在文本框Text1中输入物品代码,单击“校验”按钮Command1,如果输入的校验码与计算所得的校验码一致,则输出“校验通过。”(如下左图所示),否则输出“校验不通过!”(如下右图所示)。

    Dim s As String                '用于存储输入的物品代码

    Dim t As String

    Dim i As Integer, j As Integer

    Dim sum As Integer         '用于存储计算校验码的累加和

    Dim check_old As Integer              '用于存储输入物品代码中的校验码Y

    Dim check_new As Integer            '用于存储按照前面9个数字X计算所得的新校验码

    Dim a(1 To 10)As Integer

    Private Sub Command1_Click()

        '从物品代码中取出9个数字X依次存储到a(1)到a(9)中,取出校验码Y存储到a(10)中

        s= Text          ①

        j=0

        For i=1 To 13

            t=Mid(s, i, 1)

            If(t>="0")And(t<="9") Then

                 j=j+1

                a(j)=Val(t)

            End If

        Next i

        '计算新的校验码并和输入的校验码进行比较

        sum=0

        For i=1 To 9

            sum=sum+             ②

        Next i

        check_new=          ③

        check_old=a(10)

        If check_old=check_new Then

            Label1.Caption="校验通过。"

        Else

            Label1.Caption="校验不通过! "

        End If

    End Sub

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

  • 5、有如下VB程序段:

    Dim a(1 to 5) as Integer, i as Integer, c as Integer

    a(1) = 2 : a(2) = 1 : a(3) = 3 : a(4) = 4 : a(5) = 5

    c = 0

    For i = 3 to 5

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

    Next i

    Text1.Text = Str(c)

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

    A、1 B、2 C、3 D、4
  • 6、执行下面的程序段后,x的值为(   )

    x=5

    For i=1 To 20 Step 2

        x=x+i\5

    Next i

    A、21 B、22 C、23 D、24
  • 7、水仙花数也被称为超完全数字不变数,是指一个3位数,它的每个位上的数字的3次幂之和等于它本身(例如:13+53+33=153)。课堂上老师布置作业要求用VB编写一个程序,找出所有的水仙花数,下面是小丽同学完成的作业,其中有几处错误,请帮她修改。

    Private Sub Command1_Click()

        Dim i As Long, j As Long, k As long

        Dim As long

        For i=0 To 9

            For j=0 To 9

                For k=0 To 9

                    s=i*100+j*10+k

                    If(i^3)+(j^3)+(k^3)=s Then

                        Debug. Print s

                    End If

                Next k

            Next j

        Next i

    End Sub

    (1)、修改“Dim As Long”行中的错误;
    (2)、修改“For i=0 To 9”行中的错误;
    (3)、修改“If(i^3)+(j^3)+(k^3)= s Then”行中的错误;
  • 8、有如下程序段:

    Dim a(1 To 5) As Integer

    a(1) = 3: a(2) = 2: a(3) = 7: a(4) = 5: a(5) = 1

    For i = 5 To 2 Step -1

        For j = 1 To i - 1

            If a(j) > a(j + 1) + Int(Rnd * 2) Then

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

            End If

        Next j

    Next i

    程序运行后,a(1)到a(5)的值不可能是(   )

    A、1 2 3 5 7 B、3 2 1 5 7 C、2 1 3 5 7 D、1 2 5 3 7
  • 9、数组a中存储的是两个数列交替排序的n个正整数,下标为奇数的数组元素都是奇数且为升序排列,下标为偶数的数组元素都是偶数且为降序排列。排序示例如下。

    a(1)

    a(2)

    a(3)

    a(4)

    a(5)

    a(6)

    a(7)

    a(8)

    a(9)

    a(10)

    1

    10

    3

    8

    5

    6

    7

    4

    9

    2

    依据对分查找思想,设计一个在数组a中查找数据key的程序,实现该功能的VB程序如下,请回答下列问题:

    Private Sub Search_Click()

        Const n = 10

        Dim a(1 To n) As Integer

        Dim i As Integer, j As Integer, m As Integer, f As Boolean, key As Integer

        '读取一组正整数,按上述规则存入数组 a 中。代码略

        key = Val(Text1.Text)

        If key Mod 2 = 1 Then i = 1 Else i = 2

        j = n :f = False

        Do While i <= j And Not f

            If key Mod 2 = 0 Then

                m = (i + j) \ 2 - (i + j) \ 2 Mod 2

            Else

                m =     ①   

            End If

            If key = a(m) Then

                f = True

            ElseIf   Then

                j = m - 2

            Else

                i =     ②    

            End If

        Loop

        If f Then Label1.Caption = Str(m) Else Label1.Caption = "不存在"

    End Sub

    (1)、观察程序代码,该事件处理过程名为
    (2)、程序加框处代码有错,请改正。
    (3)、请在划线处填入合适的代码。

     ② 

  • 10、对于数列:1、2、3、4、5,用二分法查找数据“4”,最少的查找次数是(   )。
    A、4次 B、3次 C、2次 D、1次
  • 11、5个学生的身高(单位:cm)依次为:172,177,180,168,165,采用冒泡排序对这5个学生的身高数据进行从高到低排序,第二遍加工后的数据为(   )。
    A、180,177,172,168,165 B、180,172,177,168,165 C、165,172,177,180,168 D、165,168,172,177,180
  • 12、对10个数据进行冒泡排序,需要比较的次数是(   )
    A、90 B、110 C、45 D、55
  • 13、在 Visual basic中,要将字符串变量a和b的值连接并将结果在文本框Text1中输出,下列代码合适的是(   )。
    A、Str(a+b)=Text1. Text B、Text. Text=a+b C、a+b= Text1. Text D、Text1. Text=a+b
  • 14、下图是王明同学编写的一段VB代码,运行后A和B的值分别是(   )。

    Dim A, B As Integer

    A=5

    B=6

    B=A+B

    A=A*B

    Print A,B

    A、30 11 B、55 11 C、55 66 D、11 55
  • 15、张羽用VB编写了一个程序,保存在计算机中根据图标判断,下面4个文件中,其中为张羽编写的工程文件是(   )。
    A、 算法的特征.htm B、 斐波那契数列问题.vbp C、 Visua Basic精简版.exe D、 VB精编程技巧.wmv
  • 16、小张同学在学习了选修教材《算法与程序设计》后,准备小试牛刀一下,就编了“判断一个数能否被7整除”的小程序,其中有三处错误,请帮助他修改。

    Private Sub Command1_ Click()

        Dim i As Integer

        Dim As String

        i= Text1.Text

        If i/7=0 Then                            '判断文本框中输入的数是否是7的倍数

            j=i & “是7的倍数,能被7整除! ”         '是7的倍数,输出能被7整除!

        Else

            j=i&"不是7的倍数,不能被7整除!"        '不是7的倍数,就输出不是7的倍数,不能被7整除!!

        EndIf

        Label3. Caption=j

    End Sub

    (1)、修改语句“Dim As String”行中的错误;
    (2)、修改语句“If i/7=0 Then”行中的错误;
    (3)、修改语句“End”行中的错误。
  • 17、张文同学使用VB编写了一个程序用来求半径为r(通过Text1输入)的圆面积(π取值3.14),该程序如下。请帮助他修改程序中的错误。

    Private Sub Command1_ Click( )

        Dim pi As Single

        Const pi=3. 14

        Text2.Text=2 pi*Text1.Text

        Text3.Text=pi*Text2.Text*Text2.Text

    End Sub
    ①删除程序中多余的语句;
    ②修改语句“Text2.Text=2 pi*Text1.Text”行中的错误;
    ③修改语句“Text3.Text=pi*Text2.Text*Text2.Text”行中的错误;
    ④使用常用工具栏中的“保存工程”按钮保存文件。

  • 18、以下程序中的循环体执行的次数是(   )

    For A=1 To 200 Step 4

        S=S+A:
    Next A

    Print S

    A、48 B、49 C、50 D、51
  • 19、在下图所示的VB“代码窗口”中,“对象”“过程”列表分别是(   )

    A、①② B、①③ C、③④ D、②③
  • 20、现有VB程序“矩形面积和.vbp”,可计算100个矩形序列的面积和,计算公式为s=1 * 2+2 * 3+…+100 * 101,该程序运行时,单击“计算”按钮,即显示结果。但该程序代码有3处错误,请修改。

    Private Sub Command1_Click()

        Dim i AS Integer

        Dim As Long

        For i = 1 To 100

            s = s + i *(i+1)

        Nest i

        Text1. Caption = s

    End Sub

    (1)、修改“Dim As Long”行中的错误;
    (2)、修改“Nest i”行中的错误;
    (3)、修改“Text1. Caption=s”行中的错误;
上一页 848 849 850 851 852 下一页 跳转