1、国家二级( VB)机试模拟试卷 186及答案与解析 一、选择题 1 一个栈的初始状态为空。现将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E依次入栈,然后再依次出栈,则元素出栈的顺序是 ( )。 ( A) 12345ABCDE ( B) EDCBA54321 ( C) ABCDEl2345 ( D) 54321EDCBA 2 下列叙述中正确的是 ( )。 ( A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构 ( B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况 ( C)在循环队 列中,只需要队尾指针就能反映队列中元素的动态变化情况 ( D)循环队列中
2、元素的个数是由队头指针和队尾指针共同决定 3 在长度为 n的有序线性表中进行二分查找,最坏情况下需要比较的次数是 ( )。 ( A) O(n) ( B) O(n2) ( C) O(log2n) ( D) O(nlog2n) 4 下列叙述中正确的是 ( )。 ( A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的 ( B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 ( C)顺序存储结构能存储有序表 ,链式存储结构不能存储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 5 数据流图中带有箭头的线段表示的是 ( )。 ( A)控制流 ( B)事件驱动 (
3、C)模块调用 ( D)数据流 6 在软件开发中,需求分析阶段可以使用的工具是 ( )。 ( A) N-S图 ( B) DFD图 ( C) PAD图 ( D)程序流程图 7 在面向对象方法中,不属于 “对象 ”基本特点的是 ( )。 ( A)一致性 ( B)分类性 ( C)多态性 ( D)标识唯一性 8 一间宿舍可住多个学生,则实 体宿舍和学生之间的联系是 ( )。 ( A)一对一 ( B)一对多 ( C)多对一 ( D)多对多 9 在数据管理技术发展的三个阶段中,数据共享最好的是 ( )。 ( A)人工管理阶段 ( B)文件系统阶段 ( C)数据库系统阶段 ( D)三个阶段相同 10 有三个关
4、系 R、 S和 T如下:由关系 R和 S通过运算得到关系 T,则所使用的运算为 ( )。 ( A)笛卡尔积 ( B)交 ( C)并 ( D)自然连接 11 以下不能输出 “Program”的语句是 ( )。 ( A) Print Mid(“VBProgram”, 3, 7) ( B) Print Right(“VBProgram”, 7) ( C) Print Mid(“VBProgram”, 3) ( D) Print Left(“VBProgram”, 7) 12 以下叙述中错误的是 ( )。 ( A)在通用过程中,多个形式参数之间可以用逗号作为分隔符 ( B)在 Print方法中,多个输
5、出项之间可以用逗号作为分隔符 ( C)在 Dim语句中,所定义的多个变量可以用逗号作为分隔符 ( D)当一行中有多个语句时,可以用逗号作为分隔符 13 设 a=4, b=5, c=6,执行语句: Print a b And b c后,窗体上显示的是 ( )。 ( A) True ( B) False ( C)出错信息 ( D) 0 14 执行下列语句: strlnput=InputBox(“请输入字符串 ”, “字符串对话框 ”, “字符串 ”) 将显示输入对话框。此时如果直接单击 “确定 ”按钮,则变量 strInput的内容是( )。 ( A) “请输入字符串 ” ( B) “字符串对话框
6、 ” ( C) “字符串 ” ( D)空字符串 15 以下关于过程及过程参数的描述中,错误的是 ( )。 ( A)调用过程时可以用控件名称作为实际参数 ( B)用数组作为过程的参数时,使用的是 “传地址 ”方式 ( C)只有函数过程能够将过程中处理的信息传回到调用的程序中 ( D)窗体 (Form)可以作为过程的参数 16 在窗体上有两个名称分别为 Text1、 Text2的文本框,一个名称为 Command1的命令按钮。运行后的窗体外观如图所示。 设有如下的类型和变量声明: Private Type Person name As String*8 major As String*20 End
7、 Type Dim p As Person设文本框中的数据已正确地赋值给 Person类型的变量p,当单击 “保存 ”按钮时,能够正确地把变量中的数据写入随机文件 Test2 dat中的程序段是 ( )。 ( A) Open“c: Test2 dat”For Output As#1 Put#1, 1, p Close#1 ( B) Open“c: Test2 dat”For Random As#1 Get#1, 1, p Close#1 ( C) Open“c: Test2 dat”: For Random As#1 Len=Len(p) Put#1, 1, p Close#1 ( D) Op
8、en“c: Test2 dat”For Random As#1 Len=Len(p) Get#1, 1, p Close#1 17 假定有以下循环结构: Do Until条件表达式 循环体 Loop 则以下正确的描述是 ( )。 ( A)如果 “条件表达式 ”的值是 0,则一次循环体也不执行 ( B)如果 “条件表达式 ”的值不为 0,则至少执行一次循环体 ( C)不论 “条件表达式 ”的值是否为 “真 ”,至少要执 行一次循环体 ( D)如果 “条件表达式 ”的值恒为 0,则无限次执行循环体 18 执行语句 Dim X, Y As Integer后, ( )。 ( A) X和 Y均被定义为整
9、型变量 ( B) X和 Y均被定义为变体类型变量 ( C) X被定义为整型变量, Y被定义为变体类型变量 ( D) X被定义为变体类型变量, Y被定义为整型变量 19 以下关系表达式中,其值为 True的是 ( )。 ( A) “XYZ”“XYz” ( B) “VisualBasic”“visualbasic” ( C) “the”=“there” ( D) “Integer”“Int”,返回 False。 选项 B中两个字符串不完全一样,有大写和小写的字符,不等。所以返回 True。故 B选项正确。 20 【正确答案】 B 【试题解析】 UCase(kft(a$, 7)是从字符串 a的左边向
10、右取出 7个字符,然 后再全部转换为大写字母,结果是: ”VISUAL”: Right$(a$, 12)是从字符串 a的右边向左取出 12个字符,结果为 ”一Programming”, &是字符串连接符,把 ”VISUAL一 “&”c+”&”一 Programming”连接在一起,合成字符串 ”VISUALc+一 Programming”,并把它赋给字符串变量 c,所以字符串变量 c的值就是合成的字符串。故 B选项正确。 21 【正确答案】 C 【试题解析】 Listl的 List属性是设置或返回列表框中的列表项内容; ListIndex属 性设置或返回当前选中的列表项的索引值; Index属
11、性是用来区分列表框控件数组中各 List控件; Text属性设置或返回当前所选中列表项的文本内容。故选 C。 22 【正确答案】 A 【试题解析】 根据题意可知,在文本框中输入字符这个动作使标签上显示的内容发生变化,说明是文本框触发了某事件,排除 D选项;文本框中每输入一个字符,标签中立即就会发生变化,故是 Change事件,排除 B选项;标签中显示的是文本框中字符的个数,不是输入的内容,排除 C选项。故 A选项正确。 23 【正确答案】 D 【试题解析 】 单选按钮控件的 Value属性值为 True表示被选中, False表示未被选中;复选框控件的 Value属性值为 0表示未选中, 1表
12、示选中, 2表示禁止。本题中是单选按钮和复选框都被选中,故 D选项正确。 24 【正确答案】 A 【试题解析】 B选项错误原因:窗体有自己的 KeyPress事件过程; C选项错误原因: KeyPress事件过程中的 KeyAscii参数返回按键的 ASCII码值,大小写字母返回值不同;而 KeyDown事件过程中的 KeyCode参数返回的是按键代码,大小写字母返回值相同。故按下的键相 同时, keyAscii和 KeyCode参数不一定返回相同值; D选项错误原因: KeyPress事件中的 KeyAscii参数不能省略。 A选项正确。 25 【正确答案】 D 【试题解析】 命令按钮控件数
13、组中各控件用相同的名称和同一 Click事件过程,大小也一样,但是为了区分它们,各控件的 Index属性值是不同的。故 D选项错误。 26 【正确答案】 B 【试题解析】 当菜单项的 Enabed属性值设置为 False时,菜单项只是变为无效项,不可用,不会删除该菜单项。故 B选项错误。 27 【正 确答案】 C 【试题解析】 调用通用对话框的 ShowOpen方法,只是显示文件 “打开 ”对话框,如果 ShowOpen方法后面没有其他处理文件的代码,就不能实现打开文件的功能。故选项 C错误。 28 【正确答案】 C 【试题解析】 Caption属性是设置或返回控件的标题。组合框没有 Capt
14、ion属性。故选 C。 29 【正确答案】 D 【试题解析】 FontUnderline属性设置文字是否有下划线; FontBold属性是设置文字是否加粗; Fontltalic属性是设置文字是否斜体;没有 FontSlope屙性。故选D。 30 【正确答案】 C 【试题解析】 题目中变量 x定义为 Static,即每次进入 Timer事件过程时, x都会保留上次的值,从而实现每执行一次 Timer1-Timer事件过程 x的值都在原有基础上增加 1。程序中判断调用 Timer事件过程 10次后,重置 Shapel的 top值为0,即回到起点。控件 Shapel的 Top属性是距离窗体顶的位置
15、,数值越大距离越远,因此 Shapel会由上向下移动。 31 【正确答案】 D 【试题解析】 题目中变量 a被定义为 Variant类型, Va riant是一种特殊的数据类型,除了定长 String数据及用户定义类型外,可以包含任何种类的数据。变量 a被赋值为字符串数组,数组默认下标从 0开始,因此元素 a(3)的值为 “four”。 32 【正确答案】 C 【试题解析】 题目中过程 s的功能是实现一个数的阶乘,而题目是求 1到 10的阶乘的和,则程序空缺处应该是过程 s返回值的累加,因此就应该为 y=y+s(i)。 33 【正确答案】 D 【试题解析】 控件数组的 Index属性作为控件数
16、组的下标,用于标识数组元素。题目中程序功能是当任 一个文本框内容改变时设置第 2个文本框的字号是第 1个文本框字号的 2倍,同时两个文本框显示相同文字。假如用户没有使用控件数组的 Index属性的默认值程序将执行到 Else分支。 34 【正确答案】 B 【试题解析】 Dim用于在标准模块、窗体模块或过程中定义变量或数组。程序可以正常运行, x中保存的是数组 b元素中的最大值。 35 【正确答案】 A 【试题解析】 记录类型的定义必须放在模块的声明部分,当在标准模块中定义时,关键字 Type前可以有 Public(默认 )或 Private,而如果在窗体模块 中定义,则必须在前面加上关键字 P
17、rivate。 Open语句中使用 For Random表示文件以随机方式存取。 Put语句的语法为: Put#文件号, 记录号 ,变量。其中 “变量 ”是除对象变量和数组变量外的任何变量。 36 【正确答案】 D 【试题解析】 程序是一个双层 For循环,外层循环变量的值决定内层 F0r循环的次数。 当 i=1时,内层循环 1次, s=1, p=1; 当 i=2时,内层循环 2次, s=1+1+2=4, p=1*4=4; 当 i=3时,内层循环 3次, s=4+1+2+3=10, p=4*10=40; 当 i=4时,内层循环 4次, s=10+1+2+3+4=20, p=40*20=800。
18、 37 【正确答案】 A 【试题解析】 题目程序的功能为,当单击命令按钮时, Textl失去焦点,激发Textl的 LostFocus事件,在此事件中,程序判断文本框中字符串是否为“BASIC”,如果是则退出事件过程,继续执行命令按钮的单击事件过程,文本框中显示 “VisualBasic”,如果不是则文本框内容置空,焦点返回到文本框中等待输入,不会执行命令按钮的单击事件过程。题目中输入了 “Basic”,与 “BASIC”不符 ,因此文本框置空,焦点回到文本框中。 38 【正确答案】 D 【试题解析】 Right(x, 11)是从字符串变量 x右边取 11个字符,即“Programming”,
19、这个字符串存人变量 a中。 Mid(x, 7, 5)是从字符串变量 x的第7个字符开始取 5个字符,即 “Basic”,此字符串存入变量 b中。 MsgBox的格式为: MsgBox(Prompt, Button, Title),参数中只有 Prompt是必需的,如果省略 Button则显示一个确定按钮,因此题目显示的消息框有一个确定按钮,标题是“Basic”,信息堤 “Programming”。 MsgBox的返回值是一个与所选按钮有关的整数。 39 【正确答案】 A 【试题解析】 在 Form1窗体模块中 x被定义为全局变量,这使得它的值可以在其他模块中通过 “过程名变量名 ”的形式被引用
20、。而变量 y在标准模块中被定义为全局变量,则它可以在工程的每个模块,每个过程中使用。因此程序运行时, x赋值为 1, y赋值为 5,它们的值都可以在 Form2中引用。 40 【正确答案】 D 【试题解析】 x是用户定义的一种变量类型,可以使用它来声明变量。InputB0x(“”)函数的提示信息为 “”,即为空,因此弹出的对话框中没有提示信息。在程序中通过比较输入的数被 2整除和被 2除的值是否相等来判定它是否为偶数,如果是那么 y b的值就是 y a的值的平方。 Fix函数是取整函数,它会删除小数部分,直接取表达式的整数部分,不四舍五人,因此 D选项错。 二、基本操作题 41 【正确答案】
21、(1)新建窗体,添加框架控件,在框架控件中依次添加四个单选按钮,并将四个单选按钮设置为控件数组,然后修改相关控件的属性,以完成题目所需要求。【操作步骤】步骤 1:新建一个窗体,在窗体上添加一个框架 控件。并按照表 1 1设置控件的属性。 步骤 2:在建立好的框架控件上依次添加 4个单选按钮,并按照表 1 2设置控件属性。为了使“硕士 ”单选按钮处于选中状态,需要将其的 value属性值设置为 True。步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 (2)新建窗体,在窗体中添加一个 Image控件和两个 Conunand按钮控件,向 Image控件中添加图片,并设置 stretch属性为
22、 True,当单击 “加宽 ”按钮时,将 Image控件的 width属性加 15,当单击 “加高 ”按钮时,将Image控件的 Heigth属性加 15。【操作步骤】步骤 1:新建一个窗体,并设置窗体的相关属性,如表 1 3所示。 步骤 2:在建立好的窗体上添加 个 Image控件,并按照表 1 4设置控件属性。步骤 3:向窗体上添加两个按钮控件,按钮名称分别为 Command1和 Command2,并按照表 1 5设置两个按钮控件的相关属性。 步骤 4:双击 “加宽 ”按钮,打开代码编辑窗口,在代码编辑窗口指定位置编写以下代码。编写程序代码如下:Private Sub Commandl C
23、lick()lmagel, Width=Imagel, Width+15End Sub步骤 5:双击 “加高 ”按钮,打开代码编辑窗口,在代码编辑窗口指定位置缩写以下代码。编写程序代码如下: Private Sub Command2 Click()End Sub步骤 5:调试并运行程序,关闭程序后按题目要求存盘。 三、简单应用题 42 【正确答案】 (1)表达式 Int(Rnd*1000)可生成 01000范围内随机整数。根据题意求出 20个随机整数的平均值,须用 For循环语句逐一将数组中的各元素累加到变量 Sum,然后求出平均值。 【操作步骤】 步骤 1:打开本题工程文件。 步骤 2:分析
24、并编写程序代码。 程 序提供代码 Option Base 1 Private Sub CommandlClick() Dim arrN(20)As Integer Dim Aver As Single Dim Sum As Integer, i Randomize For i=1 To 20 arrN(i)=Int(Rnd*?) Next i Sum=? For i=1 To 20 Sum=? Next i Aver=? Print Aver End Sub 程序结束 第 1个 ?处填入: 1000 第 2个 ?处填入: 0 第 3个 ?处填入: Sum+arrN(i) 第 4个 ?处填入:
25、Sum 20 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 (2)判断 0 200范围内的数能不能被 3整除,须使用求余运算符 Mod,如果余数不为 0,则表示该数不能被整除。并需要设置一个变量,以累计不能被 3整除的数的和。 【操作步骤】 步骤 1:打开本题工程文件。 步骤 2:分析并编写程序代码。 程序提供代码 Sub SaveData() Open App Path&” ”&”outtxt txt”For Output As#1 Print#1, Textl Text Close#1 End Sub Function Fun() End Function Private Sub
26、CommandlClick() d=Fun() Text1 Text=d SaveData End Sub 程序结束 Function Fun() Dim S As Integer, i As Integer For i=0 To 200 If i Mod 3=0 Then s=s+i End If Next i Fun=S End Function 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 四、综合应用题 43 【正确答案】 函数过程 isprime(a)的功能是通过 Do While语句、 If判断语句和Int函数,判断参数 a是否为素数,如果是素数 ,则函数返回 True,否则函数返回False。在单击 “计算 ”按钮事件过程中,通过 For语句和调用函数过程 isprime(a),找出小于 18000的最大的素数,并将其显示在 Text1中;在单击 “存盘 ”按钮事件过程中,通过文件操作把 Text1中的计算结果存入考生文件夹下的 out5 txt文件中。 【操作步骤】