第8章VBA程序设计基础.docx

上传人:b****3 文档编号:4311695 上传时间:2022-11-29 格式:DOCX 页数:22 大小:142.20KB
下载 相关 举报
第8章VBA程序设计基础.docx_第1页
第1页 / 共22页
第8章VBA程序设计基础.docx_第2页
第2页 / 共22页
第8章VBA程序设计基础.docx_第3页
第3页 / 共22页
第8章VBA程序设计基础.docx_第4页
第4页 / 共22页
第8章VBA程序设计基础.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

第8章VBA程序设计基础.docx

《第8章VBA程序设计基础.docx》由会员分享,可在线阅读,更多相关《第8章VBA程序设计基础.docx(22页珍藏版)》请在冰豆网上搜索。

第8章VBA程序设计基础.docx

第8章VBA程序设计基础

(10)定义无符号整数类为UInt,下面可以作为类UInt实例化值的是

  A)-369

  B)369

  C)0.369

D)整数集合{1,2,3,4,5}

(17)下列表达式计算结果为日期类型的是

  A)#2012-1-23#-#2011-2-3#

  B)year(#2011-2-3#)

  C)DateValue("2011-2-3")

D)Len("2011-2-3")

(23)下列表达式中,能正确表示条件“x和y都是奇数”的是

  A)xMod2=0AndyMod2=0

  B)xMod2=0OryMod2=0

  C)xMod2=1AndyMod2=1

D)xMod2=1OryMod2=1

(26)在VBA中,能自动检查出来的错误是

  A)语法错误

  B)逻辑错误

  C)运行错误

  D)注释错误

(27)下列给出的选项中,非法的变量名是

  A)Sum

  B)Integer_2

  C)Rem

  D)Form1

(28)如果在被调用的过程中改变了形参变量的值;但又不影响实参变量本身,这种参数传递方式称为

  A)按值传递

  B)按地址传递

  C)ByRef传递

  D)按形参传递

  

(29)表达式“B=INT(A+0.5)”的功能是

  A)将变量A保留小数点后1位

  B)将变量A四舍五入取整

  C)将变量A保留小数点后5位

  D)舍去变量A的小数部分

  

(30)VBA语句“DimNewArray(10)asInteger”的含义是

  A)定义10个整型数构成的数组NewArray

  B)定义11个整型数构成的数组NewArray

  C)定义1个值为整型数的变量NewArray(10)

  D)定义1个值为10的变量NewArray

(31)运行下列程序段,结果是

  Form=10to1step0

  k=k+3

  Nextm

  A)形成死循环

  B)循环体不执行即结束循环

  C)出现语法错误

  D)循环体执行一次后结束循环

(32)运行下列程序,结果是

  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=5

  B)f=7

  C)f=8

  D)f=13

(33)有如下事件程序,运行该程序后输出结果是

  PrivateSubCommand33_Click()

  DimxAsInteger,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=0

  B)x=4,y=25

  C)x=5,y=30

  D)输出其他结果

(34)下列程序的功能是计算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+1

  B)m+2

  C)t+1

  D)t+2

(35)下列程序的功能是返回当前窗体的记录集

  SubGetRecNum()

  DimrsAsObject

  Setrs=______

  MsgBoxrs.RecordCount

  EndSub

  为保证程序输出记录集(窗体记录源)的记录数,空白处应填入的语句是

  A)Recordset

  B)Me.Recordset

  C)RecordSource

D)Me.RecordSource

(9)在VBA中要将数值表达式的值转换为字符串,应使用函数【9】。

(10)运行下列程序,输入如下两行:

  Hi,

  Iamhere.

  弹出的窗体中的显示结果是【10】。

  PrivateSubCommand11_Click()

  DimabcAsString,sumAsstring

  sum=""

  Do

  abc=InputBox("输入abc")

  IfRight(abc,1)="."ThenExitDo

  sum=sum+abc

  Loop

  MsgBoxsum

  EndSub

  (11)运行下列程序,窗体中的显示结果是:

