第2单元 编程计算 知识点题库

关于程序中的变量,下面说法中错误的是(   )
A . 一旦将数据存入某变量,读取变量中的值,不会改变变量的内容 B . 一旦将数据存入某变量,以后就不能将新的数据存入该变量 C . 一旦将数据存入某变量,以后可以将新的数据存入该变量 D . 一旦将数据存入某变量,只要不把新的数据存入,变量的内容不会改变
有如下VB程序段

a=12

b=54

a=b

b=a

该程序段运行后,a,b的值分别为,该程序结构属于结构(选填:顺序、选择、循环)。

使用两种不同的VB程序段实现相同的功能:则划线处填入的代码正确的是( )

A . For  g=1  to   6 B . For  g=2  to   g+6 C . For  g=1  to   6   step  2 D . For  g=1  to   6   step = 2
【加试题】某公司要对数据进行处理:原始数据从数据库中读取(数据存放在第一个字段,记录数最多为100条),然后进行降序排列并去重复值处理,最后输出,如原始数据为5,2,5,2,3,则处理后输出结果为5,3,2。该程序代码如下所示。

  Dim n As Integer,a(100)As Integer,max As Integer

  Private Sub Form_Load()      ‘读取原始数据

    Dim conn As New ADODB.Connection.rs As New ADODB.Recordset

    Dim i As Integer

  conn.ConnectionString=”Provider=Microsoft.ACE.OLEDB.12.0;Data

  Source=”&App.Path&。”\student.accdb”

    conn.Open

    Set rs.ActiveConnection=conn

    rs.Open“SELECT*FROM DF”

    i=0:max=0

    Do While Not rs.EOF

      i=i+1:n=i

      a(i)=         ‘①

      If a(i)>max Then max=a(i)

      rs.MoveNext

    Loop

    rs.Close:conn.Close

  End Sub

  Private Sub Command1_Click()         ‘去重复值排序

    Const t=max

    Dim i As Integer,b(t)As Integer

    For i=1 To n

      B(a(i))=b(a(i))+1

    Next i

    For i=1 To t

       If  Then List1.AddItem Str(t-i+1)       ‘②

    Next i

  End Sub

  1. (1) 该程序所访问的数据表名为
  2. (2) 在①②加框处的代码有错误.请进行改正。

    ①处加框代码应改为

    ②处加框代码应改为

某算法的流程图如图所示。执行这部分流程后,输出S的结果是(  )

A . 45 B . 6 C . 10 D . 15
已知a=3.69,b= -6,则VB表达式int(-a)+b mod 5的值为(  )
A . -3 B . -4 C . -5 D . -6
有如下VB程序段:

s = "Hello, Taizhou!"

n= Len(s): ans =""

For i=1 To n

    c=Mid(s, i, 1))

    If Abs(i-n)<n\2 Then

        If c>="a" And c<="z" Then c=Char(Asc(c)-Asc("a")+Asc("A"))

    End If

        ans=ans+c

    Next i

    Labell.Caption=ans

执行上述程序段后,标签Labell中输出的内容为(  )

A . HELLO,Taizhou! B . HellO,TAIZHOU! C . Hello,TAIZHOU! D . Hello,TAIzhou!
有一个报数游戏,n个人排成一圈,游戏开始时规定个报数号m,然后从其中一个人开始按顺时针报数1,2,3,…,n,当某人报到的数为m的倍数时,即被淘汰,其他人继续游戏,直到最后。现用VB设计了一个程序,程序界面如下图所示。在文本框Text1中输入参加游戏的人数n,在文本框Text2中输入报数号m,单击“报数”按钮,即在列表框List1中显示每次被淘汰的人的顺序号。

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

Private Sub Command1_Click()

Dim n As Integer, m As Integer

Dim a(1 To 50)As Integer

n= Val(Text1. Text)

m= Val(Text2. Text)

For i= 1 To n

Next i

s=0;j=0

Do While s <n

t=0

Do While t <m

     ①   

t=t+ a(j)

Loop

a(j)=0

s=s+1

List1. Additem"第"+Str(s)+"次:"+Str(j)

Loop

End sub

  1. (1) “报数”按钮的对象名称是
  2. (2) 程序代码中,加框处有错,请改正。
  3. (3) 程序代码中,将①处语句补充完整。
  4. (4) 程序运行结束后,变量t的值是
某算法的部分流程图如图所示。执行这部分流程后,输出s和i的值分别是(  )

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

For i=1 To 9

For j=10 To i+2 Step-1

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

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

End If

Next j

Next i

数组元素a(1)到a(10)的值依次为“3,17,2,14,15,6,7,18,9,4”,执行该程序段后,数组元素a(8)中的值为(    )

A .   3 B .   4 C .   15 D .   17
该算法的功能是(    )

A . 求输入43个数的平均值 B . 求输入42个数的平均值 C . 求输入41个数的平均值 D . 以上三个都不对
下面的程序运行后的输出结果为(  )

n=1

