2016年3月江苏省计算机等级VB真考试卷 |
江苏省高等学校计算机等级考试 二级Visual Basic 考试 (本试卷完成时间 120 分钟) 1、 单选题 微电子技术是以集成电路为核心的电子技术。在下列有关集成电路(IC)的叙述中,错误的是_________。 A. 现代集成电路使用的半导体材料大多数是硅(Si) B. 目前PC、平板电脑、手机等所用的集成电路绝大多数为大规模或超大规模 C. 目前PC、平板电脑、手机等所用的CPU大多数为国产IC芯片 D. Moore定律指出,集成电路的集成度平均18-24个月翻一番 C 解析: 目前PC、平板电脑、手机等所用的CPU大多数为国外CPU芯片 1 2、 声音在数字化时常用的取样频率为8kHz、量化位数为8bits。若声道数位2,则每分钟的数字声音数据量在未压缩时大约是_______________。 A.64KB B.128KB C.1MB D.2MB C 解析:8khz表示8000b/s,计算公式是:8000*8*2*60=960*8000b=960*1000B=960KB,最接近的是1MB。(注:因为1个字节=8个比特,即1B=8b,所以8000b=1000B) 5 3. 目前汉字信息的编码标准有多个.在下列的叙述中,错误的是_________。 A.Windows 7不支持Unicode编码 B.BIG5是一个繁体汉字字符集 C.GBK收录了20000多个汉字 D.GB2312-80共收录了6000多个汉字 A 解析:Windows操作系统广泛支持Unicode编码 5 4. 在下列有关数的进制系统的叙述中,不正确的是__。 A.所有信息在计算机中的表示均采用二进制编码. B.以任何一种进制表示的数,均可精确地用其它进制来表示. C.二进制数的逻辑运算有三种基本类型,分别为"与"、"或"和"非". D.WindowsXP/7操作系统提供的"计算器"软件可以实现几种进制数之间的转换. B 解析:十进制整数可以精确的转换为另一个进制,如果是小数部分,转换时可能无法精确转换。 2 5. 下列关于CPU及指令系统的叙述中,错误的是_____________。 A.CPU中的ALU可能有多个,有的负责完成整数运算、有的负责完成浮点数运算 B.目前CPU芯片不仅包含逻辑CPU,往往还包含有高速缓存、存储控制器等其他一些部件 C.不同指令的操作要求不同,但被处理的操作数类型、个数和来源通常一样 D.CPU所执行的全部指令称为CPU的指令系统,通常指令系统中有数以百计的不同指令 C 解析: 不同指令的操作要求不同,被处理的操作数类型、个数和来源也不同。 2 6、美国Adobe公司的Acrobat软件,使用________文件格式将文字、字型、排版格式、声音和图像等信息封装在一个文件中,既适合网络传输,也适合电子出版,得到了广泛的应用。 A.TXT B.DOC C.HTML D.PDF B 解析: PDF文件格式将文字、字型、排版格式、声音和图像等信息封装在一个文件中 5 7、将一个部门中的多台计算机组建成局域网可以实现资源共享。在下列有关局域网的叙述中,错误的是_________________。 A.局域网必须采用TCP/IP协议进行通信 B.局域网一般采用专用的通信线路 C.局域网可以采用的工作模式主要有对等模式和客户/服务模式 D.构建以太(局域)网时,需使用集线器或交换机等网络设备,一般不需要路由器 A 解析:局域网分为以太网,FDDI网和令牌网等,不同的局域网类型采用不同的网卡与不同协议通信,现在主流的局域网是以太网。如无线局域网采用IEEE802.11协议。 4 8. 在下列有关算法的叙述中,错误的是_____________。 A.通俗地说,算法就是解决问题的方法和步骤 B.算法总是在执行了有限步的操作后终止 C.程序是算法的实现,程序与算法是一一对应的 D.算法解决的往往是一类问题而不是一个特定的问题 C 解析:程序是算法的具体实现,算法是抽象的,程序是具体的,两者无法做到一一对应。 3 9、下列有关PC机外部设备的叙述中,错误的是_________。 A.扫描仪的工作过程主要基于光电转换原理,分辨率是其重要性能指标之一 B.制作3~5英寸的照片(图片),数码相机的CCD像素必须在600万以上 C.集成显卡(指集成在主板上的显卡)的显示控制器主要集成在芯片组中 D.存折和票据的打印,目前主要是采用针式打印机 B 解析: 制作3~5英寸的照片(图片),数码相机的CCD像素在200到300万就可以满足要求。 2 10、不同格式的图像文件,其数据编码方式有所不同,通常对应于不同的应用。在下列几组图像文件格式中,制作网页时用得最多的是______________。 A.GIF与JPEG B.GIF与BMP C.JEPG与BMP D.GIF与TIF A 解析:网页上一般使用GIF与JPEG两种图片格式 5
一、选择题(共10 分,每题2 分) 1. 下列控件中,无法用于显示程序运行结果的是 ___1 ___ 。 A.TextBox B.ListBox C.PictureBox D.Timer 2. 下列有关转换函数的说法中,正确的是 ___2 ___ 。 A.Int 和CInt 函数的区别仅在于返回结果的数据类型不同 B.Int 和Fix 函数将非整数数据转换成整数,转换后的结果类型是Long C.在处理正数时,Int 函数和Fix 函数的返回结果是相同的 D.在处理负数时,Int 函数和Fix 函数的返回结果是相同的 3. 数学式 A.Log(x) / Log(10) - Cos(30 * 3.14159 / 180) + Abs(x ^ 2 + Sqr(y)) + Exp(x) B.Log(x) / Log(10) - Cos (30) + Abs(x ^ 2 + Sqr(y)) + e ^ x C.Log(x) - Cos(30 * 3.14159 / 180) + Abs(x ^ 2 + Sqr(y)) + Exp(x) D.Log(x) - Cos(30) + Abs(x ^ 2 + Sqr(y)) + e ^ x 4. 下列有关数组的说法中,错误的是___ 4 ___ 。 A.若模块中有“Option Base 1”语句,则该模块中的数组的维下界都为1 B.定长字符串类型的数组也可以作为过程的形式参数 C.只能在标准模块中用Public 语句定义全局数组 D.若A 是固定大小数组,执行语句Erase A 后,数组A 的所有元素被初始化 5. 下列关于过程参数的叙述中,正确的是 ___5 ___ 。 A.符号常数名可以出现在定义过程的形式参数表中 B.过程调用时,与用ByRef 说明的形参结合的实在参数不可以是常数或表达式 C.在自定义过程中,用ByVal 说明的形参值发生改变,不会影响与之结合的实参的值 D.VB 对过程的形式参数的类型没有任何限制 二、填空题(共20 分,每空2 分) 1. 执行下面程序,单击命令按钮Command1,则窗体上显示的第一行内容是 ___ (1) ___ , 第二行内容是 ___ (2) ___ 。 Option Explicit Private Sub Command1_Click() Dim i As Integer, j As Single, k As Integer j = 11 For i = 2 To 10 Step 2.5 j = j - 2.5 If j = Int(j) Then i = i + j Mod 10 Else i = i + 1 End If k = i + j Next i Print i Print k End Sub 2. 执行下面程序,单击命令按钮 执行下面程序,单击命令按钮 Command1,则数组元素 ,则数组元素 ,则数组元素 A(1, 2)的值是 ___ (3) ___ 、A(2, 1)的值是 ___ (4) ___ 、A(3, 3)的值是 ___ (5) ___ 。 Option Explicit Option Base 1 Private Sub Command1_Click() Dim A(3, 3) As Integer, K As Integer Dim i As Integer, j As Integer i = 2 j = 1 A(i, j) = 39 For K = 38 To 31 Step -1 If i - 1 = 0 And j - 1 > 0 Then i = 3: j = j - 1 ElseIf i - 1 > 0 And j - 1 = 0 Then i = i - 1: j = 3 ElseIf i - 1 = 0 And j - 1 = 0 Then i = 1: j = 2 ElseIf A(i - 1, j - 1) <> 0 Then j = j + 1 Else i = i - 1: j = j - 1 End If A(i, j) = K Next K For i = 1 To 3 For j = 1 To 3 Text1.Text = Text1.Text & A(i, j) & " " Next j Text1.Text = Text1.Text & vbCrLf Next i End Sub 3. 执行下面程序,单击命令按钮 执行下面程序,单击命令按钮 Command1,则 窗体上显示的第一行内容是 ___(6)___ , 最后一行内容是 ___(7)___ 。 Option Explicit Private Sub Command1_Click() Dim a As Integer, b As Integer, k As Integer For a = 2 To 3 b = a + 1 k = Fun(Fun(a, b), b) Print k Next a Print b End Sub Private Function Fun(a As Integer, b As Integer) As Integer b = a + b a = a + b Fun = a + b End Function 4. 执行 下面程序,单击 命令 按钮 Command1,则 多行 文本框 Text1中显示 的第一行 内容 是___(8)___ ,第二行 内容是 ___(9)___ ,第三行 内容是 ___(10)___ 。 Option Explicit Private Sub Command1_Click() Dim s1 As String, s2 As String, data1 As String, data2 As String Dim i As Integer data1 = "1011 1010 1110" data2 = "1010 1101 1010" For i = 1 To Len(data1) Step 5 s1 = Mid(data1, i, 4) s2 = Mid(data2, i, 4) Text1.Text = Text1.Text & Subtract(s1, s2) & vbCrLf Next i End Sub Private Function Subtract(s1 As String, s2 As String) As String Dim i As Integer, k As Integer, L As Integer Dim j As Integer, s As String L = Len(s1) For i = 1 To L If Mid(s1, i, 1) = "0" And Mid(s2, i, 1) = "0" Then Subtract = Subtract & "0" Else Subtract = Subtract & "1" End If Next i End Function 三、操作题(共 50分) 1. 完善程序。 (共 12分) 【要求】 1) 打开”考生文件夹”中”P1.vbp”文件,完善程序后,直接保存所有文件 。 【题目】 本程序的功能是 找出 4~500之间的史密夫数。所谓史密夫数是指该数的各位数字和等于其质因子分解中所有质因子的各位数字和。 例如 在十进制下, 202就是一个史密夫数, 因为 2 + 0 + 2 = 4,202的质因子分解为 2 × 101,2 + 1 + 0 + 1 = 4。 Option Explicit Option Base 1 Private Sub Command1_Click() Dim i As Integer, he As Integer Dim n As Integer, pf() As Integer For n = 4 To 500 Call Pfactor(n, pf) If UBound(pf) > 1 Then ______(1)______ For i = 1 To UBound(pf) he = he + Sum(pf(i)) Next i If Sum(n) = he Then List1.AddItem n End If End If Next n End Sub Private Sub Pfactor(ByVal n As Integer, f() As Integer) '质因子分解 Dim k As Integer, P As Integer k = 2 Do Do While ______(2)______ P = P + 1 ReDim Preserve f(P) f(P) = k n = n \ k Loop ______(3)______ Loop Until n = 1 End Sub Private Function Sum(ByVal n As Integer) As Integer Dim S As String, L As Integer, k As Integer, i As Integer S = CStr(n) ______(4)______ For i = 1 To L k = Val(Mid(S, i, 1)) Sum = Sum + k Next i End Function 2. 改错题(共 16分) 【要求】 1) 打开”考生文件夹”中”P2.vbp”文件 ,改正程序中的错误后,直接保存所有文件 ; 2) 改错时,不得增加或删除语句但可适当调整位置。 【题目】 本程序的功能是 在给定的数字串中( 在给定的数字串中(121709473)找出所有的素数子串。 Option Explicit Private Sub Command1_Click() Dim n As Integer, St As String, L As Integer, Flg As Boolean Dim i As Integer, j As Integer, C As String, s As String n = Val(Text1.Text) St = CStr(n) L = Len(n) For i = 1 To L Flg = False For j = 1 To L - i + 1 C = Mid(St, j, i) If Left(C, 1) <> "0" And Prime(Val(C)) Then s = s & C & " " Flg = True End If Next j If Flg Then s = s & vbCrLf Next i Text2.Text = s End Sub Private Function Prime(M As Long) As Boolean Dim i As Long For i = 2 To Int(Sqr(M)) If M Mod i = 0 Then Exit For Next i Prime = True End Function 3. 编程题( 22分) 【要求】 1) 打开 “考生文件夹”中“P3.vbp”文件 ,按参考界面形式编辑窗体,根据题目要求编写和调试程序后,直接保存所有文件; 2) 程序代码书写应呈锯齿形,否则适当扣分。 【题目】 编写程序,生成由两位随机整数组成的数组,删除数组中数值相同的数组元素。 【编程要求】 1) 程序参考界面如图所示,编程时不得增加或减少对象改变的窗体种类,窗体及界面元素大小适中,且均可见; 2) 运行程序, 单击 “生成 ”按钮, 在 InputBox对话框中输入需要生成的数组元素个数 ,并生成由两位随机整数组成的数组显示在文本框 1中;单击“删除重复数” 按钮将数组中出现的重复数删除后显示在文本框 2中; 单击 “清除 ”按钮,将所有文本框清空,焦点置于 “生成 ”按钮上; 3) 程序中至少应定义一个通用过程,用于将数组中的重复数删除 。 参考答案 一、选择题(共 10分,每题 2分) 1.D 2.C 3.A 4.A 5.C 二、填空题( 共 20分, 每空 2分) 1.13 2.17 3.33 4.39 5.36 6.46 7.17 8.1011 9.1111 10.1110 三、操作题(共 50分) 1. 完善程序 (共 12分) (1) he = 0 (2) n Mod k = 0 (3) k = k + 1 (4) L = Len(S) 2. 改错题(共 16分) Option Explicit Private Sub Command1_Click() Dim n As Long, St As String, L As Integer, Flg As Boolean Dim i As Integer, j As Integer, C As String, s As String n = Val(Text1.Text) St = CStr(n) L = Len(St) For i = 1 To L Flg = False For j = 1 To L - i + 1 C = Mid(St, j, i) If Left(C, 1) <> "0" And Prime(Val(C)) Then s = s & C & " " Flg = True End If Next j If Flg Then s = s & vbCrLf Next i Text2.Text = s End Sub Private Function Prime(M As Long) As Boolean Dim i As Long For i = 2 To Int(Sqr(M)) If M Mod i = 0 Then Exit Function Next i If M > 1 Then Prime = True End Function 3. 编程题( 22分) Option Explicit Option Base 1 Dim a() As Integer, n As Integer Private Sub Command1_Click() Dim i As Integer n = InputBox("输入 n=", , 10) ReDim a(n) For i = 1 To n a(i) = Int(Rnd * 90) + 10 Text1.Text = Text1.Text & Str(a(i)) Next i End Sub Private Sub Command2_Click() Dim i As Integer Call dele(a) For i = 1 To UBound(a) Text2.Text = Text2.Text & Str(a(i)) Next i End Sub Private Sub dele(a() As Integer) Dim i As Integer, j As Integer, k As Integer i = 1 Do j = i + 1 Do If a(i) = a(j) Then For k = j To UBound(a) - 1 a(k) = a(k + 1) Next k ReDim Preserve a(UBound(a) - 1) Else j = j + 1 End If Loop Until j > UBound(a) i = i + 1 Loop Until i >= UBound(a) End Sub Private Sub Command3_Click() Text1.Text = "" Text2.Text = "" Command1.SetFocus End Sub |