1、国家二级( VB)机试模拟试卷 72及答案与解析 一、选择题 1 软件设计中划分模块的一个准则是 ( )。 ( A)低内聚低耦合 ( B)高内聚低耦合 ( C)低内聚高耦合 ( D)高内聚高耦合 2 下列选项中不属于结构化程序设计原则的是 ( )。 ( A)可封装 ( B)自顶向下 ( C)模块化 ( D)逐步求精 3 软件详细设计生产的图如下:该图是 ( ) ( A) N S图 ( B) PAD图 ( C)程序流程图 ( D) E R图 4 数据库管理系统是 ( )。 ( A)操作系统的一部分 ( B)在操作系统支持下的系统软件 ( C)一种编译系统 ( D)一种操作系统 5 在 E R图中
2、,用来表示实体联系的图形是 ( )。 ( A)椭圆形 ( B)矩形 ( C)菱形 ( D)三角形 6 有三个关系 R、 S和 T如下:则关系 T是由关系 R和 S通过某种操作得到,该操作为 ( )。 ( A)选择 ( B)投影 ( C)交 ( D)并 7 在 VB集成环境中要结束一个正在运行的工程,可单击工具栏上的一个按钮,这个按钮是 ( )。 ( A) ( B) ( C) ( D) 8 设 x是整型变量, 与函数 IIf(x0, x, x)有相同结果的代数式是 ( )。 ( A) |x| ( B) |x| ( C) x ( D) x 9 设窗体文件中有下面的事件过程: Private Sub
3、 Command1_Click() Dim s a% 100 Print a End Sub 其中变量 a和 s的数据类型分别是 ( )。 ( A)整型,整型 ( B)变体型,变体型 ( C)整型,变体型 ( D)变体型,整型 10 下面不能在信息框中输出 “VB“的是 ( )。 ( A) MsgBox “VB“ ( B) x MsgBox(“VB“) ( C) MsgBox(“VB“) ( D) Call MsgBox “VB“ 11 下面关于标准模块的叙述中错误的是 ( )。 ( A)标准模块中可以声明全局变量 ( B)标准模块中可以包含一个 Sub Main过程,但此过程不能被设置为启动
4、过程 ( C)标准模块中可以包含一些 Public过程 ( D)一个工程中可以含有多个标准模块 12 下面是求最大公约数的函数的首部: Function gcd(ByVal x As Integer, ByVal y As Integer)As Integer 若要输出 8、 12、 16这 3个数的最大公约数,下面正确的语句是 ( )。 ( A) Print gcd(8,12), gcd(12,16), gcd(16,8) ( B) Print gcd(8,12,16) ( C) Print gcd(8), gcd(12), gcd(16) ( D) Print gcd(8, gcd(12,
5、16) 13 若在窗体模块的声明部分声明了如下自定义类型和数组: Private Type rec Code As Integer Caption As String End Type Dim arr(5)As rec 则下面的输出语句中正确的是 ( )。 ( A) Print arr.Code(2), arr.Caption(2) ( B) Print arr.Code, arr.Caption ( C) Print arr(2).Code, arr(2).Caption ( D) Print Code(2), Caption(2) 14 下面程序运行时,若输入 395 ,则输出结果是 (
6、)。 Private Sub Command1_Click() Dim x% x InputBox(“请输入一个 3位整数 “) Print x Mod 10, x100, (x Mod 100)10 End Sub ( A) 3 9 5 ( B) 5 3 9 ( C) 5 9 3 ( D) 3 5 9 15 某人编写了下面的程序,希望能把 Text1文本框中的内容写到 out.txt文件中: Private Sub Command1_Click() Open “out.txt“ For Output As #2 Print “Text1“ Close #2 End Sub 调试时发现没有达到
7、目的,为实现上述目的,应做的修改是 ( )。 ( A)把 Print “Text1“ 改为 Print #2, Text1 ( B)把 Print “Text1“ 改为 Print Text1 ( C)把 Print “Text1“ 改为 Write “Text1“ ( D)把所有 #2 改为 #1 16 VB中有 3个键盘事件: KeyPress、 KeyDown、 KeyUp,若光标在 Text1文本框中,则每输入一个字母 ( )。 ( A)这 3个事件都会触发 ( B)只触发 KeyPress 事件 ( C)只触发 KeyDown、 KeyUp事件 ( D)不触发其中任何一个事件 17
8、设窗体的名称为 Form1,标题为 Win,则窗体的 MouseDown事件过程的过程名是 ( )。 ( A) Form1_MouseDown ( B) Win_MouseDown ( C) Form_MouseDown ( D) MouseDown_Form1 18 要求当鼠标在图片框 P1中移动时,立即在图片框中显示鼠标的位置坐标。下面能正确实现上述功能的事件过程是 ( )。 ( A) Private Sub P1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) Print X, Y End
9、Sub ( B) Private Sub P1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) Picture.Print X, Y End Sub ( C) Private Sub P1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) P1.Print X, Y End Sub ( D) Private Sub Form_MouseMove(Button As Integer, Shift As I
10、nteger, X As Single, Y As Single) P1.Print X, Y End Sub 19 为了使窗体的大小可以改变,必须把它的 BorderStyle属性设置为 ( )。 ( A) 1 ( B) 2 ( C) 3 ( D) 4 20 为了对多个控件执行操作,必须选中这些控件。下列不能选中多个控件的操作是 ( )。 ( A)按住 Alt键,不要松开,然后单击每个要选中的控件 ( B)按住 Shift键,不要松开,然后单击每个要选中的控件 ( C)按住 Ctrl键,不要松开,然后单击每个要选中的控件 ( D)拖动鼠标画出一个虚线矩形,使所选中的控件位于这个矩形内 21
11、在窗体上画一个文本框,其名称为 Text1,为了在程序运行后隐藏该文本框,应使用的语句为 ( )。 ( A) Text1.Clear ( B) Text1.Visible False ( C) Text1.Hide ( D) Text1.Enabled False 22 以下能够触发文本框 Change事件的操作是 ( )。 ( A)文本框失去焦点 ( B)文本框获得焦点 ( C)设置文本框的焦点 ( D)改变文本框的内容 23 假定在图片框 Picture1中装入了一个图片,在程序运行中,为了清除该图片 (注意,清除图片,而不是删除图片框 ),应采用的正确方法是 ( )。 ( A)单击图片框
12、,然后按 Del键 ( B)执行语句 Picture1.Picture LoadPicture(“) ( C)执行语句 Picture1.Picture “ ( D)执行语句: Picture1.Cls 24 要想使列表框只允许单选列表项,应设置的属性为 ( )。 ( A) Style ( B) Selected ( C) MultiSelect ( D) Enabled 25 在窗体上画一个名称为 Text1的文本框和一个名称为 Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim i As Integer, n As Inte
13、ger For i 0 To 50 i i 3 n n 1 If i10 Then Exit For Next Text1.Text Str(n) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是 ( )。 ( A) 2 ( B) 3 ( C) 4 ( D) 5 26 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim I, Num Randomize Do For I 1 To 1000 Num Int(Rnd * 100) Print Num; Select Case Num Case 12 Exit For Ca
14、se 58 Exit Do Case 65, 68, 92 End End Select Next I Loop End Sub 上述事件过程执行后,下列描述中正确的 是 ( )。 ( A) Do循环执行的次数为 1000次 ( B)在 For循环中产生的随机数小于或等于 100 ( C)当所产生的随机数为 12时结束所有循环 ( D)当所产生的随机数为 65、 68或 92时窗体关闭、程序结束 27 在窗体上画一个名为 Command1的命令按钮,然后编写如下代码: Option Base 1 Private Sub Command1_Click() Dim a a Array(1, 2,
15、3, 4) j 1 For i 4 To 1 Step 1 s s a(i)* j j j * 10 Next i Print s End Sub 运行上面的程序,其输出结果是 ( )。 ( A) 1234 ( B) 12 ( C) 34 ( D) 4321 28 设有如下通用过程: Public Function Fun(xStr As String)As String Dim tStr As String, strL As Integer tStr “ strL Len(xStr) i 1 Do While i0) Print n Mod 10; n n10 Wend Print End
16、Sub 此程序功能是:输入 2个正整数,反序输出这 2个数的每一位数字,再反序输出这 2个数之和的每一位数字。例如:若输入 123 和 234,则应该输出: 3 2 1 4 3 2 7 5 3 但调试时发现只输出了前 2行 (即 2个数的反序 ),而未输出第 3行 (即 2个数之和的反序 ),程序需要修改。下面的修改方案中正确的是 ( )。 ( A)把过程 pro 的形式参数 n As Integer 改为 ByVal n As Integer ( B)把 Call pro(a b)改为 pro a b ( C)把 n n10 改为 n n / 10 ( D)在 pro b语句之后增加语句 c
17、% a b ,再把 Call pro(a b)改为 pro c 33 在窗体上画一个名称为 Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() c 1234 c1 Trim(Str(c) For i 1 To 4 Print Next End Sub 程序运行后,单击命令按钮,要求在窗体上显示如下内容: 1 12 123 1234 则在横线处应填入的内容为 ( )。 ( A) Right(c1, i) ( B) Left(c1, i) ( C) Mid(c1, i, 1) ( D) Mid(c1, i, i) 34 假定有以下程序段:
18、For i 1 To 3 For j 5 To 1 Step 1 Print i*j Next j Next i 则语句 Print i * j 的执行次数是 ( )。 ( A) 15 ( B) 16 ( C) 17 ( D) 18 35 在窗体上画两个文本框 (名称分别为 Text1和 Text2)和一个命令按钮 (名称为Command1),然后编写如下事件过程: Private Sub Command1_Click() x 0 Do While x0条件成立,即 x为正数,就返回 x,即 x的负数,否则返回 x(它本身 ),两种情况都是返回负数。根据这一点,选项 B符合要求。故 B选项正确
19、。 9 【正确答案】 C 【试题解析】 变量 s定义时没有指明数据类型,默认为 Variant变体型。变量 a是用整型的类型符号 %声明,并同时赋值 100,所以变量 a的数据类型为整型。故C选项正确。 10 【正确答案】 D 【试题解析】 Msgbox 的功能:显示消息提示框,在对话框中显示提示消息,等待 用户单击按钮,单击不同的按钮返回不同的整数。 MsgBox函数格式:变量 MsgBox(,样式 ,标题 ),注意 MsgBox函数带括号,有返回值; MsgBox语句格式: MsgBox(,样式 ,标题 ),有无括号都可以,无返回值。 选项 D中用 Call 语句调用 MsgBox函数,要
20、符合 Call语句的语法规则: Call 函数名 (实参表 ),缺少括号,应该为 Call MsgBox(“VB“),语法才正确。故 D选项不能输出 “VB“,会出错。 11 【正确答案】 B 【试题解析】 标准模块中可以包含一个 Sub Main 过程,可以通过 “工程属性 “对话框中将 Sub Main过程设置启动对象。故 B选项错误。 12 【正确答案】 D 【试题解析】 调用函数过程时的实参与函数过程的形参必须是类型、顺序、个数相同。 本题中函数过程的形参有 2个,调用时实参也要是 2个,故排除选项 B 和 C。 选项 A虽然语法没错误,但不符合题意。 选项 D是正确的。调用函数过程时
21、可以嵌套调用。 13 【正确答案】 C 【试题解析】 定义一个自定义类型的数组,数组元素表示为:数组名 (下标 ).成员名,故选 C。 14 【正确答案】 B 【试题解析】 本题中 x定义为整型变量,通过输入对话框输入 395,按 “确定 “按钮后, InputBox 函数把返回值 395赋给变量 x。表达式 395 Mod 10 ,结果是5,395100结果为 3, (395 Mod 100)10 的结果为 9。故 B 选项正确。 15 【正确答案】 A 【试题解析】 要把文本框中的内容写入文本文件中,首先要用 Open 语句的 For Output 模式打开文本文件,并为文件制定一个文件号
22、,然后,用 Print语句将文本写入文本文件,最后关 闭文件。 本题中 Click事件过程中第 1、 3条语句正确。 第 2条语句 Print语句的格式是: Print #文件号,要写入的内容 ,原语句错误。 根据格式按选项 A修改正确,故 A选项正确。 16 【正确答案】 A 【试题解析】 当用户按下某键时触发 KeyDown 和 KeyPress 事件,放开某键时触发 KeyUp事件。故每输入一个字符,这 3个事件都会触发。故 A选项正确。 17 【正确答案】 C 【试题解析】 事件过程名格式是:控件名 _事件过程名。 Form1 是窗体控件的名称, Win是窗体的标题, 所以窗体的 Mo
23、useDown 事件过程名是:Form1_MouseDown,故选 A。 18 【正确答案】 C 【试题解析】 当鼠标在图片框 P1 中移动时,就会触发 P1 的鼠标移动事件,即P1_MouseMove事件,故排除 B 选项;鼠标在图片框 P1 中移动时,立即在图片框中显示鼠标的位置坐标,说明是在图片框上输出数据,所以用 P1 的 Print语句实现。故 C选项正确。 19 【正确答案】 B 【试题解析】 窗体的 BorderStyle属性是用来设置窗体的边框样式的。属性值 1为 Fixed Single,3为 Fixed Dialog,4为 Fixed ToolWindow,设置为这 3个属
24、性值都不能改变窗口大小。 2是 Sizable,表示窗体大小可以改变。故选 B。 20 【正确答案】 A 【试题解析】 按住 Alt键只能选中单个控件,不能同时选中多个控件。故选 A。 21 【正确答案】 B 【试题解析】 文本框没有 Clear和 Hide方法,故 A、 C选项错误; Enabled 属性设置文本框可用不可用,属性值为 True时可在文本框中输入数据,为 False时文本框为灰色,内容不能修改,故 D选项错误; Visible属性用来设置文本框显示或隐藏,当属性值为 True时文本框显示,为 False时文本框隐藏,故 B 选项正确。 22 【正确答案】 D 【试题解析】 改
25、变文本框中的内容时就会触发它的 Change事件,故选 D。 23 【正确答案】 B 【试题解析】 A选项按 Del键不能删除图片; C选项中 Pictue属性值不能为空字符串,语法错误; D选项中 Cls方法只能清除图片上显示的内容,不能清除图片。要将图片框中的图片清除,用 B 选项方法可以。故 B选项正确。 24 【正确答案】 C 【试题解析】 列表框的 Style属性是设置列表框的外形; Selected 属性在程序运行中设置或返回列表项的选中状态; Enabled属性设置列表框可用不可用; MultSelect用来设置选择列表项的方式。 0为默认,只允许单选列表项; 1为复选,可同时选
26、中一个或多个列表项,但要一个一个选中; 2也为复选,可一个一个选中列表项,也可连续选中。故选 C。 25 【正确答案】 B 【试题解析】 程序中 For循环的结束有两种情况,一种是循环完指定的次数,一种是达到一定的条件后直接退出循环。由于在循环体中循环变量 i的值被修 改: i i 3,因此,每次循环开始时 i的取值为 0,4,8, i为 8时执行 i i 3 11, n n 1 3,这时 i的值大于 10,退出 For循环,因此 For循环执行了 3次,即 n的值为 3。所以在文本框中会显示 3。 26 【正确答案】 D 【试题解析】 程序 Do循环中嵌套了 For循环, Do循环没有设置结
27、束条件,而是在 For循环体中的 Select语句中设置了退出 Do循环和 For循环及结束程序的分支,因此 Do循环的次数无法确定。随机函数 Rnd 产生 0,1)之间的一个数,包括 0但不包含 1,因此 Rnd*100的范围 是大于等于 0小于 100。随机数为 65、 68或 92时结束程序关闭窗体,为 58时退出 Do 循环,为 12时退出 For循环进入下一次Do循环。 27 【正确答案】 A 28 【正确答案】 C 【试题解析】 通用过程 Fun 的主要功能在于 tStr tStr & Mid(xStr, i, 1)& Mid(xStr, strL i 1, 1) 这一句。其中 M
28、id(xStr, i, 1)的意思是从字符串的左边开始依次取一个字符,Mid(xStr, strL i 1, 1)的意思是从串的右边开始依次取一个字符。整个 这条一语句的用意就是从一个字符串两端依次各取一对字符连成一个字符串。因此当Fun 过程的参数为 “abcdef“时,返回值为 “afbecd“, Ucase(“afbecd“)结果为“AFBECD“,这就是输出结果。 29 【正确答案】 B 【试题解析】 原程序的错误在于没有把 n 的值乘进去。而 B 选项中把 For k n 1 To 2 Step 1 改为 For k 1 To n 1,依然没有把 n乘进去。 30 【正确答案】 D
29、【试题解析】 程序中过程 Fun 的 For循环的功能是从参数字符串中依次取 出一个字符经 Lcase函数转为小写字母后存入另一个字符串变量的首部,即将输入的字符串转为小写并倒序排列。函数 Len 用于返回字符串的长度,过程中字符串的长度做为 For循环的终值。 Mid是字符串中部截取函数,用来从指定位置开始截取指定个数的字符。过程中使用 Mid(S, i, 1),通过循环依次取出字符串的字符,然后使本次取出的字符连接到之前取出的字符前面,实现了字符串倒序排列。程序中输入字符串为 “abcdefg“,倒序并转为小写后为 “gfedcba“。 31 【正确答案】 B 【试题解析】 程序中计算 a
30、n的算法有误,由于已经将 a的值赋给了 p,在后边的 For循环中再乘 n次 a显然就多乘了一次 a,因此,要改正此程序或者将 p a改为 p 1,或者将 for k 1 to n 改成 for k 1 to n 1或 for k 2 to n。而 B)选项将 p p*a改为 p pn 将会导致 p pn 执行 n 次,得不到正确结果。 32 【正确答案】 A 【试题解析】 在过程定义中过程的形式参数定义时如果没有 ByVal指明参数的传递方式,那么默认为地址传递,这样过程中对形参的改变将影响到实参的值。本程序中过程定义语句 Private Sub pro(n As Integer)说明形参
31、n为按地址传递的,而在过程内语句 n n10改变了形参的值,因此, a、 b的值就不再是最初输入的值了,表达式 a b 就不是期望的两个输入数的和。因此得不到正确结果。 只要把 Private Sub pro(n As Integer)改为 Private Sub pro(ByVal n As Integer),程序即可得到正确结果,因此 A选项正确。 33 【正确答案】 B 【试题解析】 程序中使用 Str(c)将数值 1234转换成为一个字符串 “1234“,又使用 Trim函数去除了字符串首尾可能存在的空格,保证了字符串中只有 1、 2、 3、4这 4个字符。在 For 循环中从左边递次
32、输出这些字符就需要使用 Left()函数,Left是左部截取函数,可以截取字符串左边指定个数的字符串,以 Left(c1, i)的形式即可每次循环取出期望的字符串。因此答案为 B。 34 【正确答案】 A 35 【正确答案】 B 36 【正确答案】 B 【试题解析】 线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,所以一般要多于顺序存储结构。 37 【正确答案】 D 【试题解析】 栈是一种先进后出的线性表,队列是一种先进先出的线性表,栈与队列都是线性结构。 38 【正确答案】 D 【试题解析】 软件测试是为了发现错误而执行程序的过程,测试要以查找错误为中心,而不是为了演
33、示软件的正确功能。不是为了评估软件或改正错误。 39 【正确答案】 D 【试题解析】 需求分析阶段的工作可以概括为:需求获取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择 D。 40 【正确答案】 A 【试题解析】 通常,将软件产 品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。 二、基本操作题 41 【正确答案】 (1)【操作步骤】步骤 1:新建一个窗体,在窗体中添加一个命令按钮控件并设置命令按钮和窗体的相应属性。如表 3.25所示。步骤 2:调试并运行程序,关闭程序后按题目要
34、求存盘。 (2)【操作步骤】步骤 1:新建一个窗体,在窗体中添加标签控件并设置标签的相应属性。程序中用到的控件及属性见表 3.26。 步骤 2:编写程序代码。参考答 案 Private Sub Form_Click() Label1.Top = 0 Label1.Left = Form1.Width - Label1.WidthEnd Sub步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 三、简单应用题 42 【正确答案】 (1)【操作步骤】 步骤 1:打开本题工程文件,设置 Cmd2的 Enabled属性为 False。 步骤 2:分析并编写程序代码。 程序提供代码 Private S
35、ub Cmd1_Click() ? = Str(Time() Text1(1) Text = “: Text1(2) Text = “ Cmd1.Enabled = False Cmd2.Enabled = True End Sub Private Sub Cmd2_Click() Text1(1) Text = Str(Time() t start = Hour(Text1(0) Text) * 3600 + Minute(Text1(0) Text) * 60 + Second(Text1(0) Text) t end = Hour(Text1(1) Text) * 3600 + Minu
36、te(Text1(1) Text) * 60 + Second(Text1(1) Text) t = t end - t start m = t 60 If m 0 Then s = ? + (m - 3) * 0.15 End If Text1(2) Text = Str(s) + “元 “ ? = True ? = False End Sub 程序结束 参考答案 第 1个?处填入: Text1(0) 第 2个?处填入: s 第 3个?处填入: Cmd1.Enabled 第 4个?处填入: Cmd2.Enabled 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 (2)【操作步骤】 步
37、骤 1:打开本题工程文件。 步骤 2:分析并编写程序代码。 程序提供代码 Dim a(5, 10) As Integer Dim s(5) Private Sub Command1_Click() Open App.Path & “in4.txt“ For ? As #1 For i = 1 To 5 For j = 1 To 10 Input #1, a(i, j) Next j Next i Close #1 End Sub Private Sub Command2_Click() For i = 1 To 5 s(i) = 0 For j = 1 To 10 s(i) = ? Next
38、j ? = CInt(s(i) / 10) Text1(i - 1) = s(i) Next i End Sub Private Sub Command3_Click() For k = 1 To 5 Shape1(k - 1) Height = s(k) * 20 m = Line2.Y1 Shape1(k - 1) Top = ? - Shape1(k - 1) Height Shape1(k - 1) ? = True Next k End Sub 程序结束 参考答案 第 1个?处填入: Input 第 2个?处填入: s(i) + a(i, j) 第 3个?处填入: s(i) 第 4个
39、?处填入: Line2.Y2 第 5个?处填入: Visible 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。 四、综合应用题 43 【正确答案】 【操作步骤】 步骤 1:打开本题工程文件。 步骤 2:分析并编写程序代码。 程序提供代码 Option Base 1 Dim x As String, max n As Integer Private Sub Command1_Click() Open App.Path & “in5.dat“ For Input As #1 s = Input(LOF(1), #1) Close #1 Text1.Text = s End Sub Priv
40、ate Sub Command2_Click() Dim a(26) As Integer sl = ? st = Text1.SelText Text2 = “ If sl = 0 Then MsgBox “请先选择文本 “ Else For i = 1 To sl c = Mid(st, i, 1) If c “ “ Then n = Asc(UCase(c) - Asc(“A“) + 1 a(n) = ? End If Next i max n = a(1): n = 1 For j = ? To 26 If ? Then max n = a(j) End If Next j For i = 1 To 26 If ? Then Text2.Text = Text2.Text + “ “ + Chr(Asc(“A“) + i - 1) End If Next i End If End Sub 程序结束 参考答案 第 1个?处填入: Text1.SelLength 第 2个?处填入: a(n) + 1 第 3个?处填入: 1 第 4个?处填入: max_n a(j) 第 5个?处填入: a(i) = max_n 步骤 3:调试并运行程序,关闭程序后按题目要求存盘。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1