程序的调试及运行 知识点题库

下列VB程序运行时,单击命令按钮Command1后,若在文本框中输入10,则标签Label1显示的内容是

Private Sub Command1_Click()

  Dim sjzs As Integer

  Dim rjzs As String

  sjzs = Val(Text1.Text)

  rjzs = ""

  Do While Int(sjzs / 2) > 0

    rjzs = Str(sjzs Mod 2) + rjzs

    sjzs = Int(sjzs / 2)

  Loop

  Label1.Caption = rjzs

End Sub

【加试题】任意一个英文单词都由若干字母组成,记录单词中每个字母出现的次数,其中maxn为最多次数,minn为最少次数,如果maxn与minn的差是一个素数,这个单词就是一个幸运单词。

例如:单词banana由b,a,n三个字母组成,其中a字母出现了3次,n字母出现了2次,b字母出现了1次,得到maxn为3,minn为1,maxn与minn的差为2,是一个素数,那么banana就是一个幸运单词。

编写一个判断幸运单词的VB程序,在文本框Text1中输入一个单词(注:仅输入小写字母,且长度小于100),单击“判断”按钮Command1,标签Labal1输出运行结果。

程序运行界面如图所示,实现上述功能的VB代码如下,但加框处代码有错,请改正。

Private Sub Command1_Click()

    Dim maxn As Integer

    Dim minn As Integer

    Dim a(1 To 26)As Integer

    maxn=0

    minn=100

s= Text1.Text

n=Len(s)

For i=1 To n

        dz=Mid(s,i,1)

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

          p=                 ‘(1)

           a(p)=a(p)+1

        End If

Next i

For j=1 To 26

        If a(j)>0 Then

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

          If a(i)<minn Then minn=a(j)

        End If

       Next j

    If(maxn-minn>=1)And  Then       ‘(2)

        Label1.Caption=“幸运单词!”

      Else

        Label1.Caption=“无!”

      End If

    End Sub

‘自定义函数iszs(x)用于判断整数x是否为素数,如果x是素数返回True

  Function iszs(x As Integer)As Boolean

      ‘代码略

End Fuction

  1. (1) 处加框代码应改为
  2. (2) 处加框代码应改为
某简单计算器功能如下:在文本框Text1中输入一个加减算式,点击“计算”按钮Command1,计算结果在标签Label3上显示,同时在列表框List1中记录每次算式及结果。已知文本框Text1只包含正整数和“+”、“-”符号,同时以“=”结束。程序运行界面如图a所示,请回答下列问题。

图a

图b

图c

  1. (1) 设计应用程序界面时,为添加“计算”按钮,应使用图b所示“控件工具箱”中的(填写相应编号)控件,并在图c所示的“属性窗口”中,将属性的值设置为“计算”。
  2. (2) 要实现程序运行时,单击文本框Text1即可将文本框清空,则应在(选填字母: A,Command1_Click()/ B,Text1_Click()/ C,Form_Load())过程中添加语句Text1.Text = ""。
  3. (3) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_Click()

        Dim s As String, ch As String

    Dim fh As Integer, p As Integer, sum As Integer

    s = Text1.Text: fh = 1: p = 0: sum = 0

        For i = 1 To Len(s)

            ch = Mid(s, i, 1)

            If              ①                Then   '判断取出的字符是否为数字

    p = p * 10 + Val(ch)

            Else

                sum = sum + p * fh

                p = 0

                If ch = "-" Then

                            ②        

                ElseIf ch = "+" Then

                    fh = 1

                End If

            End If

        Next i

        Label3.Caption = Str(sum)

        List1.AddItem                  ③             

    End Sub

     ② ③ 

  4. (4) 运行程序,在文本框Text1中输入“5+5-2”,单击“计算“按钮后,标签Label3上将显示:。(选填字母: A,10/ B,8/ C,程序出错无法显示)
有VB 程序如下:

