江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2017年10月江苏省计算机二级VB考试真题1

1   (20171)

1、  移动通信指的是处于移动状态的对象之间的通信,最有代表性的是手机——个人移动通信系统。下列有关移动通信的叙述中,错误的是___________

A.   基站是个人移动通信系统的重要组成部分,它负责与其周围区域内所有手机进行通信

B.   无论是最早的第1代个人移动通信,还是处于发展中的5G,均是采用数字通信技术

C.   2代移动通信以语音传输技术为核心,但可提供收发短信息等数据量很少的数据业务

D.   目前智能手机分为多种产品类型,全网通手机一般可以接入国内三大运营商的所有网络

B

解析: 最早的第1代个人移动通信采用模拟通信技术。

4

2、  数十年来,硬盘一直是计算机中最重要的外存储器。下列有关硬盘的叙述中,错误的是_________

A.   通常硬盘的盘片两面均可记录数据,因而盘片两侧各有一个磁头

B.   所有的硬盘均有多个盘片组成,一般不会仅使用一个盘片,盘片数越多则容量越大

C.   硬盘盘片直径一般为3.52.51.8英寸等,台式PC通常采用3.52.5英寸硬盘

D.   目前内置硬盘的接口大多数为SATA接口,它以告诉串行方式传输数据

B

解析: 硬盘一般由14个或15个盘片组成,盘片宜少不宜多,单碟盘片的容量越大越好。

2

3、  下列有关信息、信息技术、信息产业、信息化的叙述中,错误的是_________

A.   信息的表现形式多种多样,其分类也不计其数

B.   所有的信息技术均采用电子技术(含激光技术)进行信息的收集、传递、加工、存储等

C.   信息产业是战略性先导产业,其科技创新含量高,知识、智力和技术密集

D.   信息化是当今世界发展的大趋势,是我国增强国际竞争力和提高综合国力的关键之一

B

解析: 信息技术的历史非常长,主要是为了提高人们的信息器官功能,协助人们进行信息处理的技术,现代信息技术采用电子技术(含激光技术)进行信息的收集、传递、加工、存储等  

1

4、  根据不同的应用需求,数字音频采用的编码方法有多种,文件格式也各不相同。下列的音频格式中,由美国Dolby公司开发的、在DVD和数字电视等领域广泛使用的是______

A.   WAV

B.   MP3

C.   AC3

D.   ACC

C

解析: MP3是一种音频压缩技术,由于这种压缩方式的全称叫MPEG Audio Layer3,所以人们把它简称为MP3;WMA是微软制订的音频压缩文件格式,比mp3标准晚,比mp3还小,比mp3音质还好 , 采用未压缩编码方式;美国杜比公司开发的AC3, DVD和数字电视等领域广泛使用;相对于mp3AAC格式的音质更佳,文件更小。  

5

5、  主机上用于连接I/O设备的各种插头、插座,统称为I/O接口。下列I/O接口中,近年来生产的大多数笔记本电脑通常不具有的接口(或者说通常不配备的接口)是______

A.   PS/2

B.   USB

C.   SATA

D.   VGA

A

解析: PS/2是早期连接有线鼠标的接口,现在主要使用USB接口了 

2

6、  数值、文字、图像、声音等不同的信息在计算机中的表示方法是不同的。下列相关叙述中,错误的是______

A.   数值为负的整数在计算机中通常采用“反码”的方法进行表示

B.   文字由一系列“字符”构成,每个字符通常使用1-4个字节的二进制编码表示

C.   黑白图像在数据库时,每个像素一般采用8位二进制无符号整数表示

D.   声音信息在数字化时,每个取样的样本一般使用8位、12位、14位或16位二进制数表示

A

解析: 数值为负的整数在计算机中通常采用“补码”的方法进行表示 

1

7、  字符集及其编码是计算机中表示、存储、处理和交换文本信息的基础,但由于历史原因,目前不同系统或应用中使用的字符编码方案并不统一。下列有关汉字编码的叙述中,错误的是______

A.   在我国最早颁布的汉字编码字符集GB 2312仅包含6000多个汉字,其中没有繁体汉字

B.   无论是GB 2312GBK,还是GB 18030,其中西文字符均为单字节编码,汉字均为双字节编码

C.   目前在互联网的许多应用中采用UTF-8编码,该编码方案采用可变长度字符编码

D.   目前在Windows操作系统中常使用UTF-16编码,在该编码方案中汉字编码使用2个字节表示

B

解析: GB 2312中字符全部采用双字节  

