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

1.         集成电路根据所包含的电子元件数目可以分为多种类型,下列缩写表示的集成电路中,集成度最高的是______

A.   LSI

B.   MSI

C.   ULSI

D.   VLSI

C

解析:集成度(单个集成电路所含电子元件的数目)小于100的小规模集成电路(SSI),集成度在100--3000的中规模集成电路(MSI),集成度在3000--10万的大规模集成电路(LSI),集成度在10万到100万的超大规模集成电路(VLSI),集成度超过100万的极大规模集成电路(ULSI) 

1

2.         在下列电子文档格式中,Adodb Systems公司开发的,几乎所有操作系统都支持的,并且可免费使用的是______

A.   HTML

B.   DOCX

C.   XML

D.   PDF

D

解析:HTML用于网页描述语言,DOCXword的保存格式,XML是一种用于标记电子文件使其具有结构性的标记语言,PDF文件格式将文字、字型、排版格式、声音和图像等信息封装在一个文件中。

5

3.         在下列有关无线通信和有线通信的叙述中,错误的是_________

A.   与有线屏蔽双绞线相比,无屏蔽双绞线成本高,传输距离远

B.   中波主要沿地面传播,绕射能力强,适用于广播和海上通信

C.   短波具有较强的电离层反射能力,适用于环球通信

D.   微波频带很宽,但绕射能力较差,只能作为视距或超视距中继通信

A

解析:与有线屏蔽双绞线相比,无屏蔽双绞线成本低,传输距离短,一般在局域网中使用。

4

4.         视频行业通常按照数字+视频画面分辨率的高低,将视频分为标准清晰度,高清晰度,全高清和超高清几种。对于全高清视频来说,目前是指数字视频画面分辨率为_________

A.   3460×2160

B.   1280×720

C.   720×480

D.   1920×1080

D

解析:高清是在广播电视领域首先被提出的,最早是由美国电影电视工程师协会(SMPTE)等权威机构制定相关标准。将“高清”定义为720p1080i1080p三种标准形式,而1080P又有另外一种称呼--全高清(Full High Definition)。关于高清标准,国际上公认的有两条: 视频垂直分辨率超过720p1080i; 视频宽纵比为16:9480×320640×480属于标清,1024×720p1920×1080i (隔行扫描) 属于高清,1920×1080p属于全高清,3840×2160,7680×4320属于超()清。

5

5.         通俗的说,算法是解决问题的方法和步骤,它是程序的核心,下列有关算法的叙述中,错误的是______

A.   如果对于某个问题无法给出算法,则不可能编写出程序,计算机也无法处理该问题

B.   算法设计方法有多种,例如枚举法,迭代法、递归法等

C.   从算法需要占用的计算机资源角度分析其优劣时,重点要考虑时间代价和空间代价

D.   任何算法均必须有一个或多个输入,也必须仅有一个输出(包括参量状态的变化)

D

解析:算法的四大特性是确定性,能行性,有穷性,输出,必须有输出,可以没有输入。

3

6.         无符号整数是计算机中最常使用的一种数据类型,其长度(位数)决定了可以表示的正整数的范围。假设无符号整数的长度是8位,那么它可以表示的正整数的最大值(十进制)是______

A  127   

B  128   

C  255   

D  256

C

解析:无符号是指最高位不再表示符号位,而是数值位,8位最大无符号二进制数是11111111,转换为十进制是255

1

7.         总线最重要的性能是它的传输速率,也称为"带宽",在一个32位的总线系统中,若时钟频率为200MHz,总线数据周期为1个时钟周期传输1,那么该总线的数据传输速率为_________

A.  400M/s

B.  800M/s

C.  1600M/s

D.  200M/s

B

解析:计算数据传输速率的公式:
数据传输速率(MB/s)=(数据线宽度/8)×时钟频率(MHz)×每个总线数据周期的传输次数=(32/8)×200×1=800MB/s  

2

8.         因特网中的IP地址可以分为A类、B类、C类、D类等。在下列4IP地址中,属于A类地址的是______

A.   28. 129. 200. 19   

B.   128. 129. 200. 19

C.   188. 129. 200. 19   

D.   222. 129. 200. 19

A

解析:IPv4地址中,共有4个数字,如果第1个数字<=127属于A类地址,如果第1个数字大于等于128且小于192的属于B类地址,如果第1个数字>=192且小于224的属于C类地址;选项BCBIP地址,选项DCIP地址。

