您现在的位置: NCRE100 -> 历年真题 -> 二级真题 -> Visual Basic

2012年3月全国计算机等级考试二级VB笔试试卷及参考答案

来源:NCRE100 作者:NCRE100 发布时间:2014-06-21 17:24:48
2012年 3月全国计算机等级考试二级笔试试卷
Visual Basic语言程序设计
(考试时间90 分钟,满分100分)
 
 一、选择题(每小题2分,共70分) 
下列各题A) 、B) 、C) 、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 
(1)下列叙述中正确的是(     ) 。
A)循环队列是队列的一种链式存储结构 B)循环队列是队列的一种顺序存储结构
C)循环队列是非线性结构 D)循环队列是一种逻辑结构
 
【解析】队列的存储表示有两种:一种是基于数组的存储表示,另一种是基于链表的存储表示。队列的基于数组的存储表示亦称为顺序队列,它是利用一个一维数组作为队列元素的存储结构。为了充分地利用数组的存储空间,把数组的前端和后端连接起来,形成一个环形的表,称为循环队列。因此循环队列是队列的一种顺序存储结构。
队列不管采用链式存储结构还是顺序存储结构,它都是线性结构。循环队列作为队列的特殊情况,它也是线性结构。
循环队列是在队列的基础上,将队列的头和尾接到一起形成一个环状,它给出了数据的逻辑结构在计算机内部的存储形式,因此是一种存储结构。
答案:B
 
(2)下列叙述中正确的是
A)栈是一种先进先出的线性表 B)队列是一种后进先出的线性表
C)栈与队列都是非线性结构 D)以上三种说法都不对
 
【解析】栈是一种后进先出(Last In First Out)或先进后出(First In Last Out)的线性表,它的一端封闭(称为栈底),在另一端进行插入和删除操作,允许插入和删除的一端称为栈顶。
队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾,通常用一个称为尾指针(rear)的指针指向队尾元素,即尾指针总是指向最后被插入的元素;允许删除的一端称为排头(也称为队头),通常也用一个排头指针(front)指向排头元素的前一个位置。显然,在队列这种数据结构中,最先插入的元素将最先能够被删除,最后插入的元素最后才能被删除。因此,队列又称为“先进先出”(First In First Out,FIFO)或“后进后出”(Last In Last Out,LILO)的线性表,它体现了“先来先服务”的原则。
栈与队列都是线性结构。
答案:D
 
(3)一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为
A)16 B)10 C)6 D)4
 
【解析】设二叉树结点数为n,度为2的结点数为n2,度为1的结点数为n1,度为0(即叶子结点)的结点数为n0。则有n=n2+n1+n0。另外,在二叉树中,度为0的结点数是度为2的结点数加1,因此有n0=n2+1。此题中,n=25,n0=5,则n2=n0-1=5-1=4,因此n1=n-n2-n0=25-4-5=16。
答案:A
 
(4)在下列模式中,能够给出数据库物理存储结构与物理存取方法的是
A)外模式 B)内模式 C)概念模式 D)逻辑模式
 
答案:B
 
(5)在满足实体完整性约束的条件下
A)一个关系中应该有一个或多个候选关键字
B)一个关系中只能有一个候选关键字
C)一个关系中必须有多个候选关键字
D)一个关系中可以没有候选关键字
 
答案:A
 
(6)有三个关系R、S和T如下:
则由关系R和S得到关系T的操作是
A)自然连接 B)并 C)交 D)差
 
 
(7)软件生命周期中的活动不包括
A)市场调研 B)需求分析 C)软件测试 D)软件维护
 
【解析】通常,将软件产品从提出、实现、使用、维护到停止使用甚至退役的过程称为软件生命周期。任何一个软件产品或软件系统都要经历软件定义、软件开发、软件维护直至被淘汰这样一个全过程。因此,软件生命周期可分为定义阶段、开发阶段和维护阶段。定义阶段包括可行性研究和需求分析;开发阶段包括概要设计、详细设计、实现和测试;维护阶段包括使用、维护和退役。因此软件生命周期—般包括可行性研究和需求分析、设计、实现、测试、交付使用以及维护等活动。
答案:A
 