x=【11】。

  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=y-z

  EndSub

  (12)“秒表”窗体中有两个按钮(“开始/停止”按钮bOK,“暂停/继续”按钮bPus);一个显示计时的标签1Num;窗体的“计时器间隔”设为100计时精度为0.1秒。

  要求:

打开窗体如图1所示;第一次单击“开始婷止”按钮,从0开始滚动显示计时(见图2);10秒时单击“暂停/继续”按钮,显示暂停(见图3),但计时还在继续;若20秒后再次单击“暂停/继续”按钮,计时会从30秒开始继续滚动显示;第二次单击“开始/停止”按钮,计时停止,显示最终时间(见图4)。

若再次单击“开始/停止”按钮可重新从0开始计时。

  相关的事件程序如下。

请在空白处填入适当的语句,使程序可以完成指定的功能。

  OptionCompareDatabase

  Dimflag,pauseAsBoolean

  PrivateSubbOKClick()

  flag=【12】

  Me!

bOK.Enabled=True

  Me!

bPus.Enabled=flag

  EndSub

  PrivateSubbPus_Click()

  pause=Notpause

  Me!

bOK.Enabled=NotMe!

bOK.Enabled

  EndSub

  PrivateSubFormOpen(CancelAsInteger)

  flag=False

  pause=False

  Me!

bOK.Enabled=True

  Me!

bPus.Enabled=False

  EndSub

  PrivateSubFormTimer()

  StaticcountAsSingle

  Ifflag=TrueThen

  Ifpause=FalseThen

  Me!

1Num.Caption=Round(count,1)

  EndIf

  count=【13】

  Else

  count=0

  EndIf

  EndSub

  (13)数据库中有“学生成绩表”,包括“姓名”、“平时成绩”、“考试成绩”和“期末总评”等字段。

现要根据“平时成绩”和“考试成绩”对学生进行“期末总评”。

规定:

  “平时成绩”加“考试成绩”大于等于85分,则期末总评为“优”,“平时成绩”加“考试成绩”小于60分,则期末总评为“不及格”,其他情况期末总评为“合格”。

  下面的程序按照上述要求计算每名学生的期末总评。

请在空白处填入适当的语句,使程序可以完成指定的功能。

  PrivateSubCommand0_Click()

  DimdbAsDAO.Database

  DimrsAsDAO.Recordset

  Dimpscj,kscj,qmzpAsDAO.Field

  DimcountAsInteger

  Setdb=CurrentDb()

  Setrs=db.OpenRecordset("学生成绩表")

  Setpscj=rs.Fields("平时成绩")

  Setkscj=rs.Fields("考试成绩")

  Setqmzp=rs.Fields("期末总评")

  count=0

  DoWhileNotrs.EOF

  【14】

  Ifpscj+kscj>=85Then

  qmzp="优"

  ElseIfpscj+kscj<60Then

  qmzp="不及格"

  Else

  qmzp="合格"

  EndIf

  rs.Update

  count=count+1

  【15】

  Loop

  rs.Close

  db.Close

  Setrs=Nothing

  Setdb=Nothing

  MsgBox"学生人数:

"&count

  EndSub

2010年9月

(19)下列表达式计算结果为数值类型的是

  A)#5/5/2010#-#5/1/2010#

  B)“102”>“11”

  C)102=98+4

  D)#5/1/2010#+5

(26)要将一个数字字符串转换成对应的数值,应使用的函数是

  A)Val

  B)Single

  C)Asc

  D)Space

  

  (27)下列变量名中,合法的是

  A)4A

  B)A-1

  C)ABC_1

  D)private

  

  (28)若变量i的初值为8,则下列循环语句中循环体的执行次数为

  DoWhilei<=17

  i=i+2

  Loop

  A)3次

  B)4次

  C)5次

  D)6次

  (29)InputBox函数的返回值类型是

  A)数值

  B)字符串

  C)变体

  D)视输入的数据而定

  

  (30)下列能够交换变量X和Y值的程序段是

  A)Y=X:

X=Y

  B)Z=X:

