4.1 程序设计语言的基础知识 知识点题库

下列VB函数返回值为数值的是:(   )
A . Chr(x) B . Str(x) C . Val(x) D . Mid(x,n,k)
\ , / , Mod , *四个算术运算符中,优先级最低的是(   )。
A . \ B . / C . Mod D . *
已知a=2, b=0,c=3,下列表达式中值为真的是(   )   
A . Not(a>b) B . a>b And b>c C . a<b Or a<c D . a*b > b*c
在VB中,表达式"12"+"3"的值为(   )
A . 15 B . "15" C . 123 D . "123"
在VB中,下列程序段执行后,变量b的值是(  )

a=4

b=7

a=a+b

b=a+b

A . 7 B . 11 C . 15 D . 18
将A变量定义成长度为5的定长字符串变量所用的语句是
有如下程序:

 Dim a(3, 3) As Integer

 For m = 1 To 3

 For n = 1 To 3

   a(m, n)=(m-1)*3+n

 Next n

 Next m

   For m = 2 To 3

For n = 1 To 2

   Print a(n, m);

Next n

Next m

运行后输出结果是(  )

A . 2 5 3 6 B . 2 3 5 6 C . 4 7 5 8 D . 4 5 7 8
变量a中存储了一个字符,能够正确判断该字符为数字字符“0”~“9”的VB表达式是(  )
A . Asc(a)>=0Or Asc(a)<=9 B . “0”<=a<=“9” C . a<=“0” Or a>=“9” D . a>=“0” And a<=“9”
  【加试题】编写一个VB程序,将一个长度为n的有序序列a(1)、a(2)、……a(n),以整数t(1≤t≤n)将该有序序列划分为两段,并将序列a的前t个数与后n-t个数对调,且保持这两段数(t个数和n-t个数)之间的相对位置不变(即t个数和n-t个数各自有序)。例如,长度为6的有序序列10、19、24、32、76、87,当t=2时重排结果为24、32、76、87、10、19。功能如下:在文本框Text1中输入n,单击“生成”按钮Command1后在列表框List1中显示n个有序数,在文本框Text2中输入t,单击“对调”按钮Command2,在列表框List2输出t个数与n-t个数对调后的数字序列。程序运行界面如下图所示。

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

Dim a(1 To 100)As Integer

Dim n As Integer

Private Sub Command1_Click()       '生成n个有序数,显示在List1中

’有序代码略

End Sub

Private Sub Command2_ Click)

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

t=Val(Text2.Text)

For

Temp=

For j=i To i+1-t Step -1

a(j)=a(j-1)

Next j

 

Next i

For i=1 To n

List2.AddItem Str(a(i))

Next i

End Sub

某考试的多选题有“A、B、C、D、E”5个答案选项。

例如,标准答案为“ABE”,则对应得分表如下所示。

学生答案

ABE

AB

AE

BE

A

B

E

AC

......

字符串

11001

11000

10001

01001

10000

01000

00001

10100

......

十进制数(x)

25

24

17

9

16

8

1

20

......

ans(x)

2

1

1

1

1

1

1

0

0