(8)下面不属于需求分析阶段任务的是
A)确定软件系统的功能需求 B)确定软件系统的性能需求
C)需求规格说明书评审 D)制定软件集成测试计划
 
【解析】需求分析阶段的任务是确定待开发软件的功能、性能、数据、界面等要求,从而确定系统的逻辑模型。需求分析阶段的主要工作包括:①需求获取:确定对目标系统的各方面需求;② 需求分析:对获取的需求进行分析和综合,最终给出系统的解决方案和目标系统的逻辑模型;③ 编写需求规格说明书:为用户、分析人员和设计人员之间进行交流提供方便。④ 需求评审:对需求分析阶段的工作进行复审,验证需求文档的一致性、可靠性、完善性和有效性。
软件测试属于软件生命周期中的软件开发阶段,不属于需求分析阶段。软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试和系统测试。
    答案:D
 
(9)在黑盒测试方法中,设计测试用例的主要根据是
A)程序内部逻辑 B)程序外部功能
C)程序数据结构 D)程序流程图
 
【解析】黑盒测试也称为功能测试或数据驱动测试。黑盒测试是对软件已试验的功能是否满足需求进行测试和验证,它主要根据需求规格说明所规定的功能来设计测试用例,检查程序的功能是否符合它的功能说明,它不考虑程序的内部结构和处理过程。
答案:B
 
 
(10)在软件设计中不使用的工具是
A)系统结构图 B)PAD图
C)数据流图(DFD图) D)程序流程图
 
【解析】软件设计一般分为两步完成,分别是概要设计和详细设计。系统结构图是概要设计阶段使用的工具,而详细设计(过程设计)常见的工具有:
(1)图形工具:程序流程图、N-S图(盒图)、PAD(Problem Analysis Diagram,问题分析图)
(2)表格工具:判定表。
(3)语言工具:PDL(过程设计语言)。
数据流图( Data Flow Diagram ,DFD)是需求分析阶段结构化分析的常用工具。需求分析阶段其他常用的结构化分析工具还有数据字典(Data Dictionary,DD)、结构化语言、判定表和判定树等。
答案:C
 
(11)以下合法的VB变量名是
A)case B)name10 C)t-name D)x*y
 
答案:B
【解析】变量命名规则:(1)字母、数字、下划线。(2)不能使用保留字。(3)不能以数字开头。本题中,case是保留字,t-name中是中划线,不是下划线。x*y中的*不是字母、也不是数字、也不是下划线。
 
(12)设x是小于10的非负数。对此叙述,以下正确的VB表达式是
A)0≤x<10 B)0<=x<10
C) x≥0 And x<10 D)x>=0 Or x<=10
 
答案:C
【解析】x是小于10的非负数。即x大于等于0并且小于10。A选项和B选项是数学的描述方式,不是VB的描述方式。“x大于等于0并且小于10”中的“并且”要使用And而不是Or(或者)。
 
(13 以下关于窗体的叙述中,错误的是
A)窗体的Name属性用于标识一个窗体
B)运行程序时,改变窗体大小,能够触发窗体的Resize事件
C)窗体的Enabled属性为False时,不能响应单击窗体的事件
D)程序运行期间,可以改变Name属性值
 
答案:D
【解析】Name属性只能在设计阶段通过属性窗口设置,属于只读属性,不能在程序运行时修改其值。
 
(14)下面定义窗体级变量a的语句中错误的是
A)Dim a% B)Private a%
C)Private a As Integer D)Static a%
 
答案:D
【解析】Static只能用在过程(窗体模块的过程或标准模块的过程)内部声明静态变量,不能用在窗体模块或标准模块的通用段。
 
(15)表达式Int(Rnd(0)*50)所产生的随机数范围是
A)(0,50) B)(1,50) C)(0,49) D)(1,49)
 
答案:C
【解析】因为Rnd产生的随机数范围是0~0.999999,Int函数返回不大于其参数值的一个整数,例如Int(8.6)返回8而不是9。Int(-8.6)返回-9而不是-8。
 
(16)设x=5,执行语句Print x = x + 10,窗体上显示的是
A)15 B)5 C)True D)False
 
答案:D
【解析】Print使用方式为:Print 输出列表。在语句Print x = x + 10中,x = x + 10是一个表达式而不是一条语句。作为表达式,x = x + 10的值是“False”,因为在该表达式中,=作为关系运算符使用,而不是作为赋值运算符使用。此处,=左边的x是5,=右边的值是15,=两边的值不同,所以是False。只有当x = x + 10作为语句时,才先计算=后面的值,然后把计算的值作为=左边的变量的值。
 
(17)设有如下数组声明语句:
Dim arr(-2 To 2, 0 To 3) As Integer
该数组所包含的数组元素个数是
A) 20 B) 16 C) 15 D) 12
 
答案:A
【解析】-2 To 2指的是-2、-1、0、1、2(共5),0 To 3指的是0、1、2、3(共4),因此元素个数是5×4=20
 
(18)现有由多个单选按钮构成的控件数组,用于区别该控件数组中各控件的属性是
A)Name B)Index C)Caption D)Value
 
答案:B
 
(19)设有分段函数:
       
以下表示上述分段函数的语句序列中错误的是
A) Select Case x B) If x < 0 Then
    Case Is < 0 y = 5
        y = 5 ElseIf x <= 5 Then
    Case Is <= 5, Is > 0 y = 2 * x
        y = 2 * x Else
    Case Else y = x * x + 1
        y = x * x + 1 End If
End Select
C) y = IIf(x < 0, 5, IIf(x <= 5, 2 * x, x * x + 1)) D) If x < 0 Then y = 5
If x <= 5 And x >= 0 Then y = 2 * x
If x > 5 Then y = x * x + 1
 
答案:A
【解析】在条件Case Is < 0的情况下,Case Is <= 5, Is > 0是错误的。在条件Case Is < 0的情况下,Case Is <= 5, Is > 0只需表示成Case Is <= 5即可。
 
(20)设程序中有如下语句:
    x = InputBox("输入", "数据", 100)
Print x
运行程序,执行上述语句,输入5并单击输入对话框上的“取消”按钮,则窗体上输出
A)0 B)5 C)100 D)空白
 
答案:D
【解析】InputBox函数的功能是在输入对话框中显示提示(此处为“输入”),等待用户输入文本或单击按钮,并返回文本框内容。如果用户单击“确定”或按下 ENTER,则 InputBox 函数返回文本框中的内容。如果用户单击“取消”按钮,则函数返回一个零长度字符串 ("")。本题要注意的是InputBox函数返回的是String类型的数据,由于返回零长度字符串 (""),所以在窗体上输出空白而不是0。
 
 
 
 
(21)现有如下一段程序:
Option Base 1
Private Sub Command1_Click()
    Dim a
    a = Array(3, 5, 7, 9)
    x = 1
    For i = 4 To 1 Step -1
        s = s + a(i) * x
        x = x * 10
    Next
    Print s
End Sub
执行程序,单击Command1命令按钮,执行上述事件过程,输出结果是
A)9753 B)3579 C)35 D)79
 
答案:B
【解析】因为有Option Base 1语句,因此a(1)=3, a(2)=5, a(3)=7, (4)=9。
i x a(i) s = s + a(i) * x
4 1 9 s = 0 + 9 * 1=9
3 10 7 s = 9 + 7 * 10=79
2 100 5 s = 79 + 5 * 100=579
1 1000 3 s = 579 + 3 * 1000=3579
 
(22)设有一个命令按钮Command1的事件过程以及一个函数过程,程序如下:
    Option Base 1
Private Sub Command1_Click()
    Static x As Integer
    x = f(x + 5)
    Cls
    Print x
End Sub
Private Function f(x As Integer) As Integer
    f = x + x
End Function
连续单击命令按钮3次,第3次单击命令按钮后,窗体上显示的计算结果是
A)10 B)30 C)60 D)70
 