5

8、  操作系统是计算机中重要的一种系统软件,应用软件必须在操作系统的管理和支持下运行。下列有关操作系统的叙述中,错误的是______

A.   操作系统承担着资源分配和调度等任务,以保证程序正常有序地运行

B.   目前大多数操作系统都向用户提供图形用户界面,它以窗口形式显示程序运行状态

C.   操作系统通常由操作系统内核和许多配套软件、程序库等组成

D.   所有的计算机都必须安装操作系统才能工作,操作系统的运行不依赖任何其他软件

D

解析: 操作系统启动前依赖于底层的BIOS程序,通过引导加载程序将操作系统加载到内存中并运行。

3

9、  按照软件权益的处置方式来分类,软件可以分为商品软件、共享软件、自由软件等多种类型,下列相关叙述中,错误的是______

A.   所有的商品软件都需要用户付费购买其使用权,且软件升级均需要再次付费

B.   共享软件通常是"买前免费试用"的具有版权的软件,过了试用期则付费可继续使用

C.   自由软件倡导的软件"非版权"原则,允许拷贝、修改和自由传播

D.   大多数开源软件都是多人合作,义务开发的成果,其发展促进了软件共享和技术创新

A

解析:商品软件升级有的需要付费,有的不需要付费。

3

10、              随着互联网技术和应用的发展,Web已经从信息发布与查询平台发展成为多种信息处理应用的平台,下列有关叙述中,错误的是_______

A.   静态网页通常指那些内容基本不变的网页,除非网页作者(发布者)对其修改并重新发布

B.   动态网页的内容通常不是预先确定的,而是根据用户请求提供的参数实时生成的页面

C.   Web平台上运行的信息处理系统(如淘宝、京东等)都是使用动态网页技术开发实现的

D.   目前所有的动态网页都是使用微软公司的ASP.NET技术开发而成的

D

解析:动态网页技术有多种,Asp.net, Php,Jsp 

3

 

(单选题)  

下面关于自定义函数的说法,不正确的是_________

A.   函数既可以嵌套定义,也可以嵌套调用

B.   在函数体中可以多次给函数名赋值

C.   如果使用Call语句调用函数,将放弃函数的返回值

D.   执行函数体中的Exit Function语句,将会退出该函数,返回函数的调用处

A

解析: 函数不可以嵌套定义,可以嵌套调用  

7

下列四条语句,能在文本框T1中显示出“2017”字样的有_________条语句。
(1)T1.Text=20+”17”    (2)T1.Text=20 & ”17”
(3)T1.Text=”20”+”17”  (4)T1.Text=17+”2e3”

A.   1

B.   2

C.   3

D.   4

C

解析: 20+”17”返回的结果是37,因为20是数值型,”17”是字符型,两者通过+连接在一起时,会强制将字符型”17”转换为数值型然后加在一起; 20 & “17”这里的&是强制连接符,会强制将2017连接在一起,所以是2017; ”20”+”17”返回2017,两者因为都是字符型,所以这里的+号是连接的意思; 17+”2e3” 因为17是数值型,”2e3”是字符型,两者通过+连接在一起时,会强制将字符型”2e3”转换为数值型,因为eVB中表示10的次方,所以2e3就是2×10^3=2000,然后加上17,所以是2017  

2

若有数组声明:Dim a(3,-2 To 2)As Integer,a数组共有______个元素。

A.   6

B.   12

C.   15

D.   20

D

解析:因为默认情况下,数组的下标从0开始, 所以a数组的第一维是从03,第二维是-2 to 2,所以是  a(0,-2), a(0,-1),a(0,0),a(0,1),a(0,2), a(1,-2), a(1,-1),a(1,0),a(1,1),a(1,2), a(2,-2), a(2,-1),a(2,0),a(2,1),a(2,2), a(3,-2), a(3,-1),a(3,0),a(3,1),a(3,2)共有20个元素。

6

以下关于名为winSub过程,定义正确的是__________

A.    Private Sub win(a As String * 3 , b() As Integer)

B.   Private Sub win(ByVal a As String , ByVal b() As Integer)

C.   Sub win(a As String , b(10) As Integer)

D.   Sub win(a() As String * 3 , b() As Integer)

D

解析:A, 形参是定长字符串时只能是数组,不允许变量;B,b()是数组,作为形参时,不允许前面加Byval; C,数组作为形参时只能是b() 这样写法,不允许里面加常量。

7

1.         (单选题):

