二级Visual+Basic语言程序设计模拟218.docx
《二级Visual+Basic语言程序设计模拟218.docx》由会员分享,可在线阅读,更多相关《二级Visual+Basic语言程序设计模拟218.docx(24页珍藏版)》请在冰豆网上搜索。
二级Visual+Basic语言程序设计模拟218
[模拟]二级VisualBasic语言程序设计模拟218
单项选择题
第1题:
在关系数据库中,用来表示实体间联系的是____
A.属性
B.二维表
C.网状结构
D.树状结构
参考答案:
B
第2题:
设循环队列的存储空间为Q(1:
35),初始状态为front=rear=35。
现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为____
A.15
B.16
C.20
D.0或35
参考答案:
D
在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置。
在循环队列中进行出队、入队操作时,头尾指针仍要加1,朝前移动。
只不过当头尾指针指向向量上界时,其加1操作的结果是指向向量的下界0。
由于入队时尾指针向前追赶头指针,出队时头指针向前追赶尾指针,故队空和队满时,头尾指针均相等。
答案为D选项。
第3题:
在设计阶段,如果双击窗体上的一个文本框控件,则在代码窗口中显示该控件的事件过程所对应的事件是____
A.Click
B.DblClick
C.Change
D.GotFocus
参考答案:
C
在设计阶段,双击窗体上的一个文本框控件,在代码窗口中显示该控件的事件过程所对应的事件是Change事件。
第4题:
下列叙述中正确的是____
A.有一个以上根结点的数据结构不一定是非线性结构
B.只有一个根结点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
参考答案:
B
线性结构应满足:
有且只有一个根结点与每个结点最多有一个前件,也最多有一个后件,所以B正确。
所以有一个以上根结点的数据结构一定是非线性结构,所以A错误。
循环链表和双向链表都是线性结构的数据结构。
第5题:
要使标签中的文本靠右显示,应将其Aligment属性设置为____
A.0-LeftJustify
B.1-RightJustify
C.2-Center
D.3
参考答案:
B
0-LeftJustify:
文本靠左显示;1-RightJustify:
文本靠右显示;2-Center:
文本居中显示。
第6题:
有两个关系R和S如下:
则由关系R得到关系S的操作是____
A.选择
B.投影
C.自然连接
D.并
参考答案:
A
由关系R到关系S为一元运算,排除C和D。
关系S是关系R的一部分,是通过选择之后的结果,因此选A。
第7题:
数据字典(DD)所定义的对象都包含于____
A.数据流图(DFD图)
B.程序流程图
C.软件结构图
D.方框图
参考答案:
A
在数据流图中,对所有元素都进行了命名,所有名字的定义集中起来就构成了数据字典。
因此选A,而B,C,D都不符合。
第8题:
下列关于二叉树的叙述中,正确的是____
A.叶子结点总是比度为2的结点少一个
B.叶子结点总是比度为2的结点多一个
C.叶子结点数是度为2的结点数的两倍
D.度为2的结点数是度为1的结点数的两倍
参考答案:
B
根据二叉树的基本性质3:
在任意一棵二叉树中,度为0的叶子结点总是比度为2的结点多一个。
所以选择B。
第9题:
在VisualBasic中,所有标准控件都具有的属性是____
A.Caption
B.Name
C.Text
D.Value
参考答案:
B
VB标准控件中不同控件具有不同属性,有的相同有的不同,但都具有Name属性。
故选B。
第10题:
为了删除列表框中的一个列表项,应使用的列表框方法是____
A.Move
B.Remove
C.Clear
D.RemoveItem
参考答案:
D
RemoveItem方法用来删除列表中指定的项目,格式为:
列表框.RemoveItem索引值。
第11题:
下列关于数据库设计的叙述中,正确的是____
A.在需求分析阶段建立数据字典
B.在概念设计阶段建立数据字典
C.在逻辑设计阶段建立数据字典
D.在物理设计阶段建立数据字典
参考答案:
A
数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实和完善的。
第12题:
为了声明一个长度为128个字符的定长字符串变量StrD,以下语句中正确的是____。
A.DimStrDAsString
B.DimStrDAsString(128)
C.DimStrDAsString[128]
D.DimStrDAsString*128
参考答案:
D
有定长和不定长的字符串变量。
默认情况下,定义的字符串变量属于不定长的,字符串长度可以改变,比如:
DimstrAsString。
如果声明一个定长字符串变量,形如DimstrAsString*字符个数。
故D选项正确。
第13题:
已知:
x=-6y=39则表达式"y\x*Sgn(x)"的值为____。
A.-6.5
B.-6
C.6
D.6.5
参考答案:
C
本题按运算符从高到低优先级计算:
*(\,所以应该是39\-6)*Sgn(-6)=39\(-6)*(-1)=(39\6=6,故选C。
第14题:
在窗体上画一个通用对话框,程序运行中用ShowOpen方法显示"打开"对话框时,希望在该对话框的"文件类型"栏中只显示扩展名为DOC的文件,则在设计阶段应把通用对话框的Filter属性设置为____。
A.(*.DO@C@*.DOC
B.(*.DO@C@|(.DO@C@
C.(*.DO@C@||*.DOC
D.(*.DO@C@|*.DOC
参考答案:
D
文件对话框中的Filter属性是用来指定文件列表框中显示的文件类型。
属性Filter称为过滤器,需要设置多个过滤器时可用"管道符|"将各项隔开。
管道符前面是说明,后面是类型。
本题只显示扩展名为DOC的文件,所以Filter属性值设置为"(*.DOC)|*.DOC"。
故选D。
第15题:
通过一个属性可以获得文件列表框中当前被选中文件的文件名,这个属性是____
A.Dir
B.Path
C.Drive
D.FileName
参考答案:
D
FileName属性用来设置或返回程序运行过程中当前选中的文件名称。
Path属性用来设置或返回程序运行过程中当前选中的文件的路径。
第16题:
以下自定义数据类型的语句中,正确的是____。
A.TypestudentIDAsString*20nameAsString*10ageAsIntegerEndstudent
B.TypestudentIDAsString*20nameAsString*10ageAsIntegerEndType
C.TypestudentIDAsStringnameAsStringageAsIntegerEndstudent
D.TypeIDAsString*20nameAsString*10ageAsIntegerEndTypestudent
参考答案:
B
第17题:
在某个事件过程中定义的变量是____。
A.局部变量
B.窗体级变量
C.全局变量
D.模块变量
参考答案:
A
在某个事件过程中定义的变量是局部变量;在窗体或标准模块中用Dim或Private定义的变量是窗体级或模块级变量;在窗体或标准模块中用Public定义的变量是全局变量。
故选A。
第18题:
在设计阶段,假定在图片框Picture1中装入了一个图形,为了删除该图片框控件,应采用的正确操作是____
A.选择图片框,然后按Del键
B.执行语句Picture1.Picture=LoadPicture("")
C.执行语句Picture1.Picture=""
D.选择图片框,在属性窗口中选择Picture属性,然后按回车键
参考答案:
A
删除图片框控件,先选择图片框,然后按Del键。
第19题:
以下不能用形状控件画出的图形是
A.矩形
B.圆形
C.椭圆
D.扇形
参考答案:
D
形状控件(Shape)提供了显示一些规则图形的简易方法,通过设置形状控件Shape属性值,可显示6种图形:
0-矩形、1-正方形、2-椭圆、3-圆、4-圆角矩形、5-圆角正方形。
第20题:
以下叙述中错误的是____。
A.Print#语句和Write#语句都可以向文件中写入数据
B.用Print#语句和Write#语句所建立的顺序文件格式总是一样的
C.如果用Print#语句把数据输出到文件,则各数据项之间没有逗号分隔,字符串也不加双引号
D.如果用Write#语句把数据输出到文件,则各数据项之间自动插入逗号,并且把字符串加上双引号
参考答案:
B
用Print#语句和Write#语句都可以向文件写入数据,但输出到文件的数据的格式不同。
故B选项错误。
用Print#语句写入文本文件的数据,字符串不会自动加上双引号,各数据项之间没有都好分隔,原样输入,方便阅读。
适合用LineInput#语句读出。
用Write#语句写入文本文件的数据,字符串会自动加上""双引号,并且各数据项中间用,逗号分隔,阅读起来不是很好看。
适合用Input#语句读出。
故A、C、D选项正确。
第21题:
为了使标签控件在显示其内容时不覆盖其背景内容,需进行设置的属性为____。
A.BackColor
B.BorderStyle
C.ForeColor
D.BackStyle
参考答案:
D
标签控件的BackStyle属性值为0时,标签为透明的,不会遮住背景内容,BackStyle属性值为1时,标签将覆盖背景。
第22题:
如果改变驱动器列表框的Drive属性,则将触发的事件是____。
A.Change
B.Scroll
C.KeyDown
D.KeyUp
参考答案:
A
如果改变驱动器列表框的Driv属性,则将触发Change事件。
第23题:
窗体上有一个名称为VScroll1的垂直滚动条,要求程序运行时,滚动块的初始位置在最下端,应该使VScroll1.Value的值等于____。
A.VScroll1.LargeChange
B.VScroll1.SmallChange
C.VScroll1.Max
D.VScroll1.Min
参考答案:
C
滚动条的Value属性表示滚动框在滚动条上的当前位置,默认值为0,即在滚动条的左端或顶端,如果Value的值等于Max属性的值时,则滚动框在滚动条的最右端或底端。
第24题:
设窗体名称为frm1。
以下叙述中正确的是____。
A.运行程序时,能够加载窗体的事件过程是frm1_Load
B.运行程序时,能够加载窗体的事件过程是Form1_Load
C.程序运行中用语句:
frm1.Name="New"可以更改窗体名称
D.程序运行中用语句:
frm1.Caption="新标题"可以改变窗体的标题
参考答案:
D
一个控件的事件过程由控件的实际名字(Name属性)、下划线和事件名称组成,而窗体事件过程由"Form"、下划线和事件名组成。
因此,不管窗体名称是什么,窗体加载事件过程总是Form_Load。
窗体的名称即Name属性在程序运行时不可以更改,窗体的标题即Caption属性则可以在程序运行时更改。
第25题:
设在窗体上有一个名称为Check1的复选框数组,并有以下事件过程:
PrivateSubCheck1_Click(IndexAsInteger)
…
EndSub
则下面叙述中错误的是____。
A.单击数组中任何复选框都会调用此事件过程
B.参数Index的值等于单击数组中某个复选框的Index属性的值
C.上面的过程是数组中第1个复选框的事件过程
D.从过程的首部(即第1行)无法确定数组中复选框的个数
参考答案:
C
控件数组具有相同的名称,它们以Index属性值作为数组元素的下标,以此来区别控件数组的各个成员。
本题中,单击复选框数组中的任何一个都会调用同一个单击事件过程,因此C选项叙述有误。
在单击事件过程参数中,Index参数即是该复选框的Index属性值。
由于控件数组使用具有相同的名称且有相同的单击事件过程,因此从过程的首部无法确定数组中的复选框的个数。
第26题:
为了暂时关闭计时器,应把它的一个属性设置为False,这个属性是____
A.Visible
B.Timer
C.Enabled
D.Interval
参考答案:
C
Enabled是用来设置控件是否可用,而Visible是用来设置控件是否可见。
计时器控件的Enabled属性设置为False,则停止计数;设置为True,则开始计数。
第27题:
下列选项中属于面向对象设计方法主要特征的是______。
A.继承
B.自顶向下
C.模块化
D.逐步求精
参考答案:
A
面向对象基本方法的基本概念有对象、类和实例、消息、继承与多态性,所以选择A。
第28题:
为了调整图像框的大小以与其中的图形相适应,必须把它的Stretch属性设置为____。
A.True
B.False
C.1
D.2
参考答案:
B
图像框的Strethc属性值为False时,将自动放大或缩小图像框中的图形以与图像框的大小相适应。
第29题:
以下能接收焦点的控件是____
A.图像框
B.框架
C.命令按钮
D.标签
参考答案:
C
标签、框架、菜单、直线、形状、图像框、计时器都不能接收焦点,能接收焦点的控件为命令按钮。
第30题:
在窗体上画一个名称为Command1的命令按钮,并编写如下程序:
OptionBase1
PrivateSubCommand1_Click()
Dima(4,4)
Fori=1To4
Forj=1To4
a(i,j)=(i-1)*3+j
Nextj
Nexti
Fori=3To4
Forj=3To4
Printa(j,i);
Nextj
Print
Nexti
EndSub
运行程序,单击命令按钮,则输出结果为____。
A.6 9 7 10
B.7 10 8 11
C.8 11 9 12
D.9 12 10 13
参考答案:
D
程序中数组元素赋值如下:
第31题:
以下程序的功能是随机产生10个两位的整数:
OptionBase1
PrivateSubCommand1_Click()
Dima(10)AsInteger
DimiAsInteger
Randomize
Fori=1To10
a(i)=Int(Rnd*100)+1
Printa(i)
Nexti
EndSub
运行以上程序,发现有错误,需要对产生随机数的语句进行修改。
以下正确的修改是____。
A.a(i)=Int(Rnd*100)
B.a(i)=Int(Rnd*90)+10
C.a(i)=Int(Rnd*100)+10
D.a(i)=Int(Rnd*101)
参考答案:
B
由Rnd函数生成的随机数在0~1之间,包括0但不包括1,所以有可能产生0,与题目要求的两位的整数不符。
所以语句a(i)=Int(Rnd*100)+1需要修改为a(i)=Int(Rnd*90)+10,这样就能正确产生两位的整数了。
第32题:
运行程序后单击命令按钮。
以下叙述中错误的是____。
A.信息框的标题是Basic
B.信息框中的提示信息是Programming
C.c的值是函数的返回值
D.MsgBox的使用格式有错
参考答案:
D
Right(x,11)是从字符串变量x右边取11个字符,即“Programming”,这个字符串存入变量a中。
Mid(x,7,5)是从字符串变量x的第7个字符开始取5个字符,即“Basic”,此字符串存入变量b中。
MsgBos的格式为:
MsgBox(Prompt[,Button][,Tile]),参数中只有Prompt是必需的,如果省略Button则显示一个确定按钮,因此题目显示的消息框有一个确定按钮,标题是“Basic”,信息是“Programming”。
Msg-Box的返回值是一个与所选择按钮有关的整数。
第33题:
设窗体上有2个文本框Text1和Text2,并有下面的事件过程:
Dimn
PrivateSubText1_KeyPress(KeyAsciiAsInteger)
If"A"﹤=Chr(KeyAscii)AndChr(KeyAscii)﹤="Z"Then
n=n+1
EndIf
IfKeyAscii=13Then
Text2.Text=n
EndIf
EndSub
程序运行时,在文本框Text1中输入"VisualBasic6.0"并按回车键后,在文本框Text2中显示的是____。
A.2
B.9
C.13
D.16
参考答案:
A
KeyPress事件的参数KeyAscii为所按键的ASCII码,Chr函数把这个ASCII码转换为对应的字符,回车键的ASCII码值是13。
程序中KeyPress过程的功能是统计Text1文本框中输入的字符串中A~Z之间字母的个数,按回车键后把个数值显示在Text2文本框中。
在Text1文本框中输入"VisualBasic6.0",其中A~Z的字母有2个,按回车键后,Text2文本框中将会显示2。
第34题:
设有如下事件过程:
PrivateSubCommand1_Click()
Dima
a=Array(12,3,8,5,10,3,5,9,2,4)
Fork=1To9
Printfun(a(k-1),a(k));"";
Nextk
EndSub
PrivateFunctionfun(x,y)AsInteger
DoWhilex﹥=y
x=x-y
Loop
fun=x
EndFunction
程序运行时的输出结果是____。
A.4 0 1 0 3 0 0 4 0
B.0 3 3 5 1 3 5 1 2
C.9 -5 3 -5 7 -2 -4 7-2
D.9 3 3 5 7 3 5 7 2
参考答案:
B
第35题:
在窗体上画一个名称为Command1的命令按钮,编写如下事件过程:
PrivateSubCommand1_Click()
n=0
Fori=0To10
X=2*i-1
IfXMod3=0Thenn=n+1
Nexti
Printn
EndSub
运行程序,单击命令按钮,则窗体上显示的是____。
A.1
B.3
C.5
D.7
参考答案:
B
Mod是取模运算符,即求运算两数相除的余数。
每次循环中X的值分别是-1,1,3,5,7,9,11,13,15,17,19,其中与3求模为0的数有3、9、15共3个,因此n=n+1会执行3次,最终n=3。
第36题:
有以下通用过程:
Functionfun(NAsInteger)
s=0
Fork=1ToN
s=s+k*(k+1)
Nextk
fun=s
EndFunction
该过程的功能是____。
A.计算N!
B.计算1+2+3+...+N
C.计算1×2×2×3×3×...×N×N
D.计算1×2+2×3+3×4+...+N×(N+1)
参考答案:
D
由程序可知s=1*(1+1)+2*(2+1)+3*(3+1)+4*(4+1)...+N*(N+1),因此选项D正确。
第37题:
编写如下程序:
PrivateSubCommand1_Click()
Dima(3,3)AsInteger
DimsAsInteger
Fori=1To3
Forj=1To3
a(i,j)=i*j+i
Nextj
Nexti
s=0
Fori=1To3
s=s+a(i,4-i)
Nexti
Prints
EndSub
程序运行后,单击命令按钮Command1,输出结果为____。
A.7
B.13
C.16
D.20
参考答案:
C
程序通过For循环为数组a赋值,具体值如下:
a(1,1)=1+1=2,a(1,2)=2+1=3,a(1,3)=3+1=4;a(2,1)=2+2=4,a(2,2)=4+2=6,a(2,3)=6+2=8;a(3,1)=3+3=6,a(3,2)=6+3=9,a(3,3)=9+3=12; 程序要计算指定数组元素的和,这几个元素是a(1,3),a(2,2),a(3,1),所以s=4+6+6=16。
第38题:
假定有如下程序:
PrivateSubForm_Click()
Dima(4)AsInteger,b(4)AsInteger
Fork=0To2
a(k+1)=Val(InputBox("请输入一个整数:
"))
b(3-k)=a(k+1)
Nextk
Printb(k)
EndSub
运行程序,单击窗体,依次输入3、6、9,输出结果为____
A.3
B.6
C.9
D.1
参考答案:
A
第39题:
以下过程的功能是从数组中寻找最大值:
PrivateSubFindMax(a()AsInteger,ByRefMaxAsInteger)
DimsAsInteger,fAsInteger
DimiAsInteger
s=LBound(a)
f=UBound(a)
Max=a(s)
Fori=sTof
Ifa(i)﹥MaxThenMax=a(i)
Next
EndSub
以下关于上述过程的叙述中,错误的是____。
A.语句CallFindMax(a,m)可以调用该过程,其中的a是数组,m是Integer类型变量
B.For循环次数等于a数组的元素数
C.过程末尾应该增加一条返回最大值的语句FindMax=Max
D.参数Max用于存放找到的最大值
参考答案:
C
过程定义语句中第1个参数是数组,调用是实参应该是一个数组变量或元素,第2个参数是整型变量。
过程中LBound函数获取了数组下标的下限,UBound函数获取了数组下标的上限,在Fori=stof语句的循环中就可以访问数组中的各个元素。
本过程是用Sub定义的过程不需要返回值。
程序中找到的最大值由参数Max返回,因为它是按址传递的参数,它的值会带给实参。
因此C选项的说法错误。
第40题:
有如下程序:
PrivateSubCommand1_Click()
DimiAsInteger,jAsInteger
DimsumAsInteger
n=1
Do
j=1
Do
sum=sum+j
j=j+1
Printj;
LoopUntilj﹥3
n=n+2
LoopUntiln