1、国家二级 VB 机试(选择题)模拟试卷 208 及答案解析(总分:80.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.算法的时间复杂度是指( )。(分数:2.00)A.算法的长度B.执行算法所需要的时间C.算法中的指令条数D.算法执行过程中所需要的基本运算次数2.以下数据结构中,属于非线性数据结构的是( )。(分数:2.00)A.栈B.线性表C.队列D.二叉树3.数据结构中,与所使用的计算机无关的是数据的( )。(分数:2.00)A.存储结构B.物理结构C.逻辑结构D.线性结构4.内聚性是对模块功能强度的衡量,下列选项中,内聚性较弱的是( )。(分数:2.00)A
2、.顺序内聚B.偶然内聚C.时间内聚D.逻辑内聚5.在关系中凡能惟一标识元组的最小属性集称为该表的键或码。二维表中可能有若干个键,它们称为该表的( )。(分数:2.00)A.连接码B.关系码C.外码D.候选码6.检查软件产品是否符合需求定义的过程称为( )。(分数:2.00)A.确认测试B.需求测试C.验证测试D.路径测试7.数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成。下列图符名标识的图符不属于数据流图合法图符的是( )。(分数:2.00)A.控制流B.加工C.存储文件D.源和潭8.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的
3、顺序排序,采取简单选择排序法,第一趟排序后关键码 15 被放到第( )个位置。(分数:2.00)A.2B.3C.4D.59.对关系 S 和关系 R 进行集合运算,结果中既包含关系 S 中的所有元组也包含关系 R 中的所有元组,这样的集合运算称为( )。(分数:2.00)A.并运算B.交运算C.差运算D.除运算10.下列选项中,不属于数据管理员(DBA)职责的是( )。(分数:2.00)A.数据库维护B.数据库设计C.改善系统性能,提高系统效率D.数据类型转换11.下面的数写成普通十进制数是( )。 86787E+8(分数:2.00)A.86787000B.867870000C.8678700D
4、.867870000012.当窗体大小改变时,要使其中的控件也按比例发生变化,应使用窗体的( )。(分数:2.00)A.AutoSize 属性B.Resize 事件C.AutoRedraw 属性D.Stretch 属性13.以下能正确定义数据类型 Systemlnfo 的代码是( )。(分数:2.00)A.Type Systemlnfo DiskDrives As String*10 Memory As Long End TypeB.Type Systemlnfo DiskDrives As String*10 Memory As Long End SystemlnfoC.Type Syste
5、mlnfo DiskDrives String*10 MemoryLong End Type SystemlnfoD.Typedef Systemlnfo DiskDrives String*10 Memory Long End Type14.以下能从字符串“VisualBasic”中直接取出子字符串“Basic”的函数是( )。(分数:2.00)A.LeftB.MidC.StringD.Instr15.设“A=“87654321“”,则表达式 Val(Left(A,4)+Mid(A,4,2)的值为( )。(分数:2.00)A.876543B.876554C.8D.616.窗体上命令按钮的事件
6、过程如下: Private Sub Command1_Click() A=“34“:B=“26“:C=“98“ Print B+C+A End Sub 运行程序后,单击命令按钮,输出结果是( )。(分数:2.00)A.269834B.269834C.158D.程序运行出错17.当窗体最小化时缩小为一个图标,设置这个图标的属性是( )。(分数:2.00)A.MouselconB.IconC.PictureD.MousePointer18.假定窗体上有一个标签,名为 Label1,为了使该标签透明并且没有边框,则正确的属性设置为( )。(分数:2.00)A.Label1BackStyle=0 La
7、bel1BorderStyle=0B.Label1BackStyle=1 Label1BorderStyle=1C.Label1BackStyle=True Label1BorderStyle=TrueD.Label1BackStyle=False Label1BorderStyle=False19.在程序运行时,下面的叙述中正确的是( )。(分数:2.00)A.用鼠标右键单击窗体中无控件的部分,会执行窗体的 Form Load 事件过程B.用鼠标左键单击窗体的标题栏,会执行窗体的 Form Click 事件过程C.只装入而不显示窗体,也会执行窗体的 Form Load 事件过程D.装入窗体后
8、,每次显示该窗体时,都会执行窗体的 Form Click 事件过程20.下面的程序执行完毕后,组合框中数据项的值是( )。 Private Sub Form_Click() For i=1 To 6 Combo1Addltem i Next i For i=1 To 3 Combo 1Removeltem i Next i End Sub(分数:2.00)A.1 5 6B.1 3 5C.4 5 6D.2 4 621.窗体上有 1 个名称为 Text1 的文本框;1 个名称为 Timerl 的计时器控件,其 Interval 属性值为5000,Enabled 属性值是 True。Timerl 的
9、事件过程如下: Private Sub Timerl_Timer() Static flag As Integer Ifflag=0 Then flag=1 flag=-flag Ifflag=1 Then Text1ForeColor=&HFF& &HFF&为红色 Else Text1ForeColor=&HC000& &HC000& 为绿色 End If End Sub 以下叙述中正确的是( )。(分数:2.00)A.每次执行此事件过程时,flag 的初始值均为 0B.flag 的值只可能取 0 或 1C.程序有逻辑错误,Else 分支总也不能被执行D.程序执行后,文本框中的文字每 5 秒
10、改变一次颜色22.在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() x=0 do Until x=-1 a=InputBox(“请输入 a 的值“) a=Val(a) b=InputBox(“请输入 b 的值“) b=Val(b) x=InputBox(“请输入 X 的值“) x=Val(x) a=a+b+x Loop Print a End Sub 程序运行后,单击命令按钮,依次在输入对话框中输入 5、4、3、2、1、-1 则输出结果是( )。(分数:2.00)A.2B.3C.14D.523.下列程序的执行结果为( )。 A=“5“:B
11、=“6“ A=Val(A)+Val(B) B=Val(“56“) IfAB Then Print A-B Else Print B-A(分数:2.00)A.-45 B.45C.-56D.0解析:解析:本题考查转换函数的操作。Val 函数可以把数字字符串转化成数字,然后进行算术运算。因此最后 A 的值为 11,而 B 的值为 56,因此输出 AB 的值为-45。24.执行下面的程序段后,变量 S 的值为( )。 S=5 For i=26 To 49 Step 06 S=S+1 Next i(分数:2.00)A.10B.8C.9 D.7解析:解析:本题考查 VB 中 For 循环。VB 中循环变量
12、可以为实数,循环变量的初值为 26,终值为49,步长 06。循环的次数为 Int(终值-初值)步长),所以进行了 4 次循环,因此最后 s 的值为9。25.数学式子 5+(a+b)2 对应的 Visual Basic 表达式是( )。(分数:2.00)A.5+a+b*2B.5+(a+b)2C.5+(a+b)*2 D.5+(a+b)*(a+b)解析:解析:本题考查数学式与表达式之间的转化。VB 中一个表达式写在同一行,不可以省略运算符。括号必须成对出现。26.假定有以下循环结构 Do Until 条件 循环体 Loop 则正确的描述是( )。(分数:2.00)A.如果“条件”是一个为 0 的常数
13、,则一次循环体也不执行B.如果“条件”是一个为 0 的常数,则至少执行一次循环体 C.如果“条件“是一个不为 0 的常数,则至少执行一次循环体D.不论“条件”是否为“真”,至少要执行一次循环体解析:解析:本题考查 DoLoop 循环。DoLoop 循环中,由 Until 引出的循环条件,如果条件不成立,也就是条件为 0 时执行循环,否则退出。27.某人编写如下函数来判断 a 是否为素数,若是,则函数返回 True;否则返回 False。 Function prime(a As Integer)As Boolean Dim k As Integer,isprime As Boolean If a
14、2 Then isprime=False Else isprime=True k=2 Do While ka2 And isprime If aModk=0 Then isprime=False Else k=k+1 End If Loop End If prime=isprime End Function 在测试时发现有 1 个非素数也被判断为素数,这个错判的数是( )。(分数:2.00)A.0B.1C.4 D.6解析:解析:本题考查循环的运行。如果输入的数据小于 2,那么肯定不是素数,更改 isprime 的值为False。如果数据大于等于 2,当等于 2 时,isprime 为 True
15、,同时 ka2 不成立,a 为 2 时为素数,当a 为 4 时,k2 不成立,则误判断 4 也是素数,因此不符合素数的定义。28.假定建立了一个名为 Command1 的命令按钮数组,则以下说法中错误的是( )。(分数:2.00)A.数组中每个命令按钮的名称(名称属性)均为 Command1B.数组中每个命令按钮的标题(Caption 属性)都一样 C.数组中所有命令按钮可以使用同一个事件过程D.用名称 Command1(下标)可以访问数组中的每个命令按钮解析:解析:本题考查控件数组。命令按钮的控件数组中每个控件的名字相同,标题属性可以设置为不同值,可以使用索引来区别每一个控件,这些控件共享一
16、个事件。29.以下叙述中正确的是( )。(分数:2.00)A.事件过程都由用户来编写B.事件过程都不是由用户编写的C.事件过程有的由用户编写,有的由系统确定D.用户可以确定事件方法过程是否由用户编写 解析:解析:本题考查事件过程。一般控件都有事件过程,这些事件过程在编写程序时,可以根据问题的需要来确定是否编写该事件过程。30.下面程序执行时,输出的结果是( )。 Private Sub Form_Click() Dim i As Integer,j As Integer i=10 Do i=i+j Forj=10 To i Step-3 i=i+j Nextj Loop While iA.50
17、 10B.50 9C.57 10 D.57 9解析:解析:本题考查二层循环的分析。程序段中的循环结构为外循环 DoLoop While,又包括了 For型循环。外循环为直到型循环,先执行循环体,再判断条件。i 的初值为 10,内循环执行完一次后,i 值为 20,j 值为 7,此时内层循环变量 j 小于 i,内循环结束;执行下一次外循环,此时 i 初值为 27,内存循环 i 初值为 10,小于终止值,内层循环不执行;以此类推,当 i 为 57 时,循环结束。31.下列不一定是传值的虚实结合方式的选项是( )。(分数:2.00)A.调用过程时实参为表达式B.调用过程时实参为常量C.调用过程时实参为
18、变量名 D.调用过程时实参将变量名用括号括起来解析:解析:本题考查函数调用时的参数传递。VB 中默认为传址调用,如果实参为常量,表达式则为传值调用,选项 D)中变量用括号括起来,变成表达式,为传值调用。32.在窗体上有两个文本框:Text1 和 Text2,然后编写如下事件过程: Private Sub Form_Load() Show Text1Text=“:Text2Text=“:Text2SetFocus End Sub Private Sub Text2_KeyDown(KeyCode As Integer,Shift As Integer) Text1Text=Text1Text+C
19、hr(KeyCode-4) End Sub 程序运行后,如果在Text2 文本框中输入“ertyu”,则 Text1 文本框中的内容为( )。(分数:2.00)A.anpuqB.ANPUQ C.ERTYUD.ertyu解析:解析:本题考查键盘事件参数。在 Text2 中按下键盘上的某个按键时,KeyDown 事件将发生,其中KeyDown 中的 KeyCode 参数是所按键的 ASCII 码值,其数据类型为整型,可以对其进行算术运算。Chr(KeyCode-4)表示 KeyCode 码对应字符前面的第 4 个字符。注意:KeyCode 返回的总是大写字符。33.下列叙述中错误的是( )。(分数
20、:2.00)A.一个工程中可以含有多个标准模块文件B.以bas 为扩展名的文件是标准模块文件C.窗体文件包含该窗体及其控件的属性D.在工程资源管理器窗口中只能包含一个工程文件及属于该工程的其他文件 解析:解析:本题考查工程中的文件。一个 VB 工程中包括各种类型的文件,常见的有工程文件,多个窗体文件(frm)和多个模块文件(bas),窗体文件中包含窗体及控件的属性设置,窗体级变量等。资源管理器中可以同时管理多个工程文件。34.要使菜单项 MenuOne 在程序运行时失效,应使用的语句是( )。(分数:2.00)A.MenuOneVisible=TrueB.MenuOneVisible=Fals
21、eC.MenuOneEnabled=TrueD.MenuOneEnabled=False 解析:解析:本题考查菜单项的常见属性。菜单项的 Visible 属性决定该菜单项在运行中是否可见,而Enabled 为假时,运行时该菜单不可用,因此应更改 Enabled 属性为 False。35.下列程序的功能是调用字体对话框来设置文本框中的字体,单击 Command1 按钮弹出对话框,进行相应的字体、字号等的设置,然后单击“确定”按钮退出对话框,则文本框中将发生哪些变化( )。 Private Sub Command1_Click() CommonDialoglCancelError=True Com
22、monDialoglFlags=3 OnErrorResumeNext CommonDialoglShowFont Text1FontName=CommonDialog1FontName Text1FontSize=CommonDialog1FontSize Text1FontBold=CommonDialog1FontBold Text1FomItalic=CommonDialog1FontItalic Text1Font Underline=ommonDialog1FontUnderline Text1FontStrikethru=ommonDialog1FontStrikethru Te
23、xt1ForeColor=CommonDialog1Color EndSub(分数:2.00)A.Text1 的文字下划线发生变化B.Text1 的字体发生变化 C.Text1 的字体和颜色发生变化D.程序出错解析:解析:本题考查通用对话框的属性。CommonDialogl 的 Flags 属性值为 3 时,出现的字体对话框中没有删除线、下划线、颜色元素,因此利用 CommonDialogl 不能改变文本框中字体颜色以及删除线和下划线,但是可更改 Text1 中的字体。36.下面( )不是 VB 的文件系统控件。(分数:2.00)A.DriveListBox 控件B.DirListBox 控件
24、C.FileListBox 控件D.ListBox 控件 解析:解析:本题考查常见的文件系统控件。常见的文件系统控件有目录列表框、文件列表框和驱动器列表框。ListBox 不是文件系统控件。37.下面的程序执行时,将把当前目录下的顺序文件 smtextltxt 的内容读入内存,并在文本框 Text1 中显示出来。在横线处应填写( )。 Privme Sub Command1_Click() Dim inData As String Text1Text=-“ Open“smtextltxt“_As #1 Do While_ Input #1inData Text1TeXt=Text1Text&
25、inData Loop Close #1 End Sub(分数:2.00)A.Input (EOF(1)B.Input (Not EOF(1) C.Append (Not EOF(1)D.Append(EOF(1)解析:解析:本题考查文件的操作。程序首先要以读文件的方式(Input)打开文件,题中说明这是个顺序文件,那么如果文件指针没有到文件尾(EOF(1)的值为 False),就要从文件中读出数据,所以循环条件应以是否到文件尾为依据,判断是否继续循环。38.以下程序的功能是:把父目录下顺序文件 smtextltxt 的内容读入内存,并在文本框 Text3 中显示出来。请选择适合横线处的语句(
26、 )。 Pfivme Sub Command1_Click() Dim inDataAs String Text3Text=“ Open“smtextltxt“_As #1 Do While_ Input #1,inData Text3Text=Text3Text& inData Loop Close #1 End Sub(分数:2.00)A.For Input Not EOF(1) B.For Output EOF(1)C.For Append Not EOF(1)D.For Random EOF(1)解析:解析:本题考查文件的打开。打开顺序文件的基本格式为: 其中,FileName 表示要
27、打开的文件的路径;Mode 为文件打开模式:OutPut 用于输出、Append 用于追加写入、Input 用于读取;FileNumber 为打开文件时指定的句柄(文件号)。本题中是需要读取顺序文件中的数据,因此打开模式为:Input;当通过 Input#语句读取文件中数据时,为避免程序出错,常以 Not EOF(文件号)作为循环条件,用于判断是否已到文件结尾。39.为达到把 a、b 中的值交换后输出的目的,某人编程如下: Private Sub Command1_Click() a=10:b=20 Call swap(a,b) Print a,b End Sub Private Sub sw
28、ap(ByVal a As Integer,ByVal b As Integer) c=a:a=b:b=c End Sub 在运行时发现输出结果错了,需要修改。下面列出的错误原因和修改方案中正确的是( )。(分数:2.00)A.调用 swap 过程的语句错误,应改为:Call swap a,bB.输出语句错误,应改为:Print“a“,“b“C.过程的形式参数有错,应改为:swap(ByRef a AS Integer,ByRef b As Integer) D.swap 中 3 条赋值语句的顺序是错误的,应改为 a=b:b=c:c=a解析:解析:本题考查参数传递。VB 过程调用中,参数有两种
29、传递方式:传址传递和传值传递。如果在过程声明时形参用 ByVal 声明,说明此参数为传值调用;若用 ByRef 声明,说明此参数为传址调用;没有说明传递类型,则默认为传址传递(即形参的结果会传递给实参)。本题中为了实现数据的交换,要求进行传址调用,因此形参前面不应用 ByVal 声明。40.有如下函数过程: Function fl(x As Integer)As Long Dim s As Long,i As Integer s=0 For i=1 To x s=s+i Nexti f1=s End Function 在窗体上添加一个命令按钮,名为 Command1,并编写事件过程调用该函数,则输出结果为( )。 Private Sub Command1_Click() Dim i As Integer,sum As Long For i=1 To 5 sum=sum+n(i) Next i Print sum End Sub(分数:2.00)A.25B.35 C.45D.55解析:解析:本题考查函数过程的功能分析。函数 f1 的主要功能是计算 1 到 x 的累加和,也就是计算1+2+x。在命令按钮的单击事件中循环程序调用了 5 次 n 函数,sum 计算为:1+1+2+1+2+3+1+2+3+4+1+2+3+4+5,因此结果为 35。