1、国家二级 ACCESS机试选择题(模块与 VBA编程基础)模拟试卷 7及答案与解析 一、选择题 1 下列不属于类模块对象基本特征的是 ( A)事件 ( B)属性 ( C)方法 ( D)函数 2 下列叙述中,正确的是 ( A) Sub过程无返回值,不能定义返回值类型 ( B) Sub过程有返回值,返回值类型只能是符号常量 ( C) Sub过程有返回值,返回值类型可在调用过程时动态决定 ( D) Sub过程有返回值,返回值类型可由定义时的 As子句声明 3 在窗体中添加一个命令按钮 (名称为 Command1),然后 编写如下代码: Private Sub Command 1_Click() a=
2、0: b=5: c=6 MsgBox a=b+c End Sub 窗体打开运行后,如果单击命令按钮,则消息框的输出结果为 ( A) 11 ( B) a=11 ( C) 0 ( D) False 4 如下程序段定义了学生成绩的记录类型,由学号、姓名和三门课程成绩 (百分制 )组成。 Typc Stud no As Integer name As String score(1 to 3)As Single End Tpe 若对某个 学生的各个数据项进行赋值,下列程序段中正确的是 ( A) Dim S As Stud Stud no=1001 Stud name=“舒宜 “ Stud score=7
3、8, 88, 96 ( B) Dim S As Stud S no=1001 S name=“舒宜 “ S score=78, 88, 96 ( C) Dim S AS Stud Stud no=1001 Stud name=“舒宜 “ Stud score(1)=78 Stud score(2)=88 Stud score(3)=96 ( D) Dim S As Stud S no=1001 S name=“舒宜 “ S score(1)=78 S score(1)=88 S score(1)=96 5 表达式 Fix(-3 25)和 Fix(3 75)的结果分别是 ( A) -3, 3 (
4、 B) -4, 3 ( C) -3, 4 ( D) -4, 4 6 用于获得字符串 S最左边 4个字符的函数是 ( A) Leff(S, 4) ( B) Leff(S, 1, 4) ( C) Leftstr(S, 4) ( D) Leftstr(S, 0, 4) 7 能够实现从指定记录集里检索特定字段值的函数是 ( A) N2 ( B) Find ( C) Lookup ( D) ELookup 8 要将一个数字字符串转换成对应的数值,应使用的函数是 ( A) Val ( B) Single ( C) Asc ( D) Space 9 表达式 “B=INT(A+0 5)”的功能是 ( A)将变
5、量 A保留小数点后 1位 ( B)将变量 A四舍五入取整 ( C)将变量 A保留小数点后 5位 ( D)舍去变量 A的小数部分 10 可以用 InputBox函数产生 “输入对话框 ”。执行语句: st=InputBox(“请输入字符串 “, “字符串 对话框 “, “aaaa“) 当用户输入字符串 “bbbb”,按 OK按钮后,变量 st的内容是 ( A) aaaa ( B)请输入字符串 ( C)字符串对话框 ( D) bbbb 11 下列表达式中,能够保留变量 x整数部分并进行四舍五入的是 ( A) Fix(x) ( B) Rnd(x) ( C) Round(x) ( D) Im(x) 1
6、2 假定有以下程序段 n=0 for i=1 to 3 for i=4 to-1 n=n+1 next j next i 运行完毕后, n的值是 ( A) 0 ( B) 3 ( C) 4 ( D) 12 13 在窗体中添加一个名称为 Command1的命令按钮,然后编写如下事件代码: Private Sub Command1_Click() A=75 IfA 60 Then I=1 IfA 70 Then I=2 IfA 80 Then I=3 IfA 90 Then I=4 MsgBox I End Sub 窗体打开运行后,单击命令按钮,则消息框的输出结果是 ( A) 1 ( B) 2 (
7、C) 3 ( D) 4 14 设有如下程序: Private Sub Command1_C1ick() Dim sum As Double, x As Double Sum=0 n=0 For i=1 To 5 x=n i n=n+1 sum=sum+x Next I End Sub 该程序通过 For循环来计算一个表达式的值,这个表达式是 ( A) 1+1 2+2 3+3 4+4 5 ( B) 1+1 2+1 3+1 4+1 5 ( C) 1 2+2 3+3 4+4 5 ( D) 1 2+1 3+1 4+1 5 15 VBA程序流程控制的方式是 ( A)顺序控制和分支控制 ( B)顺序控制和
8、循环控制 ( C)循环控 制和分支控制 ( D)顺序、分支和循环控制 16 在窗体中有一个命令按钮 (名称为 run34),对应的事件代码如下: Private Sub run34_Click() sum=0 For i=10 To 1 Step-2 sum=sum+i Next i MsgBox sum End Sub 运行以上事件,程序的输出结果是 ( A) 10 ( B) 30 ( C) 55 ( D)其他结果 17 在窗体中添加一个名称为 Command1的命令按钮,然后编写如下事件代码: Private Sub Command1_Click() MsgBox f(24, 18) En
9、d Sub Public Function f(m As Integer, n As Integer)As Integer Do While m n Do While m n m=m-n Loop Do While m n n=n-m Loop Loop f=m End Function 窗体打开运行后,单击命令按钮,则消息框的输出结果是 ( A) 2 ( B) 4 ( C) 6 ( D) 8 18 由 “For i=1 To 9 Step-3”决定的 循环结构,其循环体将被执行 ( A) 0次 ( B) 1次 ( C) 4次 ( D) 5次 19 InputBox函数的返回值类型是 ( A)
10、数值 ( B)字符串 ( C)变体 ( D)视输入的数据而定 20 窗体中有命令按钮 run34,对应的事件代码如下: Private Sub run34_Enter() Dim sumAs Integer, aAs Integer, b As Integer, i As Integer For i=1 To 10 num=InputBox(“请输入数据: “, “输入 “) If Int(num 2)=num 2 Then a=a+1 Else b=b+1 End If Next i MsgBox(“运行结果: a=“& Str(a) &“, b: “&Str(b) End Sub 运行以上
11、事件过程,所完成的功能是 ( A)对输入的 10个数据求累加和 ( B)对输入的 10个数据求各自的余数,然后再进行累加 ( C)对输入的 10个数据分别统计奇数和偶数的个数 ( D)对输入的 10个数据分别统计整数和非整数的个数 21 有如下事件程序,运行该程序后输出结果是 Private Sub Command33_Click() DimxAs Integer, YAs Integer x=1: y=0 Do Until y =25 y=y+x*x x=x+1 Loop MsgBox“x=“& x &“, y=“&y End Sub ( A) x=1, y=0 ( B) x=4, y=25
12、 ( C) x=5, y=30 ( D)输出其他结果 22 窗体中有命令按钮 Command32,其 Click事件代码如下。该事件的完整功能是:接收从键盘输入的 10个大于 0的整数,找出其中的最大值和对应的输入位置。 Private Sub Command32_Click() max=0 max_n=0 For i=1 To 10 num=Val(InputBox(“请输入第 “&i&“个大于 0的整数: “) If_Then max=num max_n=i End If Next i MsgBox(“最大值为第 “&max_n&“个输入的 “&max) End Sub 程序空白处应该填入
13、的表达式是 ( A) num i ( B) i max ( C) num max ( D) num max 23 运行下列过程,当输入一组数据: 10, 20, 50, 80, 40, 30, 90, 100, 60,70,输出的结果应该是 Sub p1() Dim i, j, arr(11)As Integer k=1 While k =10 arr(k)=Val(InputBox(“请输入第 “& k &“个数: “, “输入窗口 “) k=k+1 Wend For i=1 To 9 j=i+1 If arr(i) arr(j)Then temp=arr(i) arr(i)=arr(j)
14、arr(j)=temp End If Debug Print art(i) Next i End Sub ( A)无序数列 ( B)升序数列 ( C)降序数列 ( D)原输入数列 24 假定有如下的 Sub过程: Sub sfun(x As Single, y As Single) t=x x=t y y=t Mod y End Sub 在窗体上添加一个命令按钮 (名为 Command1),然后编写如下事件过程: Private Sub Command1-Click() Dim a as single Dim b as single a=5 b=4 sfun a, b MsgBox a & c
15、hr(10)+chr(13)&b End Sub 打开窗体运行后,单击命令按钮,消息框的两行输出内容分别为 ( A) 1和 1 ( B) 1 25和 1 ( C) 1 25和 4 ( D) 5和 4 25 若要在子过程 Procl调用后返回两个变量的结果,下列过程定义语句中有效的是 ( A) Sub Procl(n, m) ( B) Sub Procl(ByVal n, m) ( C) Sub Procl(n, BYVal m) ( D) Sub Procl(ByVal n, ByVal m) 26 在窗体上有一个命令按钮 Command1, 编写事件代码如下: Private Sub Com
16、mandl_Click() Dim x As Integer, y As Integer x=12: y=32 Call Proc(x, y) End Sub Public Sub Proch As Integer, ByVal m As Integer n=n Mod 10 m=m Mod 10 End Sub 打开窗体运行后,单击命令按钮,立即窗口上输出的结果是 ( A) 2 32 ( B) 12 3 ( C) 2 2 ( D) 12 32 27 不属于 VBA提供的程序运行错误处理的语句结构是 ( A) On Error Then标号 ( B) On Error Goto标号 ( C)
17、On Error Resume Next ( D) On Error Goto 0 28 要显示当前过程中的所有变量及对象的取值,可以利用的调试窗口是 ( A)监视窗口 ( B)调用堆栈 ( C)立即窗口 ( D)本地窗口 国家二级 ACCESS机试选择题(模块与 VBA编程基础)模拟试卷 7答案与解析 一、选择题 1 【正确答案】 D 【试题解析】 类模块中没有函数的概念。 【知识模块】 模块与 VBA编程基础 2 【正确答案】 A 【试题解析】 Sub过程 (又称子过程 )以关键词 Sub开始,以 End Sub结束,其定义语句语法格式为: PublicPrivate StaticSub子
18、过程名 (形参 )As数据类型 子过程语句 Exit Sub 子过程语句 End Sub 对于子过程,可以传送参数和使用参数来调用它,但不返回任何值。 【知识模块】 模块与 VBA编程基础 3 【正确 答案】 D 【试题解析】 本题考查 Msgbox函数的知识。在 VBA中的 MsgBox函数中,第一个参数是提示信息,第二个参数是按钮和图表的类型,若省略的话要有逗号占位,第三个参数是对话框的标题。其中第一个参数必须为字符串或者数字,不能是逻辑表达式或赋值语句。如果是非法数据,将会在消息框中显示 “False”。 【知识模块】 模块与 VBA编程基础 4 【正确答案】 D 【试题解析】 本题考查
19、记录类型和数组的知识。在 VBA中,可以使用 Type关键字来自定义记录类型,定义好记录类型之后,就可以声 明记录型变量。要想引用记录变量中的成员必须使用运算符,格式为变量名成员名。当某个成员是数组的时候,对数组元素的访问要遵循数组元素的访问原则即数组名 (下标 )的形式。故此 D选项正确。 【知识模块】 模块与 VBA编程基础 5 【正确答案】 A 【试题解析】 取整函数 Fix(数值表达式 ):返回数值表达式的整数部分。 【知识模块】 模块与 VBA编程基础 6 【正确答案】 A 【试题解析】 LeR函数的格式是: Left(字符表达式,数值表达式 )。其功能是返回一个值,该值是从字符表
20、达式左侧第 1个字符开始,截取的若干个字符。其中,字符个数是数值表达式的值。当字符表达式是 Null时,返回 Null值;当数值表达式值为 0时,返回一个空串;当数值表达式大于或等于字符表达式的字符个数时,返回字符表达式。 【知识模块】 模块与 VBA编程基础 7 【正确答案】 D 【试题解析】 Nz函数可以将 Null值转换为 0、空字符串 (“)的指定值。 Dlookup函数是从指定记录集里检索特定字段的值。 【知识模块】 模块与 VBA编程基础 8 【正确答案】 A 【试题解析】 Val函数:返回包含于字符串内的数字,将其作为适当类型的数字值; Asc函数:返回与字符串的第一个字母对应的
21、 ANSI字符代码; Space函数:返回指定空格的字符串: Single为数据类型,不是函数。 【知识模块】 模块与 VBA编程基础 9 【正确答案】 B 【试题解析】 Int(数值表达式 )函数为取整函数,返回数值表达式的整数部分。参数为负值时,返回小于等于参数值的第一个负数。 【知识模块】 模块与 VBA编程基础 10 【正确答案】 D 【试题解析】 输入框用于在一个对话框中显 示提示,等待用户输入正文并按下按钮、返回包含文本框内容的字符串数据信息。它的功能在 VBA中是以函数的形式调用,其使用格式如下: InputBox(prompt, title, default, xpos, yp
22、os,helpfile, context)InputBox有关参数说明如表 9-4所示。 【知识模块】 模块与 VBA编程基础 11 【正确答案】 C 【试题解析】 Fix(x)和 Int(x)返回 x的整数部分,对于小数部分完全舍弃。 Rnd(x)返回一个随机数, Round(x)保 留 x的整数部分并进行四舍五入。 【知识模块】 模块与 VBA编程基础 12 【正确答案】 D 【试题解析】 本题考查 VBA中嵌套 For循环的知识。这种问题要注意分析清楚每次循环的变化以及循环的次数。在这个循环中,内循环执行 4次,外循环执行 3次,所以里面的循环体语句 n=n+1共执行 12次,所以最终
23、n的值为 12。 【知识模块】 模块与 VBA编程基础 13 【正确答案】 B 【试题解析】 本题考查 VBA中选择结构的知识。在本题中用了多个 If分支结构,这些结构是顺序的而不是嵌套的,所以 会顺序执行判断是否满足条件。首先75大于 60。所以 i=1,然后再判断 75大于 70。所以 i=2,再接着判断 75既不大于80也不大于 90,所以最后消息框里输出的 i值为 2。 【知识模块】 模块与 VBA编程基础 14 【正确答案】 C 【试题解析】 本题考查 VBA中循环结构的知识。这类问题需要分析出每一次循环所做的操作。第一次循环时, i=1, n=0, x=0 1,所以累加上去的是 0
24、 1;第二次循环时, i=2, n=1, x=1 2,所以累加上去的是 1 2;第三次循环时, i=3,n=2, x=2 3,所以累加 上去的是 2 3;循环 5次后累加的应该是 0 1+1 2+23+3 4+4 5。 【知识模块】 模块与 VBA编程基础 15 【正确答案】 D 【试题解析】 本题考查结构化程序设计的知识。 VBA是一种结构化的程序设计方式,结构化的程序设计方式要求程序只能由顺序、分支和循环三种基本控制结构组成。 【知识模块】 模块与 VBA编程基础 16 【正确答案】 B 【试题解析】 i=10,每循环一次递减 2。 第一次循环结果: i=10, sum=sum+i=0+1
25、0=10 第二次循环结果: i=8, sum=sum+i=10+8=18 第三次循环结果: i=6, sum=sum+i=18+6=24 第四次循环结果: i=4, sum=sum+i=24+4=28 第五次循环结果: i=2, sum=sum+i=28+2=30。 【知识模块】 模块与 VBA编程基础 17 【正确答案】 C 【试题解析】 本题考查 VBA程序设计的知识。当调用函数时,形参 m=24,n=18;然后进入循环,由于 m n,所以执行 m=m-n, m的值变为 6;第 2次循环时由于 m n,所以执行 n=n-m, n的值变为 12;第 3次循环时由 于 m n,所以执行 n=n
26、-m, n的值变为 6,此时结束循环返回 6。 【知识模块】 模块与 VBA编程基础 18 【正确答案】 A 【试题解析】 循环变量 I从 1到 9按递减顺序,由于 1-3=-2不满足条件,所以一次也不执行。 【知识模块】 模块与 VBA编程基础 19 【正确答案】 B 【试题解析】 InputBox输入框:在对话框中显示提示,等待使用者输入文字或按一下按钮,再返回包含文本框内容的字符串类型值。 【知识模块】 模块与 VBA编程基础 20 【正确答案】 C 【试题解析】 因 num变量为整型,所以每次输入的数据是整数, int函数是取整函数,如果 hum为整数,则 int(hum 2)与 nu
27、m 2相等,否则不等,所以此事件代码完成的功能是统计输入奇数与偶数的个数。 【知识模块】 模块与 VBA编程基础 21 【正确答案】 A 【试题解析】 Do UntilLoop 循环结构是当条件为假时,重复执行循环体,直至条件表达式为真,结束循环。本题中循环条件是 y=0 =25条件为真,即不执行循环体,所以 x、 y的值即为初始值。 【知识模块】 模块与 VBA编程 基础 22 【正确答案】 C 【试题解析】 由题意可知, max代表最大值, max n代表最大值的位置,而 num为输入的数值。在 IF语句中,将 num的值赋予 max,只有当 num max时,才能实现将最大值查找出来,并
28、记录其位置。 【知识模块】 模块与 VBA编程基础 23 【正确答案】 A 【试题解析】 本段代码段是一个单重循环,对于数组中的每一个元素,依次与后面的元素进行比较,较大的数放在前面。运行这个过程,返回序列为: 10、 20、50、 40、 30、 80、 90、 60、 70、 100,表 明是一个无序序列。 【知识模块】 模块与 VBA编程基础 24 【正确答案】 B 【试题解析】 本题考查 VBA中参数传递的知识。在 VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时没有说明传递类型,则默认为传址传递,即形参的结果会传递给实参。本例就是传址传递,所以过程调用时
29、x=a,也就是 5; y=b,也就是 4。在过程内 x的值变为 5 4也就是1 25, y的值变为 5Mod4也就是 1。过程调用结束时 x和 y的值分别回送给 a和b,所以选项 B正确。 【知识模块】 模块与 VBA编程基础 25 【正确答案】 A 【试题解析】 本题考查 VBA中参数传递的知识。在 VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在过程声明时形参用: ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用 ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到实参;没有说明传递类型,则默认为传址传递。 【知识模块】 模块与 VBA编
30、程基础 26 【正确答案】 A 【试题解析】 在 VBA的过程调用时,参数有两种传递方式:传址传递和传值传递。如果在 过程声明时形参用 ByVal声明,说明此参数为传值调用,此时形参的变化不会返回到实参;若用 ByRef声明,说明此参数为传址调用,此时形参的变化将会返回到实参;没有说明传递类型,则默认为传址传递。因此调用函数实参 x是传址方式传递,实参 y为传值方式传递,调用函数后 x值在函数中随形参改变,即 x=x mod 10=12mod10=2,而 y不随之改变。 【知识模块】 模块与 VBA编程基础 27 【正确答案】 A 【试题解析】 本题考查 VBA中程序运行错误处理的知识。在 V
31、BA中,程序运行错误处理的语句有三 种,分别是: On Error Goto标号,在遇到错误发生时程序转移到标号所指位置代码执行; On Error Resume Next,在遇到错误发生时不会考虑错误并继续执行下一条语句; On Error Goto 0,关闭错误处理。 【知识模块】 模块与 VBA编程基础 28 【正确答案】 D 【试题解析】 本题考查程序调试的知识。程序调试的时候可以利用几种辅助窗口来辅助调试,它们分别是: “本地 ”窗口 显示当前过程中变量的值; “立即 ”窗口 当应用程序处于中断模式时,允许运行代码或查询变量值; “监视 ”窗口 显示选定表达式的值;快速监视 当应用程序处于中断模式时,列出表达式的当前值;调用堆栈在 中断模式中,显示一个对话框,其中列出所有被调用且未完成运行的过程。 【知识模块】 模块与 VBA编程基础