常量、变量及变量的赋值 知识点题库

小婷编写了一个VB程序,实现如下功能,在文本框Text1中输入一个4位整数zs,单击解密按钮后,在List1列表框中显示当前zs值降序开始的10位相邻整数“解密前”和“解密后”的信息,运行界面如图所示。

解密规则:将整数中各个位中的每一位值乘以5,然后除以8所得余数即为该位的值,然后将所得数的首末位进行交换。如数字9357,解密后的值为3715。

  1. (1) 观察程序代码,可知“解密”按钮的对象名是
  2. (2) 实现上述功能,请在划线处填入合适的代码。

    Private Sub Decryp_Click( )

    Dim zs As Long, g As Integer

    Dim b As Integer, q As Integer

    Dim m As Integer, s As Integer

    Dim jmh As String

    zs = Val(Text1.Text)

    For m = zs To

    q = (m \ 1000) * 5 Mod 8

    b = ((m \ 100) Mod 10) * 5 Mod 8

    s = ((m \ 10) Mod 10) * 5 Mod 8

    g = (m Mod 10) * 5 Mod 8

    List1.AddItem Str(m) + "  " + jmh

    Next m

    End Sub

  3. (3) 由上述算法可知,四位数“6124”对应的解密数值是
素数是指除了1和本身不能被任何数整除的数。请将3到100间的素数添加到LIST1中。

PRIVATE SUB FORMCLICK

  FOR I = 3 TO

     F=0

     FOR J= 2 TO I-1

       IF THEN

        F=1

        EXIT FOR

       END IF

     NEXT J

  IF F=0   THEN

 

 END SUB

将一个二进制数转化为十进制数可以采用“按位权展开”法。程序功能如下:在文本框Text1中输入一个二进制数,单击“开始转换”按钮Command1后,对应的十进制数在文本框Text2中显示。程序界面如图所示。

进转为进制程序

  1. (1) 该程序窗体中共有个对象(不包含窗体本身)。
  2. (2) 为实现上述功能,请在划线处填入合适的代码。

    Private Sub Command1 _Click( )

    Dim s As String, st As Long, ch As Integer

    Dim i As Integer, n As Integer

       ①    

    n=Len(s)

    st=0

    For i=1 To n

        ch=   ②  

        st=st+ch*2^(i- 1)

    Next i

    Text 2. Text = Str(st)

    End Sub

     ② 

  3. (3) 运行该程序,当输入的二进制数为“10101”时,得到的十进制结果是
某算法的部分流程图如图所示,其中a(1)到a(5)中的数据为7, 13, 19, 9, 25执行完这部分流程后,输出的结果是(  )

A . s=9,i=1,k=5 B . s=11,i=1,k=6 C . s=7,i=1,k=6 D . s=11,i=3,k=6
下列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,tAs 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)
下列程序执行后文本框Text 1显示的内容是 (  )

s="ERROR:Divisor must not be zero!"

flag=False:m=0

For i=1 To Len(s)

   ch=Mid(s, i, 1)

   If ch>="a" And ch <="z" Then

      If Not flag Then

         m=m+1:flag=True

      End If

   Else

      flag=False

   End If

Next i

Text1.Text=Str(m)

A . 4 B . 5 C . 6 D . 19
有如下VB程序段:

Private Sub Form Load()

Dims As String

s=Str(Val(“2020”) +Len(“加油!”) )

Label1.Caption=s

End Sub

下列说法正确是(  )

A . 响应此事件的对象名肯定为“Form” B . “=”在VB中只能表示为赋值 C . 这段程序共涉及到2个对象 D . 运行该程序段后,Label1中显示“2020加油!”
矩阵斜线排序是指按斜线方向从小到大实现排序,如5*5矩阵斜线排序效果如下图所示。

小明使用VB实现该排序,设计功能如下:随机生成两位正整数并显示在List1中,单击按钮“Command1”后将排序完成的数据显示在List2中。界面如图所示。

请回答以下问题:

  1. (1) 更改窗体按钮Command1显示为“开始排序”,则需要设置它的属性。(单选,填写字母:A .Text/B .Caption/C .Name)
  2. (2) 请完善程序代码。

    Const n= 5      '矩阵大小

    Dim a(1To n*n) As Integer

    Private Sub Form_Load()

    '随机生成n*n的矩阵数据,并依次保存在数组a(1)~a(n*n)中

    '以n*n矩阵形式在list 1中显示数据,代码略

    End Sub

    Private Sub Command 1_Click()

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

      Dim startpos As Integer, endpos As Integer, s As String

      For i= 2 To 2*n-2

         If i<=n Then

          startpos=(i-1) *n+ 1

          endpos=i

       Else

          startpos=  ① 

          endpos=(i-n+1) *n

       End If

       Do While startpos>endpos

         ② 

         j=startpos-n+1

         Do While j>=endpos

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

           j=j-n+1

       Loop

       If k<>startpos Then

           t=a(k) :a(k) =a(startpos) :a(startpos) =t

       End If

         start pos=startpos-n+ 1

        Loop

        Next i

        For i=1To n

          s=””

          For j=1To n

             s=s+  ③ 

         Next j

         List 2.Add Item s

      Next i

    End Sub

     ② ③ 

