1、国家二级( VB)机试模拟试卷 14及答案与解析 一、选择题 1 在下列选项中,哪个不是一个算法一般应该具有的基本特征 ( )。 ( A)无穷性 ( B)可行性 ( C)确定性 ( D)有穷性 2 下列关于栈的叙述中正确的是 ( )。 ( A)在栈中只能插入数据,不能删除数据 ( B)在栈中只能删除数据,不能插入数据 ( C)栈是先进后出 (FILO)的线性表 ( D)栈是先进先出 (FIFO)的线性表 3 设有下列二叉树: 对此二叉树中序遍历的结果为 ( )。 ( A) ACBDEF ( B) DEBFCA ( C) ABDECF ( D) DBEAFC 4 下面描述中,符合结构化程序设计风
2、格的是 ( )。 ( A)使用顺序、选择和重复 (循环 )三种基本控制结构表示程序的控制逻辑 ( B)模块只有一个入口,可以有多个出口 ( C)注重提高程序的执行效率 ( D)不使用 goto语句 5 软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 ( )。 ( A)概要设计 ( B)软件设计 ( C)可行性研究和计划制定 ( D)需求分析 6 数据流图由一些特定的图符 构成。下列图符名标以的图符不属于数据流图合法图符的是 ( )。 ( A)加工 ( B)控制流 ( C)数据存储 ( D)数据流 7 下列叙述中正确的是 ( )。 ( A)数据库不需要操作系统的支持 (
3、 B)数据库设计是指设计数据库管理系统 ( C)数据库是存储在计算机存储设备中的、结构化的相关数据的集合 ( D)数据库系统中,数据的物理结构必须与逻辑结构一致 8 关系表中的每一横行称为一个 ( )。 ( A)字段 ( B)元组 ( C)行 ( D)码 9 关系数据库管理系统能实 现的专门关系运算包括 ( )。 ( A)选择、投影、连接 ( B)排序、查找、统计 ( C)关联、更新、排序 ( D)显示、打印、制表 10 数据库概念设计的过程中,以下各项中不属于视图没有设计次序的是 ( )。 ( A)自顶向下 ( B)由整体到个体 ( C)由内向外 ( D)由底向上 11 Visual Bas
4、ic集成环境由若干窗口组成,其中不能隐藏 (关闭 )的窗口是 ( )。 ( A)主窗口 ( B)属性窗口 ( C)立即窗口 ( D)窗体窗口 12 为了声明一个长度为 128个宇符的定长字符串变量 StrD,以下语句中正确的是( )。 ( A) Dim StrD As String ( B) Dim StrD As String(128) ( C) Dim StrD As String128 ( D) Dim StrD As String*128 13 为了用键盘打开菜单和执行菜单命令,第一步应按的键是 ( )。 ( A)功能键 F10或 Alt ( B) Shift+功能键 F4 ( C)
5、Ctrl或功能键 F8 ( D) Ctrl+Alt 14 如果在 Visual Basic集成环境中没有打开属性窗口,下列可以打开属性窗口的操作是 ( )。 ( A)用鼠标双击窗体的任何部位 ( B)执行 “工程 ”菜单中的 “属性窗口 ”命令 ( C)按 Ctrl+F4键 ( D)按 F4键 15 假定已在窗体上画了多个控件,其中有一个被选中,为 J了存属性窗口中设置窗体的属性,预先应执行的操作是 ( )。 ( A)单击窗体上没有控件的地方 ( B)单击任意一个控件 ( C)双击任意一个控件 ( D)单击属性窗口的标题栏 16 下列操作中不能向工程添加窗体的是 ( )。 ( A)执行 “工程
6、 ”菜单中的 “添加窗体 ”命令 ( B)单击工具栏上的 “添加窗体 ”按钮 ( C)右击窗体,在弹出的菜单中选择 “添加窗体 ”命令 ( D)右击工程资源管理器,在弹出的菜单中选择 “添加 ”命令,然后在下一级菜单中选择 “添加窗体 ”命令 17 设 a=2, b 3, c 4, d 5,表达式 Not aa c的值是( )。 ( A)一 l ( B) 1 ( C)真 ( D)假 18 鼠标拖放控件要触发两个事件,这两个事件是 ( )。 ( A) DragOver事件和 DragDrop事件 ( B) Drag事件和 DragDrop事件 ( C) MouseDown事件和 KeyDown事
7、件 ( D) MouseUp事件和 KeyUp事件 19 在窗体上画一个通用对话框,程序运行中用 ShowOpen方法显示 “打开 ”对话框时,希望在该对话框的 “文件类型 ”栏中显示扩展名为 DOC的文件,则在设计阶段应把通用对话框的 Fiher属性设置为 ( )。 ( A) “(* DOC* DOC” ( B) “(* DOC ( DOC” ( C) “(* DOC DOC” ( D) “(* DOC * DOC” 20 以下叙述中错误的是 ( )。 ( A) Print#语句和 Write#语句都可以向文件中写入数据 ( B)用 Print语句和 Write#语句所建立的顺序文件格式总是
8、一样的 ( C)如果用 Print语句把数据输出到文件,则各数据项之问没有逗号分隔,字符串也不加双引号 ( D)如果用 Write#语句把数据输出到文件,则各数据项之问门动插入逗号,并儿把字符串加上双引号 21 如果把命令按钮的 Cancel属性设置为 True,则程序运行后 ( )。 ( A)按 Ese键与 单击该命令按钮的作用相同 ( B)按回车键语单击该命令按钮的作用相同 ( C)按 Esc键将停止程序的运行 ( D)按回车键将中断程序的运行 22 为了使命令按钮的 Picture、 DownPiettire或 DisabledPiclure属性生效,必须把它的 Style属性设置为 (
9、 ) ( A) 0 ( B) l ( C) True ( D)假 23 列表框中被选中的数据项的位置可以通过一个属性获得,这个属性是 ( )。 ( A) List ( B) Listlndex ( C) Text ( D) ListCotrot 24 为了使一个复选框被禁用 (灰色显示 ),应把它的 Value属性设置为 ( )。 ( A) 0 ( B) 1 ( C) 2 ( D)假 25 为了使文本框显示滚动条,除要设置 SerollBars外,还必须设置的属性是( )。 ( A) AutoSize ( B) Alignment ( C) Multiline ( D) Maxlength 2
10、6 在窗体上画一个通用对话框,其名称为 CommonDialogl,则下列与CommonDialogl ShowOpen方法等效的语句是 ( )。 ( A) CommonDialogl Action=l ( B) CommonDialogl Action=2 ( C) CommonDialogl Action=3 ( D) CommonDialogl Action=4 27 如果改变驱动器列表框的 Drive属性,则将触发的事件是 ( )。 ( A) Change ( B) Scroll ( C) KeyDown ( D) KeyUp 28 为了调整图像框的大小以与其中的图形相适应,必须把它的
11、 Stretch属性没置为( )。 ( A)真 ( B)假 ( C) l ( D) 2 29 在窗体上添加 “控件 ”的正确的操作方式是 ( )。 ( A)先单击工具箱中的控件图标,再单击窗体上适当位置 ( B)先单击工具箱中的控件图标,再双击窗体上适当位置 ( C)直接双击工具箱中的控件图标,该控件将出现在窗体上 ( D)直接将工具箱中的控件图标拖动到窗体上适当位置 30 窗体上有一个名称为 Commandl的命令按钮,事件过程如下: Private Sub CommaM l Click() Dim arr_x(5, 5)As Integer For i=1 To 3 For j=2 To
12、4 alT X(i, j)=i*j Next j Next I Print arr X(2, 1); arr X(3, 2); arr x(4, 3) End Sub 运行程序,并单击命令按钮,窗体上显示的内容为 ( )。 ( A) 0 6 0 ( B) 2 6 0 ( C) 0 6 12 ( D) 2 6 12 31 有如下程序: Private Sub Form Click() Dim i As Integer n As Integer For i=l To 20 i=i+4 n=n+I If i10 Then Exit For Next Print n End Sub 程序运行后,单击窗
13、体,则输出结果是 ( )。 ( A) 14 ( B) 15 ( C) 29 ( D) 30 32 窗体上有 1个名称为 Commandl的命令按钮,事件过程如下: Private Sub Commandl Click() Dim nuln As Integer, X As Integer num=Vat(InputBox(“请输入一个正整数 ”) Select Case num Case Is100 x=X+num Case Is0 Then Print Mkt(num, P+1) Else Print“END” End If End Sub 运行程序,单击窗体,根据提示输入一个数值。如果输入
14、的不是实数,则程序输出 “END”;否则 ( )。 ( A)用字符方式输出该实数 ( B)输出该实数的整数部分 ( C)输出该实数的小数部分 ( D)去掉实数中的小数点,保留所有数码输出 35 (35)在窗体上画一个文本框,名称为 Textl,然后编写如下程序: Prirate Sub Form Load() Show Textl Text=“” Textl SetFocus End Sub Private Sub Foml Click() Dim a As String, S As String a=Textl Text S=“” For k=1 To Len(a) S=UCase(Mid(
15、a, k, 1)+S Next k Textl Text=S End Sub 程序运行后,在 文本框中输入一个字符串,然后单击窗体,则文本框中的内容 ( A)与原字符串相同 ( B)与原字符串中字符顺序相同,但所有字母均转换为大写 ( C)为原字符串的逆序字符串,且所有字母转换为大写 ( D)为原字符串的逆序字符串 36 有以下通用过程: Function fun(N As Integer) S=0 For k=l To N S=S+k*(k+1) Next k fun=S End Function 该过程的功能是 ( )。 ( A)计算 N! ( B)计算 1+2+3+N ( C)计算 l2
16、233N N ( D)计算 l2+23+34+N(N+1) 37 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Commandl Click() a$=InputBox(“请输入一个二进制数 ”) n=Len(a$) For i=1 To n Dec=Dec*2+ (a$, i, 1) Next I Print Dee End Sub 程序 的功能为:单击命令按钮,将产生一个输入对话框,此时如果在对话框中输入一个二进制数,并单击 “确定 ”按钮,则把该二进制数转换为等值的十进制数。这个程序不完整,应在 “_”处填入的内容是 ( )。 ( A) Left ( B) Ri
17、ght ( C) Val ( D) Mid 38 设有如下事件过程: Private Sub Form Click() Sum=0 For k=1 To 3 If k10不成立, i加 1转入下次循环。 i=6时, i=i+4=6+4=10, n=n+i=5+10=15,此时, i=10, i10 不成立, i加 1转入下次循环。 i=1l 时, i=i+4=11+4=15, n=n+i=15+15=30,此时, i 15, i10成立,退出循环。此时 n=30。 32 【正确答案】 B 【试题解析】 按钮事件中变量 x为过程局部变量,第 1次输入 100时, Select语句执行 Case
18、Else分支 x=x*num=0*100=0。第 2次输入 90时, Select语句 执行Case Else分支 x=x*num=0*90=O。第 3次输入 60时, Select语句执行 Case Is0即说明找到了小数点,是实数 )就输入该实数的小数部分,否则输出 “END”。因此选项 C正确。 35 【正确答案】 C 【试题解析】 程序中 Mid 函数从输入字符串左边开始逐一取 一个字符转换为大写,并连接到上次取出的字符的前面,因此文本框中显示的将是原输入字符串转换为大写的并倒序排列的字符串。所以 C正确。 36 【正确答案】 D 【试题解析】 由程序可知 s=1*(1+1)+2*(2
19、+1)+3*(3+1)+4*(4+1)+N#(N+1) ,因此选项 D正确。 37 【正确答案】 D 【试题解析】 将二进制数转换为十进制数需要将二进制数的每一位取出来进行运算,从一个数值字符串中截取一位数字字符要使用 Mid函数,因此在程序空缺处该填入 Mid。 38 【正确答案】 B 【试题解析】 程序执行过程如下: k=l, kMax或 MaxarrN(i) 步骤 3:调试并运行程序,关闭程序后按题 H要求存盘。 (2)本题要求的是 1000以内能被 5或 7整除的数的个数。在 Visual Basic中,使用Mod运算符来判断一个数是否可以被另一个数整除,如果计算结果为 0,则表示可以
20、整除,否则不能整除。 步骤 l:打开本题工程义件。 步骤 2: 分析并编写程序代码。 Function Fun() Dira s As Integer i As Integer For j=1 To 1000 If i Mod 5=0 or i Mod 7=0 Then s=s+1 End lf Next i Fun=s End Function 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 四、综合应用题 43 【正确答案】 根据题意将考生文件夹内数据文件读入到一个二维数组,在Commandl Click事件过程中, Mod函数用于判断数组中四周元素的值是否能被 7整除,运用 If判
21、断语句,实现变量 n对于被 7整除的数的统计。通过 For循环语句,统计四周元素之和,需要注意,对于四个角的值累加了两次,所以要减去。 步骤 1:打开本题工程文件。 步骤 2:分析并编写程序编码。 程序提代码 Dim a(7, 7)As Integer Private Sub Form Load() read End Sub Public Sub read() Open App Path “ Data5 txt”For Input As#l Do While Not EOF(1) For i=1 To 7 For j=l To 7 Input#1, a(i, j) Next j Next i
22、Loop Close#1 End Sub Private Sub Commandl Click() Din,Sum As Long =考生编写程序代码开始 = =考生编写程序结束 = Save End Sub Public Sub Save() Open App Path&” out5 txt”For Output As#1 Print 1 LblFirst Caption lblSecond Caption Close#l End Sub 程序结束 Dim i As Integer, n As Integer For i=1 To 7 If a(i, 1)Mod 7=0 Then n n+1 Elself a(1, i)Mod 7=0 Then n=n+1 Elself a(7, i)Mod 7=0 Then n=n+l Elself a(i, 7)Mod 7=0 Then n=n+l End If Next i lblFirst=n For i=1 To 7 sum=sum+a(1, i)+a(i, 1)+a(7, i)+a(i, 7) Next sum=sum a(1, 7) a(1, 7) a(7, 1) a(7, 7) lblSecond=SUM 步骤 3:调试并运行程序,关闭程序后按题日要求存盘。