1、二级 ACCESS-57 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列数据结构中,能用二分法进行查找的是_。(分数:2.50)A.无序线性表B.线性链表C.二叉链表D.顺序存储的有序表2.下列叙述中,不属于设计准则的是_。(分数:2.50)A.提高模块独立性B.使模块的作用域在该模块的控制域中C.设计成多入口、多出口模块D.设计功能可预测的模块3.下列队列的描述中,正确的是_。(分数:2.50)A.队列属于非线性表B.队列在队尾删除数据C.队列按“先进后出”进行数据操作D.队列按“先进先出”进行数据操作4.对下列二叉树进行前序遍历
2、的结果为_。 (分数:2.50)A.ABCDEFGHB.ABDGEHCFC.GDBEHACFD.GDHEBFCA5.对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是_。(分数:2.50)A.冒泡排序为 n(n-1)/2B.简单插入排序为 nC.希尔排序为 nD.快速排序为 n/26.为了使模块尽可能独立,要求_。(分数:2.50)A.内聚程度要尽量高,耦合程度要尽量强B.内聚程度要尽量高,耦合程度要尽量弱C.内聚程度要尽量低,耦合程度要尽量弱D.内聚程度要尽量低,耦合程度要尽量强7.下列选项中不属于软件生命周期开发阶段任务的是_。(分数:2.50)A.软件测试B.
3、概要设计C.软件维护D.详细设计8.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指_。(分数:2.50)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对9.在学校中,“班级”与“学生”两个实体集之间的联系属于_关系。(分数:2.50)A.一对一B.一对多C.多对一D.多对多10.软件调试的目的是_。(分数:2.50)A.发现错误B.改善软件的性能C.改正错误D.验证软件的正确性11.Access 数据库具有很多特点,下列叙述中,是 Access 特点的是_。(分数:2.50)A.Access 数据库可以保存多种数据
4、类型,但是不包括多媒体数据B.Access 可以通过编写应用程序来操作数据库中的数据C.Access 不能支持 Internet/Intranet 应用D.Access 作为网状数据库模型支持 C/S 应用系统12.如图所示的数据模型属于_。 (分数:2.50)A.关系模型B.层次模型C.网状模型D.实体-联系模型13.“输入掩码”属性用于设定控件的输入格式,其中仅可以对_数据进行输入掩码向导的设置。(分数:2.50)A.文本型和数值型B.文本型和逻辑型C.文本型和日期/时间型D.数值型和日期/时间型14.已知 D1=#2003-5-28 20:8:36#,D2=#2004-2-29 10:4
5、0:11#,执行 DateDiff(“m“,D1,D2)后,返回_。(分数:2.50)A.1B.9C.10D.函数值错误15.对“将信息系 2010 年以前参加工作的教师的职称改为副教授”,合适的查询为_。(分数:2.50)A.生成表查询B.更新查询C.删除查询D.追加查询16.在标准模块的变量定义区域中,用_关键字说明的变量属于全局范围的变量。(分数:2.50)A.DimB.PrivateC.PublicD.Static17.Access 中,以下不属于查询操作方式的是_。(分数:2.50)A.选择查询B.参数查询C.准则查询D.操作查询18.创建交叉表查询,在交叉表行上不止有一个的是_。(
6、分数:2.50)A.行标题B.列标题C.行标题、列标题和值D.值19.用 SQL 描述“在教师表中查找男教师的全部信息”,以下描述正确的是_。(分数:2.50)A.SELECT FROM 教师表 IF(性别=“男“)B.SELECT 性别 FROM 教师表 IF(性别=“男“)C.SELECT*FROM 教师表 WHERE(性别=“男“)D.SELECT*FROM 性别 WHERE(性别=“男“)20.在 tStud 表中查询性别为“女”,年级为“07”或“08”的学生姓名和简历的 SQL 查询语句为_。(分数:2.50)A.SELECT 姓名,简历 FROM tStudWHERE 性别=“女
7、“ AND 年级 IN(“07“,“08“)B.SELECT 姓名,简历 FROM tStudWHERE 性别=“女“ AND 年级 NOT IN(“07“,“08“)C.SELECT 姓名,简历 FROM tStudWHERE 性别=“女“ AND 年级=“07“ AND 年级=“08“D.SELECT 姓名,简历 FROM tStudWHERE 性别=“女“ AND 年级=“07“ OR 年级=“08“21.以下不是控件的类型的是_。(分数:2.50)A.结合型B.非结合型C.计算型D.非计算型22.通过 ACCESS 窗体,用户可以完成的功能有_。 输入数据 编辑数据 存储数据 以行、列
8、形式显示数据 显示和查询表中的数据 导出数据(分数:2.50)A.B.C.D.23.下面对象不能作为窗体记录源的是_。(分数:2.50)A.表B.查询C.Select 语句D.报表24.窗体中有一命令按钮,名称为 Command1。要求在窗体视图中单击此命令按钮后,命令按钮上面的文字变为加粗,实现该操作的 VBA 语句是_。(分数:2.50)A.Command1.FontUnderLine=trueB.Command1.FontItalic=trueC.Command1.FontBold=trueD.Command1.FontName=true25.查看报表输出效果可以使用_命令。(分数:2.
9、50)A.“打印”B.“打印预览”C.“页面设置”D.“数据库属性”26.以下关于报表的叙述不正确的是_。(分数:2.50)A.报表可以输入数据B.报表只能输出数据C.报表可以控制输出数据的内容D.报表可以对输出数据排序和分组27.报表记录分组操作时,首先要选定_,在这些字段上值相同的记录数据归为同一组。(分数:2.50)A.主键B.分组字段C.自动编号D.排序字段28.键盘事件是操作键盘所引发的事件,下列不属于键盘事件的是_。(分数:2.50)A.击键B.键按下C.键释放D.键锁定29.使用_创建报表时会提示用户输入相关的数据源、字段和报表版面格式等信息。(分数:2.50)A.自动报表B.报
10、表向导C.图标向导D.标签向导30.在宏的表达式中要引用报表 exam 上控件 Name 的值,可以使用引用式_。(分数:2.50)A.Reports!NameB.Reports!Exam!NameC.exam!NameD.Reports exam Name31.阅读下面的程序段: sum=0 for i=1 to 3 for j=i to 4 for k=j to 5 sum=sum+1 next k next j next i 执行上面的三重循环后,sum 的值为_。(分数:2.50)A.14B.23C.28D.3032.以下关于 VBA 运算符优先级比较,正确的是_。(分数:2.50)A
11、.算术运算符逻辑运算符连接运算符B.逻辑运算符关系运算符算术运算符C.算术运算符关系运算符逻辑运算符D.连接运算符逻辑运算符算术运算符33.在窗体中添加一个名称为 Command1 的命令按钮,然后编写如下程序: Private Sub f(ByVal x As Integer) x=x+4 End Sub Private Sub Command1_Click() i=3 Call f(i) If i4 Then i=i*2 MsgBox i End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果为_。(分数:2.50)A.3B.4C.6D.734.在窗体上添加一个命令按钮(名为 C
12、ommand1),然后编写如下程序: Private Sub Command1_Click() Dim a As Integer,b As Integer x=10 y=20 MsgBox IIf(xy,x,y) End Sub 打开窗体运行后,单击命令按钮,消息框的输出结果为_。(分数:2.50)A.10B.20C.TD.F35.下面程序的功能是计算折旧年限。假设一台机器的原价值为 100 万元,如果每年的折旧率为 3%,多少年后它的价值不足 60 万元。则横线处应填入_。 y=0 p=100 x=0.03 Do p=p*(1-x) y=y+1 Loop Until_ MsgBox y(分数
13、:2.50)A.p0B.p60C.p60D.p10036.设 a=4,则执行 x=IIF(a3,1,0)后,x 的值为_。(分数:2.50)A.4B.3C.0D.137.函数 Mid(“计算机等级考试“,4,2)的执行结果是_。(分数:2.50)A.计算B.等级C.考试D.等级考试38.下面程序段执行后消息框的输出结果是_。 a=12345 Do a=a10 b=a Mod 10 Loop While b=3 MsgBox a(分数:2.50)A.1B.12C.123D.123439.执行下面的程序,消息框里显示的结果是_。 Private Sub Form_Click() Dim Str A
14、s String, S As String, k As Integer Str=“abc“ S=Str For k=Len(Str) To 1 Step -1 S=S & (Mid(Str,k,1) Next k MsgBox S End Sub(分数:2.50)A.abcB.abccbaC.cbacbaD.abcabc40.设有命令按钮 Command1 的单击事件过程,代码如下: Private Sub Command1_Click() Dim a(3,3)As Integer For i=1 To 3 For j=1 To 3 a(i,j)=i*j+i+j Next j Next i S
15、um=0 For i=1 To 3 Sum=Sum+a(i,4-i) Next i MsgBox Sum End Sub 运行程序,单击命令按钮,消息框输出结果是_。(分数:2.50)A.7B.8C.15D.22二级 ACCESS-57 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列数据结构中,能用二分法进行查找的是_。(分数:2.50)A.无序线性表B.线性链表C.二叉链表D.顺序存储的有序表 解析:解析 二分法查找只适用于顺序存储的有序表,表中的元素按值从小到大排列。2.下列叙述中,不属于设计准则的是_。(分数:2.50)A.提高
16、模块独立性B.使模块的作用域在该模块的控制域中C.设计成多入口、多出口模块 D.设计功能可预测的模块解析:解析 大量软件设计表明,以下的设计准则是可以借鉴为设计的指导和对软件结构图进行优化,这些准则是:提高模块独立性;模块规模适中:深度、宽度、扇出和扇入适当;使模块的作用域在该模块的控制域中;应减少模块的接口和界面的复杂性;设计成单入口、单出口的模块;设计功能可预测的模块。3.下列队列的描述中,正确的是_。(分数:2.50)A.队列属于非线性表B.队列在队尾删除数据C.队列按“先进后出”进行数据操作D.队列按“先进先出”进行数据操作 解析:解析 队列是只允许在一端删除,在另一端插入的顺序表,允
17、许删除的一端叫做队头,允许插入的一端叫做队尾。队列的操作数是依据先进先出的原则进行的。因此队列亦称作先进先出的线性表,或后进后出的线性表。4.对下列二叉树进行前序遍历的结果为_。 (分数:2.50)A.ABCDEFGHB.ABDGEHCF C.GDBEHACFD.GDHEBFCA解析:解析 遍历就是不重复地访问二叉树的所有结点。二叉树遍历的方法有 3 种:前序遍历、中序遍历和后序遍历。记住 3 种遍历的顺序: 前序,访问根按前序遍历左子树按前序遍历右子树。 中序,按中序遍历左子树访问根按中序遍历右子树。 后序,按后序遍历左子树按后序遍历右子树访问根。 所以对该二叉树的中序遍历结果为 ABDGE
18、HCF。5.对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是_。(分数:2.50)A.冒泡排序为 n(n-1)/2 B.简单插入排序为 nC.希尔排序为 nD.快速排序为 n/2解析:解析 在最坏情况下,冒泡排序所需要的比较次数为 n(n-1)/2;简单插入排序所需要的比较次数为 n(n-1)/2;希尔排序所需要的比较次数为 O(n 1.5 );堆排序所需要的比较次数为 O(nlog 2 n)。6.为了使模块尽可能独立,要求_。(分数:2.50)A.内聚程度要尽量高,耦合程度要尽量强B.内聚程度要尽量高,耦合程度要尽量弱 C.内聚程度要尽量低,耦合程度要尽量弱D.
19、内聚程度要尽量低,耦合程度要尽量强解析:解析 模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。耦合性与内聚性是模块独立性的两个定性标准,耦合与内聚是相互关联的。在程序结构中,各模块的内聚性越强,则耦合性越弱。一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。7.下列选项中不属于软件生命周期开发阶段任务的是_。(分数:2.50)A.软件测试B.概要设计C.软件维护 D.详细设计解析:解析 软件生命周期分为软件定义、软件开发及软件运行维护三个阶段,其中开发阶段包括概要设计、详细设计、实现和测试
20、。8.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指_。(分数:2.50)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对 解析:解析 数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。所以选项 A,选项 B 和选项 C 都不正确。9.在学校中,“班级”与“学生”两个实体集之间的联系属于_关系。(分数:2.50)A.一对一B.一对多 C.多对一D.多对多解析:解析 一个班可以有多名学生,而一名学生只能属于一个班级,所以“班级”与“学生”两个实体集之间的联系属于一对多关系。10.软
21、件调试的目的是_。(分数:2.50)A.发现错误B.改善软件的性能C.改正错误 D.验证软件的正确性解析:解析 在对程序进行了成功的测试之后将进入程序调试,程序调试的任务是诊断和改正程序中的错误。11.Access 数据库具有很多特点,下列叙述中,是 Access 特点的是_。(分数:2.50)A.Access 数据库可以保存多种数据类型,但是不包括多媒体数据B.Access 可以通过编写应用程序来操作数据库中的数据 C.Access 不能支持 Internet/Intranet 应用D.Access 作为网状数据库模型支持 C/S 应用系统解析:解析 本题考查 Access 特点的知识。在
22、Access 这个关系数据库中,具备了比较强大的程序设计能力,不仅具有传统的模块化程序设计能力,还具有面向对象的程序设计能力。Access 可以使用系统菜单以及程序命令等多种方式创建复杂的数据库应用系统。Access 数据库的主要特点包括处理多种数据类型包括多媒体数据;与 Internet/Intranet 的集成;具有较好的集成开发功能,可以采用 VBA 编写数据库应用程序等。而从数据模型的角度来说,Access 属于关系数据模型而不是网状数据模型。12.如图所示的数据模型属于_。 (分数:2.50)A.关系模型B.层次模型C.网状模型 D.实体-联系模型解析:解析 在数据库中,对满足以下两
23、个条件的数据模型称为网状模型:允许一个以上的结点无双亲;一个结点可以有多余一个的双亲。13.“输入掩码”属性用于设定控件的输入格式,其中仅可以对_数据进行输入掩码向导的设置。(分数:2.50)A.文本型和数值型B.文本型和逻辑型C.文本型和日期/时间型 D.数值型和日期/时间型解析:解析 本题考查字段属性的知识。在设计字段的时候可以使用输入掩码来使得输入的格式标准保持一致,虽然对于大多数数据类型都可以设计输入掩码,但是只有“文本”型和“日期/时间”型字段才可以使用“输入掩码向导”。14.已知 D1=#2003-5-28 20:8:36#,D2=#2004-2-29 10:40:11#,执行 D
24、ateDiff(“m“,D1,D2)后,返回_。(分数:2.50)A.1B.9 C.10D.函数值错误解析:解析 本题考查 DateDiff 函数的知识。DateDiff 函数是计算两个日期的间隔值函数,其一般使用格式为: DateDiff(间隔类型,日期 1,日期 2) 功能是返回日期 1 和日期 2 之间按照间隔类型所指定的时间间隔数目,也就是日期 2 减去日期 1 的时间间隔数目。时间间隔可以有如下几种:“yyyy”代表年、“q”代表季度、“m”代表月、“d”代表日、“ww”代表周、“h”代表小时、“n”代表分、“s”代表秒。15.对“将信息系 2010 年以前参加工作的教师的职称改为副
25、教授”,合适的查询为_。(分数:2.50)A.生成表查询B.更新查询 C.删除查询D.追加查询解析:解析 在建立和维护数据库的过程中,经常需要对表中的记录进行更新和修改,当更新的记录很多,或更新的记录符合一定条件时,最简单的有效的方法是利用 Access 提供的更新查询。16.在标准模块的变量定义区域中,用_关键字说明的变量属于全局范围的变量。(分数:2.50)A.DimB.PrivateC.Public D.Static解析:解析 本题考查变量作用域的知识。在 VBA 中变量的作用域有 3 个层次:在模块过程内部用 Dim或 Private 定义的变量为局部变量;在标准模块的变量定义区域用
26、Dim 或 Private 定义的变量为模块变量;在标准模块的变量定义区域用 Public 定义的变量为全局变量。用 Static 定义的变量为静态变量。17.Access 中,以下不属于查询操作方式的是_。(分数:2.50)A.选择查询B.参数查询C.准则查询 D.操作查询解析:解析 在 Access 中查询的操作方式包括选择查询、操作查询和参数查询。18.创建交叉表查询,在交叉表行上不止有一个的是_。(分数:2.50)A.行标题B.列标题 C.行标题、列标题和值D.值解析:解析 本题考查的是交叉表查询的知识。在创建交叉表查询时,用户需要指定 3 种字段:行标题、列标题和数据表行与列交叉位置
27、上的字段,用户需要为该字段指定一个总计项。对于每一行来说,对应的行标题和值只能有一个,可以对应多个列标题。19.用 SQL 描述“在教师表中查找男教师的全部信息”,以下描述正确的是_。(分数:2.50)A.SELECT FROM 教师表 IF(性别=“男“)B.SELECT 性别 FROM 教师表 IF(性别=“男“)C.SELECT*FROM 教师表 WHERE(性别=“男“) D.SELECT*FROM 性别 WHERE(性别=“男“)解析:解析 用 SQL 描述“在教师表中查找男教师的全部信息”,正确格式为“SELECT*FROM 教师表 WHERE(性别=“男“)”。其中“SELECT
28、*”表示选择表中全部字段,“FROM 教师表”表示查询的数据表为“教师表”,“WHERE(性别=“男“)”指定查询条件。20.在 tStud 表中查询性别为“女”,年级为“07”或“08”的学生姓名和简历的 SQL 查询语句为_。(分数:2.50)A.SELECT 姓名,简历 FROM tStudWHERE 性别=“女“ AND 年级 IN(“07“,“08“) B.SELECT 姓名,简历 FROM tStudWHERE 性别=“女“ AND 年级 NOT IN(“07“,“08“)C.SELECT 姓名,简历 FROM tStudWHERE 性别=“女“ AND 年级=“07“ AND 年
29、级=“08“D.SELECT 姓名,简历 FROM tStudWHERE 性别=“女“ AND 年级=“07“ OR 年级=“08“解析:解析 本题考查的是 SQL 查询的知识。在 SQL 的查询语句中,SELECT 子句用于指定最后结果中的字段,FROM 子句用于指定进行查询的表,WHERE 子句用于指定查询条件,只有满足条件的元组才会出现在结果集中。本题选项 A 正确,不可能有学生既属于 07 级又属于 08 级,所以选项 C 错误;选项 D 由于 AND的优先级高于 OR,所以也不正确。21.以下不是控件的类型的是_。(分数:2.50)A.结合型B.非结合型C.计算型D.非计算型 解析:
30、解析 Access 数据库中控件类型有结合型、非结合型和计算型,而不包括非计算型。22.通过 ACCESS 窗体,用户可以完成的功能有_。 输入数据 编辑数据 存储数据 以行、列形式显示数据 显示和查询表中的数据 导出数据(分数:2.50)A.B.C. D.解析:解析 窗体是 Access 的一个对象,通过窗体可以完成输入数据、编辑数据、显示和查询表中的数据功能。23.下面对象不能作为窗体记录源的是_。(分数:2.50)A.表B.查询C.Select 语句D.报表 解析:解析 本题考查窗体数据环境的知识。Access 中窗体的数据环境被称为记录来源(Record Source),记录来源可以是
31、一个数据表,也可以是相互关联的若干表。如果记录来源不止一个表,需要建立查询或是使用 SQL SELECT 语句作为记录来源,并且此时的查询或 SQL 语句指定了这些表与表之间的关系。24.窗体中有一命令按钮,名称为 Command1。要求在窗体视图中单击此命令按钮后,命令按钮上面的文字变为加粗,实现该操作的 VBA 语句是_。(分数:2.50)A.Command1.FontUnderLine=trueB.Command1.FontItalic=trueC.Command1.FontBold=true D.Command1.FontName=true解析:解析 本题考查有关字体属性的知识。窗体中
32、控件的字体由一些有关字体的属性控制,比如FontName(字体名)、FontSize(字体大小)、FontBold(加粗)、FontItalic(倾斜)、FontUnderline(下划线)等。25.查看报表输出效果可以使用_命令。(分数:2.50)A.“打印”B.“打印预览” C.“页面设置”D.“数据库属性”解析:解析 本题考查报表输出的知识。报表的主要功能就是输出显示数据,若在设计时需要查看报表输出效果可以使用打印预览命令。26.以下关于报表的叙述不正确的是_。(分数:2.50)A.报表可以输入数据 B.报表只能输出数据C.报表可以控制输出数据的内容D.报表可以对输出数据排序和分组解析:
33、解析 本题考查报表的基础知识。报表是 Access 中输出数据所使用的一种对象,利用报表可以控制数据内容的大小及外观、排序和分组等功能,但是不可以进行数据输入。27.报表记录分组操作时,首先要选定_,在这些字段上值相同的记录数据归为同一组。(分数:2.50)A.主键B.分组字段 C.自动编号D.排序字段解析:解析 本题考查报表排序与分组的知识。报表记录的排序是按照某字段值进行大小排序,分组是按照分组字段值相同的被分为一组来计算的,所谓分组就是指按某个字段值进行归类,将字段值相同的记录分在一组之中,而排序是指按某个字段值将记录排序。要想实现分组,首先要选定分组手段。28.键盘事件是操作键盘所引发
34、的事件,下列不属于键盘事件的是_。(分数:2.50)A.击键B.键按下C.键释放D.键锁定 解析:解析 键盘事件是操作键盘所引起的事件,包括“击键”、“键按下”和“键释放”,不包括“键锁定”。29.使用_创建报表时会提示用户输入相关的数据源、字段和报表版面格式等信息。(分数:2.50)A.自动报表B.报表向导 C.图标向导D.标签向导解析:解析 在 Access 数据库中,当使用“报表向导”来创建报表时会提示用户输入相关的数据源、字段和报表版面格式等信息。30.在宏的表达式中要引用报表 exam 上控件 Name 的值,可以使用引用式_。(分数:2.50)A.Reports!NameB.Rep
35、orts!Exam!Name C.exam!NameD.Reports exam Name解析:解析 在宏的表达式中,引用报表上控件的值,可以使用的引用式格式为:“Reports!报表名!控件名”。31.阅读下面的程序段: sum=0 for i=1 to 3 for j=i to 4 for k=j to 5 sum=sum+1 next k next j next i 执行上面的三重循环后,sum 的值为_。(分数:2.50)A.14B.23C.28 D.30解析:解析 本题考查循环的知识。这类问题循环题中只有一条语句,就是 sum=sum+1,这样的话问题就变成了判断这条语句共执行多少次
36、,也就是最内层循环一共会执行多少次。可以这样分析:当i=1,j=1 时,内循环执行 5 次,当 i=1,j=2 时,内循环执行 4 次当 i=1,j=4 时,内循环执行 2 次,这样的话外循环第一次时内循环共执行 5+4+3+2=14 次;当 i=2 时,i 从 2 开始循环,那么内循环共执行4+3+2=9 次:当 i=3 时,i 从 3 开始循环,那么内循环共执行 3+2=5 次,所以总的执行次数为 14+9+5=28次。32.以下关于 VBA 运算符优先级比较,正确的是_。(分数:2.50)A.算术运算符逻辑运算符连接运算符B.逻辑运算符关系运算符算术运算符C.算术运算符关系运算符逻辑运算
37、符 D.连接运算符逻辑运算符算术运算符解析:解析 本题考查的是 VBA 中运算符的优先级的知识。在 VBA 中的运算符都具有其优先级,最基本的就是算术运算符连接运算符关系运算符逻辑运算符,在各个种类的运算符中还有不同的优先级,比如在算术运算中乘方的优先级就高于乘法和除法运算,同优先级的运算由左至右顺序执行。33.在窗体中添加一个名称为 Command1 的命令按钮,然后编写如下程序: Private Sub f(ByVal x As Integer) x=x+4 End Sub Private Sub Command1_Click() i=3 Call f(i) If i4 Then i=i*
38、2 MsgBox i End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果为_。(分数:2.50)A.3 B.4C.6D.7解析:解析 本题考查 VBA 中参数传递的知识。在 VBA 的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用 ByVal 声明,说明此参数为传值调用;若用 ByRef 声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递。本题中在定义子过程 f 的时候用 ByVal 声明了形参 x,说明为传值调用,此时对 x 的任何更改不会影响调用它的实参 i,所以执行完 Call f(i)这条语句后 i 的值不变仍为 3,当然也不满足
39、If 语句的条件,故此最后输出结果为 3。34.在窗体上添加一个命令按钮(名为 Command1),然后编写如下程序: Private Sub Command1_Click() Dim a As Integer,b As Integer x=10 y=20 MsgBox IIf(xy,x,y) End Sub 打开窗体运行后,单击命令按钮,消息框的输出结果为_。(分数:2.50)A.10B.20 C.TD.F解析:解析 本题考查 Iff 函数的知识。对于 IIf 函数可用于执行简单的条件判断操作,当第一个参数为真时返回第二个参数值,否则返回第三个参数值。因为 xy 为假,所以返回 y 的值也就
40、是返回 20。35.下面程序的功能是计算折旧年限。假设一台机器的原价值为 100 万元,如果每年的折旧率为 3%,多少年后它的价值不足 60 万元。则横线处应填入_。 y=0 p=100 x=0.03 Do p=p*(1-x) y=y+1 Loop Until_ MsgBox y(分数:2.50)A.p0B.p60 C.p60D.p100解析:解析 本题考查 VBA 中循环的知识。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件是否成立,至少执行一次循环体。在 Until 循环中条件为 False 时执行循环体,
41、条件为 True 时退出循环;在 While 循环中条件为 True 时执行循环体,条件为 False 时退出循环,这一点要注意区分清楚。 本题中是一个后判断条件的 Until 循环,变量 y 的作用是累计循环次数也就是年数,要求填写的是循环结束条件,即 p 的值不足 60 时结束循环。36.设 a=4,则执行 x=IIF(a3,1,0)后,x 的值为_。(分数:2.50)A.4B.3C.0D.1 解析:解析 本题考查 IIF 函数的基础知识。对于 IIF 函数可用于执行简单的条件判断操作,当第一个参数为真时返回第 2 个参数值,否则返回第 3 个参数值。在本题中由于 a3 为 True,所以
42、返回的是第二个参数值即 1。37.函数 Mid(“计算机等级考试“,4,2)的执行结果是_。(分数:2.50)A.计算B.等级 C.考试D.等级考试解析:解析 本题考查取子串函数的知识。在 VBA 中有三种取子串函数:Left 函数用于在字符串左端开始取 n 个字符;Right 函数用于在字符串右端开始取 n 个字符(注意子串中字符的顺序与母串中相同);Mid 函数可以实现在任何位置取任何长度的子串。本题中就是要在“计算机等级考试”这个字符串中的第4 位开始截取 2 位子串,所以结果为“等级”。要注意一个汉字占 1 个字符。38.下面程序段执行后消息框的输出结果是_。 a=12345 Do a
43、=a10 b=a Mod 10 Loop While b=3 MsgBox a(分数:2.50)A.1B.12 C.123D.1234解析:解析 本题考查 VBA 中循环的知识。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件如何至少执行一次循环体。在 Until 循环中条件为 False 时执行循环体,条件为 True 时退出循环;在 While 循环中条件为 True 时执行循环体,条件为 False 时退出循环,这一点要注意区分清楚。本题是一个后判断条件的While 循环,在循环中首先利用整除 10 去掉
44、a 的最后一位,然后判断当前的 a 的个位数上的值是否满足循环条件,直至 a=12 时由于个位数为 2 不满足继续循环的条件从而退出循环。39.执行下面的程序,消息框里显示的结果是_。 Private Sub Form_Click() Dim Str As String, S As String, k As Integer Str=“abc“ S=Str For k=Len(Str) To 1 Step -1 S=S & (Mid(Str,k,1) Next k MsgBox S End Sub(分数:2.50)A.abcB.abccba C.cbacbaD.abcabc解析:解析 本题考查的
45、是字符串函数和循环语句 ForNext 的使用。循环语句 ForNext 能够重复执行程序代码区域特定次数,使用格式如下: For 循环变量=初值 To 终值 Step 步长 循环体 条件语句序列 Exit For 结束条件语句序列 Next循环变量 在 VBA 中有三种取子串函数:Left 函数用于在字符串左端开始取 n 个字符;Right 函数用于在字符串右端开始取 n 个字符(注意子串中字符的顺序与母串中相同);Mid 函数可以实现在任何位置取任何长度的子串。字符串长度检测函数 Len(字符串表达式或变量名)的作用是返回字符串所含字符数。本题中相当于每次循环从后向前取得 Str 中的一个
46、字符连接到 S 的后面,即最后 S 的值为 abccba。40.设有命令按钮 Command1 的单击事件过程,代码如下: Private Sub Command1_Click() Dim a(3,3)As Integer For i=1 To 3 For j=1 To 3 a(i,j)=i*j+i+j Next j Next i Sum=0 For i=1 To 3 Sum=Sum+a(i,4-i) Next i MsgBox Sum End Sub 运行程序,单击命令按钮,消息框输出结果是_。(分数:2.50)A.7B.8C.15D.22 解析:解析 本题考查 VBA 中二维数组和循环的知识。本题中的第一个二重循环为二维数组进行了赋值,第二个循环完成累加,关键是分析出累加了哪些元素。由循环体可以看出,实际上 3 次累加分别累加的是a(1,3)、a(2,2)、a(3,1),实际上就是二维数组的对角线,累加和为 7+8+7=22。