某算法的部分流程图如右图所示。执行这部分流程,变量a的值是

图片_x0020_250

A . 4 B . 5 C . 1 D . 0
小明基于插入排序思想设计了一个改进的排序算法。输入n个两位正整数到数组a,判断数组a中每个元素的奇偶性,若为奇数则将其放前插入适当位置,若为偶数则将其放后插入适当位置。排序完后数组a中所有奇数在前升序排序,偶数在后降序排序。程序代码如下:

Dim a(1 To 100) As Integer, n As Integer

Function moving( start As Integer, finish As Integer, st As Integer)

'将元素 a(finish)插入到元素 a(start)和元素 a(start+st)之间

Dim i As Integer, k As Integer k = a(finish)

For i = finish - st To start Step -st a(i + st) = a(i)

Next i a(start) = k

End Function

Private Sub Command1_Click()

Dim head As Integer, end1 As Integer, i As Integer, ans As String

' 将待排序的数存储在数组 a 的 a(1)至 a(n)中,并输入元素个数 n,代码略

head = 1: end1 = n + 1

Do While head < end1

If    ①    Then

For i = 1 To head - 1

If a(i) > a(head) Then Exit For

Next i

Call moving(i, head, 1)

head =     ②    

Else

For i = end1 To n

If a(i) < a(head) Then Exit For

Next i

Call moving(    ③    )

End1 = end1 - 1

End If

Loop

For i = 1 To n

ans = ans + Str(a(i))

Next i

Text2.Text = ans End Sub 请回答下列问题:

  1. (1) 若输入 n=5,元素 a(1)至 a(5)的初值为:11,12,13,14,15,运行程序后,输出的结果为
  2. (2) 实现上述功能的 VB 程序如下,请在划线处填入合适的代码。

     ② ③ 

  3. (3) 如果输入的 n 个数中有非正整数(数保证能在 Integer 型存储),运行程序后的输出(选填: 能 / 不能)保证仍是奇数在前升序排序,偶数在后降序排序。
某冒泡排序算法的VB程序段如下:

i =n

Do while i>=2

  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

  i=i-1

Loop

执行完上述程序段后,实现a数组元素有序排列,则划线处的代码可以是(    )

①n To n + 2- i Step –i    ②n To i + 1 Step -1    ③2 To i    ④2 To n-i

A . ②③ B . ②④ C . ①④ D . ①③
某排序算法的VB程序段如下:

For i=1 To 4

  k=i

  For j=5 To i+1 Step-1

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

  Next j

  If k<> i Then

     tmp=a(k) : a(k)=a(i) : a(i)=tmp

    f(i)=True

 End If

Next i

当数组元素a(1)到a(5)的值依次为“8,2,1,21,3”数组f的初值均为 False,执行该程序段,f数组中元素值为True的个数有(    )

A . 1个 B . 2个 C . 3个 D . 4个
下列语句用于计算s = 1+4+7+10+…+25屏幕输出最后结果。

①for i in range(1,26,3):   ②print(s)   ③s = 0   ④s = s + i

正确的语句顺序是(    )。

A . ①②③④ B . ①③④② C . ③①④② D . ④③①②
某算法的部分流程图如图所示。执行这部分流程,若输入s和n的值分别为21和8,则输出t的值为(   )。

