1、2011 年 9 月全国计算机等级考试二级笔试试卷Visual Basic 语言程序设计(考试时间 90 分钟,满分 100 分)一、选择题(每小题 2 分,共 70 分)下列各题 A)、 B)、C) 、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。1)下列叙述中正确的是A)算法就是程序 B) 设计算法时只需要考虑数据结构的设计C)设计算法时只需要考虑结果的可能性 D)以上三种说法都不对答案 D2)下列关于线性链表的叙述只能够,正确的是A)各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B) 各数据结点的存储顺序与逻辑顺序可以不一
2、致,但它们的存储空间必须连续C)进行插入与删除时,不需要移动表中的元素D)以上三种说法都不对答案:C3)下列关于二叉树的叙述中,正确的是A)叶子结点总是比度为 2 的结点少一个B)叶子结点总是比度为 2 的结点多一个C)叶子结点数是度为 2 的结点数的两倍D)度为 2 的结点数是度为 1 的结点数的两倍答案:B4)软件按功能可以分为应用软件,系统软件和支撑软件( 或工具软件 )下面属于应用软件的是A)学生成绩管理系统 B)C 语言编译程序 C) UNIX 操作系统 D)数据库管理系统答案:A5)某系统总体结构图如下图所示:该系统总体结构图的深度是A)7 B) 6 C) 3 D) 2答案 C6)
3、程序调试的任务是A)设计测试用例 B) 验证程序的正确性C)发现程序中的错误 D)诊断和改正程序中的错误答案:C7)下列关于数据库设计的叙述中,正确的是A)在需求分析阶段建立数据字典 B)在概念设计阶段建立数据字典C)在逻辑设计阶段建立数据字典 D)在物理设计阶段建立数据字典答案:A8)数据库系统的三级模式不包括A)概念模式 B)内模式 C) 外模式 D) 数据模式答案:D9)有三个关系 R、S 和 T 如下则由关系 R 和 S 得到关系 T 的操作是A)自然连接 B) 差 C) 交 D) 并答案:B10)下列选项中属于面向对象设计方法主要特征的是A)继承 B) 自顶向下 C) 模块化 D)
4、逐步求精答案:A11)以下描述中错误的是A)窗体的标题通过其 Caption 属性设置 B)窗体的名称(Name 属性)可以在运行期间修改C)窗体的背景图形通过其 Picture 属性设置D)窗体最小化时的图标通过其 Icon 属性设置答案:B12)在设计阶段,当按 Ctrl+R,所打开的窗口是A)代码窗口 B)工具箱窗口 C)工程资源管理器 D)属性窗口答案:C13)设有如下变量声明语句:Dim a,b as Boolean则下面叙述中正确的是A)a 和 b 都是布尔型变量 B)a 是变体型变量,b 是布尔型变量C)a 是整型变量,b 是布尔型变量 D)a 和 b 都是变体型变量答案:B14
5、)下列可作为 Visual Basic 变量名的是A) A#A B) 4ABC C) ?xy D) Print_Text答案:D15)假定一个滚动条的 LargeChange 属性值为 100,则 100 表示A)单击滚动条箭头和滚动框之间某位置时滚动框位置的变化量B)滚动框位置的最大值C)拖动滚动框时滚动框位置的变化量D)单击滚动条箭头时滚动框位置的变化量答案:A16)在窗体上画一个命令按钮,然后编写如下事件过程:Private Sub Command1_Click()MsgBox str(123+321)End Sub程序运行后,单击命令按钮,则在信息框中显示的提示信息为A)字符串 “12
6、3+321” B)字符串“444” C)数值 “444”D)空白答案:B17)假定有以下程序:Private Sub Form_Click()a=1:b=aDo Until a=5x=a*bPrint b;xa=a+bb=b+aLoopA) 1 1 B) 1 1 C) 1 1 D) 1 12 3 2 4 3 8 3 6答案:D18)在窗体上画一个名称为 List1 的列表框,列表框中显示若干城市的名称。当单击列表框中的某个城市名时,该城市消失。下列在 List1_Click 事件过程中能正确实现上述功能的语句是A) List1.RemoveItem List1.Text B)List1.Rem
7、oveItem List1.ClearC) List1.RemoveItem List1.ListCount D) List1.RemoveItem List1.ListIndex答案:D19)列表框中的项目保存在一个数组中,这个数组的名字是A) Colmn B) Style C) List D) MultiSelect答案:C20)有人编写了如下程序:Private Sub Form_Click()Dim s As Integer, x As Integers=0:x=0Do While s=10000x=x+1s=s+x2LoopPrint sEnd Sub上述程序的功能是:计算 s=1+
8、22+32+n2+直到 s10000 为止。程序运行后,发现得不到正确的结果,必须进行修改。下列修改中正确的是A)把 x=0 改为 x=1B)把 Do While s=10000 改为 Do While s=10000D)交换 x=x+1 和 s=s+x2 的位置答案:B21)设有如下程序:Private sub Form_Click()Dim s as long ,f as longDim n as integer,i as integerf=1: n=4For i=1 to nf=f*is=s+f Next iPrint sEnd sub程序运行后,单击窗体,输出结果是A) 32 B)33
9、 C)34 D)35答案:B22)阅读下面的程序段a=0For i=1 to 3For j=1 to iFor k=j to 3a=a+1Next kNext jNext i执行上面的程序段后,a 的值为A) 3 B) 9 C) 14 D)21答案:C23)设有如下程序:Private Sub Form_Click()Clsa$=“123456“For i=1 to 6Print tab(12-i);_Next iEnd sub程序运行后,单击窗体,要求结果如图所示,则在_处应填入的内容为A) Left(a$,i) B) Mid(a$,8-i,i)C) Right(a$,i) D) Mid(a
10、$,7,i)答案:A24)设有如下程序:Private Sub Form_Click()Dim i as integer,x as stringDim y as stringx=“ABCDEFG“For i=4 to 1 step -1y=Mid(x,i,i)+yNext i Print yEnd sub程序运行后,单击窗体,输出结果为A) ABCCDEDEFGB) AABBCDEFGC) ABCDEFGD) AABBCCDDEEFFGG答案:A25)设有如下程序:Private Sub Form_Click()Dim ary(1 to 5) as integerDim i as intege
11、rDim sum as integerFor i=1 to 5ary(i)=i+1sum=sum+ary(i) next iprint sumEnd sub程序运行后,单击窗体,则在窗体上显示的是A)15 B)16 C) 20 D)25答案:C26)有一个数列,它的前 3 个数为 0,1,1,此后的每个数都是其前面 3 个数之和,即0,1,1,2,4,7,13,24要求编写程序输出该数列中所有不超过 1000 的数某人编写程序如下:Private Sub Form_Click()Dim i as integer,a as integer,b as integerDim c as integer
12、,d as integera=0:b=1:c=1d=a+b+ci=5while d1000B)把 i=5 改为 i=4C)把 i=i+1 移到 while d=1000 的下面D)在 i=5 的上面增加一个语句:print a;b;c;答案:D27) 下面的语句用 Array 函数的数字变量 a 的各元素赋整数值:a=array(1,2,3,4,5,6,7,8,9)针对 a 的声明语句应该是A) Dim a B)Dim a as integerC) Dim a(9) as integerD) Dim a() as integer答案:A28)下列描述中正确的是A)Visual Basic 只能
13、通过过程调用执行通用过程B)可以在 Sub 过程的代码中包含另一个 Sub 过程的代码C)可以像通用过程一样指定事件过程的名字D)Sub 过程和 Function 过程都有返回值答案:D29)阅读程序:Function fac(byval n as integer) as integerDim temp as integertemp=1For i=1 to ntemp=temp*iNext iFac=tempEnd FunctionPrivate sub Form_Click()Dim nsum as integernsum=1for i%=2 to 4nsum=nsum+fac(i%) ne
14、xt iprint nsumEnd sub程序运行后,单击窗体,输出结果是A)35 B)31 C)33 D)37答案:C30)在窗体上画一个命令按钮和一个标签,其名称分别为 Command1 和 Label1,然后编写如下代码:Sub S(x as integer,y as integer)Static z as integery=x*x+zz=yEnd SubPrivate Sub Command1_Click()Dim i as integer,z as integerm=0:z=0For i=1 to 3S i,zm=m+z Next iLabel1.caption=str(m)End
15、sub程序运行后,单击命令按钮,在标签中显示的内容是A)50 B)20 C) 14 D) 7答案:B31)以下说法中正确的是A)MouseUp 事件是鼠标向上移动时触发的事件B) MouseUp 事件过程中的 x,y 参数用于修改鼠标的位置C)在 MouseUp 事件过程中可以判断用户是否使用了组合键D)在 MouseUp 事件过程中不能判断鼠标的位置答案:C32)假定已经在菜单编辑器中建立了窗体的弹出式菜单,其顶级菜单项的名称为 a1,其“可见”属性为 False,程序运行后,单击鼠标左键或右键都能弹出菜单的事件过程是A)Private Sub Form_MouseDown(Button a
16、s Integer,Shift as integer,X as Single ,Y as Single)If Button=1 And Button=2 ThenPopupMenu a1End ifEnd SubB)Private Sub Form_MouseDown(Button as Integer,Shift as integer,X as Single ,Y as Single)PopupMenu a1End SubC)Private Sub Form_MouseDown(Button as Integer,Shift as integer,X as Single ,Y as Sing
17、le)If Button=1 ThenPopupMenu a1End ifEnd SubD)Private Sub Form_MouseDown(Button as Integer,Shift as integer,X as Single ,Y as Single)If Button=2 ThenPopupMenu a1End ifEnd Sub答案:B33)在窗体上画一个名称为 CD1 的通用对话框,并有如下程序:Private Sub Form_Load()CD1.DefaultExt= “doc“CD1.FileName= “c:file1.txt“CD1.Filter= “应用程序(*
18、.exe)|*.exe“End Sub程序运行时,如果显示了“打开”对话框,在“文件类型”下拉列表中的默认文件类型是A)应用程序 (*.exe) B)*.doc C) *.txt D)不确定答案:A34)以下描述中错误的是A)在多窗体应用程序中,可以有多个当前窗体B)多窗体应用程序的启动窗体可以在设计时设定C)多窗体应用程序中每个窗体作为一个磁盘文件保存D)多窗体应用程序可以编译生成一个 EXE 文件答案:A35)以下关于顺序文件的叙述中,正确的是A)可以用不同的文件号以不同的读写方式同时打开同一个文件B)文件中各记录的写入顺序与读出顺序是一致的C)可以用 Input# 或 Line Inpu
19、t#语句向文件写记录D)如果用 Append 方式打开的文件,则既可以在文件末尾添加记录,也可以读取原有记录答案: D二、填空(每空 2 分,共 30 分 )请将每空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。1) 数据结构分为线性结构与非线性结构,带链的栈属于_【1】_。2) 在长度为 n 的顺序存储的线性表中插入一个元素,最坏情况下需要移动表中【2】 个元素。3) 常见的软件开发方法有结构化方法和面向对象方法。对某应用系统经过需求分析建立数据流图(DFD),则应采用 【3】 方法。4) 数据库系统的核心是 【4】 。5) 在进行关系数据库的逻辑设计时,E-R 图中的
20、属性常被转换为关系中的属性,联系通常被转换为 【5】 。6) 为了使标签属性能自动调整大小以显示标题(Caption 属性)的全部文本内容,应把该标签的 【6】属性设置为 True。 答案:Autoszie7) 在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程:Private Sub Commad1_Click()x=1Result=1While x=10Result= 【7】 答案: result*xx=x+1Wend Print ResultEnd Sub上述事件过程用来计算 10 的阶乘,请填空。8) 在窗体上画一个命令按钮,其名称为 Command1,然后编写如
21、下事件过程:Private Sub Commad1_Click()t=0:m=1:Sum=0Dot=t+ 【8】 答案:mSum=Sum+【9】答案:tm=m+2Loop While【10】答案:m=99Print SumEnd Sub该程序的功能是,单击命令按钮,则计算冰输出以下表达式的值:1+(1+3)+ ( 1+3+5)+(1+3+5+99)请填空。9)在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程:Private Sub Commad1_Click()Dim M(10) as IntegerFor k=1 to 10M(k)=12-kNext kx=6Prin
22、t M(2+M(x)End Sub程序运行后,单击命令按钮,输出结果是【11】答案:410) 在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程:Private Sub Commad1_Click()Dim n as Integern=Val(InputBox(“请输入一个整数:“)If n Mod 3=0 And n Mod 2=0 And n Mod 5=0 thenprint n+10End IfEnd Sub程序运行后,单击命令按钮,在输入对话框中输入 60,则输出结果是【12】答案:7011) 在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件
23、过程:Private Sub Commad1_Click()Dim ct As StringDim nt As IntegerOpen “e:stud.txt“ 【13】 答案:for output as #1Do While Truect=InputBox(“请输入姓名:“)If ct=【14】 Then Exit Do 答案:“end ”nt=Val(InputBox(“请输入总分:“)Write#1, 【15】 答案:ct,ntLoopClose #1以上程序的功能是:程序运行后,单击命令按钮,则向 e 盘根目录下的文件 stud.txt 中添加记录(保留已有记录),添加的记录由键盘输入:如果输入 “end”,则结束输入。每条记录包含姓名(字符串型)和总分( 整型) 两个数据。请填空