答案:D
【解析】Static在过程级别中使用,用于声明变量并分配存储空间。在整个代码运行期间都能保留使用 Static 语句声明的变量的值。本题中,x为Static类型的变量,其初值为0。第一次单击按钮,x=f(5),调用Function过程,执行f=5+5,Function过程返回值为10,所以x=10。第二次单击按钮时,x=f(10+5),调用Function过程,执行f=15+15,Function过程返回值为30,所以x=30。第三次单击按钮时,x=f(30+5),调用Function过程,执行f=35+35,Function过程返回值为70,所以x=70。窗体上显示70。
 
(23)以下关于菜单设计的叙述中错误的是
A)各菜单项可以构成控件数组
B)每个菜单项可以看成是一个控件
C)设计菜单时,菜单项的“有效”未选,即 ,表示该菜单项不显示
D)菜单项只响应单击事件
 
答案:C
【解析】表示该菜单项不显示,应该是 ,而不是 。
 
(24)以下关于多窗体的叙述中,正确的是
A)任何时刻,只有一个当前窗体
B)向一个工程添加多个窗体,存盘后生成一个窗体文件
C)打开一个窗体时,其他窗体自动关闭
D)只有第一个建立的窗体才是启动窗体
 
答案:A
【解析】如果工程中有多个窗体,存盘时每个窗体对应一个窗体文件。所以B错误。打开一个窗体,其他窗体不会自动关闭,只是成为非活动窗体。所以C错误。VB默认第一个窗体是启动窗体,但可以通过工程属性设置其他窗体为启动窗体。所以D错误。
 
(25)窗体上有一个名称为CommonDialog1的通用对话框,一个名称为Command1的命令按钮,并有如下事件过程:
Private Sub Command1_Click()
    CommonDialog1.DefaultExt="doc"
    CommonDialog1.FileName="VB.txt"
    CommonDialog1.Filter = "All(*.*)|*.*|Word|*.Doc|"
    CommonDialog1.FilterIndex = 1
    CommonDialog1.ShowSave
End Sub
运行上述程序,如下叙述中正确的是
A)打开的对话框中文件“保存类型”框中显示“All(*.*)”
B)实现保存文件的操作,文件名是VB.txt
C)DefaultExt属性FileName属性所指明的文件类型不一致,程序出错
D)对话框的Filter属性没有指出txt类型,程序运行出错
 
答案:A
【解析】注意,通用对话框的FilterIndex属性取值从1开始,不是从0开始。所以对于语句
CommonDialog1.Filter = "All(*.*)|*.*|Word|*.Doc|"
                           1        2
在上图中,FilterIndex属性,All(*.*)为1,Word为2。
 
(26)设程序中有如下数组定义和过程调用语句:
Dim a(10) As Integer
......
Call p(a)
如下过程定义中,正确的是
A)Private Sub p(a As Integer) B)Private Sub p(a( ) As Integer)
C)Private Sub p(a(10) As Integer) D)Private Sub p(a(n) As Integer)
 
答案:B
【解析】定义过程时,如果形参为数组,无需指明数组的长度,但必须把数组的标志(就是一对圆括号)写出。所以C和D均错误,B正确。A选项因为在定义过程时形参不是数组,所以是错误的。
 
(27)若要获得组合框中输入的数据,可使用的属性是
A)ListIndex B)Caption C)Text D)List
答案:C
【解析】组合框是由一个文本框和列表框组合而成,要获得组合框中输入的数据(即文本框中输入的数据),只需使用组合框的Text属性即可。
 
(28) 在窗体上画两个名称分别为Text1、Text2的文本框,Text1的属性为“DataBase”,如图所示。
现有如下事件过程:
Private Sub Text1_Change()
    Text2.Text = Mid(Text1, 1, 5)
End Sub
运行程序,在文本框Text1中原有字符之前输入a,Text2中显示的是
A)DataA B)DataB C)aData D)aBase
 
