计算机国考二级辅导AccessVBA其它编程题及参考答案.docx
《计算机国考二级辅导AccessVBA其它编程题及参考答案.docx》由会员分享,可在线阅读,更多相关《计算机国考二级辅导AccessVBA其它编程题及参考答案.docx(22页珍藏版)》请在冰豆网上搜索。
计算机国考二级辅导AccessVBA其它编程题及参考答案
VBA编程的真题链接
一、选择题
(1)在窗体中有一个文本框Text1,编写事件代码如下:
PrivateSubForm_Click()
X=val(Inputbox("输入x的值"))
Y=1
IfX<>0ThenY=2
Text1.Value=Y
EndSub
打开窗体运行后,在输入框中输入整数12,文本框Text1中输出的结果是______。
A)1B)2C)3D)4
(2)在窗体中有一个命令按钮Command1,编写事件代码如下:
PrivateSubCommand1_Click()
DimsAsInteger
s=P
(1)+P
(2)+P(3)+P(4)
debug.Prints
EndSub
PublicFunctionP(NAsInteger)
DimSumAsInteger
Sum=0
Fori=1ToN
Sum=Sum+i
Nexti
P=Sum
EndFunction
打开窗体运行后,单击命令按钮,输出结果是______。
A)15B)20C)25D)35
(3)下列过程的功能是:
通过对象变量返回当前窗体的Recordset属性记录集引用,消息框中输出记录集的记录(即窗体记录源)个数。
SubGetRecNum()
DimrsAsObject
Setrs=Me.Recordset
MsgBox______
EndSub
程序空白处应填写的是______。
A)CountB)rs.CountC)RecordCountD)rs.RecordCount
(4)在窗体上有一个命令按钮Command1和一个文本框Text1,编写事件代码如下:
PrivateSubCommand1_Click()
Dimi,j,x
Fori=1To20Step2
x=0
Forj=iTo20Step3
x=x+1
Nextj
Nexti
Text1.Value=Str(x)
EndSub
打开窗体运行后,单击命令按钮,文本框中显示的结果是______。
A)1B)7C)17D)400
(5)在窗体上有一个命令按钮Command1,编写事件代码如下:
PrivateSubCommand1_Click()
Dimd1AsDate
Dimd2AsDate
d1=#12/25/2009#
d2=#1/5/2010#
MsgBoxDateDiff("ww",d1,d2)
EndSub
打开窗体运行后,单击命令按钮,消息框中输出的结果是______。
A)1B)2C)10D)11
(6)下列程序段的功能是实现“学生”表中“年龄”字段值加1
DimStrAsString
Str="____________"
Docmd.RunSQLStr
空白处应填入的程序代码是______。
A)年龄=年龄+1B)Update学生Set年龄=年龄+1
C)Set年龄=年龄+1D)Edit学生Set年龄=年龄+1
(7)窗体中有命令按钮Command1和文本框Text1,事件过程如下:
Functionresult(ByValxAsInteger)AsBoolean
IfxMod2=0Then
result=True
Else
result=False
EndIf
EndFunction
PrivateSubCommand1_Click()
x=Val(InputBox("请输入一个整数"))
If______Then
Text1=Str(x)&"是偶数."
Else
Text1=Str(x)&"是奇数."
EndIf
EndSub
运行程序,单击命令按钮,输入19,在Text1中会显示“19是奇数.”。
那么在程序的空白处应填写______。
A)result(x)="偶数"B)result(x)
C)result(x)="奇数"D)NOTresult(x)
(8)窗体中有命令按钮run34,对应的事件代码如下:
PrivateSubrun34_Enter()
DimnumAsInteger,aAsInteger,bAsInteger,iAsInteger
Fori=1To10
num=InputBox("请输入数据:
","输入")
IfInt(num/2)=num/2Then
a=a+1
Else
b=b+1
EndIf
Nexti
MsgBox("运行结果:
a="&Str(a)&",b="&Str(b))
EndSub
运行以上事件过程,所完成的功能是______。
A)对输入的10个数据求累加和
B)对输入的10个数据求各自的余数,然后再进行累加
C)对输入的10个数据分别统计奇数和偶数的个数
D)对输入的10个数据分别统计整数和非整数的个数
(9)运行下列程序,输入数据8、9、3、0后,窗体中显示结果是______。
PrivateSubForm_click()
DimsumAsInteger,mAsInteger
sum=0
Do
m=InputBox("输入m")
sum=sum+m
LoopUntilm=0
MsgBoxsum
EndSub
A)0B)17C)20D)21
(10)运行下列程序,结果是()。
PrivatesubCommand32_click()
f0=1:
f1=1:
k=1
DoWhilek<=5
f=f0+f1
f0=f1
f1=f
k=k+1
Loop
Msgbox"f="&f
endsub
A)f=5B)f=7C)f=8D)f=13
(11)有如下事件程序,运行该程序后输出结果是()。
PrivateSubcommand33_click()
DimyAsInteger,yAsInteger
x=1:
y=0
DoUntily<=25
y=y+x*x
x=x+1
Loop
MsgBox"x="&x&",y="&y
EndSub
A)x=1,y=0B)x=4,y=25
C)x=5,y=30D)输出其他结果
(12)下列程序的功能是计算sum=1+(1+3)+(1+3+5)+…+(1+3+5…+39),为保证程序正确完成上述功能,
空白处应填入的语句是()。
PrivateSubCommand34_click()
t=0:
m=1:
sum=0
Do
t=t+m
sum=sum+t
m=()
LoopWhilem<=39
MsgBox"sum="&sum
EndSub
A)m+1B)m+2C)t+1D)t+2
(13)下列程序的功能是返回当前窗体的记录集
PrivateSubgetRecNum()
DimrsAsObject
setrs=__________
MsgBoxrs.RecordCount
EndSub
为保证程序输出记录集(窗体记录源)的记录数,空白处应填入的语句是()。
A)RecordSetB)Me.RecordSet
C)RecordSourceD)Me.RecordSource
(14)若有以下窗体单击事件过程:
PrivateSubForm_Click()
result=1
Fori=1To6Step3
result=result*i
Nexti
MsgBoxresult
EndSub
打开窗体运行后,单击窗体,则消息框的输出内容是
A)1 B)4 C)15 D)120
(15)窗体中有命令按钮Command32,其Click事件代码如下。
该事件的完整功能是:
接收从键盘输入的10个大于0的整数,找出其中的最大值和对应的输入位置:
PrivateSubCommand32_Click()
max=0
max_n=0
Fori=1To10
num=Val(InputBox(“请输入第”&i&”个大于0的整数:
”))
if Then
max=num
max_n=i
EndIf
Nexti
MsgBox(“最大值为第”&max_n&”个输入的”&max)
EndSub
程序空白处应该填入的表达式是
A)num>i B)imax D)num(16)若有如下Sub过程:
Subsfun(xAsSingle,yAsSingle)
t=x
x=t/y
y=tMody
EndSub
往窗体中添加一个命令按钮Command33,对应的事件过程如下:
PrivateSubCommand33_Click()
DimaAsSingle
DimbAsSingle
a=5:
b=4
sfun(a,b)
MsgBoxa&chr(10)+chr(13)&b
EndSub
打开窗体运行后,单击命令按钮,消息框中有两行输出,内容分别为
A)1和1 B)1.25和1 C)1.25和4 D)5和4
(17)运行下列程序,显示的结果是
PrivateSubCommand34_Click()
i=0
Do
i=i+1
LoopWhilei<10
MsgBoxi
EndSub
A)0 B) 1 C)10 D)11
(18)运行下列程序,在立即窗口显示的结果是
PrivateSubCommand0_Click()
DimIAsInteger,JAsInteger
ForI=2To10
ForJ=2ToI/2
IfImodJ=0ThenExitFor
NextJ
IfJ>sqr(I)ThenDebug.PrintI;
NextI
EndSub
A)1579 B)468 C)3579 D) 2357
二、填空题
(1)子过程Test显示一个如下所示4×4的乘法表。
1*1=11*2=21*3=31*4=4
2*2=42*3=62*4=8
3*3=93*4=12
4*4=16
请在空白处填入适当的语句使子过程完成指定的功能。
SubText()
Dimi,jAsInteger
Fori=1To4
Forj=1To4
If【1】Then
Debug.Printi&"*"&j&"="&i*j&Space
(2),
EndIf
Nextj
Debug.Print
Nexti
Endsub
(2)有“数字时钟”窗体如下:
在窗口中有按钮“[开/关]时钟”,单击该按钮可以显示或隐藏时钟。
其中按钮的名称为“开关”,显示时间的文本框名称为“时钟”,计时器间隔已设置为500。
请在空白处填入适当的语句,使程序可以完成指定的功能。
DimflagAsInteger
PrivateSubForm_Load()
flag=1
EndSub
PrivateSubTimer1_Timer()'“计时器触发”事件过程
时钟=Time'在“时钟”文本框中显示当前时间
EndSub
PrivateSub开关_Click()'“开关”按钮的单击事件过程
If【2】Then
时钟.Visible=False
flag=0
Else
时钟.Visible=True
flag=1
EndIf
EndSub
(3)窗体中有两个命令铵钮:
“显示”(控件名为cmdDisplay)和“测试”(控件名为cmdTest)。
当单击“测试”按钮时,执行的事件功能是:
首先弹出消息框,若单击其中的“确定”按钮,则隐藏窗体上的“显示”按钮;否则直接返回到窗体中。
请在空白处填入适当的语句,使程序可以完成指定的功能。
PrivateSubcmdTest_Click()
Answer=【3】("隐藏按钮?
",vbOKCancel+vbQuestion,"Msg")
IfAnswer=vbOKThen
Me!
cmdDisplay.Visible=【4】
EndIf
EndSub
(4)对窗体test上文本框控件txtAge中输入的学生年龄数据进行验证。
要求:
该文本框中只接受大于等于15且小于等于30的数值数据,若输入超出范围则给出提示信息。
该文本控件的BeforeUpdate事件过程代码如下,请在空白处填入适当的语句,使程序可以完成指定的功能。
PrivateSubtxtAge_BeforeUpdate(CancelAsInteger)
IfMe!
txtAge=""or【5】(Me!
txtAge)Then
'数据为空时的验证
MsgBox"年龄不能为空!
",vbCritical,"警告"
Cancel=True'取消BeforeUpdate事件
ElseIfIsNumeric(Me!
txtAge)=FalseThen
'非数值数据输入的验证
MsgBox"年龄必须输入数值数据!
",vbCritical,"警告"
Cancel=True'取消BeforeUpdate事件
ElseIfMe!
txtAge<15OrMe!
txtAge【6】Then
'非法范围数据输入的验证
MsgBox"年龄为15-30范围数据!
",vbCritical,"警告"
Cancel=True'取消BeforeUpdate事件
Else'数据验证通过
MsgBox"数据验证OK!
",vbInformation,"通告"
EndIf
EndSub
(5)在窗体中有两个文本框分别为Text1和Text2,一个命令按钮Command1,编写如下两个事件过程:
PrivateSubCommand1_Click()
a=Text1.Value+Text2.Value
MsgBoxa
EndSub
PrivateSubForm_Load()
Text1.Value=""
Text2.Value=""
EndSub
程序运行时,在文本框Text1中输入78,在文本框Text2中输入87,单击命令按钮,消息框中输出的结果为_【7】。
(6)某次大奖赛有7个评委同时为一位选手打分,去掉一个最高分和一个最低分,其余5个分数的平均值为该名参赛者的最后得分。
请填空完成规定的功能。
subcommand1_click()
Dimmark!
aver!
i%,max1!
min1!
aver=0
Fori=1To7
mark=InputBox("请输入第"&i&"位评委的打分")
Ifi=1Then
max1=mark:
min1=mark
Else
Ifmarkmin1=mark
ElseIfmark>max1Then
【8】
EndIf
EndIf
【9】
Nexti
aver=(aver-max1-min1)/5
MsgBoxaver
EndSub
(7)在窗体文本框Text1中输入“456AbC”后,立即窗口上输出的结果是【10】。
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
SelectCaseKeyAscii
Case97To122
Debug.PrintUCase(Chr(KeyAscii));
Case65To90
Debug.PrintLCase(Chr(KeyAscii));
Case48To57
Debug.PrintChr(KeyAscii);
CaseElse
KeyAscii=0
EndSelect
EndSub
(8)在窗体上有一个命令按钮Command1,编写事件代码如下:
PrivateSubCommand1_Click()
Dima(10),p(3)AsInteger
k=5
Fori=1To10
a(i)=i*i
Nexti
Fori=1To3
p(i)=a(i*i)
Nexti
Fori=1To3
k=k+p(i)*2
Nexti
MsgBoxk
EndSub
打开窗体运行后,单击命令按钮,消息框中输出的结果是【11】。
(9)下列程序的功能是找出被5、7除,余数为1的最小的5个正整数。
请在程序空白处填入适当的语句,使程序可以完成指定的功能。
PrivateSubForm_Click()
DimNcount%,n%
Ncount=0
n=1
Do
n=n+1
If【12】Then
Debug.Printn
Ncount=Ncount+1
EndIf
LoopUntilNcount=5
EndSub
(10)以下程序的功能是在立即窗口中输出100到200之间所有的素数,并统计输出素数的个数。
请在程序空白处填入适当的语句,使程序可以完成指定的功能。
PrivateSubCommand2_Click()
Dimi%,j%,k%,t%'t为统计素数的个数
DimbAsBoolean
Fori=100To200
b=True
k=2
j=Int(Sqr(i))
DoWhilek<=jAndb
IfiModk=0Then
b=【13】
EndIf
k=【14】
Loop
Ifb=TrueThen
t=t+1
Debug.Printi
EndIf
Nexti
Debug.Print"t=";t
EndSub
(11)下列程序的功能是求方程:
x2+y2=1000的所有整数解。
请在空白处填入适当的语句,使程序完成指定的功能。
PrivateSubcommand1_Click()
Dimxasinteger,yasinteger
Forx=-34To34
Fory=-34To34
If【15】Then
Debug.Printx,y
EndIf
Nexty
Nextx
EndSub
(12)下列程序的功能是求算式:
1+1/2!
+1/3!
+1/4!
+……前10项的和(其中n!
的含义是n的阶乘)。
请在空白处填入适当的语句,使程序完成指定的功能。
PrivateSubCommand1_Click()
Dimiasinteger,sassingle,aassingle
a=1:
s=0
Fori=1To10
a=【16】
s=s+a
Nexti
Debug.Print"1+1/2!
+1/3!
+......=";s
EndSub
(13)在窗体中有一个名为Command12的命令按钮,Click事件功能是:
接收从键盘输入的10个大于0的不同整数,找出其中的最大值和对应的输入位置。
请在空白处填入适当语句,使程序可以完成指定的功能。
PrivateSubCommand12_Click()
max=0
maxn=0
Fori=1To10
num=Val(InputBox("请输入第"&i&"个大于0的整数:
"))
If【17】Then
max=num
maxn=【18】
EndIf
Nexti
MsgBox("最大值为第"&maxn&"个输入的"&max)
EndSub
(14)运行下列程序,输入如下两行:
Hi,
Iamhere.
弹出的窗体中的显示结果是【19】。
PrivateSubCommand11_click()
DimabcAsString,sumAsString
sum=""
Do
abc=inputbox("请输入abc")
IfRight(abc,1)="."ThenExitDo
sum=sum+abc
Loop
MsgBoxsum
EndSub
(15)运行下列程序,窗体中的显示结果是:
x=【20】。
OptionCompareDatabase
DimxAsInteger
PrivateSubForm_load()
x=3
EndSub
PrivateSubCommand11_click()
StaticaAsInteger
DimbAsInteger
b=x^2
fun1x,b
fun1x,b
MsgBox"x="&x
EndSub
Subfun1(ByRefyAsInteger,ByValzAsInteger)
y=y+z
z=