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

下列给变量赋值的语句正确的是(   )  
A . 3=a B . a+1=a C . a=b=c=3 D . a=a+8
【加试题】某VB程序段如下:

   s = ""

   For i = 1 To 5

      a(i) = 0

   Next i

   For i = 2 To 5

      For j = i To 5

         If j Mod i = 0 Then a(j) = 1 - a(j)

      Next j

   Next i

   For i = 1 To 5

      If a(i) = 1 Then s = s + Str(i)

   Next i

   Text1.Text = s

运行该程序段后,Text1中显示的内容为(  )

A . 2 3 5 B . 1 4 C . 2 5 D . 2 3 4
有如下Visual Basic程序段:

a = 3

b = 9

c = a + b

If c = 12 Then py = "正确" Else py = "不正确"

分析该程序段,下列说法正确的是(  )

A . 程序段的流程模式是循环模式 B . “c = 12”是赋值语句 C . “py = "正确"”是选择语句 D . 执行语句“py = "正确"”的前提条件是“c = 12”为真
数组元素值a(1)=2 : a(2)=8 : a(3)=3 : a(4)=4 : a(5)=5 :a(6)=6 : a(7)=1 : a(8)=7 : a(9)=9。

m =1: k = 1

For i = 2 To 9

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

   k = k + 1

   If k > m Then m = k

  Else

   k = 1

  End If

Next i

Text1.Text = Str(m)

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

A . 4 B . 6 C . 8 D . 9
随机产生10个[12,20]间的随机整数放在A数组中,打印最大的和最小的。请完善程序:

  PRIVATE SUB FORM_CLICK()

 

  MAX=0: MIN=21

FOR I= 1 TO 10

   A(I)=

  IF THEN   MAX=A(I)

  IF THEN  MIN=A(I)

NEXT I

PRINT “最大数是”;MAX ,”最小数是” ;MIN

END SUB

有VB程序段如下:

s = "2019appreciate": sum = 0

For i = 1 To Len(s)

  ch = Mid(s, i, 1)

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

    m = Asc(ch) - Asc("a") + 1

    a(m) = a(m) + 1

  End If

 Next i

 For i = 1 To 10

  If a(i) > 0 Then sum = sum + 1

 Next i

数组a各元素的初始值都为0,执行该程序段后,变量sum的值为(  )

A . 10 B . 7 C . 4 D . 3
图a是一个“挖地雷”游戏的界面,9×9个格子里都有一个数字,红旗代表地雷可以用“-1”表示,图中共有10个地雷,“0”表示空白,所有数字的含义是以该数字格子为中心的3×3区域中地雷的个数。

小陈根据上述的描述设计了以下的程序,界面如图b所示,单击“初始化”按钮Command 1,按要求生成相关数据存储在数组a中并在列表框List 1中显示,该程序中最外圈不能有地雷,单击“计算”按钮Command 2,对数组a中的数据进行计算并在列表框List 2中输出,输出数据元素的宽度为固定值。

请回答问题:

  1. (1) 单击“初始化”按钮Command 1后,数据a中的数据在List 1中显示,效果如图c所示,单击“计算”按钮Command 2后数组a中数值为3的元素个数有个。
  2. (2) 请在划线处填入合适的代码。

    Const n=9:Const m= 10    'n存储地雷区域大小,m存储地雷数目

    Dim a(1 To n*n) As Integer

    Private Sub Command 1_Click()

    '按要求生成数组a中的数据并在List 1中显示,代码略

    End Sub

    Private Sub Command 2_Click()

    Dim i As Integer, j As Integer, row As Integer

    Dim col As Integer, start As Integer, temp As String

    For i=1 To n *n

         IfThen

             row=(i-1)\n+ 1

             col=(i-1)Mod n+ 1

             For j= 1 To 3

            

             If a(start+col-1) >-1Then a(start+col-1) =a(start+col-1)+1

            If a(start+col) >-1Then a(start+col) =a(start+col)+1

            If a(start+col+1)>-1Then a(start+col+1) =a(start+col+1)+1

          Next j

        End If

    Next i

    List 2.Clear

    For i=1To n

            temp=“”

            For j=1To n

                 temp=temp+adj(a((i-1) *n+j),3)

            Next j

            List 2.Add Item temp

    Next i

    End Sub

    Function adj(x As Integer, y As Integer) As String

            Dim s As String

            s=Str(x)

            For i= 1 To

                 s=“”+s

            Next i

            adj=s

    End Function