Private Sub Command1_Click()

    Dim s1 As String, s2 As String, ch As String

    s1 = Text1.Text

    s2 =””

    ch =””

    For i = 1 To Len(s1)

      ch = Mid (s1, i, 1)

      If Asc(ch) <= 122 And Asc(ch) >= 97 Then

        ch =Chr(Asc(ch) - 32)

      End If

      If Asc(ch) >= 65 And Asc(ch)<= 90 Then

        ch = Chr(65 + (Asc(ch) - 62) Mod 26)

      End If

      s2 = s2 + ch

    Next i

    Text2.Text = s2

  End Sub

已知大写字母A的ASCII码值为65,且小写字母的 ASCII 码为对应的大写字母的ASCII码加上32。运行上述程序,若文本框Text1 中的内容为“Text1”,单击命令按钮 Command1,则文本框Text2中将显示(  )

A . Whawl B . WHAW1 C . Whaw3 D . WHAW3
下列VB程序运行时,在文本框Text1中输入2,单击命令按钮Command1后,文本框Text2的内容是

Private Sub Command1_Click()

   Dim t As Single, h1 As Single, h2 As Single

   Const g = 9.8

   t = Val(Text1.Text)

   h1 = (g * t ^ 2) / 2

   h2 = Int(h1)

   Text2.Text = Str(h2)

End Sub

完成以下VB程序代码

在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 . ⑴s1 = Mid(s, 1, 1)    ⑵i + 1 To Len(s)    ⑶s1 = s B . ⑴s1 = Mid(s, 1, 1)    ⑵i To Len(s)        ⑶s1 = s C . ⑴s1 = Mid(s, 1, i)     ⑵i To Len(s)       ⑶s = s1 D . ⑴s1 = Mid(s, 1, i)     ⑵i + 1 To Len(s)   ⑶s = s1
数组nam()、sex()、math()、su()分别存放学生的姓名、性别、数学和总分成绩,现要求编写一个程序使得数据按照男生“总分”的降序和女生“总分”的升序排列,其中男生在前女生在后,程序界面如下图所示:

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

Dim nam(100) As String '存放学生姓名

Dim sex(100) As String '存放学生性别

Dim math(100) As Long '存放学生数学成绩

Dim su(100) As Long '存放学生总分成绩

Dim k As Integer 'k变量用来存学生人数

Private Sub Form_Load()

‘将数据库中的数据分别存储在相应的变量中并在列表框中显示出来

‘代码略

End Sub

Private Sub Command1_Click()

Dim mmax As Integer, gmax As Integer, flagm As Boolean, flagg As Boolean

i = 1: flagm = True: flagg = True

Do While i <= k And flagm = True       ①   

    mmax = 0: gmax = 0

    flagm = False: flagg = False

  For j = i To k - i + 1

    If sex(j) = "男" And su(j) > su(mmax) Then mmax = j

    If sex(j) = "女" And su(j) > su(gmax) Then gmax = j

  Next j

   If mmax <> 0 Then

      flagm = True

      t = nam(mmax): nam(mmax) = nam(i): nam(i) = t

      t = sex(mmax): sex(mmax) = sex(i): sex(i) = t

      t = math(mmax): math(mmax) = math(i): math(i) = t

      t = su(mmax): su(mmax) = su(i): su(i) = t

   End If

   If gmax <> 0 Then

       flagg = True

       If j = mmax Then             ②   

        gmax = mmax

        t = nam(gmax): nam(gmax) = nam(k - i + 1): nam(k - i + 1) = t

        t = sex(gmax): sex(gmax) = sex(k - i + 1): sex(k - i + 1) = t

        t = math(gmax): math(gmax) = math(i): math(i) = t

        t = su(gmax): su(gmax) = su(k - i + 1): su(k - i + 1) = t

       Else

        t = nam(gmax): nam(gmax) = nam(k - i + 1): nam(k - i + 1) = t

        t = sex(gmax): sex(gmax) = sex(k - i + 1): sex(k - i + 1) = t

        t = math(gmax): math(gmax) = math(k - i + 1): math(k - i + 1) = t

        t = su(gmax): su(gmax) = su(k - i + 1): su(k - i + 1) = t

      End If

   End If

