1、国家二级 VB机试(选择题)模拟试卷 69 及答案与解析 一、选择题 1 下列叙述中正确的是 ( )。 ( A)在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化 ( B)在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化 ( C)在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 ( D)以上说法都不正确 2 下列关于栈叙述正确的是 ( )。 ( A)栈顶元素最先能被删除 ( B)栈顶元素最后才能被删除 ( C)栈底元素永远不能被删除 ( D)栈底元素最先被删除 3 下列关于二叉树的 叙述中,正确的是 ( )。 ( A)叶子结点总是比度为 2的结点少一个 ( B)叶子结点总是比
2、度为 2的结点多一个 ( C)叶子结点数是度为 2的结点数的两倍 ( D)度为 2的结点数是度为 1的结点数的两倍 4 软件生命周期中的活动不包括 ( )。 ( A)市场调研 ( B)需求分析 ( C)软件测试 ( D)软件维护 5 在满足实体完整性约束的条件下 ( )。 ( A)一个关系中应该有一个或多个候选关键字 ( B)一个关系中只能有一个候选关键字 ( C)一个关系中必须有多个候选关键字 ( D)一个关系中可 以没有候选关键字 6 有三个关系 R、 S和 T如下:则由关系 R和 S得到关系 T的操作是 ( )。( A)自然连接 ( B)交 ( C)除 ( D)并 7 层次型、网状型和关
3、系型数据库划分原则是 ( )。 ( A)记录长度 ( B)文件的大小 ( C)联系的复杂程度 ( D)数据之间的联系方式 8 一个工作人员可以使用多台计算机,而一台计算机可被多个人使用,则实体工作人员与实体计算机之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对多 ( D)多对一 9 有三个关系 R、 S和 T如下: 则由关系 R和 S得到关系 T的操作是 ( )。( A)自然连接 ( B)并 ( C)交 ( D)差 10 定义无符号整数类为 UInt,下面可以作为类 UInt实例化值的是 ( )。 ( A) 369 ( B) 369 ( C) 0.369 ( D)整数集合
4、1,2,3,4,5 11 以下合法的 VB变量名是 ( )。 ( A) #_1 ( B) 123_a ( C) string ( D) x_123 12 以下关于 VB的叙述中,错误的是 ( )。 ( A) VB采用事件驱动方式运行 ( B) VB既能以解释方式 运行,也能以编译方式运行 ( C) VB程序代码中,过程的书写顺序与执行顺序无关 ( D) VB中一个对象对应一个事件 13 以下叙述中错误的是 ( )。 ( A)续行符与它前面的字符之间至少要有一个空格 ( B) Visual Basic中使用的续行符为下划线 (_) ( C)以撇号 ()开头的注释语句可以放在续行符的后面 ( D)
5、 Visual Basic可以自动对输入的内容进行语法检查 14 以下关于多重窗体程序的叙述中,错误的是 ( )。 ( A)对于多重窗体程序,需要单独保存每个窗体 ( B)在多重 窗体程序中,可以根据需要指定启动窗体 ( C)在多重窗体程序中,各窗体的菜单是彼此独立的 ( D)用 Hide方法不仅可以隐藏窗体,而且还可以清除内存中的窗体 15 在标准模块中用 Public关键字定义的变量,其作用域为 ( )。 ( A)本模块所有过程 ( B)整个工程 ( C)所有窗体 ( D)所有标准模块 16 假定有如下语句: answer$ MsgBox(“String1“, , “String2“, “
6、String3“, 2) 执行该语句后,将显示一个信息框,单击其中的 “确定 “按钮,则 answer$的值为( )。 ( A) String1 ( B) String2 ( C) String3 ( D) 1 17 以下关于键盘事件的叙述中,错误的是 ( )。 ( A)按下键盘按键既能触发 KeyPress事件,也能触发 KeyDown事件 ( B) KeyDown、 KeyUp事件过程中,大、小写字母被视作相同的字符 ( C) KeyDown、 KeyUp事件能够识别 Shift、 Alt、 Ctrl等键 ( D) KeyCode是 KeyPress事件的参数 18 以下关于窗体的叙述中错
7、误的是 ( )。 ( A) 窗体的 Hide方法将窗体隐藏并卸载 ( B)窗体的 Show方法可以将窗体装入内存并显示该窗体 ( C)若工程中包含多个窗体,则可指定一个为启动窗体 ( D)窗体的 Load事件在加载窗体时发生 19 以下叙述中错误的是 ( )。 ( A) Sub Main 是定义在标准模块中的特定过程 ( B)一个工程中只能有一个 Sub Main过程 ( C) Sub Main 过程不能有返回值 ( D)当工程中含有 Sub Main过程时,工程执行时一定最先执行该过程 20 关于随机文件,以下叙述中错误的是 ( )。 ( A)使用随机文件能节约空间 ( B)随机文件记录中,
8、每个字段的长度是固定的 ( C)随机文件中,每个记录的长度相等 ( D) )随机文件的每个记录都有一个记录号 21 为了使每秒钟发生一次计时器事件,可以将其 Interval属性设置为 ( )。 ( A) 1 ( B) 10 ( C) 100 ( D) 1000 22 能够将组合框 Combo1中最后一个数据项删除的语句为 ( )。 ( A) Combo1.RemoveItem Combo1.ListCount ( B) Combo1.RemoveItem Combo1.ListCount 1 ( C) Combo1.RemoveItem Combo1.ListIndex ( D) Combo
9、1.RemoveItem Combo1.ListIndex 1 23 在窗体上画一个组合框,一个命令按钮和一个文本框,其名称分别为Combo1, Command1和 Text1,然后编写如下事件过程: Private Sub Form_Load() Combo1.AddItem “AAAAA“ Combo1.AddItem “BBBBB“ Combo1.AddItem “CCCCC“ Combo1.AddItem “DDDDD“ Combo1.AddItem “EEEEE“ End Sub 程序运行后,如果单击命令按钮,则在文本框中显示组合框的项目 “CCCCC“。为了实现该操作,在命令按钮的
10、 Click事件过程中应使用的语句为 ( )。 ( A) Text1.Text Combo1.List(2) ( B) Text1.Text Combo1.Text ( C) Text1.Text Combo1.List(3) ( D) Text1.Text Combo1.ListIndex 24 为了使文本框只具有垂直滚动条,应先把 MultiLine属性设置为 True,然后再把 ScrollBars属性设置为 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3 25 设工程中有 Form1、 Form2两个窗体,要求单击 Form2上的 Command1命令按钮, Form
11、2就可以从屏幕上消失,下面的事件过程中不能实现此功能的是 ( )。 ( A) Private Sub Command1_Click() Form2.Hide End Sub ( B) Private Sub Command1_Click() Unload Me End Sub ( C) Private Sub Command1_Click() Form2.Unload End Sub ( D) Private Sub Command1_Click() Me.Hide End Sub 26 向文本框中输入字符时,下面能够被触发的事件是 ( )。 ( A) GotFocus ( B) KeyPre
12、ss ( C) Click ( D) MouseDown 27 下列控件中,没有 Caption属性的是 ( )。 ( A) 单选按钮 ( B)复选框 ( C)列表框 ( D)框架 28 将数据项 “Student“添加到名称为 List1的列表框中,并使其成为列表框第一项的语句为 ( )。 ( A) List1.AddItem “Student“, 0 ( B) List1.AddItem “Student“, 1 ( C) List1.AddItem 0, “Student“ ( D) List1.AddItem 1, “Student“ 29 假定 Picture1和 Text1分别为图
13、片框和文本框的名称,则下列错误的语句是( )。 ( A) Print 25 ( B) Picture1.Print 25 ( C) Text1.Print 25 ( D) Debug.Print 25 30 设在工程文件中有一个标准模块,其中定义了如下记录类型 Type Books Name As String * 10 TelNum As String * 20 End Type 在窗体上画一个名为 Command1的命令按钮,要求当执行事件过程Command1_Click时,在顺序文件 Person.txt中写入一条记录。下列能够完成该操作的事件过程 是 ( )。 ( A) Private
14、 Sub Command1_Click() Dim B As Books Open “c: Person.txt“ For Output As #1 B.Name InputBox(“输入姓名 “) B.TelNum InputBox(“输入电话号码 “) Write #1, B.Name, B.TelNum Close #1 End Sub ( B) Private Sub Command1_Click() Dim B As Books Open “c: Person.txt“ For Input As #1 B.Name InputBox(“输入姓名 “) B.TelNum InputBo
15、x(“输入电话号码 “) Print #1, B.Name, B.TelNum Close #1 End Sub ( C) Private Sub Command1_Click() Dim B As Books Open “c: Person.txt“ For Output As #1 B.Name InputBox(“输入姓名 “) B.TelNum InputBox(“输入电话号码 “) Write #1, B Close #1 End Sub ( D) Private Sub Command1_Click() Open “c: Person.txt“ For Input As #1 Na
16、me InputBox(“输入姓名 “) TelNum InputBox(“输入电话号码 “) Print #1, Name, TelNum Close #1 End Sub 31 在窗体上画一个命令按钮,其名称为 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 (
17、 B) 1234 ( C) 34 ( D) 12 32 在窗体上画一个命令按钮,名称为 Command1,然后编写如下代码: Option Base 0 Private Sub Command1_Click() Dim A1(4)As Integer, A2(4)As Integer For k 0 To 2 A1(k 1) InputBox(“请输入一个整数 “) A2(3 k) A1(k 1) Next k Print A2(k) End Sub 程序运行后,单击命令按钮,在输入对话框中依次输入 2、 4、 6,则输出结果为( )。 ( A) 0 ( B) 1 ( C) 2 ( D) 3
18、33 设 a、 b都是自然数,为求 a除以 b的余数,某人编写了以下函数: Function fun(a As Integer, b As Integer) While ab a a b Wend fun a End Function 在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是( )。 ( A)把 a a b改为 a b a ( B)把 a a b 改为 a ab ( C)把 While ab 改为 While ab 改为 While a b 34 在窗体上画 1个命令按钮和 1个文本框,其名称分别为 Command1和 Text1,再 编写如下程序: Dim ss A
19、s String Private Sub Text1_KeyPress(KeyAscii As Integer) If Chr(KeyAscii)y Then x x y Else y y x Loop Print x End Sub 运行程序,单击命令按钮,并输入 2个整数 169和 39,则在窗体上显示的内容为( )。 ( A) 11 ( B) 13 ( C) 23 ( D) 39 38 窗体上有 1个名称为 Command1的命令按钮,事件过程及函数过程如下: Private Sub Command1_Click() Dim m As String m InputBox(“请输入字符串
20、“) Print pick_str(m) End Sub Private Function pick_str(s As String)As String temp “ i 1 sLen Len(s) Do While ib 为 ab。 34 【正确答案】 D 【试题解析】 题目中程序是将 ss字符串进行反向排列,并放到 m中去。其中Number空格后的 100被当成字符串来处理,最后结果是将 “Number 100“反向排列,并通过 UCase()函数将所有字母转换成大写,得到 001 REBMUN。 35 【正确答案】 B 【试题解析】 s 变量用来计数,如果 x Mod 3 0即如果能被
21、3整除则计数增加1。程序中 x的取值为 1、 3、 5、 7、 9、 11、 13、 15、 17、 19、 21、 23、 25、 27、29,其中是 3的整数倍的数有 3、 9、 15、 21、 27共 5个,因此 s的值为 5。 36 【正确答案】 A 【试题解析】 程序的作用是输入的数如果是 5的倍数就累加,如果不是就与每次加 50或与上次是 5的倍数的那个数相累加。因此最终 a的值是 15 15 35 35100。 37 【正确答案】 B 【试题解析】 程序中 Do循环比较输入的两个数的大小,把较大的数值减去较小的数值后再与较小的值比较,直到两个数值相等。程序中输入 169和 39,
22、则 x169 39 130,130y即 13039,因此 x 130 39 91,如此循环 x 91 39 52 39 13,此时 1339为假,执行 y y x 39 13 26,循环 y 26 13 13,此时 x、 y都为 13,循环结束,因此窗体上显示为 13。 38 【正确答案】 A 【试题解析】 过程 pick_str的功能是对输入的字符串的字符重新组合,通过 Do循环从原字符串中头尾开始各取一个字符重新组合,循环次数小于等于原字符串长度整除 2的值。当输入字符串是 “basic“时,字符串长度为 5,循环次数为 5/22次,因此取出的字符依次是 “b“, “c“, “a“, “i
23、“。即 “bcai“,因此答案为 A。 39 【正确答案】 B 【试题解析】 根据 For循环中的 If语句的条件 n m or n 4 m中的 n m首先可以得出 a(1,1) 2, a(2,2) 4, a(3,3) 6,其次根据 n 4 m的条件可以得出a(1,3) 4, a(2,2) 4, a(3,1) 4。而 其他的元素值都为 0。因此窗体上输出的三行分别是: 2 0 4 ,0 4 0,4 0 6。 40 【正确答案】 C 【试题解析】 Static声明的变量为静态变量,静态变量在程序运行期间,每次进入过程时都会保留上次的值,而普通变量不会保留。 numa定义为静态变量,因此每次调用都会保留结果, 3次调用过程, numa的值为 6, numb 的值为 1。