二级VISUAL BASIC真题.docx
《二级VISUAL BASIC真题.docx》由会员分享,可在线阅读,更多相关《二级VISUAL BASIC真题.docx(22页珍藏版)》请在冰豆网上搜索。
二级VISUALBASIC真题
2008年4月全国计算机等级考试笔试试卷
二级公共基础知识和VisualBasic语言程序设计
一、选择题
(11)下列叙述中错误的是()。
A)标准模块文件的扩展名是.bas
B)标准模块文件是纯代码文件
C)在标准模块中声明的全局变量可以在整个工程中使用
D)在标准模块中不能定义过程
(12)在VisualBasic中,表达式3*2\5Mod3的值是()。
A)1B)0
C)3D)出现错误提示
(13)下列选项中,不合法的VisualBasic的变量名是()。
A)a5bB)_xyz
C)abD)andif
(14)下列数组定义语句中,错误的是()。
A)Statica(10)AsIntegerB)Dimc(3,1To4)
C)Dimd(-10)D)Dimb(0To5,1To3)AsInteger
(15)现有语句:
y=IIf(x>0,xMod3,0)
设x=10,则y的值是()。
A)0B)1
C)3D)语句有错
(16)为了使文本框同时具有垂直和水平滚动条,应先把multiLine属性设置为True,然后再把ScrollBars属性设置为()。
A)0B)1
C)2D)3
(17)文本框Text1的KeyDown事件过程如下:
PrivateSubText1_KeyDown(KeyCodeAsInteger,ShiftAsInteger)
…
EndSub
其中参数KeyCode的值表示的是发生此事件时()。
A)是否按下了<Alt>键或<Ertl>键B)按下的是哪个数字键
C)所按的键盘键的键码D)按下的是哪个鼠标键
(18)窗体上有一个名称为HScroll1的滚动条,程序运行后,当单击滚动条两端的箭头时,立即在窗体上显示滚动框的位置(即刻度值)。
下面能够实现上述操作的事件过程是()。
A)PrivateSubHScroll1_Change()
PrintHScroll1.Value
EndSub
B)PrivateSubHScroll1_Change()
PrintHScroll1.SmallChange
EndSub
C)PrivateSubHScroll1Scroll()
PrintHScroll1.Value
EndSub
D)PrivateSubHScroll1_Scroll()
PrintHScroll1.SmallChange
EndSub
(19)若已把一个命令按钮的Default属性设置为True,则下列可导致按钮的Click事件过程被调用的操作是()。
A)用鼠标右键单击此按钮B)按键盘上的<Esc>键
C)按键盘上的回车键D)用鼠标右键双击此按钮
(20)要使两个单选按钮属于同一个框架,正确的操作是()。
A)先画一个框架,再在框架中画两个单选按钮
B)先画一个框架,再在框架外画两个单选按钮,然后把单选按钮拖到框架中
C)先画两个单选按钮,再用框架将单选按钮框起来
D)以上3种方法都正确
(21)能够存放组合框的所有项目内容的属性是()。
A)CaptionB)Text
C)ListD)Selected
(22)设窗体上有一个标签Label1和一个计时器Timer1,Timer1的Interval属性被设置为1000,Enabled属性被设置为True。
要求程序运行时每秒在标签中显示一次系统当前时间。
下列可以实现上述要求的事件过程是()。
A)PrivateSubTimer1_Timer()
Labell.Caption=True
EndSub
B)PrivateSubTimer1_Timer()
Labell.Caption=Time$
EndSub
C)PrivateSubTimer1_Timer()
Labell.Interval=1
EndSub
D)PrivateSubTimer1_Timer()
Fork=1ToTimerl.Interval
Label1.Caption=Timer
NextK
EndSub
(23)设有如右图所示的窗体和下列程序:
PrivateSubCommand1_Click()
Text1.Text="VisualBasic"
EndSub
PrivateSubText1_LostFocus()
IfText1.Text<>"BASIC"Then
Text1.Text=""
Text1.SetFocus
EndIf
EndSub
程序运行时,在Text1文本框中输入“Basic”(如图所示),然后单击Command1按钮,则产生的结果是()。
A)文本框中无内容,焦点在文本框中
B)文本框中为"Basic",焦点在文本框中
C)文本框中为"Basic",焦点在按钮上
D)文本框中为"VisualBasic",焦点在按钮上
(24)窗体上有一个名称为Command1的命令按钮,其事件过程如下:
PrivateSubCommand1.Click()
x="VisualBasicProgramming"
a=Right(x,11)
b=Mid(x,7,5)
c=MsgBox(a,,b)
EndSub
运行程序后单击命令按钮,下列叙述中错误的是()。
A)信息框的标题是Basic
B)信息框中的提示信息是Programming
C)c的值是函数的返回值
D)MsgBox的使用格式有错
(25)设工程文件包含两个窗体文件Forml.frm、Form2.frm及一个标准模块文件Modulel.bas。
两个窗体上分别只有一个名称为Command1的命令按钮。
Forml的代码如下:
PublicxAsInteger
PrivmeSubForm_Load()
x=1
y=5
EndSub
PrivateSubCommand1_Click()
Form2.Show
EndSub
Form2的代码如下:
PrivateSubCommand1_Click()
PrintForm1.x,y
EndSub
Modulel的代码如下:
PublicyAsInteger
运行以上程序,单击Form1的命令按钮Command1,则显示Form2;再单击Form2上的命令按钮Command1,则窗体上显示的是()。
A)15B)05
C)00D)程序有错
(26)窗体上有一个名称为Text1的文本框,一个名称为Command1的命令按钮。
窗体文件的程序
如下:
PrivateTypex
aAsInteger
bAsInteger
EndType
PrivateSubCommand1_Click()
DimyAsx
y.a=InputBox("")
Ify.a\2=y.a/2Then
y.b=y.a*y.a
Else
y.b=Fix(y.a/2)
EndIf
Text1.Text=y.b
EndSub
对以上程序,下列叙述中错误的是()。
A)x是用户定义的类型
B)InputBox函数弹出的对话框中没有提示信息
C)若输入的是偶数,y.b的值为该偶数的平方
D)Fix(y.a/2)把y.a/2的小数部分四舍五入,转换为整数返回
(27)窗体上有一个名称为CD1的通用对话框控件和由四个命令按钮组成的控件数组Command1,其下标从左到右分别为0、1、2、3,窗体外观如下图所示。
命令按钮的事件过程如下:
PrivateSubCommand1_Click(IndexAsInteger)
SelectCaseIndex
Case0
CD1.Action=1
Case1
CD1.ShowSave
Case2
CD1.Action=5
Case3
End
EndSelect
EndSub
对上述程序,下列叙述中错误的是()。
A)单击“打开”按钮,显示打开文件的对话框
B)单击“保存”按钮,显示保存文件的对话框
C)单击“打印”按钮,能够设置打印选项,并执行打印操作
D)单击“退出”按钮,结束程序的运行
(28)窗体上有两个水平滚动条HV、HT,还有一个文本框Text1和一个标题为“计算”的命令按钮Command1,并编写了下列程序:
PrivateSubCommand1_Click()
Callcale(HV.Value,HT.Value)
EndSub
PublicSubcale(xAsInteger,yAsInteger)
Text1.Text=x*y
EndSub
运行程序,单击“计算”按钮,可根据速度与时间计算出距离,并显示计算结果。
对以上程序,下列叙述中正确的是()。
A)过程调用语句不对,应为cale(HV.HT)
B)过程定义语句的形式参数不对,应为Subcale(xAsContro1,yAsControl)
C)计算结果在文本框中显示出来
D)程序不能正确运行
(29)现有如下程序:
PrivateSubCommand1_Click()
s=0
Fori=1To5
s=s+f(5+i)
Next
Prints
EndSub
PublicFunctionf(xAsInteger)
Ifx>=10Then
t=x+1
Else
t=x+2
EndIf
f=t
EndFunction
运行程序,则窗体上显示的是()。
A)38B)49
C)61D)70
(30)窗体上有一个用菜单编辑器设计的菜单。
运行程序,并在窗体上单击鼠标右键,则弹出一个快捷菜单,如下图所示。
下列叙述中错误的是()。
A)在设计“粘贴”菜单项时,在菜单编辑器窗口中设置了“有效”属性(有“√”)
B)菜单中的横线是在该菜单项的标题输入框中输入了一个“-”(减号)字符
C)在设计“选中”菜单项时,在菜单编辑器窗口中设置了“复选”属性(有“√”)
D)在设计该弹出菜单的主菜单项时,在菜单编辑器窗口中去掉了“可见”前面的“√”
(31)窗体上有一个名称为Picturel的图片框控件,一个名称为Label1的标签控件,如下图所示。
现有如下程序:
PublicSubdisplay(xAsControl)
IfTypeOfxIsLabelThen
x.Caption="计算机等级考试"
Else
x.Picture=LoadPicture("pic.jpg")
EndIf
EndSub
PrivateSubLabell_Click()
Calldisplay(Labell)
EndSub
PrivateSubPicture1_Click()
Calldisplay(Picture1)
EndSub
对以上程序,下列叙述中错误的是()。
A)程序运行时会出错
B)单击图片框,在图片框中显示一幅图片
C)过程中的x是控件变量
D)单击标签,在标签中显示一串文字
(32)窗体上有两个名称分别为Text1、Text2的文本框。
Text1的KeyUp事件过程如下:
PrivateSubText1_KeyUp(KeyCodeAsInteger,ShiftAsInteger)
DimcAsString
c=UCase(Chr(KeyCode))
Text2.Text=Chr(Asc(c)+2)
EndSub
当向文本框Text1中输入小写字母a时,文本框Text2中显示的是()。
A)AB)a
C)CD)c
(33)设窗体上有一个文本框Text1和一个命令按钮Command1,并有下列事件过程:
PrivateSubCommand1_Click()
DimsAsString,ChAsString
s=""
Fork=1ToLen(Text1)
ch=Mid(Text1,k,1)
s=ch+s
Nextk
Text1.Text=s
EndSub
程序执行时,在文本框中输入“Basic”,然后单击命令按钮,则Text1中显示的是()。
A)BasicB)cisaB
C)BASICD)CISAB
(34)某人编写了下列程序,用来求10个整数(整数从键盘输入)中的最大值:
PrivateSubCommand1_Click()
Dima(10)AsInteger,maxAsInteger
Fork=1To10
a(k)=InputBox("输入一个整数")
Nextk
max=0
Fork=1To10
Ifa(k)>maxThen
max=a(k)
EndIf
Nextk
Printmax
EndSub
运行程序时发现,当输入10个正数时,可以得到正确结果,但输入10个负数时结果是错误的。
程序需要修改。
下列修改中可以得到正确运行结果的是()。
A)把Ifa(k)>maxThen改为Ifa(k)<maxThen
B)把max=a(k)改为a(k)=max
C)把第2个循环语句Fork=1To10改为Fork=2To10
D)把max=O改为max=a(10)
(35)已知在4行3列的全局数组score(4,3)中存放了4个学生3门课程的考试成绩(均为整数),现需要计算每个学生的总分,某人编写程序如下:
OptionBase1
PrivateSubCommand1_Click()
DimsumAsInteger
sum=0
Fori=1To4
Forj=1To3
sum=sum+score(i,j)
Nextj
Print"第"&i&"个学生的总分是:
";sum
Nexti
EndSub
运行此程序时发现,除第1个人的总分计算正确外,其他人的总分都是错误的,程序需要修改。
下列修改方案中正确的是()。
A)把外层循环语句Fori=1To4改为Fori=1To3
内层循环语句Forj=1To3改为Forj=1To4
B)把sum=0移到Fori=1To4和Forj=1To3之间
C)把sum=sam+score(i,j)改为sum=sum+score(j,i)
D)把sum=sum+score(i,j)改为sam=score(i,j)
二、填空题
(6)设有下列循环:
x=1
Do
x=x+2
Printx
LoopUntil【6】
要求程序运行时执行3次循环体,请填空。
(7)窗体上命令按钮Commandl的事件过程如下:
PrivateSubCommand1_Click()
DimtotalAsInteger
total=s
(1)+s
(2)
Printtotal
EndSub
PrivateFunctions(mAsInteger)AsInteger
StaticxAsInteger
Fori=1Tom
x=x+1
Nexti
s=x
EndFunction
运行程序,第3次单击命令按钮Command1时,输出结果为【7】。
(8)在窗体上画一个名称为Command1的命令按钮,然后编写下列程序:
OptionBase_1
PrivateSubCommand1_Click()
Dima(10)AsInteger
Fori=1To10
a(i)=i
Next
Callswap(【8】)
Fori=1To10
Printa(i);
Next
EndSub
Subswap(b()AsInteger)
n=【9】
Fori=1Ton/2
t=b(i)
b(i)=b(n)
b(n)=t
【10】
Next
EndSub
上述程序的功能是通过调用过程swap,调换数组中数值的存放位置,即a
(1)与a(10)的值互换,a
(2)与a(9)的值互换,……,请填空。
(9)在窗体上画一个通用对话框,其名称为CommonDialog1,然后画一个命令按钮,并编写下列事件过程:
PrivateSubCommand1_Click()
CommonDialog1.Filter="AllFiles(*.*)|*.*|TextFiles"_
&"(*.txt)|*.txt|BatchFiles(*.bat)|*.bat"
CommonDialog1.FilterIndex=1
CommonDialog1.ShowOpen
MsgBoxCommonDialog1.FileName
EndSub
程序运行后,单击命令按钮,将显示一个“打开”对话框,此时在“文件类型”框中显示的是【11】;如果在对话框中选择d盘temp目录下的tel.txt文件,然后单击“确定”按钮,则在MsgBox信息框中显示的提示信息是【12】。
(10)下列程序的功能是把顺序文件smtextl.txt的内容全部读入内存,并在文本框Textl中显示出来。
请填空。
PrivateSubCommand1_Click()
DiminDataAsString
Text1.Text=""
Open"smtext1.txt"【13】As【14】
DoWhile【15】
Input#2,inData
Text1.Text=Text1.Text&inData
Loop
Close#2
EndSub
答案
2008年4月笔试试卷参考答案及解析
一、选择题
(11)[答案]D)
[解析]本题考查的考点是有关标准模块的。
VisualBasic中的标准模块也称全局模块或总模块,由全局变量声明、模块层声明及通用过程等几部分组成,其扩展名为.bas,里面只有代码而没有任何控件。
其中全局声明放在标准模块的首部,可以在整个工程中使用。
(12)[答案]A)
[解析]本题考查的考点是有关算术运算的。
按照运算符的优先级,首先执行3*2得到6,然后用6整除5得到1,最后用1对3求余数得到最终结果1。
本题要注意“\”为整除运算符,以及Mod取余运算的算法。
(13)[答案]B)
[解析]本题考查的考点是有关VisualBasic中的变量命名规则的。
VisualBasic中给变量命名只能由字母、数字和下划线组成,并且第一个字符必须是英文字母。
(14)[答案]C)
[解析]本题考查的考点是有关数组定义的。
在VisualBasic中,可以用4个关键字来定义数组,分别是Dim、ReDim、Public和Static。
在VisualBasic中定义数组有两种格式。
格式一:
Dim<数组名(下标上界)>As<类型名称>
Dim(数组名(第一维下标上界,第二维下标上界)>As<类型名称>
格式二:
Dim(数组名(下界To上界[,下界To上界]…)>As<类型名称>
其中上界必须大于下界。
本题中选项C)采取第一种格式定义数组,则数组默认下界为0,上界-10小于0,故不符合要求。
(15)[答案]B)
[解析]本题考查的考点是有关IIf函数的。
IIf函数可用于执行简单的条件判断操作,它是“If…Then…Else”结构的简写版本。
格式:
Result=IIff(<条件>,<True部分>,<False部分>)
其中“Result”是函数的返回值,“条件”是一个逻辑表达式。
当“条件”为真时,IIf函数返回“True部分”的值,而当“条件”为假时返回“False部分”的值。
“True部分”或“False部分”可以是表达式、变量或其他函数。
本题中由于x=10是大于0的,所以返回值为xMod3的值即1。
(16)[答案]D)
[解析]本题考查的考点是有关文本框的滚动条的。
ScrollBars属性用于设置文本框是否有水平或垂直滚动条,可设置成以下4种值。
●0-表示没有滚动条(默认值):
●1-表示只有水平滚动条:
●2-表示只有垂直滚动条:
●3-表示有水平和垂直滚动条。
设置0以外的值时MultiLine属性值必须为True。
(17)[答案]C)
[解析]本题考查的考点是有关键盘事件KeyDown的。
KeyCode参数是表示所按键的位置信息的代码。
(18)[答案]A)
[解析]本题考查的考点是有关滚动条的属性和事件的。
单击滚动条的箭头时将触发Change事件,而滚动块的位置由Value属性返回。
(19)[答案]C)
[解析]本题考查的考点是有关Default属性的。
当某控件Default属性设置为True时,运行状态下按下回车键等同于左键单击,即触发其Click事件。
(20)[答案]A)
[解析]本题考查的考点是有关框架的。
要把某控件放到框架里面,必须先画出框架,然后在框架内画出控件。
除此以外,只能利用剪切和粘贴的方法把控件放到框架里面,其他方法都不可以。
(21)[答案]C)
[解析]本题考查的考点是有关组合框的基本属性。
Caption属性设置列表框的标题:
List属性是一个数组,存放组合框中所有项目的内容:
Text属性可返回列表框中当前选中项目的内容;Selected属性用于设置或返回指定索引号列表项的选中状态。
(22)[答案]B)
[解析]本题考查的考点是有关计时器的。
计时器的Interval属性决定了每隔多长时间触发一次Timer事件。
本题中Interval设置为1000,即每1秒触发一次Timer事件。
在事件中把标签的Caption属性设置成为当前时间,用Time函数可以得到当前时间。
(23)[答案]A)
[解析]本题考查的考点是有关事件执行过程的。
由于先在文本框中输入数据,所以焦点在文本框中。
当单击命