答案:C
【解析】在文本框Text1中原有字符之前输入a,此时文本框Text1的内容变为aDataBase。对于文本框的Change事件而言,只要文本框的内容发生改变,即触发该事件。对于Mid(Text1, 1, 5)而言,其功能是从第1个位置开始,截取5个字符。Text1的值是字符串“aDataBase”,第1个位置是字符“a”,从“a”开始截取5个,所以结果是“aData”。
 
(29)有如下程序:
Option Base 1
Private Sub Command1_Click()
    Dim arr(10)
    arr = Array(10, 35, 28, 90, 54, 68, 72, 90)
    For Each a In arr
        If a > 50 Then
            Sum = Sum + a
        End If
    Next a
End Sub
运行上述程序时出现错误,错误之处是
A)数组定义语句不对,应改为Dim arr B)没有指明For循环的终值
C)应在For语句之前增加Sum = 0 D)Next a应改为Next
 
答案:A
【解析】Array函数的功能是为一维数组初始化。在使用该函数时,要求=左边的数组arr是下面的三种形式之一:
(1)arr不声明直接使用,即arr为Variant类型的变量。
(2)采用Dim arr的声明形式
(3)采用Dim arr()的声明形式
 
(30)要求产生10个随机整数,存放在数组arr中。从键盘输入要删除的数组元素的下标,将该元素中的数据删除,后面元素中的数据依次前移,并显示删除后剩余的数据。现有如下程序:
Option Base 1
Private Sub Command1_Click()
    Dim arr(10) As Integer
    For i = 1 To 10 '循环1
        arr(i) = Int(Rnd * 100)
        Print arr(i);
    Next
    Print
    X = InputBox("输入1-10的一个整数:")
    For i = X + 1 To 10     '循环2
        arr(i - 1) = arr(i)
    Next
    For i = 1 To 10     '循环3
        Print arr(i);
    Next
End Sub
程序运行后发现显示的结果不正确。应该进行的修改是
A)产生随机数时不使用Int函数 B)循环2的初值应为i = x
C)数组定义改为Dim a(11) As Integer D)循环3的循环终值应改为9
 
答案:D
【解析】删除一个元素后,数组中只有9个元素。由于有Option Base 1,数组下标的下界从1开始,所以最后一个元素的下标是9,而不是10。
 
 
(31)使用驱动器列表框Drive1、目录列表框Dir1、文件列表框File1时,需要设置控件的同步,以下能够正确设置两个控件同步的命令是
A)Dir1.Path = Drive1.Path B)File1.Path = Dir1.Path
C)File1.Path = Drive1.Path D)Drive1.Drive = Dir1.Path
 
答案:B
【解析】在程序运行时,驱动器列表框(DriveListBox)的Drive属性用来设置或返回选择的驱动器(缺省值是当前驱动器),目录列表框(DirListBox)的Path属性用来设置或返回所选择的目录(缺省值是当前目录),文件列表框(FileListBox)的Path属性用来设置或返回其当前的目录(缺省值是当前路径),
首先A和C可以排除,因为驱动器列表框没有Path属性,所以Drive1.Path的使用是错误的。
驱动器列表框的Drive属性,用来设置或返回所选择的驱动器名。Drive属性只能用程序代码设置,不能通过属性窗口设置。其格式为:
驱动器列表框名称.Drive [ = 驱动器名 ]
这里的“驱动器名”是指定的驱动器,如果省略,则Drive属性是当前驱动器。如果所选择的驱动器在当前系统中不存在,则产生错误。
每次重新设置驱动器列表框的Drive属性时,都将引发Change事件。
驱动器列表框与目录列表框有着密切联系。在一般情况下,改变驱动器列表框中的驱动器名后,目录列表框中的目录应当随之变为该驱动器上的目录,也就是使驱动器列表框和目录列表框产生同步(Synchronize)效果。这可以通过一个简单的语句来实现。
当改变驱动器列表框的Drive属性时,将产生Change事件。当Drive属性改变时,Drive_Change事件过程就发生反应。因此,只要把Drive1.Drive的属性值赋给Dir1.Path,就可产生同步效果。即:
Private Sub Drive1_Change()
    Dir1.Path = Drive1.Drive
