1、国家二级 VB机试(选择题)模拟试卷 201及答案与解析 一、选择题 1 算法的空间复杂度是指 ( )。 ( A)算法程序的长度 ( B)算法程序中的指令条数 ( C)算法程序所占的存储空间 ( D)算法执行过程中所需要的存储空间 2 下列叙述中正确的是 ( )。 ( A)一个逻辑数据结构只能有一种存储结构 ( B)逻辑结构属于线性结构,存储结构属于非线性结构 ( C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 ( D)一个逻辑数据结构可以有多种存储结构,且各种存储 结构影响数据处理的效率 3 下列关于类、对象、属性和方法的叙述中,错误的是 ( ) 。 ( A)类是
2、对一类具有相同的属性和方法对象的描述 ( B)属性用于描述对象的状态 ( C)方法用于表示对象的行为 ( D)基于同一个类产生的两个对象不可以分别设置自己的属性值 4 在软件开发中,需求分析阶段产生的主要文档是 ( )。 ( A)数据字典 ( B)详细设计说明书 ( C)数据流图说明书 ( D)软件需求规格说明书 5 数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和 ( )。 ( A)编码设计 ( B)测试阶段 ( C)运行阶段 ( D)物理设计 6 在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是 ( )。 ( A)并 ( B)交 ( C)投影 ( D)除 7 下列叙述中
3、,正确的是 ( )。 ( A)软件交付使用后还需要进行维护 ( B)软件一旦交付使用就不需要再进行维护 ( C)软件交付使用后其生命周期就结束 ( D)软件维护是指修复程序中被破坏的指令 8 设一棵满二叉树共有 15个结点,则在该满二叉树中的叶子结点数为 ( )。 ( A) 7 ( B) 8 ( C) 9 ( D) 10 9 设 R是一个 2元关系,有 3个元组, S是一个 3元关系,有 3个元组。如T=RS,则 T的元组的个数为 ( )。 ( A) 6 ( B) 8 ( C) 9 ( D) 12 10 下列选项中,不属于数据库管理的是 ( )。 ( A)数据库的建立 ( B)数据库的调整 (
4、 C)数据库的监控 ( D)数据库的校对 11 语句 Print Sgn(-62)+Abs(-62)+Int(-62)的输出结果是 ( )。 ( A) -36 ( B) 1 ( C) -1 ( D) -72 12 下列各种窗体事件中,不能由用户触发的事件是 ( )。 ( A) Load事件和 Unload事件 ( B) Click事件和 Unload事件 ( C) Click事件和 DblClick事件 ( D) Load事件和 Initialize事件 13 关于变量作用域,下列叙述中正确的是 ( )。 ( A)在窗体的 Form Lroad事件过程中定义的变量是全局变量 ( B)局部变量的
5、作用域可以超出所定义的过程 ( C)在某个 Sub过程中定义的局部变量可以与其他事件过程中定义的局部变量同名,但 其作用域只限于该过程 ( D)在调用过程中,所有局部变量被系统初始化为 O或空字符串 14 下列可作为 Visual Basic变量名的是 ( )。 ( A) A#A ( B) constA ( C) ?xy ( D) 4A 15 设 a=“visual Basic“,下面语句中可使 b=“Basic“的是 ( )。 ( A) b=L, eft(a, 8) ( B) b=Mid(a, 8, 5) ( C) b=Right(a, 8) ( D) b=Left(a, 8, 5) 16
6、InputBox函数返回值的类型为 ( )。 ( A)数值 ( B)字符串 ( C)变体 ( D)数值或字符串 (视输入的数据而定 ) 17 在文本框中,要设置显示的文本颜色,应该设置 ( )属性。 ( A) ForeColor ( B) BackColor ( C) FillColor ( D) BackStyle 18 为了在窗体上建立 2组单选按钮,并且当程序运行时每组都可以有一个单选按钮被选中,则以下做法中正确的是 ( )。 ( A)把这 2组单选按钮设置为名称不同的 2个控件数组 ( B)使 2组单选按钮的 Index属性分别相同 ( C) 使 2组单选按钮的名称分别相同 ( D)把
7、 2组单选按钮分别画到 2个不同的框架中 19 为组合框 Combol增加一个列表项 “电脑 ”,下列语句正确的是 ( )。 ( A) Combol Text=“电脑 “ ( B) Combol List1ndex=“电脑 “ ( C) Combol AddItern“电脑 “ ( D) Combol ListCount=“电脑 “ 20 以下叙述错误的是 ( )o ( A)滚动条的重要事件是 Change和 Scroll ( B)框架的主要作用是将控件进行分组,以完成各自相对独立 的功能 ( C)组合框是组合了文本框和列表框的特性而形成的一种控件 ( D)计时器控件可以通过对 Visible
8、属性的设置,在程序运行期间显示在窗体上 21 设 a=5, b=6, c=7, d=8,执行下列语句后, x的值为 ( )。 x=IIf(ab)And(cd), 10, 20) ( A) 10 ( B) 20 ( C) True ( D) False 22 下面程序运行时,单击窗体后,窗体上显示的结果是 ( )。 Private Sub Form_Click() Dim iAs Integer Dim sumAs Long Dim t As Long t=1: sum=0 For i=1 To 3 t=t*i sum=sum+t Next i Print sum End Sub ( A) 3
9、( B) 9 ( C) 5 ( D) 6 23 在窗体上画一个命令按钮 (Name属性为 Command1),然后编写如下事件过程: Private Sub Command1 Click() Dim a(10)As Interger, p(3)As Interger K=5 For i=1 To 10 a(i)=i Next i For i=1 To 3 p(i)=a(i*i) Next i For i=1 To 3 k=k+p(i)*2 Next i Print k End Sub 程序运行后,单击命令按钮,输出结果是 ( )。 ( A) 35 ( B) 28 ( C) 33 ( D) 37
10、 24 在运行阶段,要在 文本框 Text1获得焦点时选中文本框中所有内容,如图 1所示,对应的事件过程是 ( )。 ( A) Private Sub Text1_LostFocus() Text1 SelStart=0 Text1 SelLength=Len(Text1 Text) End Sub ( B) Private Sub Text1_GotFocus() Text1 SelStart=0 Text1 SelLength=Len(Text1 Text) End Sub ( C) Private Sub Text1_Change() Text1 SelStart=0 Text1 Sel
11、Length=Len(Text1 Text1 End Sub ( D) Private Sub Text1_SetFocus() Text SelStart=0 Text1 SelLength=Len(Text1 Text) End Sub 25 下列程序段不正确的是 ( )。 ( A) Dim a As Integer a=array(1, 2, 3, 4) ( B) Dim a(), b() a=array(1, 2, 3, 4): b=a ( C) Dim a As Variant a=array(1, “asd“, true) ( D) Dim a()As Variant a=arra
12、y(1, 2, 3, 4) 26 在窗体上画一个命令按钮 (其 Name属性为 Command1),然后编写如下代码: Option Base 1 Private Sub Command1_Click() Dim a a=Array(1, 2, 3, 4): j=1 For i=4 To 1 Step -1 s=s+a(i)*j: j=j*10 Next i Print s End Sub 运行上面的程序,单击命令按钮,其输出结果是 ( )。 ( A) 4321 ( B) 12 ( C) 34 ( D) 1234 27 在窗体上用复制、粘贴的方法建立了一个命令按钮数组,数组名为 ComTest
13、l。设窗体 Form1标题为 “MyForm1”,双击控件数组中的第 3个按钮,打开代码编辑器,编写如下代码: Privae Sub ComTest1_Click(Index As Integer) Form1 Caption=“MyForm2“ End Sub 运行时,单击按钮数组中的第 1个按钮,则窗体标题显示为 ( )。 ( A) Form1 ( B) ComTestl ( C) MyForm1 ( D) MyFonn2 28 下列操作中不能向工程中添加窗体的是 ( )。 ( A)执行 “工程 ”菜单中的 “添加窗体 ”命令 ( B)单击工具栏上的 “添加窗体 ”按钮 ( C)右击窗体,
14、在 弹出的菜单中选择 “添加窗体 ”命令 ( D)右击工程资源管理器,在弹出的菜单中选择 “添加 ”命令,然后在下一级菜单中选择 “添加窗体 ”命令 29 下列有关过程的叙述中错误的是 ( )。 ( A)如果过程被定义为 Static类型,则该过程中的局部变量都是 Static类型 ( B) Sub过程中不能嵌套定义 Sub过程 ( C) Sub过程中可以嵌套调用 Sub过程 ( D)事件过程可以像通用过程一样由用户定义过程名 30 运行下面的程序,单击命令按钮,输出结果为 ( )。 Function F(a As Integer) b=0 Static c b=b+1: c=c+1: F=a
15、+b+c End Function Private Sub Command1_Click() Dim a As Integer a=2 For i=1 To 3 Print F(a) Next i Fnd Sub ( A) 3 3 3 ( B) 3 4 5 ( C) 3 5 7 ( D) 3 6 9 31 以下程序在文本框 Text1中输入任一字符串,并按相反的次序显示在文本框Text2中,在横线处应填写 ( )。 DimN As String, C As String, D As String N=Text1 Text M=_ For i=M To 1 Step-1 C=Mid(N, i,
16、1): D=D C Next i Text2 Text=D End Sub ( A) Len(Text1 Text)-1 ( B) Text1 MaxLength ( C) Len(N)-1 ( D) Len(Text1 Text) 32 在属性窗口中把窗体的 KeyPreview属性设置为 True,然后编写如下两个事件过程: Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) Print Chr(KeyCode) End Sub Private Sub Form_KeyPress(KeyAscii As Intege
17、r) Print Chr(KeyAscii) End Sub 在一般情况下 (即不按住 Shift键和锁定大写 ),运行程序,如果按 “A”键,则程序输出的是 ( )。 ( A) A a ( B) a A ( C) A A ( D) a a 33 关于 MDI窗体下列说法正确的是 ( )。 ( A)一个应用程序可以有多个 MDI窗体 ( B)子窗体可以移到 MDI窗体以外 ( C)不可以在 MDI窗体上放置按钮控件 ( D) MDI窗体的子窗体不可拥有菜单 34 为了 实现鼠标自动拖放,必须把 ( )属性设置为 1;而为了执行手动拖放,必须把该属性设置为 0。 ( A) DrawStyle (
18、 B) DrawMode ( C) DragMode ( D) DrawWidth 35 窗体上有文本框 Text1和一个菜单,菜单标题、名称见表,结构如图 2所示。要求程序执行时单击 “保存 ”菜单项,则把其标题显示在 Text1文本框中,下面可实现此功能的事件过程是 ( )。 ( A) Private Sub save_Click() save_Click() Text1 Text=file save Caption End Sub ( B) Private Sub save_Click() Text1 Text=save Caption End Sub ( C) Private Sub
19、file_Click() Text1 Text=file save Caption End Sub ( D) Private Sub file_Click() Text1 Text=save Caption End Sub 36 在利用菜单编辑器设计菜单时,为 了把组合键 设置为 “打开 (O)”菜单项的访问键,可以将该菜单项的标题设置为 ( )。 ( A)打开 (O&) ( B)打开 (O#) ( C)打开 (&O) ( D)打开 (#O) 37 若在窗体模块的声明部分声明了如下自定义类型和数组 Private Type Tern Score As Integer StrName As St
20、ring End Type Dim Student(5)As Tern 则下面的输出语句中正确的是 ( )。 ( A) Print Student Score(2), Student StrName(2) ( B) PrintStudent Score Student StrName ( C) Print Student(2) Score, Student(2) StrName ( D) Print Score(2), StrName(2) 38 窗体上有两个名称分别为 Text1、 Text2的文本框,一个名称为 Command1的命令按钮。设有如下的类型声明: Type Person na
21、me As String*8 major As String*20 End Type 当单击命令按钮时,将两个文本框中的内容写入一个随机文件 Test dat中。设文本框中的数据已正确地赋值给 Person类型的变量 P。则能够正确地把数据写入文件的程序段是 ( )。 ( A) Open“c: Test.dat“For Random As#1 Put#1, 1, P Close#1 ( B) Open“c: Test dat“For Random As#1 Get#1, 1, p Close#1 ( C) Open“c: Test dat“For Random As#1 Len=Len(p)
22、Put#1, 1, P Close#1 ( D) Open“c: Test dat“For Random As#1 Len=Len(p) Get#1, 1, P Close#1 39 函数过程 F1的功能是:如果参数 a为奇数,则返回值为 1,否则返回值为 0。以下能正确实现所述功能的代码的是 ( )。 ( A) Function F1(aAs Integer) If a Mod 2=0 Then Return 0 Else Return 1 End If End Function ( B) Function F1(a As Integer) If a Mod 2=0 Then F1=0 El
23、se F1=1 End If End Function ( C) Function F1(a As Integer) If a Mod 2=0 Then F1=1 Else F1=0 End If End Function ( D) Function F1(a As Integer) If a Mod 2b)And(cd)的结果为假,所以 x的值为20。 22 【正确答案】 B 【试题解析】 本题考查累加算法。题目中 sum为求和项,初值为 0, t为每一项的值,变化规律为后一项是前一项的 i倍, i的变化为从 1到 3,由于 t的初值为1,因此求和为 1*1+1*2+2*3。 23 【正确答
24、案】 C 【试题解析】 题中第一个循环功能是给数组 a赋值,即 a(1)=1、 a(2)=2 ;第二个循环功能是给数组 p赋值,即 p(1)=1、 p(2)=4、 p(3)=9;第三个循环是求 K的值,即是将 K值加上数组 P所有元素的值,所以K=K+p(1)*2+p(2)*2+p(3)*2=33。 24 【正确答案】 B 【试题解析】 本题考查文本框的常见事件。文本框中常见的事件主要有:当改变文本框的 Text属性时会触发之 Change事件:当在文本框中输入时触发 KeyPress事件,并可返回一个 KeyAscii参数:当控件 失去焦点时触发 LostFOCIJs事件:当控件获得焦点时触
25、发 GotFocus事件。 25 【正确答案】 A 【试题解析】 本题考查 Array函数。利用 Array对数组各元素赋值,声明的数组必须是呵变数组,并且其类型只能是 Variant。也可以对数组进行赋值,但是赋值号左边的数组只能声明为 Variant的可变数组或简单变量,同时数组必须有存储空间。 26 【正确答案】 D 【试题解析】 本题考查累加运算。 s为求和项, a(i)*j为每一项, i的变化为 4到1, i的变化为 10的倍数。因此求和 s为 : 4*1+3*10+2*100+1*1000,结果为1234。 27 【正确答案】 D 【试题解析】 本题考查控件数组。建立控件数组以后,
26、数组中的每个元素依靠Index属性来区分,名称相同。题目中程序运行时,不要单击哪个命令按钮,窗体的标题都会改成 “Mvform2”。 28 【正确答案】 C 【试题解析】 向工程中添加窗体的方法有: 执行 “工程 ”菜单中的 “添加窗体 ”命令; 单击工具栏上的 “添加窗体 ”按钮; 右击工程资源管理器,在弹出的菜单中选择 “添加 ”命令,然后在下一级菜单中选择 “添加窗 体 ”命令。 29 【正确答案】 D 【试题解析】 本题考查过程。一般在 VB中控件本身的事件过程名称为 “控件名事件 ”,另外还可以自定义过程,主要有 Sub子过程和 Function函数过程,过程可以嵌套调用,但不可以嵌
27、套定义。静态过程中所有的局部变量默认为静态变量。 30 【正确答案】 B 【试题解析】 本题考查变量。局部变量如果使用 Dim声明,随过程的调用而分配存储单元,每次调用都对变量初始化,过程体结束,变量的内容自动消失,并释放存贮单元;如果使用 Static声明,则每次调用过程,变量保持 原来的值。本题在 F函数被调用 3次的过程中,变量 c每次都保留前一次的值,而 b则每次调用都初始化为 0。 31 【正确答案】 D 【试题解析】 本题考查字符串的逆序。取得 Text1中文本的长度,M=Len(Text1 Text),循环中对字符串从后往前一次读出字符串的每一个字符,连接到 D中。 32 【正确
28、答案】 A 【试题解析】 本题考查键盘事件。 KeyPreview属性用于设置是否在控件的键盘事件之前激活窗体的键盘事件。 KeyPress(KeyAscii As Integer)事件是在对象具 有焦点时,按下键盘上的键时触发的事件,其中的 KeyAscii参数是所按键的 ASCII的代码,每个字符的大、小写形式都是不同的键代码。而 Chr()可返回 ASCII码对应的字符。 KeyDown(KeyCode As Integer, Shift as Integer)事件有两个参数,其中, KeyCode参数是表示所按键的位置信息的代码,只要按下键,就返回该键的位置信息,不区分大小写,一律作为
29、大写字符解释。本题的功能为输入 A时,KevDown事件输出大写字符 A,而 KeyPress事件则输出小写字符 a。 33 【 正确答案】 C 【试题解析】 本题:考查 MDI窗体。一个应用程序仅可以拥有一个 MDI窗体,可以有多个子窗体,所有的子窗体必须在父窗体之内显示,在父窗体界面上可以放置菜单、工具栏或图片框,但是不允许放置命令按钮。 34 【正确答案】 C 【试题解析】 本题考查拖放事件。要完成控件的拖放,首先设置 DragMode属性,值为 0: (缺省 ),表示手工拖动模式,值为 1:表示自动拖动模式。 35 【正确答案】 B 【试题解析】 本题考查菜单事件。菜单建立以后,对于每
30、个菜单项要进行编写程序,才可以 进行处理,单击 “保存 ”命令时,代码窗体自动出现事件过程: Private Sub save_Click() End Sub 在程序之间加上 Text1的 Text属性改变代码即可。 36 【正确答案】 C 【试题解析】 访问键就是菜单项中加了下划线的字母,只要同时按下 键和加了下划线的字母键,就可以选择相应的菜单项。快捷键和访问键都是在设计菜单时直接指定。设置访问键时,必须在要设置为访问键的字母前面加上一个功能符 “&”。 37 【正确答案】 C 【试题解析】 在标准模块中 可以声明自定义类型,该类型由 Type关键字声明,在声明中要定义类型的所有域。若用自
31、定义类型声明一个变量,则该变量拥有若干域,取得每个域的值需要用 “变量名域名 ”的形式。作为一个自定义类型的数组,首先要取出某个数组元素然后于能访问该元素的某个域,所以要想访问Student(2)的域,需要使用 Student(2) Score和 Student(2) StrName。 38 【正确答案】 C 【试题解析】 本题考查随机文件读写。以 Random打开随机文件的格式为:Open文件名 For Random As#文件号 Len=记录长度 ,该语句可以进行读写操作,写操作恪式为: Put#文件号, 记录号 ,变量名,可以将一个记录变量的内容写到指定的记录位置处,如果忽略记录号,则表
32、示在当前记录后的位置捅入一条记录。读操作格式为: Get#文件号, 记录号 ,变量名,如果忽略记录号,则读出当前记录后面的那一条记录。 39 【正确答案】 B 【试题解析】 本题考查程序的基本算法。定义函数过程时,要求计算结束以后,把函数的返回值仔放在过程名中,返回给调用函数。题目中 a为奇数,条件为 a Mod 2=0时,返回 0,否 则返回 1。 40 【正确答案】 A 【试题解析】 对于 Do型循环结构,首先看条件判断在循环体的前面还是后面,如果是先判断条件,则有可能一次也不执行循环体:如果是后判断条件,则无论条件是什么,至少执行一次循环体。在 Until循环中条件为 FaIse时执行循环体,条件为 True时退出循环:在 While循环中条件为 True时执行循环体,条件为False时退出循环。本题是一个比较简单的 Do循环,计算从 1到 10的立方和。