全国计算机等级考试二级VISUAL+BASIC真题.docx
《全国计算机等级考试二级VISUAL+BASIC真题.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级VISUAL+BASIC真题.docx(20页珍藏版)》请在冰点文库上搜索。
全国计算机等级考试二级VISUAL+BASIC真题
全国计算机等级考试二级VISUALBASIC真题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.15
B.16
C.20
D.0或35 √
解析:
[解析]在循环队列中,用队尾指针rear指向队列中的队尾元素,用队头指针front指向队头元素的前一个位置。
因此,从队头指针front指向的后一个位置到队尾指针rear指向的位置之间所有的元素均为队列中的元素。
循环队列的初始状态为空,即rear=front=m,每进行一次人队运算,队尾指针就进一。
每进行一次出运运算,队头指针就进一。
此题中rear=front=15,可能出现的情况是入队的元素全部出队,此时队列中元素个数为0;也可能是执行人队出队的次数不一样,最终状态是队列为满的状态,此时队列中元素个数为35。
3.下列关于栈的叙述中,正确的是
(分数:
2.00)
A.栈底元素一定是最后入栈的元素
B.栈顶元素一定是最先入栈的元素
C.栈操作遵循先进后出的原则 √
D.以上三种说法都不对
解析:
[解析]栈(Stack)是限定在一端进行插入与删除的线性表。
在栈中,允许插入与删除的这一端称为栈顶,而不允许插入与删除的另一端称为栈底。
栈是按照“先进后出”或“后进先出”的原则组织数据的,因此,栈也被称为“先进后出”表或“后进先出”表
4.在关系数据库中,用来表示实体间联系的是
(分数:
2.00)
A.属性
B.二维表 √
C.网状结构
D.树状结构
解析:
[解析]在关系数据库中,实体与实体间的联系可以用关系(二维表)的形式来表示。
5.公司中有多个部门和多名职员,每个职员只能属于一个部门,一个部门可以有多名职员,则实体部门和职员间的联系是
(分数:
2.00)
A.1:
1联系
B.m:
1联系
C.1:
m联系 √
D.m:
n联系
解析:
[解析]两个实体间的联系可分为3种类型:
①一对一联系,一对一的联系表现为主表中的一条记录与相关表中的一条记录相关联;②一对多联系,一对多的联系表现为主表中的一条记录与相关表中的多条记录相关联;③多对多联系,多对多的联系表现为主表中的多条记录与相关表中的多条记录相关联。
在本题中一个部门可以有多位职员,每位职员只能属于一个部门。
6.有两个关系R和S如下:
则由关系R得到关系S的操作是
(分数:
2.00)
A.选择 √
B.投影
C.自然连接
D.并
解析:
[解析]选择运算又称为限制。
它是指从一个关系(表)中找出满足一定条件的所有元组(记录),即在二维表中选取若干行。
选择运算是根据某些条件对关系做水平分割,即选取符合条件的元组。
从题目中所给关系可以看出由关系R得出关系S的操作是选择
7.数据字典(DD)所定义的对象都包含于
(分数:
2.00)
A.数据流图(DFD图) √
B.程序流程图
C.软件结构图
D.方框图
解析:
[解析]数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流图中的各个元素做出详细的说明。
8.软件需求规格说明书的作用不包括
(分数:
2.00)
A.软件验收的依据
B.用户与开发人员对软件要做什么的共同理解
C.软件设计的依据
D.软件可行性研究的依据 √
解析:
[解析]软件需求规格说明书(SoftwareRequirementSpecification,SRS)是需求分析阶段的最终成果,是软件开发中的重要文档之一。
软件需求规格说明书的作用包括:
①便于用户、开发人员进行理解和交流。
②反映出用户问题的结构,可以作为软件开发工作的基础和依据。
③作为确认测试和验收的依据。
9.下面属于墨盒测试的方法是
(分数:
2.00)
A.语句覆盖
B.逻辑覆盖
C.边界值分析 √
D.路径覆盖
解析:
[解析]黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。
在测试中,把程序看做一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。
黑盒测试方法主要有等价类划分法、边界值分析法、错误推测法、因果法等,主要用于软件确认测试。
10.下面不属于软件设计阶段任务的是
(分数:
2.00)
A.软件总体设计
B.算法设计
C.制定软件确认测试计划 √
D.数据库设计
解析:
[解析]软件设计包括总体设计和详细设计,总体设计又包括最佳方案的设计、软件结构设计、数据结构及数据库设计;详细设计是总体设计的进一步的具体化,其基本任务有:
为每个模块进行详细的算法设计;为模块内的数据结构进行设计;对数据库进行物理设计,即确定数据库的物理结构;界面设计;编写文档;评审。
对详细设计成果进行审查和复审。
11.以下叙述中错误的是
(分数:
2.00)
A..vbp文件是工程文件,一个工程可以包含.bas文件
B..frm文件是窗体文件,一个窗体可以包含.bas文件 √
C..vbp文件是工程文件,一个工程可以由多个.frm文件组成
D..vbg文件是工程组文件,一个工程组可以由多个工程组成
解析:
[解析].bas文件是一个标准模块文件,与窗体文件同一级别,没有隶属关系。
它们都是一个工程文件的子文件。
12.以下叙述中错误的是
(分数:
2.00)
A.在VisualBasic的窗体中,一个命令按钮是一个对象
B.事件是能够被对象识别的状态变化或动作
C.事件都是由用户的键盘操作或鼠标操作触发的 √
D.不同的对象可以具有相同的方法
解析:
[解析]对象指可控制的某个东西,在VB中主要有两类对象:
窗体和控件,故A的说法正确;事件是发生在对象上的动作或状态变化,事件触发可以通过用户操作键盘或鼠标,也可以是状态变化时,自动触发,如Load和Init事件,故B的说法正确,以的说法错误;方法指的是控制对象动作行为的方式,它允许不同的对象拥有相同的方法,故D的说法正确。
13.设x=3.3,y=4.5,表达式x-Int(x)+Fix(y)的值是
(分数:
2.00)
A.3.5
B.4.8
C.4.3 √
D.4.7
解析:
[解析]当参数大于0时,Int函数和Fix函数都是进行取整,也就是直接舍去小数部分,因此该表达式代入数据后是:
3.3-3+4=4.3。
14.窗体上有一个名称为Command1的命令按钮,其中部分代码如下:
PrivateSubCommand1_Click()Dima(10)AsIntegerDimnAsInteger……Callcalc(a,n)……EndSubcalc过程的的首行应该是
(分数:
2.00)
A.Subcalc(x()AsInteger,nAsInteger) √
B.PublicSubcalc(x()AsInteger)
C.PrivateSubcalc(a(n)AsInteger,nAsInteger)
D.PublicSubcalc(aAsInteger,nAsInteger)
解析:
[解析]因为a是一个整型数组的数组名,用它做参数时,形式参数也必须是数组类型的变量,但是形参并不需要说明元素个数
15.设有如下程序Subf(xAsInteger,ByValyAsInteger)x=2*xy=y+xEndSubPrivateSubCommand1_Click()DimaAsInteger,bAsIntegera=6;b=35callf(a,b)printa,bEndSub程序运行后,单击命令按钮Command1,输出结果为
(分数:
2.00)
A.647
B.1247
C.635
D.1235 √
解析:
[解析]VB中过程的参数传递,默认是按址传递(ByRef),按址传递参数使过程用变量的内存地址去访问实际变量的内容。
结果,将变量传递给过程时,通过过程可永远改变变量值;按值传递(ByVal)参数时,传递的只是变量的副本。
如果过程改变了这个值,则所作变动只影响副本而不会影响变量本身。
本题中,a是按址传递,所以最后结果是12,B是按值传递,最后结果是35
16.以下叙述中正确的是
(分数:
2.00)
A.窗体及窗体上所有控件的事件过程代码都保存在窗体文件中 √
B.在工程中只有启动窗体可以建立菜单
C.窗体名称必须与窗体文件的名称相同
D.程序一定是从某个窗体开始执行的
解析:
[解析]任何一个窗体都可以建立菜单,而不是只有启动窗体。
窗体的名称也与窗体的标题没有必然的联系。
程序除了可以从窗体开始执行还可以从SubMain过程启动
17.窗体上有一个名称为Command1的命令按钮,其单击事件过程代码如下:
PrivateSubCommand1_Click()StaticxAsVariantn=0x=array(1,2,3,4,5,6,7,8,9,10)Whilen<=4x(n)=x/(n+5)Printx(n);N=n+1WendEndSub运行程序,单击命令按钮Command1,窗体上显示的是
(分数:
2.00)
A.12345
B.678910 √
C.23456
D.62345
解析:
[解析]循环中,n的取值为0、1、2、3、4,执行x(n)=x(n+5)时,分别使x(0)=x(5)=6,x
(1)=x(6)=7,x
(2)=x(7)=8,x(3)=x(8)=9,x(4)=x(9)=10,并输出。
18.窗体上有一个名称为Label1的标签和一个名称为Command1的命令按钮,命令按钮的单击事件过程如下:
PrivateSubCommand1_click()x=InputBox(“输入x:
”,,0)y=InputBox(“输入y:
”,,0)Label1.caption=x+yEndSub运行程序后,单击命令按钮,在输入对话框中分别输入2,3,运行的结果是
(分数:
2.00)
A.程序运行有错误,数据类型不匹配
B.程序运行有错误,InputBox函数的格式不对
C.在Label1中显示5
D.在Label1中显示25 √
解析:
[解析]InputBox函数输入的数据是字符串格式的,当两个字符串用‘+’号连在一起时,即为字符串连接
19.窗体上有一个名称为Shape1的形状控件和由三个命令按钮组成的名称cmdDraw的控件数组。
窗体外观如图所示(从上到下的3个命令按钮下标分别为0、1、2)。
有事件过程如下:
PrivateSubcmdDraw_Click(IndexAsInteger)SelectCaseIndexCase0Shape1.shape=0Case1Shape1.shape=1Case2Shape1.Shape=3EndSelectEndSub当单击“画圆”命令按钮时,会执行cmdDraw_Click事件过程。
以下叙述中正确的是
(分数:
2.00)
A.Case2分支有错,此Case后面表达式的值应该与赋给Shape1.Shape的值一致
B.程序运行有错,控件数级别的下标应该从1开始
C.Index是形状控件的参数
D.程序正常运行,形状控件被显示为圆形 √
解析:
[解析]形状控件的Shape属性有6个值,为0~5,分别表示矩形、正方形、椭圆形、圆形、四角圆化的矩形和四角圆化的正方形六种形状。
当单击画圆命令按钮时,Index属性值为2,Case2满足,为Shape属性赋值为3,正好对应着形状控件的圆形。
20.如果一个正整数从高位到低位上的数字依次递减,则称其为降序数(如:
9632是降序数,而8156则不是降序数)。
现编写如下程序,判断输入的正整数是否为降序数。
PrivateSubCommand1_Click()DimnAsLongDimflagAsBooleann=InputBox(“输入一个正整数”)s=Trim(Str(n))Fori=2ToLen(s)IfMid(s,i-1,1)
(分数:
2.00)
A.ifi=Len(s)+1Thenflag=FalseElseflag=True
B.ifi=Len(s)+1Thenflag=TrueElseflag=False √
C.ifi=Len(s)-1Thenflag=FalseElseflag=True
D.ifi=Len(s)-1Thenflag=TrueElseflag=False
解析:
[解析]本题中如果输入的数据满足降序数,则For循环会一直执行到条件不再满足,而不会中途退出循环,这时i的值应该是Len(s)+1,也就是说,如果i的值是Len(s)+1则该数是降序数,flag的值为True,否则为False。
21.现有以下程序:
PrivateSubCommand1_Click()c1=0c2=0Fori=1To100Ifimod3=0Thenc1=c1+1ElseIfiMod7=0Thenc2=c2+1EndIfNextPrintc1+c2EndSub此程序运行后输出的是在1~100范围内
(分数:
2.00)
A.同时能被3和7带队的整数个数
B.能被3或7整除的整数个数(同时被3和7整除的数只记一次) √
C.能被3整除,而不能被7整除的整数个数
D.能被7整除,而不能被3整除的整数个数
解析:
[解析]循环中i的值从1到100,首先判断是否能被3整除,如果可以就让c1加1,也就是用c1统计能被3整除的个数,当不能被3整除时,判断能不能被7整除,如果可以让c2加1,也就是用c2统计不能被3整除的数中可以被7整除的数的个数
22.设菜单编辑器中各菜单项的属性设置如下表所示:
针对上述属性设置,以下叙述中错误的是
(分数:
2.00)
A.属性设置有错,存在“标题”与“名称”重名现象 √
B.运行程序,序号为“3”的菜单项不显示
C.运行程序,序号为“4”的菜单项不可用
D.运行程序,序号为“5”的菜单项前显示“√”
解析:
[解析]设计菜单时,标题和名称是可以相同的,如果可见属性未选中,则在运行时,该菜单不可见;有效未选中,在运行时,该菜单为灰色,不可选;如果选中了复选,则该菜单在运行时,会在菜单名前显示√。
23.窗体上有一个名称为Command1的命令按钮,并有如下程序:
PrivateSubCommand1_Click()x=15DoWhilex>0x=x-3x=iif(int(x/5)=x/5,x+2,x)loopprintxEndSub程序运行后,单击命令按钮Command1,输出结果为
(分数:
2.00)
A.0
B.-1 √
C.-2
D.-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值不变。
本题采用模拟运行的判断方法:
循环次数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.窗体上有一个名为Command1的命令按钮,并有如下程序:
PrivateCommand1_Click()DimmAsInteger,nAsIntegerm=InputBox(“输入第一个数”)n=InputBox(“输入第二个数”)DoWhilem<>nDoWhilem>nm=m-nLoopDoWhilen>mn=n-mLoopLoopPrintmEndSub该程序的功能是
(分数:
2.00)
A.求数值m和n的最大公约数 √
B.求数值m和n的最小公倍数
C.求数值m和n中的较大数
D.求数值m和n中的较小数
解析:
[解析]本程序是典型的求最大公约数的程序,例如:
m=25,n=20,m>n,m=m-n=25-20=5;m<n,n=n-m=20-5=15;m<n,n=n-m=15-5=10;m<n,n=n-m=10-5=5;m=n=5,循环终止,得到最大公约数5。
26.窗体上有一个名称为Command1的命令按钮,其单击事件过程及有关函数过程如下:
PrivateSubCommand1_Click()DimnAsIntegern=add(5,10)PrintnEndSubFunctionadd(v1AsInteger,v2AsInteger,Optionalv3)AsIntegerIfNotIsMissing(V3)Thenadd=v1+v2+v3Elseadd=v1+v2EndIfEndFunction运行程序,单击命令按钮,以下叙述中正确的是
(分数:
2.00)
A.程序不能正常运行,因为函数add的参数定义有错
B.程序不能正常运行,因为函数定义与函数调用语句的参数个数不匹配
C.程序能正常运行,结果是在窗体上显示15 √
D.程序能正常运行,结果是在窗体上显示510V3
解析:
[解析]Optiona关键字说明该参数为可选参数,可以传值也可以不传,add函数中加入了判断语句,如果该参数传了值则进行三数相加,否则进行两数相加。
主函数中调用仅有两个参数,则两数相加为15
27.目录列表框Path属性所表示的含义是
(分数:
2.00)
A.当前驱动器或指定驱动器上的路径 √
B.当前驱动器或指定驱动器上的某目录下的文件列表
C.根目录下的文件列表
D.指定路径下的文件列表
解析:
[解析]目录列表框的属性Path,用来在运行时设置或返回所选择的路径
28.以下关于函数过程中叙述中错误的是
(分数:
2.00)
A.函数过程一定有返回值
B.函数过程一定有参数 √
C.函数过程可以在窗体模块和标准模块中定义
D.函数过程参数的类型与返回值的类型无关
解析:
[解析]函数过程可以是有参函数过程也可以是无参函数过程。
29.在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:
PublicEunmsa=4b=3EndEnumPrivateSubCommand1_Click()DimxAsIntegerx=aIfx>=3ThenMsgBox“Pass!
”EndSub运行程序,其结果是
(分数:
2.00)
A.运行错误,因为Enum定义有错
B.运行错误,因为x=a类型不匹配
C.运行正常结束,不显示任何信息
D.运行正常,显示内容为“Pass!
”的信息框 √
解析:
[解析]Enu是枚举变量,就是指用Enum类型定义的变量。
变量和参数都可以定义为Enum类型。
Enum类型中的元素被初始化为Enum语句中指定的常数值。
所赋给的值可以包括正数和负数,且在运行时不能改变,本题中a的值是4,所以会弹出“Pass!
”信息框。
30.设有如下程序OptionBase1PrivateSubForm_Click()Dima(5)AsString,iAsIntegerFori=1To5a(i)=Chr(Asc(“A”)+i)Callf(a,i)NextiEndSubSubf(ta()AsString,nAsInteger)DimiAsIntegerFori=1ToPrintta(i);NextiEndSub对上述程序,以下叙述中正确的是
(分数:
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属性值为1000。
要求每隔5秒钟图片框右移100。
现编写程序如下:
PrivateSubTimer1_Timer()StaticnAsIntegern=n+1If(n/5)=Int(n/5)AndPicture1.Left
(分数:
2.00)
A.程序中没有设置5秒钟的时间,所以不能每隔5秒移动图片框一次
B.此程序运行时图片框位置保持不动
C.此程序运行时图片框移动方向与题目要求相反
D.If语句条件中“Picture1.Left解析:
[解析]Interval属性值为1000,即每秒触发时钟控件,又因为n可以整除5才会右移,正好满足了每隔五秒右移。
Left属性的增加可以使控件右移。
Picture1.Left<Form1.Width是判断图片框的左边是否还在窗体的右边框之内,也就是对图片框移动范围的限制。
32.窗体上有一名称为Command1的命令按钮,其事件过程如下:
PrivateSubCommand1_Click()DimiAsInteger,jAsInteger,kAsIntegerDimsAsDoubles=0;i=1;j=0;k=-1DoWhilei
(分