1、全国计算机等级考试二级 VISUAL+BASIC 真题 2012 年 9 月及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分)(总题数:35,分数:70.00)1.下列链表中,其逻辑结构属于非线性结构的是 (分数:2.00)A.二叉链表B.循环链表C.双向链表D.带链的栈2.设循环队列的存储空间为 Q(1:35),初始状态为 front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为 (分数:2.00)A.15B.16C.20D.0 或 353.下列关于栈的叙述中,正确的是 (分数:2.00
2、)A.栈底元素一定是最后入栈的元素B.栈顶元素一定是最先入栈的元素C.栈操作遵循先进后出的原则D.以上三种说法都不对4.在关系数据库中,用来表示实体间联系的是 (分数:2.00)A.属性B.二维表C.网状结构D.树状结构5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是 (分数:2.00)A.1:1 联系B.m:1 联系C.1:m 联系D.m:n 联系6.有两个关系 R 和 S 如下: (分数:2.00)A.选择B.投影C.自然连接D.并7.数据字典(DD)所定义的对象都包含于 (分数:2.00)A.数据流图(DFD 图)B.程序流程图
3、C.软件结构图D.方框图8.软件需求规格说明书的作用不包括 (分数:2.00)A.软件验收的依据B.用户与开发人员对软件要做什么的共同理解C.软件设计的依据D.软件可行性研究的依据9.下面属于墨盒测试的方法是 (分数:2.00)A.语句覆盖B.逻辑覆盖C.边界值分析D.路径覆盖10.下面不属于软件设计阶段任务的是 (分数:2.00)A.软件总体设计B.算法设计C.制定软件确认测试计划D.数据库设计11.以下叙述中错误的是 (分数:2.00)Avbp 文件是工程文件,一个工程可以包含.bas 文件Bfrm 文件是窗体文件,一个窗体可以包含.bas 文件Cvbp 文件是工程文件,一个工程可以由多个
4、.frm 文件组成Dvbg 文件是工程组文件,一个工程组可以由多个工程组成12.以下叙述中错误的是 (分数:2.00)A.在 Visual Basic 的窗体中,一个命令按钮是一个对象B.事件是能够被对象识别的状态变化或动作C.事件都是由用户的键盘操作或鼠标操作触发的D.不同的对象可以具有相同的方法13.设 x=3.3,y=4.5,表达式 x-Int(x)+Fix(y)的值是 (分数:2.00)A.3.5B.4.8C.4.3D.4.714.窗体上有一个名称为 Command1 的命令按钮,其中部分代码如下: Private Sub Command1_Click( ) Dim a(10) As
5、Integer Dim n As Integer Call calc(a,n) End Sub calc 过程的的首行应该是 (分数:2.00)A.Sub calc(x() As Integer,n As Integer)B.Public Sub calc(x() As Integer)C.Private Sub calc(a(n) As Integer,n As Integer)D.Public Sub calc(a As Integer, n As Integer)15.设有如下程序 Sub f(x As Integer,ByVal y As Integer) x=2*x y=y+x En
6、d Sub Private Sub Command1_Click() Dim a As Integer , b As Integer a=6 ; b=35 call f(a,b) print a,b End Sub 程序运行后,单击命令按钮 Command1,输出结果为 (分数:2.00)A.6 47B.12 47C.6 35D.12 3516.以下叙述中正确的是 (分数:2.00)A.窗体及窗体上所有控件的事件过程代码都保存在窗体文件中B.在工程中只有启动窗体可以建立菜单C.窗体名称必须与窗体文件的名称相同D.程序一定是从某个窗体开始执行的17.窗体上有一个名称为 Command1 的命令按
7、钮,其单击事件过程代码如下: Private Sub Command1_Click() Static x As Variant n=0 x=array(1,2,3,4,5,6,7,8,9,10) While n0 x=x-3 x=iif(int(x/5)=x/5,x+2,x) loop print x End Sub 程序运行后,单击命令按钮Command1,输出结果为 (分数:2.00)A.0B.-1C.-2D.-324.以下关于通用对话框中叙述中,错误的是 (分数:2.00)A.若没有指定 InitDir 属性值,则起始目录为当前目录B.用一个通用对话框控件可以建立几种不同的对话框C.Fi
8、leTitle 属性指明了文件对话框中所选择的文件名D.文件对话框用属性 FilterIndex 指定默认过滤器,它是一个从 0 开始的整数25.窗体上有一个名为 Command1 的命令按钮,并有如下程序: Private Command1_Click() Dim m As Integer , n As Integer m=InputBox(“输入第一个数”) n=InputBox(“输入第二个数”) Do While mn m=m-n Loop Do While nm n=n-m Loop Loop Print m End Sub 该程序的功能是 (分数:2.00)A.求数值 m 和 n
9、的最大公约数B.求数值 m 和 n 的最小公倍数C.求数值 m 和 n 中的较大数D.求数值 m 和 n 中的较小数26.窗体上有一个名称为 Command1 的命令按钮,其单击事件过程及有关函数过程如下: Private Sub Command1_Click() Dim n As Integer n=add(5,10) Print n End Sub Function add(v1 As Integer , v2 As Integer , Optional v3) As Integer If Not IsMissing(V3) Then add=v1+v2+v3 Else add=v1+v2
10、 End If End Function 运行程序,单击命令按钮,以下叙述中正确的是 (分数:2.00)A.程序不能正常运行,因为函数 add 的参数定义有错B.程序不能正常运行,因为函数定义与函数调用语句的参数个数不匹配C.程序能正常运行,结果是在窗体上显示 15D.程序能正常运行,结果是在窗体上显示 510V327.目录列表框 Path 属性所表示的含义是 (分数:2.00)A.当前驱动器或指定驱动器上的路径B.当前驱动器或指定驱动器上的某目录下的文件列表C.根目录下的文件列表D.指定路径下的文件列表28.以下关于函数过程中叙述中错误的是 (分数:2.00)A.函数过程一定有返回值B.函数
11、过程一定有参数C.函数过程可以在窗体模块和标准模块中定义D.函数过程参数的类型与返回值的类型无关29.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下程序: Public Eunm s a=4 b=3 End Enum Private Sub Command1_Click( ) Dim x As Integer x=a If x=3 Then MsgBox “Pass!” End Sub 运行程序,其结果是 (分数:2.00)A.运行错误,因为 Enum 定义有错B.运行错误,因为 x=a 类型不匹配C.运行正常结束,不显示任何信息D.运行正常,显示内容为“Pass!”的信息框
12、30.设有如下程序 Option Base 1 Private Sub Form_Click( ) Dim a(5) As String , i As Integer For i=1 To 5 a(i)=Chr(Asc(“A”)+i) Call f(a,i) Next i End Sub Sub f(ta() As String , n As Integer) Dim i As Integer For i=1 To Print ta(i); Next i End Sub 对上述程序,以下叙述中正确的是 (分数:2.00)A.程序有错,因为在过程 f 的定义中数组参数格式不正确B.程序可正常运行
13、,输出内容的第一行是一个字母“A”C.程序可正常运行,输出内容的第一行是一个字母“B”D.程序可正常运行,输出内容的第一行是数字 6531.窗体上有一个名称为 Picture1 的图片控件,一个名称为 Timer 的计时器控件,其 Interval 属性值为1000。要求每隔 5 秒钟图片框右移 100。现编写程序如下: Private Sub Timer1_Timer( ) Static n As Integer n=n+1 If (n/5)=Int(n/5) And Picture1.LeftA.程序中没有设置 5 秒钟的时间,所以不能每隔 5 秒移动图片框一次B.此程序运行时图片框位置保
14、持不动C.此程序运行时图片框移动方向与题目要求相反D.If 语句条件中“Picture1.Leftm Then m=a(i) End If Next If 【 13 】Then Print “没有满足条件的数” Else Print “满足条件的数是”;m End If End Sub (分数:6.00)_在窗体上画一个名称为 Timer1 的计时器控件,其 Enabled 属性值为 False,Interval 属性值设为 100。要求程序运行后,当鼠标在窗体上移动时,沿鼠标经过的轨迹画出一系列半径为 100 的小圆。其效果如图所示。以下是实现上述功能的程序,请填空。 (分数:4.00)_全
15、国计算机等级考试二级 VISUAL+BASIC 真题 2012 年 9 月答案解析(总分:100.00,做题时间:90 分钟)一、选择题(每小题 2 分,共 70 分)(总题数:35,分数:70.00)1.下列链表中,其逻辑结构属于非线性结构的是 (分数:2.00)A.二叉链表 B.循环链表C.双向链表D.带链的栈解析: 解析 循环链表、双向链表、带链的栈都是线性结构,二叉链表是非线性结构二叉树的链式存储结构,只有它是非线性结构。2.设循环队列的存储空间为 Q(1:35),初始状态为 front=rear=35。现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素
16、个数为 (分数:2.00)A.15B.16C.20D.0 或 35 解析: 解析 在循环队列中,用队尾指针 rear 指向队列中的队尾元素,用队头指针 front 指向队头元素的前一个位置。因此,从队头指针 front 指向的后一个位置到队尾指针 rear 指向的位置之间所有的元素均为队列中的元素。循环队列的初始状态为空,即 rear=front=m,每进行一次人队运算,队尾指针就进一。每进行一次出运运算,队头指针就进一。此题中 rear=front=15,可能出现的情况是入队的元素全部出队,此时队列中元素个数为 0;也可能是执行人队出队的次数不一样,最终状态是队列为满的状态,此时队列中元素个
17、数为 35。3.下列关于栈的叙述中,正确的是 (分数:2.00)A.栈底元素一定是最后入栈的元素B.栈顶元素一定是最先入栈的元素C.栈操作遵循先进后出的原则 D.以上三种说法都不对解析: 解析 栈(Stack)是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的这一端称为栈顶,而不允许插入与删除的另一端称为栈底。栈是按照“先进后出”或“后进先出”的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表4.在关系数据库中,用来表示实体间联系的是 (分数:2.00)A.属性B.二维表 C.网状结构D.树状结构解析: 解析 在关系数据库中,实体与实体间的联系可以用关系(二维表)的形式
18、来表示。5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是 (分数:2.00)A.1:1 联系B.m:1 联系C.1:m 联系 D.m:n 联系解析: 解析 两个实体间的联系可分为 3 种类型:一对一联系,一对一的联系表现为主表中的一条记录与相关表中的一条记录相关联;一对多联系,一对多的联系表现为主表中的一条记录与相关表中的多条记录相关联;多对多联系,多对多的联系表现为主表中的多条记录与相关表中的多条记录相关联。在本题中一个部门可以有多位职员,每位职员只能属于一个部门。6.有两个关系 R 和 S 如下: (分数:2.00)A.选择 B.
19、投影C.自然连接D.并解析: 解析 选择运算又称为限制。它是指从一个关系(表)中找出满足一定条件的所有元组(记录),即在二维表中选取若干行。选择运算是根据某些条件对关系做水平分割,即选取符合条件的元组。从题目中所给关系可以看出由关系 R 得出关系 S 的操作是选择7.数据字典(DD)所定义的对象都包含于 (分数:2.00)A.数据流图(DFD 图) B.程序流程图C.软件结构图D.方框图解析: 解析 数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流图中的各个元素做出详细的说明。8.软件需求规格说明书的作用不包括 (分数:2.00)A.
20、软件验收的依据B.用户与开发人员对软件要做什么的共同理解C.软件设计的依据D.软件可行性研究的依据 解析: 解析 软件需求规格说明书(Software Requirement Specification, SRS)是需求分析阶段的最终成果,是软件开发中的重要文档之一。软件需求规格说明书的作用包括:便于用户、开发人员进行理解和交流。反映出用户问题的结构,可以作为软件开发工作的基础和依据。作为确认测试和验收的依据。9.下面属于墨盒测试的方法是 (分数:2.00)A.语句覆盖B.逻辑覆盖C.边界值分析 D.路径覆盖解析: 解析 黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试
21、中,把程序看做一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试方法主要有等价类划分法、边界值分析法、错误推测法、因果法等,主要用于软件确认测试。10.下面不属于软件设计阶段任务的是 (分数:2.00)A.软件总体设计B.算法设计C.制定软件确认测试计划 D.数据库设计解析: 解析 软件设计包括总体设计和详细设计,总体设计又包括最佳方案的设计、软件结构设计、数据结构及数据库设计;详细设计是总体设计的进一步的具体化,其基本任务有:为每个模块进行详细的
22、算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,即确定数据库的物理结构;界面设计;编写文档;评审。对详细设计成果进行审查和复审。11.以下叙述中错误的是 (分数:2.00)Avbp 文件是工程文件,一个工程可以包含.bas 文件Bfrm 文件是窗体文件,一个窗体可以包含.bas 文件 Cvbp 文件是工程文件,一个工程可以由多个.frm 文件组成Dvbg 文件是工程组文件,一个工程组可以由多个工程组成解析: 解析 .bas 文件是一个标准模块文件,与窗体文件同一级别,没有隶属关系。它们都是一个工程文件的子文件。12.以下叙述中错误的是 (分数:2.00)A.在 Visual Bas
23、ic 的窗体中,一个命令按钮是一个对象B.事件是能够被对象识别的状态变化或动作C.事件都是由用户的键盘操作或鼠标操作触发的 D.不同的对象可以具有相同的方法解析: 解析 对象指可控制的某个东西,在 VB 中主要有两类对象:窗体和控件,故 A 的说法正确;事件是发生在对象上的动作或状态变化,事件触发可以通过用户操作键盘或鼠标,也可以是状态变化时,自动触发,如 Load 和 Init 事件,故 B 的说法正确,以的说法错误;方法指的是控制对象动作行为的方式,它允许不同的对象拥有相同的方法,故 D 的说法正确。13.设 x=3.3,y=4.5,表达式 x-Int(x)+Fix(y)的值是 (分数:2
24、.00)A.3.5B.4.8C.4.3 D.4.7解析: 解析 当参数大于 0 时,Int 函数和 Fix 函数都是进行取整,也就是直接舍去小数部分,因此该表达式代入数据后是:3.3-3+4=4.3。14.窗体上有一个名称为 Command1 的命令按钮,其中部分代码如下: Private Sub Command1_Click( ) Dim a(10) As Integer Dim n As Integer Call calc(a,n) End Sub calc 过程的的首行应该是 (分数:2.00)A.Sub calc(x() As Integer,n As Integer) B.Publi
25、c Sub calc(x() As Integer)C.Private Sub calc(a(n) As Integer,n As Integer)D.Public Sub calc(a As Integer, n As Integer)解析: 解析 因为 a 是一个整型数组的数组名,用它做参数时,形式参数也必须是数组类型的变量,但是形参并不需要说明元素个数15.设有如下程序 Sub f(x As Integer,ByVal y As Integer) x=2*x y=y+x End Sub Private Sub Command1_Click() Dim a As Integer , b A
26、s Integer a=6 ; b=35 call f(a,b) print a,b End Sub 程序运行后,单击命令按钮 Command1,输出结果为 (分数:2.00)A.6 47B.12 47C.6 35D.12 35 解析: 解析 VB 中过程的参数传递,默认是按址传递(ByRef),按址传递参数使过程用变量的内存地址去访问实际变量的内容。结果,将变量传递给过程时,通过过程可永远改变变量值;按值传递(ByVal)参数时,传递的只是变量的副本。如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。本题中,a 是按址传递,所以最后结果是 12,B 是按值传递,最后结果是 351
27、6.以下叙述中正确的是 (分数:2.00)A.窗体及窗体上所有控件的事件过程代码都保存在窗体文件中 B.在工程中只有启动窗体可以建立菜单C.窗体名称必须与窗体文件的名称相同D.程序一定是从某个窗体开始执行的解析: 解析 任何一个窗体都可以建立菜单,而不是只有启动窗体。窗体的名称也与窗体的标题没有必然的联系。程序除了可以从窗体开始执行还可以从 Sub Main 过程启动17.窗体上有一个名称为 Command1 的命令按钮,其单击事件过程代码如下: Private Sub Command1_Click() Static x As Variant n=0 x=array(1,2,3,4,5,6,7
28、,8,9,10) While n0 x=x-3 x=iif(int(x/5)=x/5,x+2,x) loop print x End Sub 程序运行后,单击命令按钮Command1,输出结果为 (分数:2.00)A.0B.-1 C.-2D.-3解析: 解析 VB 中,IIF 函数语法:IIf( expr, truepart, falsepart),如果 expr 为 True,则返回truepart 表达式的值,如果 expr 为 False,则返回 falsepan 表达式的值。 IIf(Int(x/5)=x/5,x+2,x)表示 x 能被 5 整除,则 x+2,否则 x 值不变。本题采用
29、模拟运行的判断方法: 循环次数 x 值 循环前 15 第 1 次循环 12 第 2 次循环 9 第 3 次循环 6 第 4 次循环 3 第 5 次循环 2 第 6 次循环 -1 24.以下关于通用对话框中叙述中,错误的是 (分数:2.00)A.若没有指定 InitDir 属性值,则起始目录为当前目录 B.用一个通用对话框控件可以建立几种不同的对话框C.FileTitle 属性指明了文件对话框中所选择的文件名D.文件对话框用属性 FilterIndex 指定默认过滤器,它是一个从 0 开始的整数解析: 解析 若没有指定 InitDir 属性值,则起始目录为上一次打开的目录位置25.窗体上有一个名
30、为 Command1 的命令按钮,并有如下程序: Private Command1_Click() Dim m As Integer , n As Integer m=InputBox(“输入第一个数”) n=InputBox(“输入第二个数”) Do While mn m=m-n Loop Do While nm n=n-m Loop Loop Print m End Sub 该程序的功能是 (分数:2.00)A.求数值 m 和 n 的最大公约数 B.求数值 m 和 n 的最小公倍数C.求数值 m 和 n 中的较大数D.求数值 m 和 n 中的较小数解析: 解析 本程序是典型的求最大公约数的
31、程序,例如: m=25, n=20, mn, m=m-n=25-20=5; mn, n=n-m=20-5=15; mn, n=n-m=15-5=10; mn, n=n-m=10-5=5; m=n=5,循环终止,得到最大公约数 5。26.窗体上有一个名称为 Command1 的命令按钮,其单击事件过程及有关函数过程如下: Private Sub Command1_Click() Dim n As Integer n=add(5,10) Print n End Sub Function add(v1 As Integer , v2 As Integer , Optional v3) As Inte
32、ger If Not IsMissing(V3) Then add=v1+v2+v3 Else add=v1+v2 End If End Function 运行程序,单击命令按钮,以下叙述中正确的是 (分数:2.00)A.程序不能正常运行,因为函数 add 的参数定义有错B.程序不能正常运行,因为函数定义与函数调用语句的参数个数不匹配C.程序能正常运行,结果是在窗体上显示 15 D.程序能正常运行,结果是在窗体上显示 510V3解析: 解析 Optiona 关键字说明该参数为可选参数,可以传值也可以不传,add 函数中加入了判断语句,如果该参数传了值则进行三数相加,否则进行两数相加。主函数中调
33、用仅有两个参数,则两数相加为1527.目录列表框 Path 属性所表示的含义是 (分数:2.00)A.当前驱动器或指定驱动器上的路径 B.当前驱动器或指定驱动器上的某目录下的文件列表C.根目录下的文件列表D.指定路径下的文件列表解析: 解析 目录列表框的属性 Path,用来在运行时设置或返回所选择的路径28.以下关于函数过程中叙述中错误的是 (分数:2.00)A.函数过程一定有返回值B.函数过程一定有参数 C.函数过程可以在窗体模块和标准模块中定义D.函数过程参数的类型与返回值的类型无关解析: 解析 函数过程可以是有参函数过程也可以是无参函数过程。29.在窗体上画一个名称为 Command1
34、的命令按钮,然后编写如下程序: Public Eunm s a=4 b=3 End Enum Private Sub Command1_Click( ) Dim x As Integer x=a If x=3 Then MsgBox “Pass!” End Sub 运行程序,其结果是 (分数:2.00)A.运行错误,因为 Enum 定义有错B.运行错误,因为 x=a 类型不匹配C.运行正常结束,不显示任何信息D.运行正常,显示内容为“Pass!”的信息框 解析: 解析 Enu 是枚举变量,就是指用 Enum 类型定义的变量。变量和参数都可以定义为 Enum 类型。Enum 类型中的元素被初始化
35、为 Enum 语句中指定的常数值。所赋给的值可以包括正数和负数,且在运行时不能改变,本题中 a 的值是 4,所以会弹出“Pass!”信息框。30.设有如下程序 Option Base 1 Private Sub Form_Click( ) Dim a(5) As String , i As Integer For i=1 To 5 a(i)=Chr(Asc(“A”)+i) Call f(a,i) Next i End Sub Sub f(ta() As String , n As Integer) Dim i As Integer For i=1 To Print ta(i); Next i
36、End Sub 对上述程序,以下叙述中正确的是 (分数:2.00)A.程序有错,因为在过程 f 的定义中数组参数格式不正确B.程序可正常运行,输出内容的第一行是一个字母“A”C.程序可正常运行,输出内容的第一行是一个字母“B” D.程序可正常运行,输出内容的第一行是数字 65解析: 解析 Asc(“A“)的功能是取“A“的 ASCII 码值 65,加 1 后变为 66,再由 Chr 函数将 66 转换成对应的字符“B“存放在 a(1)中,因此第一行输出的就是字母“B“31.窗体上有一个名称为 Picture1 的图片控件,一个名称为 Timer 的计时器控件,其 Interval 属性值为10
37、00。要求每隔 5 秒钟图片框右移 100。现编写程序如下: Private Sub Timer1_Timer( ) Static n As Integer n=n+1 If (n/5)=Int(n/5) And Picture1.LeftA.程序中没有设置 5 秒钟的时间,所以不能每隔 5 秒移动图片框一次B.此程序运行时图片框位置保持不动C.此程序运行时图片框移动方向与题目要求相反D.If 语句条件中“Picture1.Leftm Then m=a(i) End If Next If 【 13 】Then Print “没有满足条件的数” Else Print “满足条件的数是”;m En
38、d If End Sub (分数:6.00)_正确答案:(181)解析: 解析 因为要得到 20200(含 20 和 200)的整数,Rnd 函数只能生成0,1)的数据,乘以 181 后得到0,181)的数据,取整后加上 20 即得到了20,201)的整数,也就是20,200。_正确答案:(And)解析: 解析 因为是能同时被 3 和 5 整除,因此中间的连接词应该使用 And。_正确答案:(m=0)解析: 解析 如果 m 没有被赋值过,也就是 m=0 时说明没有满足条件的数据。在窗体上画一个名称为 Timer1 的计时器控件,其 Enabled 属性值为 False,Interval 属性值设为 100。要求程序运行后,当鼠标在窗体上移动时,沿鼠标经过的轨迹画出一系列半径为 100 的小圆。其效果如图所示。以下是实现上述功能的程序,请填空。 (分数:4.00)_正确答案:(MouseMove)解析: 解析 因为是当鼠标在窗口上移动时在窗口上画圆,因此应该使用 MouseMove 事件。_正确答案:(true)解析: 解析 画圆是由时间控件完成的,所以当鼠标移过时应该让时钟控件启动。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1