for i in range(0,5):

n=n*i

print(n)

A . 120 B . 24 C . 0 D . 25
下列流程图是“求0~1000所有偶数和”问题的算法,则①应该填(    )

图片_x0020_100002

A . i B . i=i+2 C . i=i*2 D . i=i2
有如下VB程序段:

s=Text1.Text

ans=0

Text2.Text=Str(ans)

若Text1中输入的内容为“10”则Text2中输出的内容为“2”,加框处代码,不正确的是(   )。

A . For i=1 To Len(s)

    t=Val(Mid(s, i, 1))

    ans=ans+t*2^(Len(s)-i)

Next i B . For i=1 To Len(s)

    t=Val(Mid(s, i, 1))

    ans=ans*2+t

Next i C . For i=Len(s) To 1 step-1

    t= Val(Mid(s, i, 1))

    ans=ans+t*2^(i-1)

Next i D . For i=1 To Len(s)

    t=Val(Mid(s, Len(s)-i+1, 1))

    ans=ans+t*2^(i-1)

Next i

a(1)~a(12)是升序排列的数组元素,但是其中有重复数据,经过程序处理后,在文本框Text1中显示去重后数据,实现该功能的VB程序段如下:

n =1

For i=2 To 12

    If    ⑴    Then

        n=n+1

           ⑵  

    End If

Next i

S=””

For i=1 To n

    s=s+Str(a(i))

Next i

Text1.Text = s

上述程序中划线处可选语句为:①a(i)<>a(n)  ②a(i)=a(n)  ③a(n)=a(i)

则(1)、(2)处语句依次是(    )

A . ①、② B . ②、① C . ①、③ D . ②、③
下图是当循环、直到循环两种循环结构,请结合下图选择下列说法中正确的是 ( )

A . 当循环是当条件成立退出循环 B . 当循环不可能出现不执行循环步骤的情况 C . 直到循环是条件成立时执行循环步骤 D . 直到循环至少执行一次循环步骤
某算法的流程图如图所示。

则执行该算法后,i和s的值分别是

有如下VB程序段:

s = "ABCDEF"

For i = 1 To Len(s)

    a = Int(Rnd * 3 + 1)

    b = Mid(s, a Mod 6 + 1, 1)

    ch = ch + Chr(Asc(b) + 32)

Next i

执行该程序后,变量ch的值可能是(    )

A . Dccebd B . Bdbfbd C . Ddcefb D . Bdddbc
某字符串(字节数为3的倍数)编码规则如下:

1)将该字符串内码分成3个字节一组,顺次连接后得到24位二进制数;

2)将得到的24位二进制数字按每6位一组分成4组,每组6个位;

3)在每组数字前补上两个0,得到4个字节的二进制数;

4)将(3)中得到的四个二进制数分别转换为十进制数;

5)将每个十进制数转换为1个加密字符,对应的“密码表”按数值由小到大依次为“ABCDEF GHIJKLMNOPQRSTUV WXYZ-abcdefghijklmnopqrstuvw xyz0123456789+/”

小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功能如下:

单击“加密”按钮Command1,程序依次将文本框Text1中每3个字符的ASCII码值作为4个字节转换为四个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。

程序运行效果如图所示。

实现上述功能的VB程序如下:

  1. (1) 在上述加密算法步骤(4)中,得到的十进制数最大是
  2. (2) 请在划线处填入合适代码。

    Function Code2Char(c As Integer) As String

        Dim s As String

        s=“ABCDEFGHIJKLMNOPQRSTU-VWXYZabcdefghijklmnopqrstuvwxyz 0123456789+ /”

        Code2Char=

    End Function

    Private Sub Command1_Click()      '加密过程

        Dim n As Integer, s As String, i As Integer, ss As String

        Dim a1 As Integer , a2 As Integer, a3 As Integer

        '存储加密前字符ASCII码

        Dim b1 As Integer, b2 As Integer     '分别存储分割、转换后的前两个十进制数

        Dim b3 As Integer , b4 As Integer     '分别存储分割、转换后的后两个十进制数

        s= Text1. Text

        n= Len(s)

        ss=””

        For i=1 To n ()

            a1= Asc(Mid(s, i, 1))

            a2= Asc(Mid(s, i+1, 1))

            a3= Asc(Mid(s, i+2, 1))

            b1=a1\ 4

            b2=(al Mod 4) * 16+(a2 \ 16)

            b3=

            b4=a3 Mod 64

            ss=ss+Code2Char(b1)+Code2Char(b2) + Code2Char( b3)+Code2Char( b4)

        Next i

        Text2. Text= ss

    End Sub

下列VB表达式的值与其他三项不同的是(     )
A . Val(Mid(″20220401″, 5, 2)) > Asc(″e″)-Asc(″a″) B . Abs(Int(-8.3))=(10 / 3) ^ 2 C . Not (″10″>″9″) And 45 Mod 5 \ 2=4 D . Int(Rnd() * 10)-10 <=0