小温依据上述描述设计了“多选题阅卷”的VB程序,实现如下功能:在文本框Text1中输入标准答案(大写字母),先单击“初始化”按钮Command1,在数组ans中生成所有答案组合对应的分值,然后单击“阅卷”按钮Command2,从数据库中读取学生的答案并进行阅卷,在列表框List1中显示得分结果。程序运行界面如图所示。

  1. (1) 若标准答案为“ACD”,则数组元素ans (18) 的值为
  2. (2) 请在划线处填入合适的代码。

    Dim ans(0 To 31) As Integer

    Private Sub Command1_Click()

        Dim b(0 To 4) As Integer

       Dim s As String, c As String, sum As Integer, k As Integer

    '初始化数组ans和数组b,各元素的初始值均为0。代码略

    s = Text1.Text:k = Len(s)

       For i = 1 To k

            c = Mid(s, i, 1)

            b(Asc(c) - 65) = 2 ^ (69 - Asc(c))

        Next i

        For i = 0 To 4

            If b(i) <> 0 Then

                ans(b(i)) = 1

                sum =     ①   

            End If

        Next i

       ans(sum) = 2

       '当标准答案含3个及以上选项时,学生答案选其中2个选项可得1分

        i = 0

        Do While k >= 3 And i <= 4

            For j = i + 1 To 4

               If b(i) * b(j) <> 0 Then ans(b(i) + b(j)) = 1

            Next j

            i = i + 1

        Loop

        i = 0

        Do While k >= 4 And i <= 4

            For j = i + 1 To 4

                If b(i) * b(j) = 0 Or k = 5 Then      ②     

            Next j

            i = i + 1

       Loop

       '当标准答案含5个选项时,学生答案选其中4个选项可得1分。代码略

     End Sub

    Private Sub Command2_Click()

        Dim xh(1 To 1000) As String, answer(1 To 1000) As String

      '从数据库中读取学生学号和答案的数据分别存储在数组xh和answer中

    '记录总数存储在变量n中,代码略

      List1.Clear

        For i = 1 To n

            List1.AddItem xh(i) + " " + answer(i) + " " + Str(ans(f(answer(i))))

        Next i

    End Sub

    Function f(s As String) As Integer

        Dim i As Integer, x As Integer

       x = 0

        For i = 1 To Len(s)

          x =     ③     

        Next i

        f = x

    End Function

     ② ③ 

对输人的明文(由英文字母或数字组成的字符串)进行加密,输出加密后得到的密文。数据加密方法为对明文中的每个字符进行如下处理:

1)将该字符ASCI码转换成对应8位二进制;

2)将对应8位二进制数进行按位取反(1变0;0变1);

3)将产生的8位二进制数循环左移3次;

4)最后产生的8位二进制数转换成对应的十六进制数。

例如:明文大写字母“A”通过上述算法加密算法加密后生成的密文是“F5”,在文本框Text1中输入明文,单击“生成密文”按钮Command1,加密后生成的密文显示在文本框Text2中。

  1. (1) 如果输入明文为大写字母“F”,则生成的密文是
  2. (2) 请在划线处填入合适的代码。

    Function btoh(m As String)As String     ‘将4位二进制数转换成对应的十六进制数

    Dim s As Integer, i As Integer, str As String

    str ="0123456789ABCDEF": s=0

    For i=1 To 4

    s=s*2+ Val(Mid(m, i, 1))

    Next i

         ①     

    End Function

    Private Sub Command1_Click()

    Dim ans As String, s As String, ch As String, ret As String

    Dim i As Integer, asc1 As Integer, n As Integer

       ②    

    ans=" "

    For i = 1 To Len(s)

    ch =Mid(s, i, 1)      ‘取出第i个字符存入变量ch

    asc1=Asc(ch)

    ret" "

    For m =1 To 8      ‘完成加密步骤1)和步骤2)

    n=(asc1+1)mod 2

    ret =n & ret

        ③ 

    Next m

    ret = Mid(ret, 4, 5)+ Mid(ret, 1, 3)     ‘完成加密步骤3)和步骤4)

    s1=btoh(Mid(ret, 1, 4))

    s2 =btoh(Mid(ret, 5, 4))

    ans =ans & s1 & s2       ‘将第i个加密后的字符添加到变量ans的末尾

    Next i

    Text2.Text = ans

    End Sub

     ② ③

奇偶校验是一种校验数据传输正确性的方法。其中奇校验方法:统计二进制数据的数位中“1”的个数,若为奇数,则校验值为0,否则校验值为1。小明编写了一个计算奇偶校验值的VB程序。

程序功能:在文本框Text1中输入1~255十进制待校验数,单击“计算”按钮后,在文本框Text2中显示该数对应的二进制值,并在标签Label1中显示该数的校验位值。

  1. (1) 如果在文本框Text1中输入22,单击“计算”按钮,则显示的校验位值是
  2. (2) 部分程序代码如下,请完善划线处内容,完成上述功能。

    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)                    ' 输入一个1~255的十进制数

    t = 0

    s = ""

    Do While n > 0

          a = n Mod 2

           n = n \ 2

           t =

           s = Str(a) + s                    ' str(a)将变量a的值转换为字符串

    Loop

    v =  

    Text2.Text = s                                   ' 显示对应的二进制数值

    Label1.Caption = "校验位值:" + Str(v)              ' 显示输出校验位值

    End Sub

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

