1、国家二级 ACCESS机试选择题(模块与 VBA编程基础)模拟试卷 6及答案与解析 一、选择题 1 在下列关于宏和模块的叙述中,正确的是 ( A)模块是能够被程序调用的函数 ( B)通过定义宏可以选择或更新数据 ( C)宏或模块都不能是窗体或报表上的事件代码 ( D)宏可以是独立的数据库对象,可以提供独立的操作动作 2 在 Access中,如果变量定义在模块的过程内部,当过程代码执行时才可见,则这种变量的作用域为 ( A)程序范围 ( B)全局范围 ( C)模块范围 ( D)局部范围 3 VBA表达式 3*3 3 3的输出结果是 ( A) 0 ( B) 1 ( C) 3 ( D) 9 4 In
2、putBox函数的返回值类型是 ( A)数值 ( B)字符串 ( C)变体 ( D)数值或字符串 (视输入的数据而定 ) 5 语句 Dim NewArray(10)As Integer的含义是 ( A)定义了一个整型变量且初值为 10 ( B)定义了 10个整数构成的数组 ( C)定义了 11个整数构成的数组 ( D)将数组的第 10元素设置为整型 6 窗体中有 3个命令按钮,分别命名为 Command1、 Command2和 Command3。当单击 Command1按钮时, Command2按钮变为可用, Command3按钮变为不可见。下列 Command1的单击事件过程中,正确的是 (
3、 A) Private Sub Commandl_Click() Command2 Visible=True Command3 vIsible=FalSe End Sub ( B) Private Sub Command1_Click() Command2 Enabled=True Command3 Enabled=False End Sub ( C) Private Sub Command1_Click() Command2 Enabled=True Command3 Visible=False End Sub ( D) Private Sub Command1_Click() Comman
4、d2 Visible=True Command3 Enabled=False End Sub 7 在已建窗体中有一命令按钮 (名为 Commandl),该按钮的单击事件对应的 VBA代码为: Private Sub Command1_Click() SubT Form RecordSource=“select*from雇员 “ End Sub 单击该按钮实现的功能是 ( A)使用 select命令查找 “雇员 ”表中的所有记录 ( B)使用 select命令查找并显示 “雇员 ”表中的所有记录 ( C)将 SubT窗体的数据来源设置为一个字符串 ( D)将 SubT窗体的数据来源设置为 “雇员
5、 ”表 8 在窗体上有一个命令按钮 Command1,编写事件代码如下: PfivMe Sub Command1_Click() Dim d1 As Date Dim d2 As Date d1=#12 25 2009# d2=#1 5 2010# MsgBox DateDiff(“ww“, d1, d2) End Sub 打开窗体运行后,单击命令按钮,立即窗口上输出的结果是 ( A) 1 ( B) 2 ( C) 10 ( D) 11 9 下列给出的选项中,非法的变量名是 ( A) Sum ( B) Integer_2 ( C) Rem ( D) Form1 10 VBA中定义符号常量使用的关
6、键字是 ( A) Const ( B) Dim ( C) Public ( D) Static 11 用来测试当前读写位置是否达到文件 末尾的函数是 ( A) EOF ( B) FileLen ( C) Len ( D) LOF 12 假定有以下循环结构 Do Until条件 循环体 Loop 则正确的叙述是 ( A)如果 “条件 ”值为 0,则一次循环体也不执行 ( B)如果 “条件 ”值为 0,则至少执行一次循环体 ( C)如果 “条件 ”值不为 0,则至少执行一次循环体 ( D)不论 “条件 ”是否为 “真 ”,至少要执行一次循环体 13 在窗体中添加一个名称为 Command1的命令按
7、钮,然后编写如下事件代码: Private Sub Command1_Click() Dim a(10, 10) For m=2 To 4 For n=4 To 5 a(m, n)m*n Next n Next m MsgBox a(2, 5)+a(3, 4)+a(4, 5) End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果是 ( A) 22 ( B) 32 ( C) 42 ( D) 52 14 设有如下窗体单击事件过程: Private Sub Form_Click() a=1 For i=1 To 3 Select Case i Case 1, 3 a=a+1 Case 2
8、, 4 a=a+2 End Select Next i MsgBox a End Sub 打开窗体运行后,单击窗体,则消息框的输出的结果是 ( A) 3 ( B) 4 ( C) 5 ( D) 6 15 在窗体中使用一个文本框 (名为 n)接受输入的值,有一个命令按钮 run,事件代码如下: Private Sub run_Click()result=“For i=1 To Me!nForj=1 To Me!nresult=result+“*“Nextjresult=result+Chr(13)+Chr(10)Next iMesgBox resultEnd Sub打开窗体后,如果通过文本框输入的
9、的值为 4,单击命令按钮后输出的图型是16 在 VBA中,错误的循环结构是 ( A) Do While条件式 循环体 Loop ( B) Do Until条件式 循环体 Loop ( C) Do Until 循环体 Loop条件式 ( D) Do 循环体 Loop While条件式 17 设有如下过程: x=1 Do x=x+2 Loop Until_ 运行程序,要求循环体执行 3次后结束循环,空白处应填入的语句是 ( A) x =7 ( B) x 7 ( C) x =7 ( D) x 7 18 在窗体中有一个命令按钮 Command1,编写事件代码如下: Private Sub Comman
10、dl_Click() Dim s As Integer S=P(1)+P(2)+P(3)+P(4) debug Print S End Sub Public Function P(N AS Integer) Dim Sum As Integer Sum=0 For i=1 To N Sum=Sum+i Next i P=Sum End Function 打开窗体运行后,单击命令按钮,输出结果是 ( A) 15 ( B) 20 ( C) 25 ( D) 35 19 若变量 i的初值为 8,则下列循环语句中循环体的执行次数为 Do While i =17 i=i+2 Loop ( A) 3次 (
11、B) 4次 ( C) 5次 ( D) 6次 20 窗体有命令按钮 Command1和文本框 Text1,对应的事件代码如下: Pfivate Sub Command1_Click() For i=1 To 4 x=3 For j=1 To 3 For k=1 To 2 x=x+3 Next k Next j Next i Text1 Value=Str(x) End Sub 运行以上事件过程,文本框中的输出是 ( A) 6 ( B) 12 ( C) 18 ( D) 21 21 运行下列程序,结果是 Private Sub Command32_Click() f0=1: f1=1: k=1 Do
12、 While k =5 f=f0+f1 f0=f1 f1=f k=k+1 Loop MsgBox“f=“&f End Sub ( A) f=5 ( B) f=7 ( C) f=8 ( D) f=13 22 若有以下窗体单击事件过程: Private Sub Form_Click() result=1 For i=1 To 6 step 3 result=result*i Next i MsgBox result End Sub 打开窗体运行后,单击窗体,则消息框的输出内容是 ( A) 1 ( B) 4 ( C) 15 ( D) 120 23 运行下列程序,在立即窗口显示的结果是 Pfivate
13、 Sub Command0_Click() Dim IAs Integer, JAs Integer For I=2 To 10 For J=2 To I 2 If I mod J=0 Then Exit For Next J If J sqr(I)Then Debug Print I; Next I End Sub ( A) 1 5 7 9 ( B) 4 6 8 ( C) 3 5 7 9 ( D) 2 3 5 7 24 在窗体中有一个名为 run34的命令按钮,事件代码如下: Private Sub run34_Click() f1=1 f2=1 For n=3 To 7 f=f1+f2 f
14、1=f2 f2=f Next n MsgBox f End Sub 打开窗体,单击命令按钮,消息框的输出结果是 ( A) 8 ( B) 13 ( C) 21 ( D)其他结果 25 在过程定义中有语句: Private Sub GetData(ByRef f As Integer) 其中 “ByRef”的含义是 ( A)传值调用 ( B)传址调用 ( C)形式参数 ( D)实际参数 26 在 VBA中,下列关于过程的描述中正确的是 ( A)过程的定义可以嵌套,但过程的调用不能嵌套 ( B)过程的定义不可以嵌套, 但过程的调用可以嵌套 ( C)过程的定义和过程的调用均可以嵌套 ( D)过程的定义
15、和过程的调用均不能嵌套 27 在代码中定义了一个子过程: Sub P(a, b) End Sub 下列调用该过程的形式中,正确的是 ( A) P(10, 20) ( B) Call P ( C) Call P 10, 20 ( D) Call p(10, 20) 28 在 VBA中,能自动检查出来的错误是 ( A)语法错误 ( B)逻辑错误 ( C)运行错误 ( D)注释错误 国家二级 ACCESS机试选择题(模块与 VBA编程基础)模拟试卷 6答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 本题考查宏和模块的知识。模块是能够被程序调用的函数,里面不能包含窗体或报表的事件代码;宏是
16、一个或多个操作的序列,可以通过宏选择或更新数据,宏里面也不能包含窗体或报表的事件代码;宏是数据对象的一部分,不能独立存在,只能依存于数据对象来进行操作。 【知识模块】 模块与 VBA编程基础 2 【正确答案】 D 【试题解析】 B)变量定义在标准模块的所有过程之外的起始位置 ,运行时在所有类模块和标准模块的所有子过程与函数过程中都可见。 C)变量定义在模块的所有过程之外的起始位置,运行时在模块所包含的所有子过程和函数过程中可见。 D)变量定义在模块的过程内部,过程代码执行时才可见。 【知识模块】 模块与 VBA编程基础 3 【正确答案】 D 【试题解析】 本题考查 VBA中运算符的知识。在 V
17、BA中的运算符都具有其优先级,最基本的就是算术运算符连接运算符比较运算符逻辑运算符,在各个种类的运算符中还有不同的优先级,比如在算术运算中乘法和除法的优先级就高于整除运算,所以 本题的表达式实际上是 (3*3) (3 3),结果为 9。 【知识模块】 模块与 VBA编程基础 4 【正确答案】 B 【试题解析】 本题考查输入框的知识。 InputBox函数用于在屏幕上弹出一个输入框,框中有若干提示信息,同时接收用户输入的值作为返同值该值类型是一个字符串。 【知识模块】 模块与 VBA编程基础 5 【正确答案】 C 【试题解析】 本题考查 vBA中数组的知识。数组变量由变量名和数组下标构成,我们通
18、常使用 Dim语句来定义数组,其格式为: Dim数组名 (下标下限 to下标上限 )As 数据类型 其中下标下限缺省为 0。数组中的元素个数即为下标上限 -下标下限 +1。 【知识模块】 模块与 VBA编程基础 6 【正确答案】 C 【试题解析】 Enabled属性指定一个控件能否接受焦点和响应用户产生的事件。如果启用对象,则该值为 Tme。如果为 False,则用户不能使用鼠标、击键、加速键或热键处理该控件。 visible决定对象是否可见,如果属性值为 Tnle,则控件可见,如果属性为 False,则控件不可见。 【知识模块】 模块与 VBA编程基础 7 【正确答案 】 D 【试题解析】
19、SQL语句是将雇员表中的所有数据查询出来,并显示在 SubT窗体上。 【知识模块】 模块与 VBA编程基础 8 【正确答案】 B 【试题解析】 DateDiff函数返回变量型 (长型 ),指定两个指定的日期之间的时间间隔数。 语法: DateDiff(interval, datel, date2, firstdayofweek, firstweekofyear)。 【知识模块】 模块与 VBA编程基础 9 【正确答案】 C 【试题解析】 变量名必须以字母开头 ,大小写等价,不能包括空格或除下划线“_”之外的其他字符,不能使用 VBA的关键字,变量名长度小于 255个字符,本题中选项 C)为关键
20、字,不能作为变量名使用。 【知识模块】 模块与 VBA编程基础 10 【正确答案】 A 【试题解析】 在 VBA编程过程中,如果在代码中要反复使用相同的值,或者代表一些具有特定意义的数字或字符串,可以用符号常量形式来表示,符号常量使用关键字 Const来定义,格式如下: Const符号常量名称:常量值 【知识模块】 模块与 VBA编程基础 11 【正确答案】 A 【试题解析】 在到达文件末尾之前, EOF函数一直返回 False,到达文件末尾时, EOF返回 True FileLcn函数返回一个文件的长度,单位为字节; Len返回文本串的字符数; LOF函数返回某文件的字节数。 【知识模块】
21、模块与 VBA编程基础 12 【正确答案】 B 【试题解析】 本题考查 VBA中 Do UntilLoop 循环的知识。对于这种循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体;如果是后判断条件,则无论条件如何至少执行一次循环体 。在 Until循环中条件为 False时执行循环体,条件为。 True时退出循环;在 While循环中条件为 True时执行循环体,条件为 False时退出循环,这一点要注意区分清楚。本题中是先判断条件,条件值为 0表示条件是 False,则至少执行一次循环体。 【知识模块】 模块与 VBA编程基础 13 【正确答案】 C
22、 【试题解析】 本题考查数组和二重循环的知识。在这个问题中,我们实际上可以分析出,数组元素的值就是该元素的两个下标之积 (循环范围内 )。所以最后的三个数组元素的和也就是 2*5+3*4+4*5=42。 【知识模块】 模块与 VBA编程基础 14 【正确答案】 C 【试题解析】 本题考查 VBA程序设计中的多分支选择和循环的知识。在本题的程序中,共循环三次,第一次 i的值为 1,故此执行 Case语句中的 a=a+1;第二次 i的值为 2,故此执行 Case语句中的 a=a+2;第一次 i的值为 3,故此执行 Case语句中的 a=a+1。所以最后 a的值为 1+1+2+1=5。 【知识模块】
23、 模块与 VBA编程基础 15 【正确答案】 A 【试题解析】 本题考查二重循环的知识。在这个二重循环中,外 循环的执行次数为 4,内循环的执行次数也为 4,并且每次内循环退出后都要换行,所以最后结果为一个 4*4的矩阵,矩阵的每个元素都为 “*”。 【知识模块】 模块与 VBA编程基础 16 【正确答案】 C 【试题解析】 “条件式 ”放在 While或 Until后面。 【知识模块】 模块与 VBA编程基础 17 【正确答案】 C 【试题解析】 本题考查循环的基础知识。本题目要求循环 3次,当第 3次循环结束时 x的值为 7,而 Until型循环的特点是当条件表达式为真的时候结束循环,故此
24、条件应该是 x =7。 【知识模块】 模块与 VBA编程基础 18 【正确答案】 B 【试题解析】 从函数 P的代码可知,其功能是计算从 1到 N的和,在命令按钮的单击事件代码中,可知 S为 P(1), P(2), P(3), P(4)的和,显然 P(1)=1,P(2)=1+2=3, P(3)=1+2+3=6, P(4)=1+2+3+4=10,所以 S=1+3+6+10=20。 【知识模块】 模块与 VBA编程基础 19 【正确答案】 C 【试题解析】 Do WhileLoop 循环结构是当条件为假时,重复执行循环体,直至条件 表达式为真,结束循环。每次循环对应的 i值:。 【知识模块】 模块
25、与 VBA编程基础 20 【正确答案】 D 【试题解析】 此处嵌套三层循环,最外层循环总是把 x值初始化为 3,所以只看内两层循环的次数及累加,内两层一共循环 3*2=6次,每次 x的值累加 3,即共累加 6*3=18,再加上初始值 x=3+18=21。 【知识模块】 模块与 VBA编程基础 21 【正确答案】 D 【试题解析】 Do WhileLoop 循环结构是当条件为假时,重复执行循环体,直至条件表达式为真,结束循环。 。 【知识模块】 模块与 VBA编程基础 22 【正确答案】 B 【试题解析】 根据题意可知, For循环的步长为 3,只有当 i分别为 1和 4时才会执行循环体,所以该
26、事件的最终结果是 4。 【知识模块】 模块与 VBA编程基础 23 【正确答案】 D 【试题解析】 根据题意,两个 For执行的过程中,各变量的值如下所示:由上表可知,当 i为2、 3、 5、 7时,在立即窗口中显示 i的值。 【知识模块】 模块与 VBA编程基础 24 【正确答案】 B 【试题解析】 根据题意,执行的过程中,各变量的 值如下所示:【知识模块】 模块与 VBA编程基础 25 【正确答案】 B 【试题解析】 本题考查 VBA中参数传递的知识。在 VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用 ByVal声明,说明此参数为传值调用;若用 ByRe
27、f声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递。即形参的结果会传递给实参。 【知识模块】 模块与 VBA编程基础 26 【正确答案】 B 【试题解析】 本题考查过程的知识。过程可以嵌套调用,但是不得嵌套定义。 【知识模块】 模块与 VBA编程基础 27 【正确答案】 D 【试题解析】 子过程的调用形式有两种: Call子过程名 (实参 ) 或 子过程名 实参 说明: 用 Call关键字调用子过程时,若有实参,则多个实参之间必须用逗号分隔,并把实参用圆括号括起,无实参时可省略圆括号;不使用 Call关键字,若有实参,也不需用圆括号括起。 若实参要获得子过程的返回值,则实参只能是变量,不能是常量、表达式或控件名。 【知识模块】 模块与 VBA编程基础 28 【正确答案】 A 【 试题解析】 在 VBA中,能自动检查出来的错误是语法错误,如有语法错误则程序不会继续运行,逻辑错误、注释错误是不能自动检查出来的,逻辑错误需要调试,对结果进行分析,需要人为检查,注释错误不影响程序执行。 【知识模块】 模块与 VBA编程基础