国家二级VB机试(菜单和对话框、数组)模拟试卷1(题后含答案及解析)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

国家二级VB机试(菜单和对话框、数组)模拟试卷1(题后含答案
及解析)
题型有:1. 选择题
选择题
1.窗体上有一个用菜单编辑器设计的菜单。

运行程序,并在窗体上单击鼠标右键,则弹出一个快捷菜单,如图所示。

以下叙述中错误的是
A.在设计“粘贴”菜单项时,在菜单编辑器窗口中设置了“有效”属性(有“√”)
B.菜单中的横线是在该菜单项的标题输入框中输入了一个“一”(减号)字符
C.在设计“选中”菜单项时,在菜单编辑器窗蹦中设置了“复选”属性(有“√”)
D.在设计该弹出菜单的主菜单项时,在菜单编辑器窗口中去掉了“可见”前面的“√”
正确答案:A
解析:本题考查的考点是菜单。

菜单项的“有效”属性是控制菜单项的有效性的。

只要把一个菜单项的“有效”属性设置为False,就可以使其失效,运行后该菜单项变为灰色;要在菜单项中插入分隔线应该在标题框中输入“-”菜单项标志,可以通过菜单设计窗口中的“复选”属性设置,当该属性为True时,相应的菜单项前有“√”标记;弹出菜单由于初始运行时应该不可见,故应去掉“可见”前面的“√”标记。

知识模块:菜单和对话框
2.如果一个菜单项的Enabled属性被设置为False,则程序运行时,该菜单项
A.不显示
B.显示但无效
C.有效可用
D.不显示但有效可用
正确答案:B
解析:菜单项也是对象,也可以设置属性,如果Enabled属性被设置为False,则程序运行时,该菜单项显示但无效(呈现灰色)。

知识模块:菜单和对话框
3.如果一个顶级菜单项的访问键为D,则以下等同于单击该菜单项的操作为
A.按Ctrl+D键
B.按Alt+D键
C.按D键
D.按Shift+D键
正确答案:B
解析:访问键就是菜单项中加了下划线的字母,只要同时按下<Alt>键和加了下划线的字母键,就可以选择相应的菜单项。

设置访问键时,必须将菜单标题中要设为访问键的字母前面加上“&”字符。

知识模块:菜单和对话框
4.以下关于菜单的叙述中,错误的是
A.当窗体为活动窗体时,用Ctrl+E键可以打开菜单编辑器
B.把菜单项的Enabled属性设置为False,则可删除该菜单项
C.弹出式菜单在菜单编辑器中设计
D.程序运行时,利用控件数组可以实现菜单项的增加或减少
正确答案:B
解析:本题考查的考点是有关菜单的。

Visual Basic中的菜单通过菜单编辑器建立,可以通过4种方式进入菜单编辑器:执行“工具”菜单中的“菜单编辑器”命令、使用Ctrl+E组合键、单击工具栏中的“菜单编辑器”按钮、在要建立菜单的窗体上单击鼠标右键,将弹出一个菜单,然后单击“菜单编辑器”命令;不管是顶层菜单还是弹出菜单都在菜单编辑器中设计;程序运行时可以利用菜单项的动态数组实现菜单项的增加或减少;如果把菜单项的Enable属性置为False,则该菜单项不可用,但是并没有在菜单中删除。

