江苏省高校计算机等级考试命题研究院 江苏省高校计算机等级考试辅导
2015年秋江苏省计算机二级VB考试题目样卷

2015秋江苏省高等学校计算机等级考试

二级Visual Basic考试样卷

(本试卷完成时间  120分钟)

第一部分  计算机信息技术基础知识

本套试卷的详细讲解请登录http://school.njwww.net/kecheng/detail_897001查阅

一、选择题(共20分,每题2分)

1.下列关于数字技术与微电子技术的叙述中,错误的是______

A.数字技术的处理对象是"比特",一个触发器可以存储2个比特

B.在数据通信时,远距离传输或者无线传输时需要用比特对载波进行

C.现代集成电路使用的半导体材料主要是硅

D.我国第2代居民身份证中使用了非接触式IC芯片

2.下列关于台式PC芯片组的叙述中,错误的是______

A.芯片组是主板上最为重要的部件之一,存储器控制、I/O控制等功能主要由芯片组实现

B.芯片组与CPU同步发展,有什么样功能和速度的CPU,就需要使用什么样的芯片组

C.芯片组决定了主板上能安装的内存最大容量及可使用的内存条类型

D.同CPU一样,用户可以很方便、很简单地更换主板上的芯片组

3.下列关于I/O设备的叙述中,错误的是______

A.目前平板电脑、智能手机的触摸屏大多为"多点触摸屏",可同时感知屏幕上的多个触控点

B.扫描仪可分为手持式、平板式和滚筒式等类型,目前普通家用/办公用扫描仪大多为滚筒式

C.目前一些型号的数码相机已具有拍摄视频和进行录音的功能

D.为了降低成本,目前许多PC采用集成显卡,其显示控制器被集成在芯片组中

4.下列关于PC外存储器的叙述中,错误的是____

A.目前PC采用的硬盘,其盘片的直径通常为3.5英寸、2.5英寸或1.8英寸

BU盘和存储卡都是采用闪烁存储器制作的,目前其容量大多为几GB至几十GB

C.目前固态硬盘的存储容量大多为数百GB,但其读写速度远不如传统硬盘(硬磁盘)

D.蓝光光盘是目前最先进的大容量光盘,单层盘片的存储容量可达25GB

5.下列关于Windows操作系统功能的叙述中,错误的是______

A.对于多任务处理,系统一般采用按时间片轮转的策略进行处理器调度

B.系统采用了虚拟存储技术进行存储管理,其页面调度算法为"最近最少使用"( LRU)算法

C.系统支持多种文件系统(如FAT32NTFSCDFS等)以管理不同的外存储器

D.系统支持任何I/O设备的"即插即用""热插拔"

6.下列关于程序设计语言的叙述中,错误的是____

A.虽然机器语言不易记忆、机器语言程序难以阅读和理解,但目前还有很多人使用其编写程序

B.汇编语言与计算机的指令系统密切相关,不同类型的计算机,其汇编语言通常不同

CVBScript语言是VB的子集,用其编写的程序可以嵌入在HTML文档中以扩充网页的功能

DJava语言是一种适用于网络环境的程序设计语言,目前许多手机软件就是用Java编写的

7.下列关于通信技术的叙述中,错误的是______

A.调制与解调技术主要用于模拟通信,在数字通信中不需要使用调制与解调技术

B.使用多路复用技术的主要目的是提高传输线路的利用率,降低通信成本

C.在数据通信中采用分组交换技术,可以动态分配信道资源,提高传输效率和质量

D.数据通信网络大多采用分组交换技术,但不同类型网络的数据包格式通常不同

8Internet使用TCP/IP协议实现了全球范围的计算机网络的互连,连接在

Internet上的每一台主机都有一个IP地址。目前使用的是IPv4标准(32位地

址),下一代互联网将会采用IPv6标准,其IP地址为____

    A48

    B64

    C96

    D128

9.下列关于字符编码标准的叙述中,错误的是____

A.在ASCII标准中,每个字符采用7位二进制编码

B.在绝大多数情况下,GB2312字符集包含的1万多个汉字足够使用

CUnicode字符集既包含简体汉字,也包含繁体汉字

D.中文版Windows XP及其后的Windows系列操作系统均支持国标GB18030

10.由于采用的压缩编码方式及数据组织方式的不同,图像文件形成了多种不同的文件格式。在下列四种图像文件中,常用于网页上发布并可具有动画效果的是   

A. BMP

BJPEG

CGIF

D. TIF

参考答案:

1A    3B  2D    4C   5D   6A   7.A  8D  9B  10.C

 

 

第二部分  Visual Basic程序设计