End Sub
这样,每当改变驱动器列表框的Drive属性时,将产生Change事件,目录列表框中的目录变为该驱动器的目录。
综合上面的分析,选项D是错误的。
在实际应用中,驱动器列表框、目录列表框和文件列表框往往需要同步操作,这可以通过Path属性的改变引发Change事件来实现。例如:
Private Sub Dir1_Change()
    File1.Path = Dir1.Path
End Sub
该事件过程使窗体上的目录列表框Dir1和文件列表框File1产生同步。因为目录列表框Path属性的改变将产生Change事件,所以在Dir1_Change事件过程中,把Dir1.Path赋给File1.Path,就可以产生同步。
因此选项B是正确的。
 
 
(32)以下关于弹出式菜单的叙述中,错误的是
A)一个窗体只能有一个弹出式菜单
B)弹出式菜单在菜单编辑器中建立    
C)弹出式菜单的菜单名(主菜单项)的“可见”属性通常设置为False    
D)弹出式菜单通过窗体的PopupMenu方法显示    
 
答案:A
【解析】要使用弹出式菜单,首先必须通过菜单编辑器建立菜单,该菜单必须包含主菜单项和子菜单项,而且主菜单的“可见”属性必须设置为False,即主菜单必须在程序运行时不可见,然后通过PopupMenu方法进行显示。可以建立多个弹出式菜单。
综合上面的分析,A是错误的。
 
(33)有如下程序:
Private Type stu
    X As String
    Y As Integer
End Type
Private Sub Command1_Click()
    Dim a As stu
    a.X = "ABCD"
    a.Y = 12345
    Print a
End Sub
程序运行时出现错误。错误的原因是
A)Type定义语句没有放在标准模块中 B)变量声明语句有错
C)赋值语句不对 D)输出语句Print不对
 
答案:D
【解析】对于Print方法,其使用格式如下:
对象名.Print [表达式列表]
其中,表达式列表要求是“字符串表达式”或“数值表达式”。对于自定义数据类型的变量a,不能直接打印该变量,必须指出是要打印该变量的哪个成员,即形如a.X或a.Y的方式。
 
(34)在窗体上画两个名称分别为Text1、Text2的文本框,一个名称为Label1的标签,窗体外观如图a所示。要求当改变任一个文本框的内容,就会将该文本框的内容显示在标签中,如图b所示。实现上述功能的程序如下:
   
Private Sub Text1_Change()
    Call ShowText(Text1)
End Sub
Private Sub Text2_Change()
    Call ShowText(Text2)
End Sub
Private Sub ShowText(T As TextBox)
    Label1.Caption = "文本框中的内容是:" & T.Text
End Sub
关于上述程序,以下叙述中错误的是
A)ShowText过程的参数类型可以是Control
B)ShowText过程的参数类型可以是Variant
C)两个过程调用语句有错,应分别改为Call ShowText(Text1.Text)、Call ShowText(Text2.Text)
D)ShowText过程中的T是控件变量
 
答案:C
【解析】此题可以使用排除法。Text1等价于Text1.Text,Text2等价于Text2.Text,所以选项C是错误的。
 
(35)设有打开文件的语句如下:
Open "text.dat" For Random As #1
要求把变量a中的数据保存到该文件中,应该使用的语句是
A)Input #1, a B)Write #1, a
C)Put #1,, a D)Get #1,, a
 