Y=Z:

X=Y

  C)Z=X:

X=Y:

Y=Z

  D)Z=X:

W=Y:

Y=Z:

X=Y

  

  (31)窗体中有命令按钮Commandl,事件过程如下:

  PublicFunctionf(xAsInteger)AsInteger

  DimyAsInteger

  x=20

  y=2

  f=x*y

  EndFunction

  PrivateSubCommandl_Click()

  DimyAsInteger

  StaticxAsInteger

  x=10

  y=5

  y=f(x)

  Debug.Printx;y

  EndSub

  运行程序,单击命令按钮,则立即窗口中显示的内容是

  A)105

  B)1040

  C)205

  D)2040

  (32)窗体中有命令按钮Commandl和文本框Text1,事件过程如下:

  Functionresult(ByValxAsInteger)AsBoolean

  If×Mod2=0Then

  result=True

  Else

  result=False

  EndIf

  EndFunction

  PrivateSubCommandl_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)resuIt(x)=“奇数”

  D)NOTresult(x)

  

  (33)窗体有命令按钮Commandl和文本框Textl,对应的事件代码如下:

  PrivateSubCommandl_Click()

  Fori=1To4

  x=3

  Forj=1To3

  Fork=1To2

  x=x+3

  Nextk

  Nextj

  Nexti

  Text1.Value=Str(x)

  EndSub

  运行以上事件过程,文本框中的输出是

  A)6

  B)12

  C)18

  D)21

  (34)窗体中有命令按钮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个数据分别统计整数和非整数的个数

  

  (35)运行下列程序,输入数据8,9,3,0后,窗体中显示结果是

  PrivateSubForm_click()

  DimsumAsInteger,mAsInteger

  sum=0

  Do

  m=InputBox(“输入m”)

  sum=sum+m

  LoopUntilm=0

  MsgBoxsum

  EndSub

  A)0

  B)17

  C)20

D)21

 

(9)在VBA中要判断一个字段的值是否为Null,应该使用的函数是【9】。

  

  (10)一下列程序的功能是求方程:

x2十y2=1000的所有整数解。

请在空白处填入适当的语句,使程序完成指定的功能。

  PrivateSubCommandl_Click()

  Dim×asinteger,yasinteger

  Forx=-34To34

  Fory=-34To34

  If【10】Then

  Debug.Printx,y

  EndIf

  Nexty

  Nextx

  EndSub

  (11)下列程序的功能是求算式:

1+1/2!

+1/3!

+1/4!

+……前10项的和(其中n!

的含义是n的阶乘)。

请在空白处填入适当的语句,使程序完成指定的功能。

  PrivateSubCommandl_Click()

  Dimiasinteger,sassingle,aassingle

  a=1:

s=0

  Fori=1To10

  a=【11】

  s=s+a

  Nexti

  Debug.Print“1+1/2!

十1/3!

+.…=”;s

  EndSub

  

  (12)在窗体中有一个名为Command12的命令按钮,Click事件功能是:

接收从键盘输入的10个大于0的不同整数,找出其中的最大值和对应的输入位置。

请在空白处填入适当语句,使程序可以完成指定的功能。

  PrivateSubCommand12_Click()

  max=0

  maxn=0

  fori=1To10

  num=Val(InputBox(‘,请输入第“&i&”个大于0的整数:

“))

  If【12】Then

  max=num

  maxn=【13】

  EndIf

  Nexti

  MsgBox(”最大值为第“&maxn&”个输入的“&max)

  EndSub

  (13)数据库的”职I基本情况表“有”姓名“和”职称“等字段,要分别统计教授、副教授和其他人员的数量。

请在空白处填入适当语句,使程序可以完成指定的功能。

  PrivateSubCommands_Click()

  DimdbAsDAO.Database

  DimrsAsDAO.Recordset

  DimzcAsDAO.Field

  DimCountlAsInteger,Count2AsInteger,Count3AsInteger

  Setdb=CurrentDb()

  Setrs=db.OpenRecordset(”职工基本情况表“)

  Setzc=rs.Fields(”职称“)

  Countl=0:

