1、国家二级( VB)机试模拟试卷 104及答案与解析 一、选择题 1 下列叙述中正确的是 ( A)有且只有一个根结点的数据结构一定是线性结构 ( B)每一个结点最多有一个前件也最多有一个后件的数据结构一定是线性结构 ( C)有且只有一个根结点的数据结构一定是非线性结构 ( D)有且只有一个根结点的数据结构可能是线性结构,也可能是非线性结构 2 下列叙述中错误的是 ( A)在双向链表中,可以从任何一个结点开始直接遍历到所有结点 ( B)在循环链表中,可以从任何一个结点开始直接遍历到所有结点 ( C)在线性 单链表中,可以从任何一个结点开始直接遍历到所有结点 ( D)在二叉链表中,可以从根结点开始遍
2、历到所有结点 3 某二叉树共有 13个结点,其中有 4个度为 1的结点,则叶子结点数为 ( A) 5 ( B) 4 ( C) 3 ( D) 2 4 设栈的顺序存储空间为 S(1: 50),初始状态为 top=0。现经过一系列入栈与退栈运算后, top=20,则当前栈中的元素个数为 ( A) 30 ( B) 29 ( C) 20 ( D) 19 5 结构化程序包括的基本控制结构是 ( A)主程序与子程序 ( B)选择结构、循环结构与层 次结构 ( C)顺序结构、选择结构与循环结构 ( D)输入、处理、输出 6 程序测试的目的是 ( A)执行测试用例 ( B)发现并改正程序中的错误 ( C)发现程
3、序中的错误 ( D)诊断和改正程序中的错误 7 下面属于系统软件的是 ( A)财务管理系统 ( B)数据库管理系统 ( C)编辑软件 Word ( D)杀毒软件 8 在关系 A(S, SN, D)和 B(D, CN, NM)中, A的主关键字是 S, B的主关键字是 D,则 D是 A的 ( A)外键 (码 ) ( B)候选键 (码 ) ( C)主键 (码 ) ( D)元组 9 有两个关系 R, S如下,由关系 R和 S通过运算得到关系 T,则所使用的操作为( A)并 ( B)自然连接 ( C)笛卡尔积 ( D)差 10 在数据库管理系统提供的数据语言中,负责数据模式定义的是 ( A)数据定义语
4、言 ( B)数据管理语言 ( C)数据操纵语言 ( D)数据控制语言 11 以下可作为 Visual Basic合法变量名的是 ( A) A3#1 ( B) Basic ( C) Tab ( D) D%3 12 表达式 Sgn(15.6) + Int(-16.8) 的值是 ( A) 17 ( B) -15 ( C) 18 ( D) -16 13 语句 x = x + 1 的正确含义是 ( A)变量 x 的值等于表达式 x + 1 的值 ( B)将变量 x 的值存放到变量 x + 1 中 ( C)将变量 x 的值加 1后赋予变量 x ( D)将变量 “ x + 1“ 的值存放到变量 x中 14
5、在下列数组定义语句中,数组元素个数与其他三个数组不同的是 ( A) Option Base 1 Dim A(4, 5) ( B) Dim B(4, 5) ( C) Static C(3, 4) ( D) Dim D(-1 To 2, 1 To 5) 15 设 x = 2,并有以下程序段: If x * x = ( D) Mod 17 以下关于 Select Case语句的叙述中,正确的是 ( A) Select Case语句中的测试表达式可以是任何形式的表达式 ( B) Select Case语句中的测试表达式只能是数值表达式或字符串表达式 ( C)子句 Case中的表达式可以是逻辑表达式 (
6、 D)不是所有的 Select Case语句都能用 If语句代替 18 在 Open语句中可以用 Output和 Append两种方式打开顺序文件,其主要区别是 ( A) Output总是从文件的第一个记录开始写,而 Append在文件最后一个记录后面添加数据 ( B) Output在文件最后一个记录后面添加数据,而 Append总是从文件的第一个记录开始写 ( C) Output和 Append都 只能从文件的第一个记录开始写数据 ( D) Output和 Append都可以在文件的最后一个记录后面添加数据 19 在 For的二重循环中,内外循环的循环控制变量名 ( A)必须相同 ( B)相
7、同或不相同均可 ( C)不能相同 ( D)没有任何限制 20 设 strA = “ABCDEFGHIJK“, 则语句 Print Right(strA, 2) + String(4, strA) 的输出结果是 ( A) HIABCD ( B) JKAAAA ( C) ABHIJK ( D) ABEFGH 21 用来 设置斜体字的属性是 ( A) FontItalic ( B) FontBold ( C) FontName ( D) FontSize 22 在窗体上画一个列表框,其名称为 List1,通过属性窗口输入若干数据项,如图1所示。 请编写一个事件过程,程序运行后,如果单击窗体,则把数据
8、项 “New item“加到列表框中,如图 2所示。以下能实现该操作的事件过程是 ( A) Private Sub Form_Click() List1.AddItem “New item“, 3 End Sub ( B) Private Sub Form_Click() List1.AddItem “New item“, 2 End Sub ( C) Private Sub Form_Click() List1.AddItem 3, “New item“, 2 End Sub ( D) Private Sub Form_Click() List1.AddItem 2, “New item“,
9、 2 End Sub 23 下列说法中正确的是 ( A)通过适当的设置,可以在程序运行期间,让计时器控件显示在窗体上 ( B)在列表框中不能进行多项选择 ( C)通过设置适当的属性,可以把列表框中的项目按字母从大到小排序 ( D)框架也有 Click和 DblClick事件 24 为了把 ActiveX控件加到工具箱中,首先应采取的操作是 ( A)执行 “工程 “菜单中的 “部件 “命令 ( B)执行 “视图 “菜单中的 “工具箱 “命令 ( C)执行 “工具 “菜单中的 “选项 “命令 ( D)执行 “工程 “菜单中的 “引用 “命令 25 下列不能接收焦点的控件是 ( A)列表框 ( B)
10、框架 ( C)图片框 ( D)复选框 26 下列关于菜单的说法中,错误的是 ( A)与控件 一样,每个菜单项也有自己的属性和事件 ( B)除了 Click事件之外,菜单项还能响应其他事件,如 DblClick等 ( C)菜单项的快捷键不能任意设置 ( D)程序运行时,若菜单项的 Enabled属性为 False,则该菜单项变成灰色 27 在窗体上画一个名称为 CommonDialog1的通用对话框,以下语句中正确的是 ( A) CommonDialog1.Filter = “All Files|*.*|Picture(*.bmp)|*.bmp“ ( B) CommonDialog1.Filte
11、r = All Files|*.*|Picture(*.bmp)|*.bmp ( C) CommonDialog1.Filter=“All Files“|“*.*“|“Picture(*.bmp)“|“*.bmp“ ( D) CommonDialog1.Filter=All Files|*.*|Picture(*.bmp)|*.bmp 28 在窗体上画一个名称为 Text1 的文本框,然后编写如下事件过程: Private Sub Text1_KeyPress(KeyAscii As Integer) End Sub 假定焦点位于文本框中,则以下能触发 KeyPress 事件的操作是 ( A)
12、在窗体上单击鼠标 ( B)双击文本框 ( C)用鼠标滑过文本框 ( D)按下键盘上的某个键 29 为了返回或设置磁盘驱动器的名称,应使用的驱动器列表框的属性是 ( A) ChDrive ( B) Drive ( C) List ( D) ListIndex 30 假定有下面的程序: Private Sub Form_Click() Dim N As Integer N = InputBox(“输入一个 2位整数 “) Print (N - Int(N / 10) * 10) * 10 + Int(N / 10) End Sub 程序运行后,单击窗体,在输入对话框中输入 58,然后单击 “确定
13、“按钮,输出结果是 ( A) 58 ( B) 13 ( C) 85 ( D) 40 31 执行以下程序段后,输出结果不为 2的是 ( A) y = 2 x = 1 Do While x = 0 x = 0 y = y * x Loop Print y ( B) y = 2 x = 1 Do Until x = 0 x = 0 y = y * x Loop Print y ( C) y = 2 x = 1 Do y = y * x Loop Until x 0 Print y ( D) y = 2 x = 1 Do y = y * x Loop While x = 0 Print y 32 设有
14、如下程序: Private Sub Form_Click() Cls For n = 1 To 100 If Not (n / 3 = Int(n / 3) Or n Mod 8 = 0) Then Print n; End If Next n End Sub 程序运行后,如果单击窗体,则 ( A)输出所有能被 3或能被 8整除的数 ( B)输出 1到 100所有既能被 3也能被 8整除的数 ( C)输出 1到 100所有既不能被 3也不能被 8整除的数 ( D)输出 1到 100所有能被 3或能被 8整除的数 33 编写如下程序: Private Sub Form_Click() k = 0
15、 For j = 1 To 2 For i = 1 To 3 k = i + 1 Next i For i = 1 To 7 k = k + 1 Next i Next j Print k End Sub 运行程序,单击窗体,输出结果是 ( A) 10 ( B) 6 ( C) 5 ( D) 11 34 在窗体上画一个名称为 Command的命令按钮,然后编写如下程序: Private Sub Command1_Click() Dim A(10) For k = 1 To 10 A(k) = 11 - k Next k x = 6 Print A(2 + A(x) End Sub 运行程序,单击
16、命令按钮,输出结果是 ( A) 5 ( B) 4 ( C) 3 ( D) 2 35 设有如下程序: Private Sub Form_Click() Dim x As Integer, p As Integer x = InputBox(“请输入一个整数 “) p = fee(x) Print p End Sub Function fee(a As Integer) If a m1 Then m1 = Arr(i) m2 = i End If Next i End If Text1.Text = Str(m1) Loop Close #1, #2 End Sub 这一过程的功能是 ( A)读入
17、文件 file1.txt的内容在窗体上显示 ( B)读入文件 file1_bak.txt的内容在窗体上显示 ( C)把文件 file1_bak.txt复制为 file1.txt文件 ( D)把文件 file1.txt复制为 file1_bak.txt文件 二、基本操作题 41 (1)在名称为 Form1的窗体上添加一个名称为 Shape1的圆角矩形,高、宽分别为1000、 2000。请利用属性窗口设置适当的属 性以满足下列要求: 圆角矩形中填满绿色 (颜色值为: 当 i=3时, Arr( 5) m1,不执行 Then后的语句。跳出循环语句,此时 m1=823,m2 =4,则Text1.Text
18、 = Str(m1) & “ “ &Str(m2)= “823 4“,故选项 C正确。 40 【正确答案】 D 【试题解析】 Open语句兼有打开文件和建立文件两种功能。 Output和 Input分别指定文件顺序输出方式和顺序输入方式。 Open “file1.txt“ For Input As #1意思是以顺序输入方式打开已经存在的 file1.txt文件; Open “file1_bak.txt“ For Output As #2的意思是以顺序输出方式打开数据文件 file1_bak.txt,新写入的数据将覆盖原来的记录,如果文件不存在,则建立一个文件。 Input$(n, #文件号 )
19、该函数返回从指定文件中读出的 n个字符的字符串(即它可以再数据文件中读取指定数目的字符), ch = Input$(1, #1)语句是从文件号为 1的文件中读出 1个字符,并将其赋值给 ch。 Print#文件号,实现的功能是把数据写入 文件中, Print #2,ch是把ch输入到文件号为 2的文件中。两个语句实际上就是把文件号为 1的中的 1个字符复制到文件 2中。 EOF函数用来返回测试文件的结束状态,对于顺序文件来说,如果已达到文件尾,则函数返回值为 True,否则返回值为 False。利用 EOF函数,可以避免在文件输入时出现 “输入超出文件尾 “的错误。 EOF( n)的含义是已到
20、达文件尾, Not EOF(n)的含义是没有到达 n所对应文件的末尾。 Do While Not EOF(1)保证循环执行,直到已到达文件号为 1的文件尾。利用 Do While Not EOF(1),循环执行以上 Input和 Print语句,则是把文件号为 1的文件内容复制到文件号为 2的文件中,即把文件 file1.txt复制为 file1_bak.txt文件,故 D选项正确, C选项错误。程序中并没有窗体上显示的程序语句,故 A项和 B项错误。故选择 D项。 二、基本操作题 41 【正确答案】 步骤 1:建立界面,并设置控件的属性。程序中用到的控件及属性见表 3 58。 步骤 2:调试
21、并运行程序,关闭程序后按题目要求存盘。行同类知识点的练习。 (2)步骤1:建立界面,设置计时器的 Interval属性为 1000, Enabled属性设置为 False。 步骤 2:打开代码编辑窗口,在代码编辑窗口指定位置编写以下代码。 Private Sub Commandl C1ick() Timerl Enabled=True通话开始。 Timer生效 End Sub Private Sub Command2 C1ick() Timerl Enabled=False通话结束, Timer失效 End Sub Private Sub Command3 C1ick() Call subl单
22、击 “计算通话费 “按钮。调用 sub1 End Sub Private Sub Timer1 Timer() Text1 Text=Text1 Text+1将 Text1中的数字间隔自增 End Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】 (1)通过形状控件的 Name、 Shape、 Width和 Height属性设置形状控件的名称、形状、宽和高, FillColor属性返回设置填充形状、圆环和方框所使用的颜色。窗体的 FontName和 Caption属性设置窗体的标题以及字体。 (2)程序运行时,单击 “通话开始 ”按钮。 Timer1的 Enabled
23、属性设置为 True,运用 Timer1一 Timer事件过程中的 Text1 Text=Text1 Text+1语句,在 Text1中累加通话时间 (每秒加 1),单击 “通话结束 ”按钮, Timer1的 Enabled属性为False,停止通话时间的累加;单击 “计算通话费 ”按钮,运用 Cal1语句调用过程sub1。 三、简单应用题 42 【正确答案】 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口,去掉程序中的注释符,将问号改为正确的内容。 Private Sub Command1 Click() Dim n As Integer Cls清空窗体 n=InputBox(“请
24、输入一个整数 “)InputBox返回值赋给 n Print“因子数 =“, fun(n)调用 fun函数并打印结果 End Sub Funct ion fun(m As Integer) Dim S As Integer s=0 For k=1 To Abs(m) 2 If m Mod k=0 Then当整除余数为 0时则一定 是它的因子 s=s 1 Print k End If Next k fun s返回因子总数 End Function 程序结束 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 (2)步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗口去掉程序中的注释符,将问
25、号改为正确的内容。 Prirate Sub Commandl_11ck() Dim k For k=List1 ListCount 1 To 0 Step 1 k从最大到 0,则步长应为 1 If Listl Selected(k)=True Then List2 AddItem List1.List(k)添加项到 List2中 Listl RemoveItemk 通过下标删徐 List1中的项目 End If Next k End SubPrivate Sub Command2 C1ick() Dim k Textl=“已经选中的城市有: “ For k=0 To List2 ListCou
26、nt 1 Step 1 Textl=Text1.Text &“& List2 List(k) 将 List2中的项目连接在 Text1中的内容之后 Next kEnd Sub 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 【试题解析】 (1)通过 InputBox()函数实现对话框中显示提示,等待用户输入正文或按下按钮,并返回包含文本框内容的 String。 通过 Function fun()过程函数,实现对因子数的确定和查找, Mcwl()函数用来判断是否能够整除,即判断是否为因子数。 (2)Selected属性是一个与 List数组中的各个元素相对应的一维数组,记录 List数组中
27、每个项目是否被选取。例如,如果 List(1)被选取,则 Selected(1)的值为True,如果 List(1)未被选取,则 Selected(1)的值为 False。 List属性是一个一维数组,数组中元素的值就是在执行时看到的列表项。设计时可以在属性窗口中通过List属性来建立列表项,运行时对 List数组从 0到 ListCount一 1依次取值,可以获得列表的所有项目 。通过对 Selected属性返回值的判断,可以得知列表项是否被选中,从而进行删除和添加操作。 四、综合应用题 43 【正确答案】 步骤 1:打开本题工程文件。 步骤 2:打开代码编辑窗几,在代码编辑窗亡 1指定位置编写以下代码。 For k=1 To 100