4

9.         下列有关PC机主板的芯片组,BIOSCMOS存储器的叙述中,错误的是______

A.   从传统的芯片组来看,芯片组一般分为南桥芯片和北桥芯片,前者是存储控制中心,后者是I/O控制中心

B.   芯片组的性能参数包括适用的CPU类型,适用的存储器类型和可支持的最大容量、支持的I/O接口类型与数目等等

C.   BIOS是存储在主板上闪速存储器中的一组机器语言程序,它是PC机软件中最基础的部分,没有它机器就无法启动

D.   CMOS存储器存放着与计算机系统相关的一些配置信息,用户不可能更改其中存储的信息

D

解析:CMOS存储器存放着与计算机系统相关的一些配置信息,用户可以通过CMOS设置程序更改其中存储的信息

2

10.     下列有关程序与软件的叙述中,错误的是______

A.   所有的程序都是采用机器语言编写的,用于描述如何完成某一确定的任务

B.   人们通常将程序及其相关的数据和文档统称为软件,其中程序是软件的主体

C.   软件是智力活动的成果,与书籍等一样受到知识产权(版权)保护

D.   目前许多软件产品是免费的,用户可以从有关网站下载和使用

A

解析:程序的编写现在一般都采用高级语言,因为编写方便。

3

 

11.  下面关于控制属性的说法中,错误的是__________

A.   控件的LeftTop属性的值确定了该控件在窗体中的位置

B.   控件的HeightWidth属性的值确定了该控件的大小

C.   控件的Enabled属性的缺省(默认)值为True

D.   控件的Caption属性的值指定了该控件的名称

D

解析:控件的Name属性的值指定了该控件的名称, 控件的Caption属性的值指定了该控件的标题。

3

12.     下列有关数组的叙述中,正确的是________

A.   用赋值语句给数组元素赋值后,才可以引用它

B.   若程序中不包含Option Base 语句,Dim a(0) As Integer定义了只有一个元素的数组a

C.   在窗体模块通用声明处不可以用Public语句定义数组,所以VB没有全局数组

D.   定长字符串类型的数组不可以作为过程的形参

B

解析:A选项错误,只要定义数组后,就可以引用数组里面的元素;C选项错误,在模块声明处可以用Public语句定义数组;D选项错误,定长字符串类型的数组可以作为过程的形参,变长字符串类型的数组不可以作为过程的形参 (: Dim a() As string*10属于定长声明, Dim a() As String属于变长声明) 

6

13.     下列有关通用过程的说法,错误的是__________

A.   过程调用时,实参与形参的结合有传地址和传值两种方式

B.   在过程中对传址形参的任何操作就是对相应实参的操作,实参的值随形参的改变而改变

C.   过程调用时与传值形参结合的实参的数据类型必须与形参一致

D.   过程调用时与传值形参结合的实参的数据类型可以与形参不一致,但要相容

C

解析:过程调用时与传值形参结合的实参的数据类型可以与形参不一致,因为是值传递不是地址传递,所以相容就可以了,如整型的值可以值传递给长整型

7

14.     设整型变量n=3456,下面表达式结果不为6453的是_________

A.   n\10^3+(n Mod 10)*10^3+(n\10 Mod 100)*10

B.   n\10^3+(n Mod 10)*10^3+(n Mod 1000)-n Mod 10

C.   n\10^3+(n Mod 10)*10^3+CInt((n Mod 1000)/10)*10

D.   n\10^3+(n Mod 10)*103+Fix((n Mod 1000)/0)*10

C

解析: 运算符中^的优先级最高,题目中先执行10^3=1000, 因为Cint表示将值四舍五入后转换为整型,导致CInt((n Mod 1000)/10)的结果是46,导致最后结果是6463,具体见题目视频详细讲解

3

数学表达式     对应的VB表达式是__________________

A.   (12*x+5*y-Sqr(Abs(d^3-m^2)))/Exp(x)/Sin(x)

B.   (12*x+5*y-Sqr(Abs(d^3-m^2)))/Exp(x)*Sin(x)

C.   12*x+5*y-Sqr(Abs(d^3-m^2))/Exp(x)/Sin(x)

D.   (12*x+5*y-Sqr(Abs(d^3-m^2)))/e^(x)/Sin(x)

A

解析: B选项错误, B选项的意思除以Exp(x),乘以Sin(x),与题意不符;C选项缺少了括号,因为VB中先乘除,后加减,所以导致不符合题意,D选项中应该用Exp表示e值。