有如下VB程序段:

For i=1 To 6

  a(i)=Int(Rnd*10)+1

Next i

For i=1 To 5

   If i Mod 2=1 And a(i)>a(i+1)Then

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

   Else

      a(i)=a(i)+1

   End If

Next i

执行程序后,a数组各元素可能是(  )

A . 11,11,7,9,3,9 B . 6,2,8,10,5,9 C . 6,9,3,7,8,12 D . 3,9,0,8,2,7
小王为学校教务处编写了一个排考场座位的VB程序。考场采用“6排5列”共30人的模式。程序执行后,考生的考号与姓名显示在列表框List1中,单击“考场座位”按钮Command1,考场号与座位显示在Text1中,程序运行界面如图a所示,考生数据存放在数据库文件“kaochang.accdb”中,数据表如图b所示。

图a

图b

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

  1. (1) 当“Form_Load()”事件处理过程运行结束时,变量x的值为.
  2. (2) 请在横线处填入合适的代码。

    Private Sub Commandl_Click()

    Dim y As Integer

    Dim start As Integer       '考场第1位数据元素的下标

    Dim pa As lnteger   '数据库导人VB时学生数据下标

    Dim pb As Integer   '考场座位数据下标

    Dim i As Integer,j As Integer,k As Integer, m As Integer

    start= 1

    pa=start

    recCount=x-1

    If recCount Mod 30 <>0 Then

              ①     

        For i=1 To y   '将当前考生人数添加到 30 的整数倍

            recCount=recCount+1

            sName(recCount)= " "

        Next i

    End If

    For j=1 To recCount/30

        pa=start

        pb=start

        For i=1 To 30

            kcsName(pb)= sName(pa)

            pb=pb+1

            If i Mod 5=0 Then

                pa=start+i\5

            Else

                      ②      

            End If

        Next i

        start=start+30

    Next j

    Text1.Text=""

    start=l

    For k=1 To recCount/30

        m=start

        Text1.Text=Text1.Text+"第"+Str(k)+"考场"+vbCrLf

        'vbCrLf 为换行标志符,实现Text1中内容换行显示

        For i=1 To 6

            For j=1 To 5

                Text1.Text=Text1.Text+""+kesName(m)

                m=m+1

            Next j

            Text1.Text=Text1.Texi+vbCrLf

        Next i

        Text1.Text=Text1.Text+vbCrLí+vbCrLf

            ③   

    Next k

    End Sub

    Private Sub Form_load()

    Dim myconn As New ADODB.Connection

    Dim myrecord As New ADODB.Recordset

    myconn.ConnectionString=" provider=microsoft.Ace.Oledb.12.

    0:data source=e:\kaochang.Accdb"

    myconn.Open

    strsql=" select * from三中"

    myrecord.Open strsql,myconn

    x=l

    Listl.Addltem"考号   姓名"

    List1.AddItem  "----------------------"

    Do While Not  myrecord.EOF

      '读取数据库数据,存入数组kh(x)、sName(x)中,代码略

      List 1.Addltem kh(x)+" "+sName(x)

      x=x+1

      myrecord. MoveNext

    Loop

    myrecord.Close .

    End Sub

                        

幸运数。一组由1开始的奇数数列为:

1,3,5,7,9,11,13,15,17,19,21,23,25,……

此数列的第二项为3,将此数列的第3n个数删除,留下的数为:

1,3,7,9,13,15,19,21,25,……

新数列的第三项为7,将新数列的第7n个数删除,留下的数为:

1,3,7,9,13,15,21,25.……

若一直重复上述步骤,最后剩下的数就是幸运数。

下列程序的功能是找出1000以内的幸运数,但加框处代码有错,请改正。

Private Sub Commandl_Click()

Dim a(500)As Integer,b(500)As Integer

Dim i As Integer,m As Integer,k As Integer

Dim top As Integer,bott As Integer

'产生由1开始的奇数数列,依次存储在数组a中,代码略

top=2:bott=500

Do While top<bott

        ‘⑴

  For i=1 To bott

    If i Mod a(top)<>0 Then

      b(k)= a(i)

      k=k+1

    End If