a为整型变量且a = 2.5,则表达式Len(Str(12.3)) + Len(CStr(4.5)) + Len(a) + a的值为__________

A.    10

B.    11

C.    12

D.    13

C

解析:Str的作用是将数值型转换为字符型,并保留符号位,通过Str(12.3)将数值12.3转换为字符 12.3,注意转换后 12.3的前面有一个空格,所以Len(Str(12.3))的返回值是5, CStr(4.5)直接将数值型4.5转换为字符型4.5,不保留符号位,所以Len(CStr(4.5))的返回值是3,因为a是整型,不是字符型, Len(a)返回a所占的字节数,所以是2,如果adouble,Len(a)返回结果是8,因为a是整型,当执行a=2.5,实际赋值给a2,因为在VB中有个特殊约定,”当小数点只有1位时,如果个位数是偶数,则五舍六入,其他情况都是四舍五入”,题目如果改为是a=2.51那么a就是3.

2

 

 

 

执行下面程序,单击窗体,窗体上第一行显示的内容是____________   ,最后一行显示的内容是____________  

Option Explicit

Private Sub Form_Click()

    Dim i As Integer, n1 As Integer, n2 As Integer

    n1 = 10: n2 = 1

    For i = n1 To n2 Step -2

        Print "8";

        n1 = n1 - 1

        n2 = n2 + 1

        i = i - 1

    Next i

    Print

    Print i

    Print n2

End Sub

8888@5

解析:因为文字描述不如视频清晰,具体见视频详细讲解。

5

执行下面程序,单击窗体,则窗体上显示的第二行内容是____________   ,第三行内容是____________  

Option Explicit

Private Sub Form_Click()

    Dim n As Integer

    n = 1

    Call Star(n)

End Sub

Private Sub Star(n As Integer)

    Dim i As Integer

    If n < 4 Then

        Call Star(n + 1)

        Print n;

        For i = 1 To n

            Print "*";

        Next i

        Print

    End If

End Sub

2**@1*

解析: 因为文字描述不如视频清晰,具体见视频详细讲解。

7

执行下面程序,单击命令按钮Command1,则数组元素a(1,2)的值是____________   a(2,1)的值是____________   a(3,3)的值是____________  

Option Explicit

Option Base 1

Private Sub Command1_Click()

    Dim i As Integer, j As Integer, k As Integer, a() As Integer

    k = 3: ReDim a(k, k)

    For i = 1 To k

        a(1, i) = (k - i + 1) ^ 3

    Next i

    For i = 2 To k

        For j = 2 To k

            a(i, j) = a(i - 1, j - 1)

        Next j

        a(i, 1) = a(i - 1, k)

    Next i

    For i = 1 To k

        For j = 1 To k

            Print a(i, j);

        Next j

        Print

    Next i

End Sub

8@1@27

解析: 因为文字描述不如视频清晰,具体见视频详细讲解。

7

执行下面程序,单击命令按钮Command1,则窗体上显示的第一行内容是____________   ,第二行内容是____________   ,第三行内容是____________  

Option Explicit

Option Base 1

Private Sub Command1_Click()

    Dim n As Integer, i As Integer, st As String

    Dim ary() As Integer

    st = "CAD"

    For i = 1 To Len(st)

        ReDim Preserve ary(i)

        ary(i) = Asc(Mid(st, i, 1)) - 64

    Next i

    Call sortary(ary)

    Print st

    For i = 1 To UBound(ary)

        Print Chr(ary(i) + 64);

        n = n * 10 + ary(i)

    Next i

    Print

    Print n

End Sub

 

Private Sub sortary(sort() As Integer)

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

    For i = 1 To UBound(sort)

        For j = 1 To UBound(sort) - i

            If sort(j) < sort(j + 1) Then

                temp = sort(j)

                sort(j) = sort(j + 1)

                sort(j + 1) = temp

            End If

        Next j

    Next i

End Sub

CAD@DCA@431

解析: 因为文字描述不如视频清晰,具体见视频详细讲解。

7

 

1(完善程序):

【要求】

1)打开T盘中P1.vbp文件,完善程序后,直接保存所有文件。

【题目】

下面程序的功能是,求出多个数(最多6个数)的最大公约数。

Option Explicit

Option Base 1