答案:C
【解析】对于随机文件的写操作,使用Put语句,其使用格式如下:
Put [#]文件号, [记录号], 变量名
其中记录号可以省略,但记录号后面的那个逗号不能省略。
A选项:用于使用For Input方式打开的顺序文件,读取文件操作。
D选项:用于读取操作,而不是保存。
B选项:用于使用For Outputt方式或Append方式打开的顺序文件的写操作。
 
二、填空题(每空2分,共30 分) 
请将每空的正确答案写在答题卡【l】至【15】序号的横线上,答在试卷上不得分。
(1)在长度为n的顺序存储的线性表中删除一个元素,最坏情况下需要移动表中的元素个数为
   【1】   。
【解析】线性表采用顺序存储结构时,如果删除运行在线性表的末尾进行,即删除第n个元素,则不需要移动表中的元素(这是最好的情况);如果要删除线性表中的第1个元素,则从第2个元素开始直到最后一个元素(第n个元素),一共n-1个元素,必须依次向前移动一个位置(这是最坏的情况);一般情况下,要删除第i(1≤i≤n)个元素时,则要从第i+1个元素开始,直到第n个元素之间共n-i个元素依次向前移动一个位置;在平均情况下,要在线性表中删除一个元素,需要移动表中一半的元素。
答案:n-1
(2)设循环队列的存储空间为Q(1:30),初始状态为front=rear=30,现经过一系列入队与退队运算后,front=16,rear=15,则循环队列中有   【2】   个元素。
【解析】当front<rear时,循环队列中元素的个数为rear-front,当front>rear时,循环队列中元素的个数为N(N为循环队列容量)- front + rear。此题中front=16 > rear=15,因此该循环队列中共有30-16+15=29个元素。
答案:29
(3)数据库管理系统提供的数据语言中,负责数据的增、删、改和查询的是   【3】   。
【解析】数据库管理系统一般提供下列几种数据语言(data language),分别是:
①数据定义语言(Data Definition Language,DDL):负责数据的模式定义和数据的物理存取构建。
②数据操纵语言(Data Manipulation Language,DML):负责数据的操纵,包括查询及增加、删除、修改等操作。
③数据控制语言(Data Control Language,DCL):负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能,包括系统初始程序、文件读/写、存取路径管理程序、缓冲区管理程序、安全性控制程序、完整性检查程序、并发控制程序、事务管理程序、运行日志管理程序以及数据库恢复程序等。
答案:数据操纵语言 DML
(4)在将E-R图转换到关系模式时,实体和联系都可以表示成   【4】   。
答案:关系
 
(5)常见的软件工程方法有结构化方法和面向对象方法,类、继承以及多态性等概念属于
   【5】   。
答案:面向对象方法
 
(6)下面的事件过程执行时,可以把Text1文本框中的内容写到文件“file1.txt”中去。请填空。
Private Sub Command1_Click()
    Open "file1.txt" For    【6】     As #1
    Print   【7】    , Text1.Text
    Close #1
End Sub
【解析】Open语句格式为:Open 文件名 For 打开方式 As 文件号
其中,“打开方式”可以是Input、Output、Random等。Input方式是把顺序文件中的内容读到程序中,Output方式是把程序中的数据写到顺序文件中。Random方式用于打开随机文件。
Print语句格式为:Print 文件号, 变量列表
其功能是把变量列表中的所有变量的值写到由文件号指定的文件中。
本题中,要求把文本框的内容(Text1.Text)写到文件file1.txt中,因此打开方式应该为Output,所以【6】应该填入Output。由于已经由Open语句将顺序文件“file1.txt”和文件号(此处为1)进行了关联,所以【7】应该填入#1。
答案:【6】Output 【7】 #1
【考试误区】注意:语句“Print #1, Text1.Text ”中Print与数字1之间的#不能省略,不能写成 “Print 1, Text1.Text ”,否则,就变成了在窗体上输出数字1和文本框的内容。但是,Open语句中As子句后面的#则可以省略。
 
(7)设窗体上有一个名称为Label1的标签,程序运行时,单击鼠标左键,再移动鼠标,鼠标的位置坐标会实时地显示在Label1标签中;单击鼠标右键则停止实时显示,并将标签中内容清除。下面的程序可实现这一功能,请填空。
Dim down As Boolean
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    Select Case     【8】     
        Case 1
            down = True
        Case 2
            down = False
    End Select
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If     【9】      Then
            【10】      = "X=" & X & "    Y=" & Y
    Else
        Label1.Caption = ""
    End If
End Sub
【解析】首先注意到窗体的通用段定义了一个模块级的变量down,类型为Boolean,因此该变量可以被窗体模块中的所有过程使用。
答案:【8】Button 【9】down = True 或down 【10】Label1.Caption 或 Label1
 
(8)窗体上有List1、List2两个列表框,程序运行时,在两个列表框中分别选中1个项目,如图a所示,单击名称为Command1的“交换”按钮,则把选中的项目互换,互换后的位置不限,如图b所示。下面的程序可实现这一功能,请填空。
 

 
Private Sub Command1_Click()
    If List1.Text = "" Or List2.Text = "" Then
        MsgBox "请选择交换的物品!"
    Else
        List1.AddItem List2.Text
        List2.RemoveItem      【11】      
             【12】      
        List1.RemoveItem List1.ListIndex
    End If
End Sub
答案:【11】List2.ListIndex 【12】List2.AddItem List1.Text
【解析】列表框的RemoveItem方法的功能是删除被选中的列表项,该方法后面的参数是一个整数值,该整数值是被选中的列表项的索引值(取值0~ListCount-1),被选中的列表框的索引值用ListIndex代表。
列表框的AddItem方法的功能是把指定的内容添加到列表框中,该方法的格式如下:
AddItem 要添加的内容, [Index]
在vb中,使用属性时,总是要指明该属性是哪个对象的属性,所以【11】要填List2.ListIndex。
程序中,List1.AddItem List2.Text的功能是把列表框List2中被选中的列表项的内容(用List2.Text代表)添加到列表框1中,然后删除列表框2中被选中的这项(选中的这项的索引值用ListIndex代表),所以【11】要填List2.ListIndex。
【12】要填入的是List2.AddItem List1.Text,其功能是把列表框1中选中的列表框(该列表项的内容用List1.Text代表)先添加到列表框2中,然后使用语句List1.RemoveItem List1.ListIndex把列表框1中被选中的列表项删除。
(9)设窗体上有Text1文本框和Command1命令按钮,并有以下程序:
Private Sub Command1_Click()
    temp$ = ""
    For k = 1 To Len(Text1)
        ch$ = Mid(Text1, k, 1)
        If Not found(temp, ch) Then
            temp = temp &      【13】      
        End If
    Next k
    Text1 =      【14】      
End Sub
Private Function found(str As String, ch As String) As Boolean
    For k = 1 To Len(str)
        If ch = Mid(str, k, 1) Then
            found =      【15】      
            Exit Function
        End If
    Next k
    found = False
End Function
运行时,在文本框中输入若干英文字母,然后单击命令按钮,则可以删去文本框中所有重复的字母。例如,若文本框中原有字符串为“abcddbbc”,则单击命令按钮后,文本框中字符串为“abcd”。其中函数found的功能是判断字符串str中是否有字符ch,若有,函数返回True,否则返回False。请填空。
 
答案:【13】ch 【14】temp 【15】True
 
 
 
参考答案
一、选择题(每小题2分,共70分) 
(1)D (2)C (3)B (4)A (5)C
(6)D (7)A (8)D (9)B (10)A
(11)B (12)C (13)B (14)D (15)A
(16)B (17)D (18)D (19)C (20)B
(21)B (22)C (23)A (24)A (25)C
(26)D (27)A (28)A (29)C (30)B
(31)C (32)B (33)A (34)A (35)B
 
二、填空题(每空2分,共30 分) 
请将每空的正确答案写在答题卡【l】至【15】序号的横线上,答在试卷上不得分。
【1】线性结构
  【2】n
  【3】结构化
  【4】数据库管理系统
  【5】关系
  【6】AutoSize
  【7】Result * x
  【8】m
  【9】t
  【10】m<40 或m<=39
  【11】4
  【12】70
  【13】For Append As #1
  【14】"end"
  【15】ct, nt
 

关于我们付款方式广告联系合作联系教师合作网站地图网站声明友情链接考试论坛帮助中心
全国计算机等级考试NCRE100门户网站 www.ncre100.com 客服QQ:279206599
NCRE100是一家公益网站,为广大考试提供考试信息服务 NCRE100版权所有 ? 2004-2014 Ncre100.com 京ICP备13021823-3号
扫描关注微信