Count2=0:

Count3=0

  DoWhileNot【14】

  SelectCasezc

  CaseIs=”教授“

  Countl=Countl+1

  CaseIs=”副教授“

  Count2=Count2+1

  CaseElse

  Courit3=Count3+1

  EndSelect

  【15】

  Loop

  rs.Close

  Setrs=Nothing

  Setdb=Nothing

  MsgBox”教授:

“&Count1&”,副教授:

“&Count2&”,其他:

“&count3

  EndSub

2010年3月

(21)在调试VBA程序时,能自动被检查出来的错误是

  A)语法错误

  B)逻辑错误

  C)运行错误

  D)语法错误和逻辑错误

(23)在已建窗体中有一命令按钮(名为Commandl),该按钮的单击事件对应的VBA代码为:

  PrivateSubCommandl_Click()

  subT.Form.RecordSource="select*from雇员"

  EndSub

  单击该按钮实现的功能是

  A)使用select命令查找“雇员”表中的所有记录

  B)使用select命令查找并显示“雇员”表中的所有记录

  C)将subT窗体的数据来源设置为一个字符串

  D)将subT窗体的数据来源设置为“雇员”表

(27)能够实现从指定记录集里检索特定字段值的函数是

  A)Nz

  B)Find

  C)Lookup

  D)DLookup

  (28)如果X是一个正的实数,保留两位小数、将千分位四舍五入的表达式是

  A)0.01*Int(x+0.05)

  B)0.01*Int(100*(X+0.005))

  C)0.01*Int(x+0.005)

  D)0.01*Int(100*(X+0.05))

  (29)在模块的声明部分使用“OptionBase1”语句,然后定义二维数组A(2to5,5),则该数组的元素个数为

  A)20

  B)24

  C)25

  D)36

  (30)由“Fori=1To9Step-3”决定的循环结构,其循环体将被执行

  A)0次

  B)1次

  C)4次

  D)5次

(31)在窗体上有一个命令按钮Commandl和一个文本框Textl,编写事件代码如下:

  PrivateSubCommand1_Click()

  Dimi,j,x

  Fori=1To20step2

  x=0

  Forj=To20step3

  x=x+1

  Nextj

  Nexti

  Textl.Value=Str(x)

  EndSub

  打开窗体运行后,单击命令按钮,文本框中显示的结果是

  A)1

  B)7

  C)17

  D)400

  (32)在窗体上有一个命令按钮Commandl,编写事件代码如下:

  PrivateSubCommandl_Click()

  DimyAsInteger

  y=0

  Do

  y=InputBox("y=")

  If(yMod10)+Int(y/10)=10ThenDebug.Printy;

  LoopUntily=0

  EndSub

  打开窗体运行后,单击命令按钮,依次输入10、37、50、55、64、20、28、19、-19、0,立即窗口上输出的结果是

  A)375564281919

  B)105020

  C)1050200

  D)3755642819

  (33)在窗体上有一个命令按钮Commandl,编写事件代码如下:

  PrivateSubCommand1_Click()

  DimxAsInteger,yAsInteger

  x=12:

y=32

  CallProc(x,y)

  Debug.Printx;y

  EndSub

  PublicSubProc(nAsInteger,ByValmAsInteger)

  n=nMod10

  m=mMod10

  EndSub

  打开窗体运行后,单击命令按钮,立即窗口上输出的结果是

  A)232

  B)123

  C)22

  D)1232

  34)在窗体上有一个命令按钮Commandl,编写事件代码如下:

  PrivateSubCommandl_Click()

  Dimd1AsDate

  Dimd2AsDate

  dl=#12/25/2009#

  d2=#1/5/2010#

  MsgBoxDateDiff(”ww”,d1,d2)

  EndSub

  打开窗体运行后,单击命令按钮,消息框中输出的结果是

  A)1

  B)2

  C)10

  D)11

  (35)下列程序段的功能是实现“学生”表中“年龄”字段值加1

  DimStrAsString

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1