i = i + 1

Loop

For i = 1 To k

List2.AddItem nam(i) + "    " + sex(i) + "    " + Str(math(i)) + "    " + Str(su(i))

Next i

End Sub

程序中①处改为

程序中②处改为

某两段VB程序分别如图1和图2所示:

当n的值为10时,关于该两段程序,下列说法不正确的是(  )

A . 两段程序中i的初值相同 B . 两段程序都采用了循环结构 C . 图1程序实现了算式“1+4+7+10”的运算 D . 图2程序中i=i+2执行了4次
运行如下Visual Basic程序,单击命令按钮Command1,出现如图所示的出错信息。

Private Sub Command1_Click()

 Dim a As Integer,b As Integer

 a=10    ‘①

 b=20    ‘②

 Text1.Text=“a+b=”+Val(a+b)    ‘③

End Sub    ‘④

发生“类型不匹配”错误时所执行的语句是(  )

A . B . C . D .
阅读下列程序,写出运行结果

Dim i As Integer

Dim s As Integer

Dim n As Integer

n = 30

s = 0

For i = 2 To n - 1

    If n Mod i = 0 Then s = s + i

Next i

Print s

程序运行后输出s的值是

有如下VB程序段,在文本框Text1中输入3,单击命令按钮Command1后,一定会出现的提示信息是(    )

Private Sub Command1_Click()

  Dim a As Integer, b As Single

  a = Val(Text1.Text)

  b=3.14*a^2

  Text2.Text = "圆面积为:"+ b

End Sub

A . 类型不匹配 B . 溢出 C . 无效的过程调用或参数 D . 未找到方法或数据成员
有以下程序段:

m=5

sum=0

while m<10:

  sum=sum+m

  m=m+1

print(sum)

程序运行后输出的结果为:(   )

A . 45 B . 26 C . 56 D . 35
在Python中运行下列程序,输出结果为(    )

for i in range (1,6):

    print(‘*’)

A . ****** B . * * * * * * C . * * * * * D . *****
下面代码的输出结果是(     )

s=0

while s<=29:

    s=s+10    #循环体

print(s)

A . B . C . 30 D . 40
有如下VB程序段:

Const n = 6

Dim a(0 To n)As String

Dim i As Integer,j As Integer

a(1)="118":a(2)="36":a(3)="98":a(4)="15":a(5)="88":a(6)="2"

For i = 2 To 4

    a(0)= a(i): j = i - 1

    Do While a(0) < a(j)

        a(j + 1)=a(j)

        j =j - 1

    Loop

    a(j + 1)= a(0)

Next i

执行该段程序后,数组元素a(1)到a(6)的值依次为(    )

A . “118”、“15”、“36”、“98”、“88”、“2” B . “2”、“15”、“36”、“88”、“98”、“118” C . “2”、“15”、“36”、“118”、“88”、“98” D . “15”、“36”、“98”、“118”、“88”、“2”
下列程序运行后的结果是(     )

for i in range(2, 6, 2)

    a=i+1

print(a)

A . 4 B . 5 C . 6 D . 7
某简单异或加密程序,能实现将输入的字符串,用指定的密钥进行简单异或加密,并输出密文的功能。其程序段如下:

def xor_code(message,key):

        ①    

    for str in message:

        pwd.append(   ②    )     #将字符逐个进行异或操作,得到结果

    return.join(pwd)

message = input('请输入明文:')

pwd = xor_code(message,'A')

print(pwd)

  1. (1) 在划线处填入适当的语句或表达式,将程序补充完整。

     ② 

  2. (2) 你认为该程序段存在哪些不足之处?该如何改进?
在VB中设计程序时,能自动被检查出来的错误是(     )
A . 语法错误 B . 语法错误和逻辑错误 C . 运行错误 D . 逻辑错误
前向纠错差错控制方法的特点是(     )
A . 能够检测出错误,但不能够纠正     B . 能够检测出错误,但不知道错误的准确位置    C . 需要反复重发,传输效率低    D . 实时性强,但是纠错设备复杂