Next i

      ‘⑵

  top = top+1

  For i=1 To bott

    a(i)=b(i)

  Next i

Loop

For i=1 To bott

  List1.AddItem Str(a(i))

Next i

End Sub

 ⑵ 

如图a所示,已有若干学生从1开始编号,在文本框Text1中输入新增的学生姓名,填补到空缺的学号(2、3、6、11)位置。填补规则:从最小号开始依次填补。单击“新增”按钮后在列表框List1中完整显示所有学生信息,如图b所示。

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

Dim n As Integer       '学生人数

Dim a(1 To 100) As Integer     '存储学生的学号

Dim b(1 To 100) As String      '存储学生的姓名

Private Sub Form_Load()

'从数据库中读取学生学号、学生姓名和总人数,分别存储在数组a,数b和变量n中,代码略

End Sub

Private Sub Command1_Click()

Dim L As Integer, R As Integer

Dim m As Integer, key as String

key=Text1.Text

L=1: R=n

Do While L<=R

m=(L+R)\2

If  Then      '①

L=m+1

Else

R=m-1

End If

Loop

 For i=         '②

a(i+1)=a(i)

b(i+1)=b(i)

Next i

n=n+1

a(i+1)=L

b(i-1)=Key

'插入后的结果显示在列表框List2,代码略.

End Sub

对于语句abc. Caption=“你好”,下列理解正确的是(  )
A . Caption称为属性值 B . 该对象可能是标签、按钮或文本框 C . 该语句的作用是将对象属性进行赋值 D . 若流程图表示此算法,该语句应该在处理框中
运行以下VB程序,依次输入49、24,结果是(    )。

A . 19  19 B . c   19 C . c    1 D . c   -1
用VB编写寻找自然数中第n个素数的程序,具体功能如下:在文本框Text1中输入正整数n,单击“寻找”Command1按钮后,在Label1中显示结果。程序运行界面如下图所示。

  1. (1) 程序启动后,窗体的标题栏显示“寻找第n个素数”,Form_Load事件处理过程中应添加语句            (单选,填字母)
    A . Form1="寻找第n个素数" B . Form1.Name="寻找第n个素数" C . Form1.Caption="寻找第n个素数" D . Form1.Text="寻找第n个素数"
  2. (2) 请在下划线处填入合适的代码

    Private Sub Command1_Click()

      Dim n As Integer, i As Integer

      Dim s As Integer, x As Integer, f As Boolean

      n= Val(Text1.Text)

      f= False: s=0

      i=2

      Do While    ①  

        For x=2 To i\2

          If i Mod x=0 Then Exit For     ‘Exit For用于退出For循环

        Next x

        If    ②    Then

          s=s+1

          If  Then      ‘③

            Label1.Caption= "第"& Str(n) & "个素数为:"& Str()

            f= True

          End If

        End If

        i=i+1

      Loop

    End Sub

     ② 

  3. (3) 加框处代码有错误,请改正。
某算法部分流程图如图所示。执行这部分流程,则输出s的值是(   )

A . 27 B . 10 C . 37 D . 18
该算法的功能是(    )

A . 计算S=1+2+3+4+……+9999的和 B . 计算S=1+3+5+7+……+9997的和 C . 计算S=1+3+5+7+……+9999的和 D . 计算S=2+4+6+8+……+10000的和
有如下VB程序段:

Dim x As Integer,y As Integer

x=2:y=3

If x+y=5 Then x=x+2

y=x+y

该程序段运行后,x,y的值为(  )

A . 4,3 B . 5,5 C . 2,5 D . 4,7
有如下VB程序段:

a=12

b=54

a=a+b

b=a-b

a=a-b

该程序段执行后,变量a,b的值分别是(  )

A . 12,54 B . 54,12  C . 12,12 D . 54,54
在下面列出的四个程序段中,能正确地将x和y两个数值变量中的数据进行交换的有(   )
A . x=y      y=x B . x=x+y      y=x-y      x=x-y C . m=x      x=y      y=m D . m=y      y=x      x=m
下列程序段运行后A变量的值是(    ) 

A=2:B=3:A=A+B:B=A-B:A=A-B

A . -1 B . 1 C . 2 D . 3