二级VISUAL BASIC真题Word文档下载推荐.docx
《二级VISUAL BASIC真题Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《二级VISUAL BASIC真题Word文档下载推荐.docx(15页珍藏版)》请在冰豆网上搜索。
Click"
(17)可以产生30~50(含30和50)之间的随机整数的表达式是
A)Int(Rnd*21+30)B)Int(Rnd*20+30)
C)Int(Rnd*50-Rnd*30)D)Int(Rnd*30+50)
(18)在程序运行时,下面的叙述中正确的是
A)用鼠标右键单击窗体中无控件的部分,会执行窗体的FormLoad事件过程
B)用鼠标左键单击窗体的标题栏,会执行窗体的Form_Click事件过程
C)只载入而不显示窗体,也会执行窗体的Form_Load事件过程
D)载入窗体后,每次显示该窗体时,都会执行窗体的Form_Click事件过程
(19)窗体上有名称为Commandl的命令按钮和名称为Text1的文本框
PrivateSubCommand1_Click()
Text1.Text="
程序设计"
Text1.SetFocus
PrivateSubText1_GotFocus()
等级考试"
运行以上程序,单击命令按钮后
A)文本框中显示的是“程序设计”,且焦点在文本框中
B)文本框中显示的是“等级考试”,且焦点在文本框中
C)文本框中显示的是“程序设计”,且焦点在命令按钮上
D)文本框中显示的是“等级考试”,且焦点在命令按钮上
(20)设窗体上有名称为Option1的单选按钮,且程序中有语句:
IfOption1.Value=TrueThen
下面语句中与该语句不等价的是
A)IfOption1.ValueThenB)IfOption1=TrueThen
C)IfValue=TrueThenD)IfOption1Then
(21)设窗体上有1个水平滚动条,已经通过属性窗口把它的Max属性设置为1,Min属性设置为100。
下面叙述中正确的是
A)程序运行时,若使滚动块向左移动,滚动条的Value属性值就增加
B)程序运行时,若使滚动块向左移动,滚动条的Value属性值就减少
C)由于滚动条的Max属性值小于Min属性值,程序会出错
D)由于滚动条的Max属性值小于Min属性值,程序运行时滚动条的长度会缩为一点,滚动块无法移动
(22)有如下过程代码:
Subvar_dim()
StaticnumaAsInteger
DimnumbAsInteger
numa=numa+2
numb=numb+1
printnuma;
mumb
连续3次调用var_dim.过程,第3次调用时输出的是
A)21B)23C)61D)63
(23)在窗体上画1个命令按钮,并编写如下事件过程:
Fori=5To1Step-0.8
PrintInt(i);
Nexti
运行程序,单击命令按钮,窗体上显示的内容为
A)543211B)44321C)43211D)443211
(24)在窗体上画1个命令按钮,并编写如下事件过程:
Dima(3,3)
Form=1To3
Forn=1To3
Ifn=mOrn=4-mThen
a(m,n)=m+n
Else
a(m,n)=0
EndIf
Printa(m,n);
Nextn
Print
Nextm
A)200B)204C)230D)200
040040340045
006406006056
(25)设有以下函数过程:
Functionfun(aAsInteger,bAsInteger)
DimcAsInteger
Ifa<bThen
c=a:
a=b:
b=c
c=0
Do
LoopUntilcModb=0
fun=c
EndFunction
若调用函数fun时的实际参数都是自然数,则函数返回的是
A)a、b的最大公约数B)a、b的最小公倍数
C)a除以b的余数D)a除以b的商的整数部分
(26)窗体上有1个名称为Text1的文本框;
1个名称为Timer的计时器控件,其Interval属性值为5000,Enabled属性值是True。
Timer1的事件过程如下:
PrivateSubTimer1_Timer()
StaticflagAsInteger
Ifflag=0Thenflag=1
flag=-flag
Ifflag=1Then
Text1.ForeColor=&
HPP&
'
&
HFF&
为红色
HC000&
为绿色
以下叙述中正确的是
A)每次执行此事件过程时,flag的初始值均为0
B)flag的值只可能取0或1
C)程序执行后,文本框中的文字每5秒改变一次颜色
D)程序有逻辑错误,Else分支总也不能被执行
(27)为计算10+21+22+23+24+…+210的值,并把结果显示在文本框Text1中,若编写如下事件过程:
Dima%,s%,k%
s=1
a=2
Fork=2To10
a=a*2
Nextk
Text1.Text=s
执行此事件过程后发现结果是错误的,为能够得到正确结果,应做的修改是
A)把s=1改为s=0B)把Fork=2To10改为Fork=1To10
C)交换语句s=s+a和a=a*2的顺序D)同时进行B)、C)两种修改
(28)标准模块中有如下程序代码:
PublicxAsInteger,yAsInteger
Subvar_pub()
x=10:
y=20
在窗体上有1个命令按钮,并有如下事件过程:
DimxAsInteger
Callvar_pub
x=x+100
y=y+100
Printx;
y
运行程序后单击命令按钮,窗体上显示的是
A)100100B)100120C)110100D)110120
(29)设a、b都是自然数,为求a除以b的余数,某人编写了以下函数:
Whilea>b
a=a-b
Wend
fun=a
在调试时发现函数是错误的。
为使函数能产生正确的返回值,应做的修改是
A)把a=a-b改为a=b-aB)把a=a-b改为a=a\b
C)把Whilea>b改为Whilea<bD)把Whilea>b改为Whilea>=b
(30)下列关于通用对话框CommonDialog1的叙述中,错误的是
A)只要在“打开”对话框中选择了文件,并单击“打开”按钮,就可以将选中的文件打开
B)使用CommonDialogl.ShowColor方法,可以显示“颜色”对话框
C)CancelError属性用于控制用户单击“取消”按钮关闭对话框时,是否显示出错警告
D)在显示“字体”对话框前,必须先设置CommonDialogl的Flags属性,否则会出错
(31)在利用菜单编辑器设计菜单时,为了把组合键“Alt+X”设置为“退出(X)”菜单项的访问键,可以将该菜单项的标题设置为
A)退出(X&
)B)退出(&
X)C)退出(X#)D)退出(#X)
(32)在窗体上画1个命令按钮和1个文本框,其名称分别为Command1和Text1,再编写如下程序:
DimssAsString
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
IfChr(KeyAscii)<>"
"
Thenss=ss+Chr(KeyAscii)
DimmAsString,iAsInteger
Fori=Len(ss)To1Step-1
m=m+Mid(ss,i,1)
Next
Text1.Text=UCase(m)
运行程序后,在文本框中输入“Number100”,并单击命令按钮,则文本框中显示的是
A)NUMBER100B)REBMUNC)REBMUN100D)001REBMUN
(33)窗体的左右两端各有1条直线,名称分别为Line1、Line2;
名称为Shape1的圆靠在左边的Line1直线上(见图);
另有1个名称为Timer1的计时器控件,其Enabled属性值是True。
要求程序运行后,圆每秒向右移动100,当圆遇到Line2时则停止移动。
为实现上述功能,某人把计时器的Interval属性设置为1000,并编写了如下
程序:
PrivateSubTimer1_Timer()
Fork=Line1.X1ToLine2.X1Step100
IfShape1.Left+Shape1.Width<Line2.X1Then
Shape1.Left=Shape1.Left+100
运行程序时发现圆立即移动到了右边的直线处,与题目要求的移动方式不符。
为得到与题目要求相符的结果,下面修改方案中正确的是
A)把计时器的Interval属性设置为1
B)把Fork=Line1.X1ToLine2.X1Step100和Nextk两行删除
C)把Fork=Line1.X1ToLine2.X1Step100改为Fork=Line2.X1ToLine1.X1Step100
D)把IfShape1.Left+Shape1.Width<Line2.X1Then改为IfShape1.Left<Line2.X1Then
(34)下列有关文件的叙述中,正确的是
A)以Output方式打开一个不存在的文件时,系统将显示出错信息
B)以Append方式打开的文件,既可以进行读操作,也可以进行写操作
C)在随机文件中,每个记录的长度是固定的
D)无论是顺序文件还是随机文件,其打开的语句和打开方式都是完全相同的
(35)窗体如图1所示。
要求程序运行时,在文本框Text1中输入一个姓氏,单击“删除”按钮(名称为Command1),则可删除列表框List1中所有该姓氏的项目。
若编写以下程序来实现此功能:
Dimn%,k%
n=Len(Text1.Text)
Fork=0ToList1.ListCount-1
IfLeft(List1.List(k),n)=Text1.TextThen
List1.Removeltemk
Endlf
在调试时发现,如输入“陈”,可以正确删除所有姓“陈”的项目,但输入“刘”,则只删除了“刘邦”、“刘备”两项,结果如图2所示。
这说明程序不能适应所有情况,需要修改。
正确的修改方案是把Fork=0ToList1.ListCount-1改为
A)Fork=List1.ListCount-1To0Step-1B)Fork=0ToList1.ListCount
C)Fork=1ToList1.ListCount-1D)Fork=1ToList1.LstCount
二、填空题
请将每空的正确答案写在[1]~[15]引序号的横线上。
(6)工程中有Form1、Form2两个窗体,Form1窗体外观如图1所示。
程序运行时,在Form1中名称为Text1的文本框中输入______个数值(圆的半径),然后单击命令按钮“计算并显示”(其名称为Command1),则显示Form2窗体,且根据输入的圆的半径计算圆的面积,并在Form2的窗体上显示出来,如图2所示。
如果单击命令按钮时,文本框中输入的不是数值,则用信息框显示“请输入数值数据!
”,请填空。
IfText1.Text="
Then
MsgBox"
请输入半径!
ElseIfNotIsNumeric([6])Then
请输入数值数据!
r=Val([7])
Form2.Show
[8].Print"
圆的面积是"
&
3.14*r*r
(7)设有整型变量s,取值范围为0~100,表示学生的成绩。
有如下程序段:
Ifs>=90Then
Leve1="
A"
ElseIfs>=75Then
B"
ElseIfs>=60Then
C"
D"
下面用SelectCase结构改写上述程序,使两段程序所实现的功能完全相同,请填空。
SelectCases
Case[9]>=90
Case75To89
Case60To74
Case[10]
[11]
(8)窗体上有名称为Command1的命令按钮。
事件过程及2个函数过程如下:
DimxAsInteger,yA8Integer,z
X=3
y=5
z=fy(y)
Printfx(fx(x)),y
Functionfx(ByValaAsInteger)
a=a+a
fx=a
Functionfy(ByRefaAsInteger)
fy=a
运行程序并单击命令按钮,则窗体上显示的两个值依次是[12]和[13]。
(9)窗体上有名称为Command1的命令按钮及名称为Text1、能显示多行文本的文本框。
程序运行后,如果单击命令按钮,则可打开磁盘文件c:
\test.txt,并将文件中的内容(多行文本)显示在文本框中。
下面是实现此功能的程序,请填空。
Text1="
Number=FreeFile
Open"
c:
\test.txt"
ForInputAsNumber
DoWhileNotEOF([14])
LineInput#Number,s
Text1.Text=Text1.Text+[15]+Chr(13)+Chr(10)
Loop
CloseNumber
2009年9月笔试试卷参考答案及解析
(11)C[解析]变量命名应遵循以下规则:
①名字只能由字母、数字和下画线组成;
②名字的第一个字符必须是英文字母,最后一个字符可以是类型说明符;
③名字的有效字符为255个;
④不能用VisualBasic的保留字作变量名,但可以把保留字嵌入变量名中;
同时,变量名也不能是末尾带有类型说明符的保留字。
变量名字中不应该出现“—”符号,所以A)选项错误;
print是VisualBasic中的保留字,所以B)选项也不符合变量命名规则;
选项D)中2x的第一个字符不是英文字母,所以也不符合变量命名规则。
(12)D[解析]VB中的数乘应用“*”来连接,浮点除法用“/”连接。
选项A)中应该将5x、2y改成5*x和2*y;
选项B)中5*x+3是一个整体被除数,所以应该用小括号,否则整个表达式的运算优先级顺序将改变;
选项C)中两个表达式间应该用“/”连接。
(13)A[解析]模块有窗体模块、标准模块和类模块3种类型,其中标准模块可以包含类型、常数、变量、外部过程和公共过程的公共的或模块级的声明,其文件扩展名为.bas。
标准模块中可以引用窗体但不包含窗体,所以A)选项错误。
(14)C[解析]组合框含有Name、Height、Width、Top、Left、Enabled、Visible、Index、List、ListIndex、ListCount、Selected、Sorted、Text、MultiSelect和Style等属性,但没有Caption属性。
(15)D[解析]FontUnderline属性是表示正文字体是否带有下画线;
FontBold属性是表示正文字体是否是粗体;
没有FontSlope属性;
FontItalic属性是表示正文字体是否是斜体。
所以正确答案为D)。
(16)D[解析]在鼠标单击事件过程中,Button属性值为1时代表按下鼠标左键,值为2时代表按下鼠标右键,题中所述代码中没有定义Button值,所以单击鼠标左键或者右键都能触发MouseDown事件;
代码中控件名称为Click,所以答案为D)。
(17)A[解析]生成某个范围内的随机整数,计算公式为:
Int((上界-下界+1),Rnd+下界),题目中上界为30,下界为50,所HiE确答案为A)。
(18)C[解析]当加载窗体时,系统白动触发该窗体的Load事件;
当窗体成为一个活动窗口时,触发Activate事件;
单击窗体空白处时,会触发窗体Click事件;
选项A)触发的是Form_Click事件;
选项B)用鼠标左键单击窗体的标题栏,不会触发Form_Click事件过程;
选项D)触发的是Form_Activate事件过程。
所以正确答案为C)。
(19)B[解析]运行程序后单击命令按钮,首先执行命令按钮Command1_Click代码的内容,即Text1文本框获得焦点并显示内容“程序设计”;
当文本框获得焦点后,程序执行文本框的Text1_GetFocus事件代码,即文本框显示内容“等级考试”,覆盖了原来文本框的内容,同时文本框获得焦点。
(20)C[解析]在If语句中,如果省略其判断条件,则默认为True时,Then后面的语句成立,所以选项A)的形式与题目语句等价;
Option1的默认属性为Value,所以选项B)中的Option1=True与题中语句Option1.Value=True等价;
同理,选项D)省略了If语句判断条件及Option1的默认属性,也是与原语句等价的。
(21)A[解析]因为Max<Min,最大值将被置于水平滚动条的最左端,所以在程序运行时水平滚动条左边为100,右边为1,滚动条向左移动,滚动条的Value属性值就增加,所以正确答案为A)。
(22)C[解析]由题意可知,numa是静态变量,所以3次调用过程该变量值是累加的,而numb是动态变量,每次调用过程,该变量值都被初始化为0,所以3次调用该过程后输出的结果是6和1。
(23)A[解析]题中所述程序是一个初值为5,步长为-0.8,终值为1的循环过程。
第一次执行时,循环变量i=5,PrintInt(i)的输出结果为在窗体上打印数字5,其中Int()函数取不大于i的最大整数;
第2次循环,i=4.2,输出结果为4;
第3次、第4次输出结果分别为3和2;
第5次循环,i=1.8,输出结果为1;
第6次循环,i=1,输出结果为1。
第6次循环后跳出循环,整个程序结束。
(24)B[解析]当m=1时,如果n=1,满足条件m=n,执行Then语句a(1,1)=m+n=2;
当n=2时,不满足If语句中的条件,执行Else语句a(1,2)=0;
当n=3时,满足If条件n=4-m,执行Then语句a(1,3)=m+n=4。
同理可得,当m=2时,得到的结果为0,4,0;
当m=3时,结果为4,0,6。
(25)B[解析]题中所述函数过程中,If语句用来保证数a大于数b,如果数a小于数b,则将两者的值交换。
取模运算符Mod用来求余数,即结果是数c整除数b所得的余数。
c等于a值的累加,其值在逐步增大,c当然能整除a;
而循环结束的条件为c是否能整除b,当刚好整除时跳出循环体,