知识模块:菜单和对话框
5.在利用菜单编辑器设计菜单时,为了把组合键“Alt+X”设置为“退出(X)”菜单项的访问键,可以将该菜单项的标题设置为
A.退出(X&)
B.退出(&X)
C.退出(X#)
D.退出(撑X)
正确答案:B
解析:访问键就是菜单项中加了下划线的字母,只要同时按下<Alt>键和加了下划线的字母键,就可以选择相应的菜单项。

快捷键和访问键都是在设计菜单时直接指定。

设置访问键时,必须在要设置为访问键的字母前面加上一个“&”。

知识模块:菜单和对话框
6.下面关于菜单的叙述中正确的是
A.为使选中一菜单项就可执行某种操作,要为它的Click事件过程编写执行该操作的代码
B.同一级菜单中的菜单项不能同名,但不同级菜单中的菜单项可以同名C.只能使用鼠标右键把弹出式菜单弹出来
D.弹出式菜单中的菜单项不能再有自己的子菜单
正确答案:A
解析:菜单项也作为对象看待,所以不能有两个菜单项名字完全相同;弹出
式菜单的编辑过程和下拉式菜单一样,菜单项也可以再设置子菜单;弹出式菜单要使用对象.PopupMenu菜单名来弹出,一般是编写窗体的鼠标事件,可以设计成单击左键弹出菜单;为了使得选中一个菜单项就可以执行某种操作,要为它的Click事件过程编写执行该操作的代码。

知识模块:菜单和对话框
7.以下关于通用对话框的叙述中,错误的是
A.在程序运行状态下,通用对话框控件是不显示的
B.通用对话框控件是Visual Basic的标准控件
C.设计时,通用对话框控件的大小是固定的,不能改变
D.在同一个程序中,一个通用对话框控件可以作为打开、保存等多种对话框
正确答案:B
解析:通用对话框(CommonDialog)是ActiveX控件,提供诸如打开文件、保存文件、设置打印选项、选择颜色和字体、显示帮助等操作的一组标准对话框。

该控件设计时大小固定不能改变,运行时不可见。

知识模块:菜单和对话框
8.在窗体画一名为CommonDialog1,则下列与CommonDialog1.ShowOpen 方法等效的语句是
A.CommonDialog1.Action=1
B.CommonDialog1.Action=2
C.CommonDialog1.Action=3
D.CommonDialog1.Action=4
正确答案:A
解析:通用对话框提供诸如打开文件、保存文件、设置打印选项、选择颜色和字体、显示帮助等操作的一组标准对话框,该控件运行时不可见。

Action属性用于设置被打开对话框的类型,与ShowXXX方法相对应,如下表所示:知识模块:菜单和对话框
9.下列关于通用对话框CommonDialog1的叙述中,错误的是
A.只要在“打开”对话框中选择了文件,并单击“打开”按钮,就可以将选中的文件打开
B.使用CommonDialog1.ShowColor方法,可以显示“颜色”对话框
C.CancelError属性用于控制用户单击“取消”按钮关闭对话框时,是否显示出错警告
D.在显示“字体”对话框前,必须先设置CommonDialog1的Flags属性,否则会出错
正确答案:A
解析:通用对话框(CommonDialog)提供诸如打开文件(showOpen)、保存文件(ShowSave)、设置打印选项(ShowPriter)、选择颜色和字体(ShowFont)、显示帮助(showHelp)等操作的一组标准对话框,该控件运行时不可见。

当通用对话框显示为“打开”类型时,单击“打开”按钮后其FileName属性可返回或设置所选文
件的路径和文件名,但并不能直接打开该文件。

使用显示字体(Font)对话框之前,必须先设置控件的Flags属性为cdlCFBoth、cdlCFPrinterFonts、cdlCFScreenFonts 这3个值中的一个。

CancelError属性用于设置当用户选择“取消”按钮时,是否显示错误信息(默认为否)。

知识模块:菜单和对话框
10.窗体上有一个名称为CD1的通用对话框,一个名称为Text1的文本框,窗体的单击事件过程如下:Private Sub Form_Click( )CD1.DialogTitle=“改变颜色”:CD1.Color=Form1.BackColorCD1.Action=3:Text1.BackColor=CD1.ColorEnd Sub运行程序时,单击窗体,则以下叙述中错误的是
A.通用对话框的标题被改为“改变颜色”
B.通用对话框被打开为颜色对话框
C.若选择颜色对话框中的“取消”按钮,则文本框的背景色改为窗体背景色
D.若选择颜色对话框中的“确定”按钮,则文本框的背景色改为在颜色对话框中选中的颜色
正确答案:A
解析:通用对话框(CommonDialog)提供诸如打开文件、保存文件、设置订印选项、选择颜色和字体、显示帮助等操作的一组标准对话框,该控件运行时不可见。

通用对话框的DialogTitle属性用于返回或设置该对话框标题栏上所显示的文本;Action属性用于设置被打开对话框的类型,3为“打开”颜色对话框类型。

只有设置了Action属性后埘话框才被打开,对对话桩属性的设置才能起作用,由于本题中设置DialogTitle的语句在设置Action属性之前,因此不起作用。

知识模块:菜单和对话框
11.利用通用对话框控件打开字体对话框的操作是
A.把通用对话框控件的Action属性设置为4
B.把通用对话框控件的Action属性设置为5
C.调用通用对话框控件的OpenFont方法
D.调用通用对话框控件的ShowText方法
正确答案:A
解析:通用对话框(CommonDialog)提供诸如打开文件、保存文件、设置打印选项、选择颜色和字体、显示帮助等操作的一组标准对话框,该控件运行时不可见。

Action属性用于设置被打开对话框的类型。

要想打开字体对话框。

需要将通用对话框控件的Action属性设置为4,或者调用对话框的ShowFont方法。

知识模块:菜单和对话框
12.语句Dim a(-3To4,3To6)As Integer定义的数组的元素个数是
A.18
B.28
C.21
D.32
正确答案:D
解析:本题考查的考点是有关二维数组的。

二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用To连接,即给出下标可取值的变化范围。

“数组元素个数”指的是数组中成员的个数,每一维的长度是上界-下界+1,数组元素个数等于各维长度之积。

知识模块:数组
13.设有如下数组定义语句:Dim a(-1To4,3)As Integer以下叙述中正确的是
A.a数组有18个数组元素
B.a数组有20个数组元素
C.a数组有24个数组元素
D.语法有错
正确答案:C
解析:二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用To连接,即给出下标可取值的变化范围。

“数组元素个数”指的是数组中成员的个数,每一维的长度是上界一下界+1,数组元素个数等于各维长度之积。

数组下标的默认下限值为0,此时数组某一维的元素个数等于该维下标上界值加1。

知识模块:数组
14.下列数组定义中错误的是
A.Dim a(-5 To -3)
B.Dim a(3 To 5)
C.Dim a(-3 To -5)
D.Dim a(-3 To 3)
正确答案:C
解析:定义数组一般使用的格式是Dim<数组名(下界To上界[,下界To上界]…)>As<类型名称>,其中定义数组时,每一维的下标必须是常数,不能是变量或表达式。

即使在执行数组定义语句之前给出变量的值,也是错误的;无论定义数组的格式为那种,下界都必须小于上界。

知识模块:数组
15.设有如下声明语句Option Base1Dim art(2,-1 To 5)As Integer则数组art 中数组元素的个数是
A.10
B.12
C.14
D.21
正确答案:C
解析:二维数组定义时对于数组的每一维均给定下标的下界和上界,中间用To连接,即给出下标可取值的变化范围。

“数组元素个数”指的是数组中成员的个数,每一维的长度是上界-下界+1,默认下界是0,数组元素个数等于各维长
度之积。

知识模块:数组
16.设有下面的程序段:x=InputBox(“请输入一个整数”)ReDim a(x)For k=x To 0 Step-1a(k)=kNext k一般,在这段程序之前应先进行数组a的定义。

下面定义语句中正确的是
A.Dim a(100)As Integer
B.Dim a( )As Integer
C.Dim a As Integer
D.Dim a(0 To 100)As Integer
正确答案:B
解析:动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中随时用ReDim语句可以重定义变量作为下标的数组,重定义后原数组的所有元素值被清空。

知识模块:数组
17.设有如下一段程序:Private Sub Command1_Click( )Static a As Varianta=Array(“one”,”two”,”three”,”four”,”five”)Print a(3)End Sub针对上述事件过程,以下叙述中正确的是
A.变量声明语句有错,应改为Static a(5)As Variant
B.变量声明语句有错,应改为Static a
C.可以正常运行,在窗体上显示three
D.可以正常运行,在窗体上显示four
正确答案:D
解析:Array(arglist)函数用于将arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。

数组的默认下界为0,所以a(3)是数组的第四个元素。

知识模块:数组
18.在程序中要使用Array函数给数组arr赋初值,则以下数组变量定义语句中错误的是
A.Static arr
B.Dim arr(5)
C.Dim air( )
D.Dim air As Variant
正确答案:B
解析:Array(arglist)函数用于将arglist参数中一组用逗号隔开的值列转换成一个数组并赋值给某数组变量,此时要求数组变量在定义时定义成变体型变量或者不声明长度的数组,不能是定长数组。

知识模块:数组
19.有下面程序代码:Option Base1Private Sub Command1_Click( )Dim a(10)As Integer,x,bx=InputSox(“请输入一个多位整数”)For k=1To
Len(x)b=Mid(x,k,1)a(Val(b)+1)=a(Val(b)+1)+1NextkFor k=1T010Print a(k);Next kEnd Sub程序运行时,单击命令按钮Command1,输入2355270224,则输出是A.1 0 4 1 1 2 0 1 0 0
B.0 4 1 1 2 0 1 0 0 0
C.2 3 5 5 2 7 0 2 2 4
D.4 2 2 0 7 2 5 5 3 2
正确答案:A
解析:InputBox函数将会返同用户存输入对话框中输入的文本,以字符串的形式返回;在第一个For循环中从前到后依次取出字符串中的每一位数字,然后令对应的数组元素自加1,其中数组的第一位放的是0的个数,所以循环结束后数组中存放的是各个数字出现的个数。

知识模块:数组
20.在窗体上画一个名为Commandl的命令按钮,然后编写以下程序:Private Sub Command1_Click( )Dim M(10)As IntegerFor k=1To10M(k)=12-kNext kx=8Print M(2+M(x))End Sub运行程序,单击命令按钮,在窗体上显示的是A.6
B.5
C.7
D.8
正确答案:A
解析:本题考查的考点是有关数组的。

本题只需要清楚知道最终输出的是什么就可以了,由于x被赋值为8,所以M(x)也就是M(8),其值为4;将4代换M(x),可以知道最终输出的是M(2+4)也就是M(6),所以最终输出结果为6。

知识模块:数组
21.在窗体上画一个名称为Text1的文本框,并编写如下程序:Option Base1Private Sub Form_Click( )Dim arrDim Start As Integer,Finish As Integer Sum As Integerarr=Array(12,4,8,16)Start=LBound(arr):Finish=UBound(arr):Sum=0For i=Start To FinishSum=Sum+arr(i)Next iC=Sum/FinishText1.Text=CEnd Sub运行程序,单击窗体,则在文本框中显示的是
A.40
B.10
C.12
D.16
正确答案:B
解析:本题中变量Start存放的是数组的下界,Finish存放数组的上界,因此For循环将遍历整个数组:在每次循环中将数组元素累加到累加和变量Sum 中,循环结束后用累加和变量除以数组上界,由于数组下界从0开始,即求出数组平均值。

知识模块:数组
22.窗体上有一个名称为Command1的命令按钮,并有如下程序代码:
Option Base1Private Sub Command1_Click( )Dim a%(3,3)For i=1To3For j=1To3If i>1And j>1Thena(i,j)=a(a(i-1,j-1),a(i,j-1))+1Elsea(i,j)=i*jEnd IfNextNextPrint a(2,2);a(3,3)End Sub运行程序,单击命令按钮,窗体上显示的是
A.1 3
B.2 1
C.2 2
D.3 3
正确答案:D
解析:奉题是一个二维数组的赋值问题,要判断清哪一个数组元素的值被赋值成了多少。

首先确定a(1,1)=1,a(1,2)=2,a(1,3)=3,a(2,1)=2,a(3,1)=3;然后按照公式计算其余的元素。

知识模块:数组
23.窗体上有一个名称为Command1的命令按钮。

要求编写程序,把文件f1.txt的内容写到文件f2.txt中,然后将f1.txt删除。

命令按钮的单击事件过程如下:Private Sub Command1_Click( )Open”c:\f1.txt”For Input As#1Open”c:\f2.txt”For Output As#2Do Whlile Not EOF(2)Line Input#1,str1Print#2.str1LoopClose Kill”c:\f1.txt”End Sub该程序运行时发生错误,应该进行的修改是
A.打开f1.txt应该使用Output方式,打开t2.txt应该使用Input方式
B.Not EOF(2)应该改为Not EOF(1)
C.Line Input应改为Get
D.Close语句改为Close All
正确答案:B
解析:打开文件的基本格式为:Open FileName For Mode As#FileNumber。

打开方式主要有Output、Append、Input、Random等几种。

本题中打开了两个文件,其中1号文件用于读取,2号文件用丁写入。

当进行读取时循环条件应该为NotEOF(1)即还没有读取到文件结尾。

知识模块:数组
24.窗体上有一个名称为Command1的命令按钮,有程序如下:Option Base1Private Sub Command1_Click( )Dim a(10)As Integer‘第1个ForFor i=1To10a(i)=Int(Rnd*100+100)Print a(i);Nextx=a(i):y=x‘第2个ForFor i=1To10If x<a(i)Then x=a(i)If y>a(i)Then y=a(i)s=s+a(i)NextPrint x,y,sEnd Sub关于上述程序的叙述中,正确的是
A.程序运行出错,第1个For循环之后的x=a(i)赋值语句错
B.程序正常运行,x是10个随机数中的最大值
C.程序正常运行,s是10个随机数的和
D.程序正常运行,10个随机数的范围是100—200
正确答案:A
解析:随机数函数Rnd的功能是用于产生一个小于1但大于或等于0的随机数,本题中产生的整数的范围是100—199;在第一个循环结束后,循环变量i
的值为不满足循环条件的值11,在紧随其后的x=a(i)语句将会执行出错,因为出现了数组越界。

知识模块:数组
25.假定有如下程序:Private Sub Form_Click( )Dim a(4)As Integer,b(4)As IntegerFor k=0To2a(k+1)=Val(InputBox(“请输入一个整数:”))b(3-k)=a(k+1)NextkPrint b(k)End Sub运行程序,单击窗体,依次输入3、6、9,输出结果为
A.3
B.6
C.9
D.1
正确答案:A
解析:本题在循环中输入数据,当第一次输入3的时候a(1)=3,b(3)=a(1)=3;当第二次输入6的时候a(2)=6,b(2)=a(2)=6;当第三次输入9的时候a(3)=6,b(1)=a(3)=9,跳出循环后k的值为3,将输出b(3)的值。

知识模块:数组
26.阅读程序:Option Base1Sub P(b( )As Integer)For i=1To4b(i)=2*iNext iEnd SubPrivate Sub Form_Click( )Dim a(4)As IntegerFor i=1To4a(i)=i+4Next iP aFor i=1To4Print a(i)Next iEnd Sub运行上面的程序,单击窗体,输出结果为A.2 4 6 8
B.5 6 7 8
C.10 12 14 16
D.4 8 12 16
正确答案:A
解析:本题中的过程P的功能是为形参数组b进行赋值,数组作为参数时采用的是地址传递,所以对形参的改变将会影响实参,也就是在窗体的单击事件中,首先在一个循环中为数组a赋值,然后调用了P过程重新为a赋值覆盖掉原来的值。

知识模块:数组
27.设有下面程序代码:Private Sub Command1_Click( )Dim a As Varianta=Array(22,43,23,56,87,45,67,12,98,98,56,34,23,75,64)m=a(0)n=mFor k=1ToUBound(a)If a(k)>m Thenn=m:m=a(k)ElseIf a(k)>n And a(k)<>m Thenn=a(k)End IfNext kPrint nEnd Sub程序运行时的输出是A.数组中最大的数(即98)
B.数组中最小的数(即12)
C.数组中第2大的数(即87)
D.数组中第1个数(即22)
正确答案:C
解析:本题显然是求取数组最大值的,先取得数组的第一个元素作为最大值,然后用m保存最大值;在循环中如果发现了有比m还大的数组元素,则将该元素作为新的最大值,原来的最大值m赋值给n;如果元素不比m大就去比较元
素是否大于n,若大于n则将元素赋值给n,所以循环结束后n中的值是数组中第2大的数。

知识模块:数组
28.以下关于控件数组的叙述中,正确的是
A.数组中各个控件具有相同的名称
B.数组中可包含不同类型的控件
C.数组中各个控件具有相同的Index属性值
D.数组元素不同,可以响应的事件也不同
正确答案:A
解析:控件数组是一组具有共同名称和共同类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号(Index),即下标。

知识模块:数组
29.假定通过复制、粘贴操作建立了一个命令按钮数组Command1,以下说法中错误的是
A.数组中每个命令按钮的名称(Name属性)均为Command1
B.若未做修改,数组中每个命令按钮的大小都一样
C.数组中各个命令按钮使用同一个Click事件过程
D.数组中每个命令按钮的Index属性值都相同
正确答案:D
解析:本题考查的考点是有关控件数组的。

控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从0开始。

建立控件数组有两种方法:一是先在窗体上画好一个控件,然后再用“复制”和“粘贴”的方法建立:二是先在窗体上先画出若干相同类型的控件,然后再将它们的名称改为同一个名称,再将其Index属性分别设置为不同值即可。

采用第一种方法建立控件数组时,每个数组元素的名称、大小、事件均使用同一个,区别只在于Index属性不一样。

知识模块:数组
30.窗体上有一个名称为Option1的单选按钮数组,程序运行时,当单击某个单选按钮时,会调用下面的事件过程Private Sub Option1_Click(Index As Integer)End Sub下面关于此过程的参数Index的叙述中正确的是
A.Index为1表示单选按钮被选中,为0表示未选中
B.Index的值可正可负
C.Index的值用来区分哪个单选按钮被选中
D.Index表示数组中单选按钮的数量
正确答案:C
解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号(Index),即下标,默认索引号从0开始,不能为负值。

知识模块:数组
31.下面关于控件数组的叙述中正确的是
A.控件数组中所有控件的名称相同,但其Index属性值各不相同
B.控件数组中所有控件的名称相同,但其Value属性值各不相同
C.控件数组中每个元素都是独立的控件,因此都有各自的事件过程
D.上述都是错误的
正确答案:A
解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有惟一的索引号(Index),即下标,默认索引号从0开始,不能为负值。

知识模块:数组
32.窗体上有一个由两个文本框组成的控件数组,名称为Text1,并有如下事件过程:Private Sub Text1_Change(Index.As Integer)Select Case IndexCase 0text1(1).FontSize=Text1(0).FontSize*2Text1(1).Text=Text1(0).TextCase1Te xt1(0).FontSize=Text1(1).FontSize/2Text1(0).Text=Text1(1).TextCase ElseMsgBox”执行Else分支”End SelectEnd Sub关于上述程序,以下叙述中错误的是
A.Index用于标识数组元素
B.本程序中Case Else分支的语句永远不会被执行
C.向任何一个文本框输入字符,都会在另一个文本框中显示该字符
D.下标为0的文本框中显示的字符尺寸将越来越小
正确答案:D
解析:控件数组是一组具有共同名称和类型的控件,它们拥有共同的事件,数组中的每个控件都有唯一的索引号(Index),即下标,默认索引号从0开始。

奉题中的两个文本框的Index值分别为0和1,所以Case Else分支的语句永远不会被执行;根据程序向任何一个文本框输入字符,都会在另一个文本框中显示该字符:在0号文本框中输入时1号文本框的字号是0号文本框字号的2倍,在1号文本框中输入时0号文本框的字号是1号文本框字号的一半,相当于没有变化,不会越来越小。

知识模块:数组。

相关文档
最新文档