A . 1000 B . 25 C . 52 D . 218
奇偶校验是一种校验数据传输正确性的方法。其中奇校验方法:统计二进制数据的数位中“1”的个数,若个数为奇数,则校验位值为0,否则校验位值为1。小李编写了一个计算奇校验位值得VB程序,功能如下:在文本框Text1中输入1~255十进制待校验数,单击“计算”按钮Command1后,在文本框Text2中显示该数对应的二进制值,并在标签Label3中显示该数的校验位值。程序运行界面如图所示。
  1. (1) 在设计程序界面时,要清空文本框中的显示内容,应修改该文本框中的属性,要修改窗体的标题,应该应修改该窗体的属性。
  2. (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. (3) 运行该程序,在文本框Text1中输入22,单击“计算”按钮,则显示的校验位值是 。

某市对一户一表居民实行阶梯电价,电费计算方式如下:月用电量在1-50千瓦时部分不调价;月用电量在51-200千瓦时部分,电价每千瓦时上调0.03元;月用电量超过200千瓦时部分,电价每千瓦时上调0.10元。

若假定某用户一个月的用电量为x千瓦时,当前单价为p元/千瓦时,则计算标准如下:当x≤50时,电费为p×x元;当50<x≤200时,电费为p×x+(x-50)×0.03元;当x>200时,电费为p×x+4.5+(x-200)×0.1元。

程序设计界面如下图所示,程序的功能是:在文本框Text1中输入用电量x(单位:千瓦时),在文本框Text2中输入电量p(单位:元),单击“计算”按钮(Command1)后,在标签Label4中输出计算结果。

  1. (1) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_Click()

    Dim x As Single, p As Single

    Dim s As Single

    x =

    p =        '此处改错

    If x <= 50 Then

        s = p * x

       

        s = p * x + (x - 50) * 0.03

    Else

        s = p * x + 4.5 + (x - 200) * 0.1

    End If

    Label4.Caption = "本月的电费为:" +  + "元"

    End Sub

  2. (2) 程序代码中加框处代码有误,请改正。

    改正:

某对分查找算法的VB程序段如下:

i=1:j=8:s=0:c=0

Key= Int(Rnd * 10) +41

flag = True

Do Whilei<= j And flag

     c=c+ 1

     m-(i+j)\2

     If Key = a(m) Then flag = False

     If Key < a(m) Thenj=m-1 Elsei=m+ 1

     s=s* 10+ m

Loop

数组元素a(1)到a(8)的值依次为“10,20,30,40,50,60,70,80”,执行该程序段后,下列说法错误的是(    )

A . c的值一定是3 B . s的值一定是465 C . i的值一定是5 D . j的值可能是4或5
小王设计了一个利用矩阵“翻转法”实现矩阵逆序输出的程序,其功能为:运行程序时,在文本框 Text1 中输入矩阵大小n,点击“产生矩阵”按钮 Command1,在列表框 List1 中显示一个 n×n 的矩阵,该矩阵数据为随机两位正奇数。点击“翻转矩阵”按钮 Command2,该矩阵翻转(水平翻转和垂直翻转均要实现)后显示在列表框 List2 中,再点一次“翻转矩阵”按钮 Command2,列表框 List2 中显示的矩阵被还原为初始状态。程序运行界面如图所示。

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

  1. (1) 在上图的程序运行界面基础上,再连续两次单击Command2按钮,则列表框List2中第一行显示的内容是
  2. (2) 实现此程序的代码如下,请完成下划线程序填空。

    Dim n As Integer

    Dim L As String

    Dim i as Integer

    Dim j as Integer

    Dim a(1 To 100) As Integer

    Dim b(1 To 100) As Integer

    Private Sub Command1_Click()

      n = Val(Text1.Text)

      Randomize

      For i = 1 To n * n

        a(i) =  + 1

      Next i

      For i = 1 To n

        L = ""

        For j = 1 To n

          L = L + " " + Str(a((i - 1) * n + j))

        Next j

        List1.AddItem L

      Next i

    End Sub

    Private Sub Command2_Click()

      List2.Clear

      For i = 1 To n

        L = ""

        For j = 1 To n

          b((i - 1) * n + j) = 

          L = L + " " + Str(b((i - 1) * n + j))

        Next j

        List2.AddItem L

      Next i

      For i = 1 To n * n

        a(i) =

      Next i

    End Sub

计算斐波那契数列的前n项。该数列从第 3 项开始,每一项都等于前两项之和,其中第1项为1,第2项也为1。计算前第 n项的 VB程序段如下所示:

Private Sub Command1_Click()

    Dim n As Integer,i As Integer,a As Long,b As Long,c As Long

    a = 1

    b = 1

    n = Val(Text1.Text)

    List1.AddItem Str(a)

    List1.AddItem Str(b)

    For i = 3 To n

       

       

       

        List1.AddItem Str(c)

    Next i

End Sub

上述程序中方框处可选语句为(  )

①a=b ②c=a+b ③b=c

A . ①、②、③ B . ①、③、② C . ③、①、② D . ②、①、③
在Python中,以下赋值语句的说法错误的是(      )
A . 语句x,y =y,x可以实现变量x和y值的互换 B . c+=a等效于c=c+a C . 语句a,b=3表示将3同时赋值给变量a和b D . “=”表示将右边表达式的值赋给左边的变量