4

运行下面程序,单击命令按钮Command1,则窗体上显示的第一行是_______________,  第二行是_______________  .

Option Explicit

Private Sub Command1_Click()

   Dim i As Single,  n As Single ,  k As Integer

   k=-1

   For i=-0.5 To -6.5 Step -1.5

      n=i-0.5

      k=k+1

      if Int(i)=Fix(i) Then

          i=i+n

      Else

          i=i-k

      End if

   Next i

   print i

   print n

   print k

End Sub

-14@-6.5

解析: 解析:因文字解析不如视频清晰,具体见本题目的详细视频讲解

6

执行下面程序,单击命令按钮Command1,则窗体上显示的f的值是_______________,t的值是_______________  

Option Explicit

Private Sub Command1_Click()

   Dim n As Long, f As Long

   Dim s As Long ,t As Long

   n=962815743

   Call Rec(n,f,s,t)

   print  f;  "*" ; s;  "="; t

End Sub

 

Private Sub Rec(n as Long, f As Long, s As Long, t As Long)

   Dim k As Long

   t = n Mod 10^4

   k=n \ 10 ^4

   s=k Mod 10^3

   f= k\10 ^3

   if f*s<> t Then

      n=(n Mod 10^8) *10+n\10^8

      Call Rec(n,f,s,t)

   End If

End Sub

28@4396

解析: 因文字解析不如视频清晰,具体见本题目的详细视频讲解

7

执行下面程序,单击命令按钮Command1,则窗体上显示的第一行是_______________,  第二行是_______________,最后一行是_______________ 

Option Explicit

Private Sub Command1_Click()

   Dim k As Integer, m As Integer

   Dim n As Integer

   n=7394

   k=Len(Cstr(n))\2

   Do

     m=m*10^k+fun(n,k)

   Loop Until n=0

   Print m

End Sub

 

Private Function fun(n As Integer, k As Integer) As Integer

  Dim a As Integer

  a= n Mod 10^k

  fun=(a Mod 10) *10 +a\10

  n=n\10^k

  Print fun  

End Function

49@37@4937

解析: 因文字解析不如视频清晰,具体见本题目的详细视频讲解

7

运行下面程序,单击命令按钮Command1,A(1,3)的值是_______________  ,A(2,1)的值是_______________   ,A(3,3)的值是_______________  

Option Explicit

Option Base 1

Private Sub Command1_Click

  Dim A(3,3) As Integer

  Dim i As Integer, j As Integer

  Call Creat(A)

  For i=1 To 3

    For j=1 To  3

      Picture1.Print A(i,j);

    Next j

    Picture1.Print

  Next i

 

End Sub

 

Private Sub Creat(A() As Integer)

  Dim n As Integer, i As Integer, j As Integer

  For i=3 To 1 Step -1

    For j=4-i To 1 Step -1

      n=n+1

      A(j,j+i-1)=n

    Next j

  Next i

  For i=3 To 2 Step -1

    For j=1 To 2

      A(i,j)=A(j,i)

    Next j

  Next i

End Sub

1@3@4

解析: 因文字解析不如视频清晰,具体见本题目的详细视频讲解

7

 

 

 

 

1(完善程序):

【要求】

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

【题目】

下面程序的功能是找出300以内的友谊数。若两个正整数满足σ(m)/m=σ(n)/n,则m和n是友谊数。其中σ(n)函数表示正整数n的所有因子之和。例如σ(6)/6,即(1+2+3+6)/6=2,σ(28)/28,即(1+2+4+7+14+28)/28=2,因此6和28是友谊数。

 

Option Explicit

Private Sub Command1_Click()

    Dim fz(6 To 300) As Long   '数组fz用于存储下标对应数值的因子和

    Dim i As Integer, j As Integer, sum As Integer, st() As String

    For i = 6 To 300

            (1)   

        For j = 1 To i

            If i Mod j = 0 Then

            sum =     (2)   

            End If

        Next j

        fz(i) = sum

    Next i

    Call Verify(fz, st)

    For i = 1 To UBound(st)

        List1.AddItem "(" & st(i) & ")"

    Next i

End Sub

 

Private Sub Verify(fz() As Long, s() As String)

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

    Dim k As Integer

        (3)     

    L = LBound(fz)

    For i = L To U - 1

        st = CStr(i)

        For j = i + 1 To U

            If fz(i) * j = fz(j) * i Then   '判断σ(m)/m = σ(n)/n

                st = st & "," & j

            End If

        Next j

        If st <> CStr(i) Then

            k = k + 1

                (4)   

            s(k) = st

        End If

    Next i