Dim i As Integer, Sum As Integer

Dim a(1 To 11) As Integer

Sum = 6

a(11) = 49

For i = 10 To 1 Step -1

  a(i) = a(i +1) -1

  If a(i) Mod 3 = 0 Then Sum = Sum + a(i)

Next i

Text1.Text = Str(Sum)

A . 174 B . 36 C . 180 D . 42
下列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, t As 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 . n-1,2 to i,i = i-1 B . N,i to 2 Step -1,i = i-1 C . n-1,2 to i,t = Int(1+Rnd * 10) D . N,i to 2 Step -1,t = Int(1+Rnd * 10)
有如下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
为了给整型变量x y z赋初值5,下面正确的Python赋值语句是(    )
A .  x=5;y=5;z=5 B .  xyz=5 C .  x,y,z=5 D .  x=5,y=5,z=5
在 Python中常用的输入输出语句分别是(    )
A . input()  output() B . input()   print() C . input()  printf() D . scandf()   printf()
为了丰富学生业余生活,学校举办校园歌手大赛,邀请了5位音乐老师作为评委打分,打分的上限是10分。统计选手得分时,去掉一个最高分,再去掉一个最低分,取评委打分的平均值作为选手的最终得分。程序运行结果界面如图所示。

请分析任务,完成下列题目。

程序代码如下:

Private Sub Command1_Click()

Dim s As single

Dim Max , Min ,i As Integer

Dim a(5) As Integer

Max = 0

Min =     ①       

s = 0

For i = 1 To 5

    a(i) = InputBox("请输入第" & i & "个分数")

    s = s + a(i)

    If     ②    Then Max = a(i)  

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

Next i

s =       ③          

Text1.Text = Max

Text2.Text = Min

Text3.Text = s

End Sub

Private Sub Command2_Click()

Text1.Text = ""

Text2.Text = ""

Text3.Text = ""

End Sub

Private Sub Command3_Click()

End Sub

请分析任务,完成下列题目。

  1. (1) 下列控件在本程序窗体中用到的是(   )
    A . 列表框 B . 单选按钮 C . 标签 D . 组合框
  2. (2) 为精确计算选手的最终得分,程序中变量s的数据类型应定义为(   )
    A . 整型 B . 单精度型 C . 字符型 D . 布尔型
  3. (3) 程序中①所在位置表达式正确的是(   )
    A . 0 B . 1 C . 5 D . 10
  4. (4) 程序中②所在位置表达式正确的是(   )
    A . Max < a(i) B . Max >a(i) C . Max =a(i) D . Max <> a(i)
  5. (5) 程序中③所在位置表达式正确的是(   )
    A . s/3 B . (s+Max+ Min)/5 C . (s - Max - Min) / 3 D . (s - Max - Min) / 5
  6. (6) 变量s所表示的含义是(   )
    A . 最低分 B . 最高分 C . 评委打分 D . 最终得分
  7. (7) 当一个选手的得分分别为9,8,9,7,8的时候,下列最终得分计算正确的是(   )
    A . 8 B . 8.33 C . 7.66 D . 7
  8. (8) 程序中Command1控件响应的事件是(   )
    A . 单击事件 B . 双击事件 C . 载入事件 D . 活动事件
  9. (9) 程序中数组a(5)包含的元素个数是(   )
    A . 1 B . 5 C . 6 D . 10
  10. (10) 程序“For i = 1 To 5 ……Next i”中“s = s + a(i) ”被执行的次数是(   )
    A . 1 B . 4 C . 5 D . 6
在Python中,abs( ):求绝对值,math模块中的sqrt( ):求平方根,以下程序运行的结果为(      )

A . 9 B . 8 C . 16 D . 10
下列 Python 表达式中值最小的是(    )
A . 2**2+5%13//9 B . 8//3*7/2 C . len(range(7))/3 D . int("1"+"4")//abs(-7)
最近更新