一、选择题(共10分,每题2分)

    1.以下有关对象事件过程的说法中,错误的是____

    A.对象事件过程的参数由系统决定,用户不得随意添加或改变

    B.窗体事件过程名中的对象名为窗体的名称(Name属性值)

    C.控件事件过程名中的对象名为控件的名称(Name属性值)

    D.对象事件过程可以通过Call语句调用执行

    2.设字符串变量a已赋值"Visual Basic",以下表达式中运算结果等于2的是______

    AInStr(a"a")

    B. InStr(Left(a, 2) & Right(a,6),"a")

    C. InStr(Right(a,InStr(a,"a")),"a")

    D. InStr(Left(a,InStr(a,"a")),"a")

  

      

   4.以下有关动态数组的说法中,错误的是______

    A.动态数组可用ReDim语句重新说明其维数和大小

    B.不能用ReDim语句改变动态数组的数据类型

    C.含有Preserve关键字的ReDim语句只能改变数组最后一维的维上界

    D.主调过程中说明的动态数组只能在本过程中使用ReDim语句重新定义

  5.以下有关自定义函数过程的说法中,错误的是______

    A.自定义函数名的数据类型与形参自变量的数据类型有关

    B.未说明自定义函数名的数据类型时,返回函数值的类型为变体类型

    C.自定义函数过程内不得再定义其他函数过程

    D.自定义函数过程的形参中,可以包含数组参数

 

二、填空题(共20分,每空2分)

    1.执行下面程序,单击Command1按钮后,列表框上显示的第一个列表项内容是 ___(1)___ ,最后一个列表项内容是 ___(2)___   

Option Explicit

Private Sub Command1_Click( )

      Dim st As String, p As String * 1, i As Integer, js As Integer

      st  =  "12233"

      p = Mid( st, 1, 1)

      js = 1

      i=1

      Do

        i=i+1

        If Mid( st, i, 1)  = p Then

           js = js + I

        Else

          List1.AddItem p & " :" & js

          p = Mid(st, i, 1)

          js = 1

        End If

      Loop While i < Len(st)

      List1.AddItem p & " :" & js

End Sub

2.执行下面程序,在"输入:"文本框Text1中输入"1235189"后单击"输入数组"按钮Command1,则数组元素a(2)的值是 ___(3)___    ,在单击"数组处理"按钮Command2后数组元素a(2)的值变为 ___(4)___   

 

Option Explicit

Option Base 1

Dim a()As Integer    定义模块级数组

Private Sub Command1_Click()    输入数组

    Dim i As Integer,st As String,j As Integer

    st = Text1.Text

    Do Until InStr(st, " ," )  = 0

        i=Instr(st,",")

        j=j+1

        ReDim Preserve a(j)

        a(j)  = Val(Left( st, i - 1))

        st = Right(st, Len(st) - i)

    Loop

    ReDim Preserve a(j + 1)

    a(j+1) = st

End Sub

Private  Sub  Command2_Click( )    '数组处理

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

      For i= 2 To UBound(a)

            If a(i)> a(1) Then

                 t=a(i)

                 For j = i To 2 Step  -1

                    a(j) = a(j - 1)

                 Next j

                 a(1)=t

            End If

      Next i

      For i =1 To UBound( a)

        Text2.Text = Text2.Text & Str(a(i))

      Next i

End Sub

 

 

3.执行下面程序,单击命令按钮Command1后,窗体显示的第一行内容是___(5)___,第二行内容是___(6)___ ,第三行内容是___(7)___

Option Explicit

Dim K As Integer

Private Sub Command1_Click( )

      Dim A As Integ;er, B As Integer

      A = 11: B = 2

      K = Fun((A), B) + Fun(A, A)

      Print K

End Sub

Private Function Fun( N As Integer,  M As Integer)  As Integer

     N = N\2

     K = K+N

     If N Mod 2  < > 0 Then

       N=N+1

     End If

     M=M+K

     Fun = M + N

     Print M, N

End Function

 

4  执行下面程序,单击Command1按钮,则在窗体上显示的第一行内容是 ___(8)___    ,第二行内容是 ___(9)___    ,最后一行内容是 ___(10)___   

Option Explicit

Private Sub Command1_Click( )

   Dim a As Integer, b As String

   a = 27

   Do

      b = fun(a)

      a = a\5

   Loop Until a = 0

   Print b

End Sub

 

Private Function fun(n As Integer) As String

      Static s As String

      s = CStr(n Mod 5) & s

      fun = s

      Print s

End Function

 

 

三、操作题(共50分)

    1.完善程序。(共12分)

    【要求】

    1)打开"T""P1.vbp"文件,按参考界面形式编辑窗体界面,完善程序后,直接保存所有文件。

    【题目】

下面程序的功能是实现两个分数相加。分数相加的一般步骤是先通分,分子相加,再约分。如果结果的分子大于分母,则将其化为带分数。

Option Explicit

Private Sub Command1_Click( )    '计算

      Dim fz1 As Integer, fz2 As Integer, fm1 As Integer, fm2 As Integer

      Dim zs As Integer, js1 As String, js2 As String

      Dim g As Integer, fz As Integer, fm As Integer

      js1 = Text1. Text

      js2 = Text2. Text

      fz1  = Left(js1, InStr(js1, "/" )  -  1)

      fm1  = Right(js1, Len(js1)  - InStr(js1, "/" ))

      fz2  = Left(js2, InStr(js2, "/" )  -  1)

      fm2  =  Right( js2 ,  Len(js2 )   -  InStr(js2 ,  "/"))

      fm = lcd(fm1, fm2)

      fz = fz1 * (fm\fm1) + fz2 * (fm\fm2)

      ___(1)___

      fm=fm/g    '约分

      fz=fz/g

      '化带分数

      If ___(2)___ Then

        zs  =  zs  +  ( fz\fm)

        fz = fz Mod fm

        Text3. Text = zs

      End If

      Text4. Text = fz

      Text5. Text = fm