End Sub

 

答案:

(1) sum=0

(2) sum+j

(3) u=ubound(fz)

(4) Redim Preserve s(k)

 

解析: 因文字解析不如视频清晰,具体见本题目的详细视频讲解

 

sum=0@sum+j@u=ubound(fz)@Redim Preserve s(k)

 

2(改错题):

【要求】

1)打开TP2.vbp文件,改正程序中的错误后,直接保存所有文件;

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

【题目】

下面程序的功能是找出10~4000以内的既是可左截短素数,又是可右截短素数的数。可左截短素数是指若从最高位起,由左侧依序删除数字,其结果都是素数的数。例如9137,由左侧依序删除数字,得到的9137,137,37及7均为素数,因此是可左截短素数。可右截短素数是指若从最低位起,由右侧依序删除数字,其结果都是素数的数。例如7393,由右侧依序删除数字,得到的7393,739,73及7均为素数,因此是可右截短素数。

Option Explicit

Private Sub Command1_Click()

    Dim i As Integer, k As Integer, L As Integer

    Dim LD As Integer, R As Integer, js As Integer

    For i = 10 To 4000

        LD = Len(i)

        For L = LD To 1

            k = i Mod 10 ^ L

            If Not Prime(k) Then Exit For

        Next L

        For R = 0 To LD - 1

            k = i \ 10 ^ R

            If Not Prime(k) Then Exit For

        Next R

        If L < 1 And R < LD - 1 Then

            Text1.Text = Text1.Text & i & " "

            js = js + 1

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

        End If

    Next i

End Sub

 

Private Function Prime(n As Integer) As Boolean

    Dim k As Integer

    For k = 2 To Sqr(n)

        If n Mod k = 0 Then Exit For

    Next k

    If n > 1 Then Prime = True

End Function

 

答案:

(1) LD = Len(i)  修改为  LD = Len(Cstr(i))

(2) For L = LD To 1   修改为  For L = LD To 1  step -1

(3) If L < 1 And R < LD - 1 Then   修改为  If L < 1 And R > LD - 1 Then

(4) If n > 1 Then Prime = True   修改为   If n > 1 And k>sqr(n) Then Prime = True

 

解析: 因文字解析不如视频清晰,具体见本题目的详细视频讲解

LD = Len(Cstr(i))@ For L = LD To 1  step -1@ If L < 1 And R > LD - 1 Then@ If n > 1 And k>sqr(n) Then Prime = True

3(编程题):

【要求】

1)打开TP3.vbp文件,按参考界面形式编辑窗体界面,根据题目要求编写和调试程序后,直接保存所有文件;

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

【题目】

编写程序,在10~89210范围内找出符合下列条件的整数:该整数可分割为两个数,这两个数之和的平方又等于这个整数。例如:2025可拆分为20和25,20+25=45,45^2=2025。

【编程要求】

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

2)运行程序,单击运行命令按钮,将符合条件的正整数显示在文本框中,并将符合条件的整数分割及处理过程按参考界面格式显示在列表框中;单击清除按钮,将文本框和列表框清空,焦点置于运行按钮上;单击结束按钮,结束程序的运行;

3)程序中应定义一个通用过程,用于将正整数分割为两个数字。

 

 

Option Explicit

 

Private Sub Command1_Click()

  Dim i As Long, j As Integer

  Dim n As String, a As Integer, b As Integer

  For i = 10 To 89210

     n = CStr(i)

     For j = 1 To Len(n) - 1

       Call fenjie(n, j, a, b)

       If (a + b) ^ 2 = i Then

         Text1.Text = Text1.Text & i & "  "

         List1.AddItem (i & ":" & a & "+" & b & "=" & a + b & "->" & a + b & "^2" & "=" & (a + b) ^ 2)

       End If

     Next j

    

  Next i

End Sub

 

Private Sub fenjie(n As String, i As Integer, a As Integer, b As Integer)

    Dim num As Integer

    num = Len(n)

    a = Left(n, i)

    b = Right(n, num - i)

  

End Sub

 

Private Sub Command2_Click()

  Text1.Text = ""

  List1.Clear

  Command1.SetFocus

End Sub

 

Private Sub Command3_Click()

  End

End Sub