Private Sub Command1_Click()

    Dim arr() As Long, n As Integer, i As Integer

    Dim m1 As Integer, n1 As Integer

    n = Val(InputBox("求几个数的最大公约数?(最多求6个数"))

    If n > 6 Then Exit Sub

        (1)   

    For i = 1 To n

    arr(i) = Val(InputBox("请输入第" & i & "个数"))

        Picture1.Print arr(i);

    Next i

    Picture1.Print

        (2)   

    For i = 2 To n

        m1 = arr(i)

        Call gcd(m1, n1)

        If n1 = 1 Then Exit For

    Next i

    Picture1.Print "以上"; n; "个数的最大公约数是"; n1

End Sub

Private Sub gcd(a As Integer, b As Integer)

    Dim r As Integer

    r = a Mod b

    Do While     (3)   

        a = b

        b = r

            (4)   

    Loop

End Sub

 

Redim arr(n)@ n1=arr(1)@ r<>0@ r=a mod b

 

参考答案

(1)Redim arr(n)

(2)n1=arr(1)

(3)r<>0

(4)r=a mod b

 

2(改错题):

【要求】

(1)打开T盘中P2.vbp文件按参考界面形式编辑窗体界面改正程序中的错误后直接保存所有文件

(2)改错时,不得增加或删除语句,但可适当调整语句位置。

【题目】本程序的功能是,生成包含10个元素的按升序排列的数组,且数组元素是不含重复数字的三位随机数。

Option Explicit

Option Base 1

Private Sub Command1_Click()

    Dim a(10) As Integer, temp As Integer, n As Integer

    Dim i As Integer, j As Integer

    Do

        temp = Int(Rnd * 900 + 100)

        If judge(temp) Then

  For i = 1 To n

                If temp < a(i) Then Exit For

            Next i

            If i <= n Then

                For j = n To i

                    a(j + 1) = a(j)

                Next j

                a(i) = temp

            Else

                a(n + 1) = temp

            End If

            n = n + 1

        End If

    Loop While n <= 10

    For i = 1 To 10

        Text1.Text = Text1.Text & a(i) & " "

    Next i

End Sub

Private Function judge(n As Integer) As Boolean

    Dim i As Integer, j As Integer, k As Integer, a() As Integer

    Do

        k = k + 1

        ReDim Preserve a(k)

        a(k) = n Mod 10

        n = n \ 10

    Loop Until n <= 0

    For i = 1 To k

        For j = i + 1 To k

            If a(i) = a(j) Then Exit For

        Next j

    Next i

    judge = True

End Function

 

For j = n To i修改为For j = n To i Step -1@ Loop While n <= 10修改为Loop While n < 10@judge(n As Integer)修改为judge(ByVal n As Integer)@ If a(i) = a(j) Then Exit For修改为If a(i) = a(j) Then Exit Function

 

参考答案

(1)For j = n To i修改为For j = n To i Step -1

(2) Loop While n <= 10修改为Loop While n < 10

(3)judge(n As Integer)修改为judge(ByVal n As Integer)@

(4)If a(i) = a(j) Then Exit For修改为If a(i) = a(j) Then Exit Function

3(编程题):

【要求】

(1)打开T盘中P3.vbp文件根据题目要求编写和调试程序后直接保存所有文件

(2)程序代码书写应呈锯齿形,否则适当扣分。

【题目】

编写程序,找出指定范围内的所有半素数。半素数,是指可以表示为两个素数乘积的自然数。

【编程要求】

(1)程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;

(2)运行程序,先在文本框中输入查找的范围,然后单击查找按钮,将指定范围内所有的半素数按要求的格式输出到列表框中;单击清空按钮,将文本框和列表框清空,并将焦点设置到文本框上;单击退出按钮,结束程序运行;

(3)程序中至少应定义一个通用过程,用于判断整数是否是素数。

 

 

 

Option Explicit

Option Base 1

 

Private Sub Command1_Click()

   Dim n1 As Integer, n2 As Integer

   Dim i As Integer, j As Integer

   n1 = Text1.Text

   n2 = Text2.Text

  

   For i = n1 To n2

     For j = 2 To Sqr(i)

       If i / j = Int(i / j) Then

          If prime(j) And prime(i / j) Then

             List1.AddItem i & "=" & j & "*" & i / j

          End If

       End If

     Next j

   Next i

End Sub

 

Private Sub Command2_Click()

  Text1.Text = ""

  Text2.Text = ""

  List1.Clear

  Text1.SetFocus

End Sub

 

Private Sub Command3_Click()

 End

End Sub

 

Private Function prime(n As Integer) As Boolean

   Dim i As Integer

   For i = 2 To Sqr(n)

     If n Mod i = 0 Then Exit Function

   Next i

  

   prime = True

  

End Function