1、国家二级( VB)机试模拟试卷 118及答案与解析 一、选择题 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) Comb
9、o1.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命令按钮, For
11、m2就可以从屏幕上消失,下面的事件过程中不能实现此功能的是 ( )。 ( 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) KeyPr
12、ess ( 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 窗体上有一个名为 Commandl的命令按钮,并有下面的程序: Private Sub Commandl_Click() Dim arr(5)As Integer For k=1 To 5 flit(k)=k Next k prog flit() For k=1 To 5 Print alT(k); Next k End Sub Sub prog(a()As Integer) 11=UB
14、ound(a) For i=n To 2 step-1 For j=1 To n-1 if a(j)10 Then Exit For Next Text1 Text=str(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 34 在窗体上画 1个命令按钮和 1个文本框,其名称分别为 Command1和 Text1,再编写如下程序: Dim ss As String Private Sub Text1_KeyPress(KeyAscii As Integer) If Chr(KeyAscii)y Then x
15、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(“请输入字符串 “) Print pick_str(m) End Sub Private Function pick_str(s As String)As String temp
16、 “ i 1 sLen Len(s) Do While iy即 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“,
17、“c“, “a“, “i“。即 “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定义为静
18、态变量,因此每次调用都会保留结果, 3次调用过程, numa的值为 6, numb 的值为 1。 二、基本操作题 41 【正确答案】 步骤 1:新建一个窗体,按照题目要求建立列表框控件并设置窗体及列表框属性,如图 3 29所示。程序中用到的控件及属性见表 3 41。 步骤 2:调试并运行程序,关闭程序后按题目要求存盘。 (2)步骤 1:建立界面,添加一个命令按钮,设置其 Name:属性为 Command1, Caption属性为 “弹出菜单 ”。然后建立一个菜单,菜单的属性见表 3 42。步骤 2:打开代码编辑窗口,在指定位置编写如下代码。 Private Sub CommandlClick(
19、) PopupMenu menu1显示菜单 menu1End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析 】 ( 1)列表框的 Style属性只能在设汁时确定。用于控制控件的外观,其数值可以设置为 0(标准样式 )和 1(复选框样式 )。通过列表框的 Name和Width属性来设置列表桩的名称和宽,通过其 List属性设置列表项。 (2)要创建弹出式菜单需要先用菜单编辑器来建立菜单,并将其主菜单项的可见(Visiblc)属性值设置为不可见。然后通过对象的 Command1_Click 事什,执行对象的 PopupMenu 方法来显示菜单。 三、简单应用题 42 【
20、正确答案】 步骤 1:打开本题项目工程 步骤 2:打开 代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容。 Dim n As Integer Private Sub Form Click() Timerl Enabled=True End Sub Private Sub Form Load() Timer1 Interval=黼 Timer1 Enabled=False Text1 ForeC010r=0 n 0 End Sub Private Sub Timerl Timer() n=n 1 If n Mod 5 0 Then Text1 Text=Time() End If I
21、f n Nod 8 0 Then If Text1 ForeColor=0 Then Text1 ForeColOr= HFF ElBe Text1 ForeC010r=0 End If End If End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘 (2)步骤 1:打开本题项目工程 步骤 2:打开代码编辑窗口,去掉程序中的注释符 “”,将问号改为正确的内容。 Dim a (1 To 10) Private Sub Comrnandl Click() Randomize For k=1 To 10 a(k)=Int(Rnd*90+10) Picture1 Print a(k)
22、; Next k Picturel Print Picturel Print“-“ End Sub Prirate Sub Command2 C1ick() m =Val(Text1) MoveArray a()誓 For k=1 TO 10 Picturel Print a(k); Next k Picture1 Print End Sub Sub MoveArray(a()As Integer, m As Integer) n =UBouncl(a) For k=l To m x=a(1) For j=1 To n-1 a(j)=a(j+1) Next j a(n)=x Next k En
23、ct Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘 【试题解析】 (1)程序初始化时,将 Timer1 控件的 Interval 属性设置为 1000,En8hled属性设置为 False,即程序开始时 Timer1控件不可用。当程序开始运行时,单击窗体将 Timer1的 Enabled属性设置为 True,在 Timer1_Timer事件中通过设置一个计数器变量 n,用于实现单击窗体,则开始每隔 5秒钟在文本框中显示一次当前时间,及文本框中文字的颜色每隔 8秒在红色 (颜色值为 &HFF)与黑色 (颜色值为 0)之间切换。 (2)利用二重 For循环对数组中的元素进行移动,将移
24、动的元素个数之后的数组元素依次前移,最后将要移动的前几个元素放到数组最后。 四、综合应用题 43 【正确答案】 步骤 1:打开本题工程文件,添加两个名称分别是 Latbel1和Labe12,标题分别为 “最长单词的长度 ”和 “以该长度最后 一次出现的单词是 ”的标签;再添加两个名称分别为 Text1和 Text2。初始值都为空的文本框。 步骤 2:打开代码编辑窗口,在代码编辑窗口指定位置编写以下代码。 For i=1 To Len(S) J=Asc(Mid(S, i, 1)依次从 S中取一个字符转换成 ASCII码 Select Case J判断 J的范围 Case 48 To 57, 65
25、 To 90, 97 To 122 Case Else。 当 J不在上述范围,则使之为 “一 “ Mid(S, i, 1)=“一 “ End Select Next i J=Len(S)-1 For i=1 TO J If Mid(s, i, 1)=“一 “And Mid(s, i+1, 1)=“一 “Then S=Left(S, i)+Right(S, Ji) J=J一 1 i=i-1 End If Next i S=Left(S, Len(S)-1) R=Split(s, “-“)将 S以 “-“分隔成多个单词并存入 R中 B R(0) For i=1 To UBound(R)查找最长的单
26、词 If Len(B)Len(R(i)Then B=R(i) Next i For m=UBound(R)To 1 Step-1从敷组尾开始壹找最后一次以 Len(B)长度出现的单词 If Len(B)=Len(R(m)Then Exit For End If Next Text1 Text=Len(B)显示最长单词长度 Text2 Text=R(m)显示满足条件的单词 步骤 3:调试并运行程序 ,关闭程序后按题目要求存盘。 【试题解析】 单击 “统计 ”按钮,通过 Select Case语句判断是否为空格或是字母,通过 Len()函数得出中最长单词的长度,并通过比较把最长单词赋值给变量B,运用 For语句从字符串 s的最后开始查找,判断 Len(B)=Len(R(m),找出最后一个以该长度出现的单词,并将该单词的长度显示在 Text1 文本框内,将该单词显示在 Text2文本框内。