1、国家二级 VB 机试(选择题)-试卷 29 及答案解析(总分:80.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.下列关于线性链表的叙述中,正确的是( )。(分数:2.00)A.各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B.各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C.进行插入与删除时,不需要移动表中的元素D.以上说法均不正确2.下列叙述中正确的是( )。(分数:2.00)A.循环队列是队列的一种链式存储结构B.循环队列是队列的一种顺序存储结构C.循环队列是非线性结构D.循环队列是一种逻辑结构3.软件测试的目的是(
2、)。(分数:2.00)A.评估软件可靠性B.发现并改正程序中的错误C.改正程序中的错误D.发现程序中的错误4.在软件开发中,需求分析阶段产生的主要文档是( )。(分数:2.00)A.软件集成测试计划B.软件详细设计说明书C.用户手册D.软件需求规格说明书5.结构化程序所要求的基本结构不包括( )。(分数:2.00)A.顺序结构B.GOTO 跳转C.选择(分支)结构D.重复(循环)结构6.下面描述中错误的是( )。(分数:2.00)A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具
3、7.下列关于数据库设计的叙述中,正确的是( )。(分数:2.00)A.在需求分析阶段建立数据字典B.在概念设计阶段建立数据字典C.在逻辑设计阶段建立数据字典D.在物理设计阶段建立数据字典8.数据库系统的三级模式不包括( )。(分数:2.00)A.概念模式B.内模式C.外模式D.数据模式9.在黑盒测试方法中,设计测试用例的主要根据是( )。(分数:2.00)A.程序内部逻辑B.程序外部功能C.程序数据结构D.程序流程图10.在软件设计中不使用的工具是( )。(分数:2.00)A.系统结构图B.PAD 图C.数据流图(DFD 图)D.程序流程图11.以下叙述中正确的是( )。(分数:2.00)A.
4、在属性窗口只能设置窗体的属性B.在属性窗口只能设置控件的属性C.在属性窗口可以设置窗体和控件的属性D.在属性窗口可以设置任何对象的属性12.下列打开“代码窗口“的操作中错误的是( )。(分数:2.00)A.按 F4 键B.单击“工程资源管理器“窗口中的“查看代码“按钮C.双击已建立好的控件D.执行“视图“菜单中的“代码窗口“命令13.要求如果 x 被 7 除余 2,则输出 x 的值,下列语句中不能实现此功能的语句是( )。(分数:2.00)A.If x mod 72 Then Print xB.If x(x/7)* 72 Then Print xC.If x(x / 7)* 72 Then P
5、rint xD.If xInt(x / 7)* 72 Then Print x14.表达式 Sgn(0.25)的值是( )。(分数:2.00)A.1B.0C.1D.0.515.以下关于 VB 文件的叙述中,错误的是( )。(分数:2.00)A.标准模块文件不属于任何一个窗体B.工程文件的扩展名为.frmC.一个工程只有一个工程文件D.一个工程可以有多个窗体文件16.设 x 为一整型变量,且情况语句的开始为:Select Case x,则不符合语法规则的 Case 子句是( )。(分数:2.00)A.Case Is20B.Case 1 To 10C.Case 00 Then count(n)co
6、unt(n)1 End If Next k mcount(0) For k1 To 25 If mA.0B.1C.2D.332.在窗体上画一个命令按钮和一个文本框,其名称分别为 Command1 和 Text1,把文本框的 Text 属性设置为空白,然后编写如下事件过程:Private Sub Command1_Click() aInputBox(“Enter an integer“) bText1.Text Text1.Textba End Sub 程序运行后,在文本框中输入456,然后单击命令按钮,在输入对话框中输入 123,则文本框中显示的内容是( )。(分数:2.00)A.579B.1
7、23C.456123D.45633.现有如下一段程序:Private Sub Command1_Click() xUCase(InputBox(“输入:“) Select Case x Case “A“ To “C“ Print “考核通过!“ Case “D“ Print “考核不通过 !“ Case Else Print “输入数据不合法!“ End SelectEnd Sub 执行程序,在输入框中输入字母“B“,则以下叙述中正确的是( )。(分数:2.00)A.程序运行错B.在窗体上显示“考核通过!“C.在窗体上显示“考核不通过 !“D.在窗体上显示“输入数据不合法!“34.窗体上有三个
8、水平滚动条,名称分别为 HSRed、HSGreen 和 HSBlue,取值范围均是 0255,代表颜色的三种基色。改变滚动框的位置,可以改变三种基色的值,从而改变窗体的背景色,如下图所示。(分数:2.00)A.color 是窗体级整型数组B.改变任何一个滚动条滚动框的位置,窗体的背景色将立刻随之改变C.3 个滚动条 Change 事件过程中只设置了一个 color 数组元素的值,调用 fill 过程失败D.fill 函数定义中的形式参数是数组型参数35.程序运行后,单击命令按钮,文本框中显示的是( )。35. 设有如下通用过程:Public Function Fun(xStr As Strin
9、g)As String Dim tStr As String, strL As Integer tStr“ strLLen(xStr) istrL / 2 Do While iA.ABCDEFB.abcdefC.defdefD.defabc36.在窗体上画一个命令按钮和一个文本框(名称分别为 Command1 和 Text1),并把窗体的 KeyPreview 属性设置为 True,然后编写如下代码:Dim SaveAll As StringPrivate Sub Form_Load() Show Text1.Text“ Text1.SetFocusEnd SubPrivate Sub Com
10、mand1_Click() Text1.TextLCase(SaveAll)SaveAllEnd SubPrivate Sub Form_KeyPress(KeyAscii As Integer) SaveAllSaveAllChr(KeyAscii)End Sub 程序运行后,直接用键盘输入:VB,再单击命令按钮,则文本框中显示的内容为( )。(分数:2.00)A.vbVBB.不显示任何信息C.VBD.出错37.窗体上有一个 Text1 文本框,一个 Command1 命令按钮,并有以下程序: Private Sub command1_Click() Dim n If Text1.Text2
11、0B.Case 1 To 10C.Case 00 或 Is0 Then count(n)count(n)1 End If Next k mcount(0) For k1 To 25 If mA.0B.1C.2D.3 解析:解析:根据题中的程序代码可知,ch 为输入字符串的大写状态,第一个 For 循环是依次取出字母,n 为取出字母与“A“字符的 ASCII 码差值,然后再赋给数组 count();第二个 For 循环是找出数组 count()中的最小值,因此,最后窗体上输出的结果为 3,即选项 D。32.在窗体上画一个命令按钮和一个文本框,其名称分别为 Command1 和 Text1,把文本
12、框的 Text 属性设置为空白,然后编写如下事件过程:Private Sub Command1_Click() aInputBox(“Enter an integer“) bText1.Text Text1.Textba End Sub 程序运行后,在文本框中输入456,然后单击命令按钮,在输入对话框中输入 123,则文本框中显示的内容是( )。(分数:2.00)A.579B.123C.456123 D.456解析:解析:默认情况下,InputBox 的返回值是一个字符串,因此程序中a“123“,b“456“,ba“456“123“456123“。因此 C 选项正确。另外,使用字符连接运算符“
13、时,如果连接的是字符串和数值,可根据返回值类型判断,若返回值类型为字符串,则它将数值转换成字符串后与另一字符串连接成新字符串返回;若返回值类型为数值,则它要求字符串中只能包含数字,而不能有其他字符,否则报“类型不匹配“的错误。33.现有如下一段程序:Private Sub Command1_Click() xUCase(InputBox(“输入:“) Select Case x Case “A“ To “C“ Print “考核通过!“ Case “D“ Print “考核不通过 !“ Case Else Print “输入数据不合法!“ End SelectEnd Sub 执行程序,在输入框
14、中输入字母“B“,则以下叙述中正确的是( )。(分数:2.00)A.程序运行错B.在窗体上显示“考核通过!“ C.在窗体上显示“考核不通过 !“D.在窗体上显示“输入数据不合法!“解析:解析:程序中 Ucase 函数将输入的字母转换为大写,然后通过 Select 多分支控制语句选择输出不同信息,当输入字母在“A“到“C“之间时,显示“考核通过!“,输入的是“D“时显示“考核不通过!“,如果输入的是“A“到“D“之外的其他字符则显示“输入数据不合法!“。程序中输入字母“B“,因此会显示“考核通过!“。34.窗体上有三个水平滚动条,名称分别为 HSRed、HSGreen 和 HSBlue,取值范围
15、均是 0255,代表颜色的三种基色。改变滚动框的位置,可以改变三种基色的值,从而改变窗体的背景色,如下图所示。(分数:2.00)A.color 是窗体级整型数组B.改变任何一个滚动条滚动框的位置,窗体的背景色将立刻随之改变C.3 个滚动条 Change 事件过程中只设置了一个 color 数组元素的值,调用 fill 过程失败 D.fill 函数定义中的形式参数是数组型参数解析:解析:当用 Dim 语句定义数组时,该语句把数值数组中的全部元素都初始化为 0,而把字符串数组中的全部元素都初始化为空串。因此 color 数组中的元素初始值都为 0,没有空值,过程调用不会失败。C 选项叙述错。35.
16、程序运行后,单击命令按钮,文本框中显示的是( )。35. 设有如下通用过程:Public Function Fun(xStr As String)As String Dim tStr As String, strL As Integer tStr“ strLLen(xStr) istrL / 2 Do While iA.ABCDEFB.abcdefC.defdef D.defabc解析:解析:程序中过程 Fun 的 Do 循环的功能是从参数字符串中依次取出后半部分的字符组成一个字符串,然后这个字符串再重复一次由函数返回。函数 Len 用于返回字符串的长度,过程中字符串的长度做为Do 循环的结束
17、条件。Mid 是字符串中部截取函数,用来从指定位置开始截取指定个数的字符。过程中使用Mid(xStr, i1, 1),通过循环依次取出字符串后半部分的字符。函数返回的字符串经 Lcase 函数转换为小写然后显示在文本框中。程序中做为 Fun 过程参数的字符串为“ABCDEF“,经处理返回并转为小写后为“defdef“。36.在窗体上画一个命令按钮和一个文本框(名称分别为 Command1 和 Text1),并把窗体的 KeyPreview 属性设置为 True,然后编写如下代码:Dim SaveAll As StringPrivate Sub Form_Load() Show Text1.Te
18、xt“ Text1.SetFocusEnd SubPrivate Sub Command1_Click() Text1.TextLCase(SaveAll)SaveAllEnd SubPrivate Sub Form_KeyPress(KeyAscii As Integer) SaveAllSaveAllChr(KeyAscii)End Sub 程序运行后,直接用键盘输入:VB,再单击命令按钮,则文本框中显示的内容为( )。(分数:2.00)A.vbVB B.不显示任何信息C.VBD.出错解析:解析:窗体的 KeyPreview 属性用于设置或获取一个值,该值只是判断按键事件传递到具有焦点的控
19、件前,窗体是否将接收此事件,该属性设为 True 时,窗体将会接收按键事件。因此在文本框中输入“VB“时,会先触发 Form_KeyPress()事件,该事件将输入的字符保存到窗体模块变量 SaveAll 中,然后才会显示在文本框中。当单击命令按钮时,Lcase 函数将变量 SaveAll 中的字符串“VB“转换为小写,为“vb“,然后与原字符串连接,即“vb“VB“,显示在文本框中则为“vbVB“。37.窗体上有一个 Text1 文本框,一个 Command1 命令按钮,并有以下程序: Private Sub command1_Click() Dim n If Text1.Text“1234
20、56“Then nn1 Print “口令输入错误“& n & “次“ End If End Sub 希望程序运行时得到左图所示的效果,即:输入口令,单击“确认口令“命令按钮,若输入的口令不是“123456“,则在窗体上显示输入错误口令的次数。但上面的程序实际显示的是右图所示的效果,程序需要修改。下面修改方案中正确的是( )。 (分数:2.00)A.在 Dim n 语句的下面添加一句:n0B.把 Print “口令输入错误“ & n & “次“ 改为 Print “口令输入错误“n“次“C.把 Print “口令输入错误“ & n & “次“ 改为 Print “口令输入错误“ & Str(n
21、)& “次“D.把 Dim n 改为 Static n 解析:解析:本题考查的是动态变量与静态变量。原来的程序中无法使变量 n 的值保持到下一次的使用,只有 D 选项符合要求,将 n 定义为静态局部变量,在程序执行到该对象的声明处时被首次初始化,每次执行后 n 的值都会被保存到内存中,所以答案 D 是正确的;而 A 选项只是对 n 赋初值,所以 A 选项没有意义;B 选项和 C 选项都没有达到改进的目的。38.下面程序计算并输出的是( )。Private Sub Command1_Click() a10 s0 Do ssa*a*a aa1 Loop Until aA.1 3 2 3 3 3 1
22、0 3 的值 B.10!3!2!1!的值C.(12310) 3 的值D.10 个 10 3 的和解析:解析:在 Do 循环语句中程序大致执行过程如下:s103, a9;s10393,a8;s109383,a7;,依此类推,因此正确的答案为 A。39.设有如下通用过程:Public Function f(x As Integer) Dim y As Integer x20 y2 fx * yEnd Function 在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程:Private Sub Command1_Click() Static x As Integer x10 y
23、5 yf(x) Print x; yEnd Sub 程序运行后,如果单击命令按钮,则在窗体上显示的内容是( )。(分数:2.00)A.10 5B.20 40 C.20 5D.10 40解析:解析:过程 f 中形参变量 x 没有指定传递方式,则默认按地址传递,会影响实参值。而变量 y 在按钮事件过程和 f 过程中都是局部变量只在本过程中起作用。因此执行 yf(x)后,x 值在过程中被改变为20,而 y 被赋为过程返回值 40。因此程序窗体上会显示 20 和 40。40.假定有以下通用过程:Function Fun(n As Integer)As Integer xn * n Funx11End Function 在窗体上画一个命令按钮,其名称为 Command1,然后编写如下事件过程:Private Sub Command1_Click() Dim i As Integer For i1 To 2 yFun(i) Print y; Next iEnd Sub 程序运行后,单击命令按钮,在窗体上显示的内容是( )。(分数:2.00)A.1 3B.10 8C.10 7 D.0 5解析:解析: