当前位置:首页 > Access数据库程序设计
2013年计算机等级考试二级Access练习13
(28)已知程序段:
s = 0
For i = 1 To 10 Step 2
s = s + 1
i = i * 2
Next i
当循环结束后,变量i和s的值分别为______
A)10 4
B)11 3
C)22 3
D)16 4
(29)以下内容中不属于VBA提供的数据验证函数的是
A)IsText
B)IsDate
C)IsNumeric 考试大论坛
D)IsNull
(30)给定日期DD,可以计算该日期当月最大天数的正确表达式是
A)Day(DD)
B)Day(DateSerial(Year(DD),Month(DD),day(DD)))
C)Day(DateSerial(Year(DD),Month(DD),0))
D)Day(DateSerial(Year(DD),Month(DD)+1,0))
(31)假定有以下两个过程:
Sub S1(ByVal x As Integer, ByVal y As Integer)
Dim t As Integer
t = x
x = y
y = t
End Sub
Sub S2(x As Integer, y As Integer)
Dim t As Integer
t = x
x = y
y = t
End Sub
则以下说法中正确的是
A)用过程S1可以实现交换两个变量的值的操作,S2不能实现
B)用过程S2可以实现交换两个变量的值的操作,S1不能实现
C)用过程S1和S2都可以实现交换两个变量的值的操作
D)用过程S1和S2都不能实现交换两个变量的值的操作
(32)在窗体中有一个命令按钮Command1,编写事件代码如下:
Private Sub Command1_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
(33)在窗体中有一个命令按钮Command1和一个文本框Text1,编写事件代码如下:
Private 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
打开窗体运行后,单击命令按钮,文本框Text1输出的结果是
A)6 B)12 C)18 D)21
(34)在窗体中有一个命令按钮run35,对应的事件代码如下:
Private Sub run35_Enter( )
Dim num As Integer
Dim a As Integer
Dim b As Integer
Dim i As Integer
For i= 1 To 10
num = InputBox("请输入数据:", "输入",1)
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
运行以上事件所完成的功能是
A)对输入的10个数据求累加和
B)对输入的10个数据求各自的余数,然后再进行累加
C)对输入的10个数据分别统计有几个是整数,有几个是非整数
D)对输入的10个数据分别统计有几个是奇数,有几个是偶数
(35)以下是宏m的操作序列设计:
条件 操作序列 操作参数
MsgBox消息为"AA"
[tt]>1 MsgBox消息为"BB"
… MsgBox消息为"CC"
现设置宏m为窗体"fTest"上名为"bTest"命令按钮的单击事件属性,打开窗体"fTest"运行后,在窗体上名为"tt"的文本框内输入数字1,然后单击命令按钮bTest,则
A)屏幕会先后弹出三个消息框,分别显示消息"AA"、"BB"、"CC"
B)屏幕会弹出一个消息框,显示消息"AA"
C)屏幕会先后弹出两个消息框,分别显示消息"AA"和"BB"
D)屏幕会先后弹出两个消息框,分别显示消息"AA"和"CC"
(28)C
【解析】第一次循环后,s=s+1=1,i = i * 2=1*2=2;第二次循环后,s=s+1=2,i = i * 2=(2+2)*2=8;第三次循环后,s=s+1=3,i = i * 2=(8+2)*2=20;由于Next i,所以i=i+2=20+2=22,此时22>10,循环结束,所以i的值为22,s的值为3。所以本题答案是C。
(29)A
【解析】VBA常用的验证函数为:IsNumeric、IsDate、IsNull、IsEmpty、IsArray、IsError、IsObject。所以本题答案是A。
(30)D
【解析】Day函数是返回日期表达式日期的整数。Year函数是返回日期表达式年份的整数。Month函数是返回日期表达式月份的整数。DateSerial函数是返回指定年月日的日期。格式为DateSerial(表达式1、表达式2、表达式3),如果表达式3为0,则DateSerial返回表达式2所写前一个月的最后一天的日期。要返回当月的最后一天的日期,表达式2就要等于Month(DD)+1。所以本题答案是D。
(31)B
【解析】过程定义时,如果形式参数被说明为传值(ByVal项),则过程调用只是相应位置实参的值"单向"传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化均不会反馈、影响实参的值。由于这个过程,数据的传递只是单向性,故称为"传值调用"的"单向"作用形式。反之,如果形式参数被说明为传址(ByRef项),则过程调用是将相应位置实参的地址传送给形参处理,而被调用过程内部对形参的任何操作引起的形参值的变化又会反向影响实参的值。在这个过程中,数据的传递具有双向性,故称为"传址调用"的"双向"作用形式。在过程定义时,如果未做参数说明,则默认为传址调用。本题过程S1采用的是传值的方式,当然无法实现交换两个变量的值的操作。过程S2形式参数未说明,则默认采用的是传址的方式,可以实现两个变量的值的交换操作。所以本题答案是B。
(32)B
【解析】首先看程序中的Function P函数,在该函数中,首先定义了整型变量Sum,并为变量Sum赋初值0,然后设置了一个For循环,将函数参数作为For循环的控制条件,通过语句"Sum = Sum + i",将循环次数累计相加。在按钮单击事件"Command1_Click()"通过语句"s=p(1)+p(2)+p(3)+p(4)"调用函数并将函数结果用于计算,下面就来分析一下程序运行过程:
P(1),带入函数P的参数N=1,For循环运行1次:i=1:Sum=0+1=1,所以P(1)=1;
P(2),带入函数P的参数N=2,For循环运行2次:i=1:Sum=0+1=1,i=2:Sum=1+2=3,所以P(2)=3;
P(3),带入函数P的参数N=3,For循环运行3次:i=1:Sum=0+1=1,i=2:Sum=1+2=3,i=3:Sum=3+3=6,所以P(3)=6;
P(4)带入函数P的参数N=3,For循环运行4次:i=1:Sum=0+1=1,i=2:Sum=1+2=3,i=3:Sum=3+3=6,i=4:Sum=6+4=10,所以P(4)=10;那么,s = P(1)+P(2) +P(3) +P(4)= 1+3+6+10=20,所以输出结果为20。所以本题答案为B。
(33)D
【解析】首先看一下程序结构,本程序有三个For循环,赋值语句"x = 3"在第一层循环语句"For I=1 To 4"内,也就是说,无论I的值是1还是4,循环的结果都一样,因为在第一轮循环执行结束,第二轮循环开始时,变量x的值都会恢复为3,所以可以将"For I=1 To 4"看作只执行了一次。根据"For j = 1 To 3"和"For k = 1 To 2"这个嵌套循环,我们可以推算出语句"x = x + 3"执行了6次,循环过程如下:j=1时:k=1,x=3+3=6,k=2,x=6+3=9;j=2时:k=1,x=9+3=12,k=2,x=12+3=15;j=3时:k=1,x=15+3=18,k=2,x=18+3=21。所以程序通过语句"Text1.value = Str(x)",在文本框中输出的结果为21。所以本题答案为D。
(34)D
【解析】取整函数Int(<数值表达式>):返回数值表达式的整数部分。本题中当输入的数num除2取整等于num除2的值时,即num为偶数时,变量a加1;当输入的数为奇数时变量b加1。变量a用来统计偶数的个数,变量b用来统计奇数的个数。所以本题答案为D。
(35)D
【解析】由于消息"AA"和"CC"都没有设置条件,而消息"BB"设置的条件为[tt]>1。所以,打开窗体"fTest"运行后,在窗体上名为"tt"的文本框内输入数字1,不符合消息"BB"的条件,因此不会显示消息"BB",而显示没有设置条件的消息"AA"和"CC"。故本题答案选D。