End Sub

 

 

Private Function lcd( a As Integer, b As Integer) As Integer

      Dim n As Integer

      n=a

      Do While n Mod b <> 0

         ___(3)___

      Loop

      lcd = n

End Function

 

Private Function gcd( ByVal a As Integer, ByVal b As Integer) As Integer

      Dim r As Integer

      Do

         r = a Mod b

         a=b

         b=r

     Loop Until r = 0

     ___(4)___

End Function

 

 

2.改错题(共16分)

  【要求】

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

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

  【题目】本程序的功能是生成由nn通过InputBox函数输入)个3位升序数据组成的随机数组。所谓升序数是指从高位到低位数字值依次增加的整数。

Option Explicit

Option Base 1

Private Sub Command1_Click( )

    Dim n As Integer, a() As Integer,k As Integer,p As Integer

    n= InputBox("输入数据个数:""升序数数组"10)

    ReDim a(n)

    Do

      p= Int( Rnd()*900)

      If judge(p) Then

          k=k+1

          a(k)=p

          Text1.Text = Text1.Text & Str(a(k))

          If k Mod 5 = 0 Then Text1.Text = Text1.Text & vbCrLf

      End If

    Loop Until k > n

End Sub

 

 

Private Function judge ( n As Integer)  As Boolean

      Dim i As Integer, a(3) As Integer

      For i = 3 To 1 Step -1

          a(i) = n Mod 10

          n = n\10

      Next i

      For i = 1 To 2

             If a(i) >= a(i + 1) Then Exit For

      Next i

     judge = True

End Function

 

 

3.编程题(22分)

    【要求】

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

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

    【题目】编写程序,找出给定范围内所有不是素数的亏数。所谓亏数是指除

本身外其所有因子之和小于自身的正整数。例如106的因子为l253,和为

56,故106是亏数。(注意:凡因子和为l的即为素数)

    【编程要求】

    (1)程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象

的种类,窗体及界面元素大小适中,且均可见。

 

    (2)运行程序,在"a"文本框中输入数据范围的起始值,在"b"文本框中输

入数据范围的终止值后,单击"查找"按钮,若数据范围内存在"亏数",则将它们

按附图参考界面所示的格式输出到列表框中,否则在列表框中输出"指定范围内

无亏数"的信息;按"清除"按钮,将文本框与列表框清空,焦点置于"a"文本框上。

    (3)程序中至少应定义一个通用过程,用于求一个整数的因子和或判断其

是否为"亏数"

 

 

参考答案

一、选择题(共10分,每题2分)

1B    2C    3B    4D    5A

二、填空题(共20分,每空2分)

1.11

2.32

3.3

4.12

5.7    6

6.16  16

7.45

8.2

9.02

10. 102

 

 

三、操作题(共50分)

1.完善程序(共12分)

(1)g=gcd(fz, fm)g=gcd(fm, fz)

(2)fz

(3)n=n+a

(4) gcd=a

2.改错题(共16分)

(1)p = Int( Rnd  *  900)修改为  p = Int( Rnd  *  900)  + 100            

(2)Until  k > n  修改为:Loop Until k = n  

(3)Private Function judge ( n As Integer)  As Boolean修改为:

   Private Function judge (byval n As Integer)  As Boolean

(4)If a(i) >= a(i + 1) Then Exit For  修改为

   If a(i) >= a(i + 1) Then Exit Function

 

3.编程题(22分)

Option Explicit

Option Base 1

Private Sub CmdClear_Click( )

      Text1. Text = " " : Text2.text=""

      List1. Clear

      Text1. setfocus

End Sub

Private Sub CmdFind_Click( )

      Dim a As Integer, b As Integer, i As Integer

      Dim st As String, flg As Boolean, sum As Integer

      a  =  Val( Text1.Text)

      b  =  Val( Text2.Text)

      For i = a To b

             flg = False: st = "" : sum = 0

             Call judge(i, flg, st, sum)

              If flg Then

                  List1. AddItem i & " :" & st & "=" & sum

              End If

      Next i

      If List1.ListCount  =  0 Then List1.Addltem  "指定范围内无亏数 ! "

End Sub

 

 

Private Sub judge(n As Integer, fg As Boolean, st As String, sum As Integer)

  Dim i As InteS;er

  For i = 1 To n - 1

       If n Mod i = 0 Then

         sum = sum + i

         st=st & i & "+"

       End If

  Next i

  If sum < n And sum < > 1 Then

     fg = True

     st = Left(st, Len(st) - 1)

  End If

End Sub