1、VB 笔试模拟试卷 161及答案与解析 1 在下列选项中,哪个不是一个算法一般应该具有的基本特征 _。 ( A)确定性 ( B)可行性 ( C)无穷性 ( D)拥有足够的情报 2 希尔排序法属于哪一种类型的排序法 _。 ( A)交换类排序法 ( B)插入类排序法 ( C)选择类排序法 ( D)建堆排序法 3 下列关于队列的叙述中正确的是 _。 ( A)在队列中只能插入数据 ( B)在队列中只能删除数据 ( C)队列是先进先出的线性表 ( D)队列是先进后出的线性表 4 对 长度为 N的线性表进行顺序查找,在最坏情况下所需要的比较次数为_。 ( A) N+1 ( B) N ( C) (N+1)/
2、2 ( D) N/2 5 信息隐蔽的概念与下述哪一种概念直接相关 _。 ( A)软件结构定义 ( B)模块独立性 ( C)模块类型划分 ( D)模拟耦合度 6 面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是_。 ( A)模拟现实世界中不同事物之间的联系 ( B)强调模拟现实世界中的算法而不强调概念 ( C)使用现实世界的概念抽象地思考问题从而 自然地解决问题 ( D)鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考 7 在结构化方法中,软件功能分解属于软件开发中的 _阶段。 ( A)详细设计 ( B)需求分析 ( C)总体设计 ( D)编程调试 8 软件调试的目的是
3、 _。 ( A)发现错误 ( B)改正错误 ( C)改善软件的性能 ( D)挖掘软件的潜能 9 按条件 f对关系 R进行选择,其关系代数表达式为 _。 ( A) ( B) ( C) ( D) 10 数据库的物理设计是为一个给定的逻辑结 构选取一个适合应用环境的 _的过程,包括确定数据库在物理设备上的存储结构和存取方法。 ( A)逻辑结构 ( B)物理结构 ( C)概念结构 ( D)层次结构 11 如果在窗体上有命令按钮 OK,在代码编辑窗口行与之对应的 CmdOk Click()事件,则命令按钮控件的名称属性和 Caption属性分别为 _。 ( A) Ok, Crud ( B) Cmd, O
4、k ( C) CmdOk, Ok ( D) Ok, CmdOk 12 下列说法错误的是 _。 ( A)窗体文件的扩展名为 .frm ( B)一个窗体对应一个窗体文件 ( C) Visual Basic中的一个工程只包含一个窗体 ( D) Visual Basic中的一个工程最多可包含 255个窗体 13 表示 X和 Y之中有一个是奇数的表达式是 _。 ( A) X Mod 2=1 And Y Mod 2=1 ( B) X Mod 2=1 Or Y Mod 2=1 ( C) (X Mod 2=1 And Y Mod 2=0) And(X Mod 2=0 And Y Mod 2=1) ( D) (
5、X Mod 2=1 And Y Mod 2=0)Or(X Mod 2=0 And Y Mod 2=1) 14 下列 _是日期型数据。 ( A) “01/03/2002” ( B) Dat (“01/03/2002”) ( C) #01/02/2002# ( D) 01/03/2002 15 设 a为整型变量,不能正确表达数学关系, “10 a 15”的表达式是 _。 ( A) 10 a 15 ( B) a=11 Or a=12 Or a=13 Or a=14 ( C) a 10 And a 15 ( D) Not(a =10)And Not (a =15) 16 执行下面的程序,单击窗体后在窗
6、体上显示的结果是 _。 Private Sub form_ Click() Dim Str1 As String, Str2 As String Dim Str3 As String, I As Integer Str1 = “e“ for I = t To 2 Str2 = Ucase (Str1) Str1 = Str2 arr(n)程序的运行结果为 _。 ( A) 3 11 ( B) 11 3 ( C) 10 3 ( D) 3 13 22 下列程序运行后的输出结果是 _。 Private Sub f(k,s) s = 1 for j = 1 To k s=s*j Next jEnd Su
7、bPrivate Sub Command1_ Click () Sum = 0 for i = 1 To 3 Call f(i, s) Sum = Sum + s Next i Print Sum End Sub ( A) 0 ( B) 3 ( C) 6 ( D) 9 23 在窗体上添加一个命令按钮 (名为 Command1)和一个文本框 (名为 Text1),则执行如下事件过程后, 文本框中的输出为 _。 private Sub Command1_ click() for i = 1 To 4 for j = 1 To 3 x = 3 for K = 1 To 2 x=x+3 Next K
8、Next j Next i Text1.Text= Str(x)End Sub ( A) 3 ( B) 6 ( C) 9 ( D) 12 24 下面程序运行 后的输出结果是 _。 Private Sub Command1_ Click ( ) for j = 1 To 10 if j Mod 3 0 then a =a+j3 Next j Print aEnd Sub ( A) 20 ( B) 10 ( C) 3 ( D) 9 25 下面程序运行后,窗体中显示 _。 Private Sub Command1_ Click() a = “*“: b = “ for k = 1 To 3 x =
9、String (Len(a ) +k, b ) Print x ; Next k PrintEnd Sub ( A) * * * ( B) * * * ( C) 1* 2* 3* ( D) 26 设 “A =“北京 ”, B =“Shanghai”,则表达式 “LEFTS(A, 2)+STRINGS(3, “-”)+LEFTS(BS,8)”构成的字符串是 _。 ( A) “北京 -” ( B) “北京 -Shanghai” ( C) “Shanghai” ( D) “北京 Shanghai” 27 有如下的一个函数过程: Function fn(ByVal num As Long) Dim k
10、 As Long k= 1 num = Abs(num) do while num k = k * (num Mod 10) num= num10 Loop fn=kEnd Function 以下是一个调用该函数的事件过程,在运行该程序后,在输入对话框中输入数字 123,该过程的运行结果是 _。 Private Sub Command1_Click() Dim n As Long Dim r As Long n = CLng(n) r = fn(n) Print rEnd Sub ( A) 12 ( B) 6 ( C) 3 ( D) 1 28 在窗体上画一个文本框,然后编写如下事件过程: Pr
11、ivate Sub Text1_ KeyPress(KeyAscii As Integer) Dim char As String char = Chr(KeyAscii) KeyAscii = Asc(Ucase(char) Print String(6, KeyAscii)End Sub 程序运行后,如果在键盘上输入字母 a,则窗体上显示的内容为 _。 ( A) a ( B) A ( C) aaaaaa ( D) AAA 29 在窗体 (Name属性为 form1)上画两个文本框 (Name属性分别为 Text1和 Text2)和一个命令按钮 (Name属性为 Command1),然后编写
12、如下两个事件过程,该过程的运行结果为 _。 Private Sub Command1_Click() a = Text1, Taxt + Text2, Text Print aEnd SubPrivate Sub form_ Load() Text1.Text = “123“ Text2.Text = “321“End Sub ( A) 444 ( B) 321123 ( C) 123321 ( D) 132231 30 在 Visual Basic中,要将一个窗体装载到内存进行预处理,但不显示,应该使用哪种语句: _。 ( A) Show ( B) Hide ( C) Load ( D) U
13、nload 31 假定有如下的 Sub过程: Sub Sub1 (x As Single, y As Single) t=x x = t/y y = t Mod yEnd Sub 在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_ Click() Dim a As Single Dim b As Single a = 5 b = 4 Sub1 a, b Print a; b End Sub 程序运行后,单击命令按钮,输出结果为 _。 ( A) 5 4 ( B) 1 1 ( C) 1.2 5.4 ( D) 1.25 1 32 程序如下: Private S
14、ub form_ Activate() Dim a As Integer for i=4 To 5 a=fun(i) Print a, Next iEnd SubPrivate Function fun(n)As Integer if n 0 then fun =n* fun(n-1) Else fun=1 End ifEnd Function 程序最后打印结果是_。 ( A) 4 5 ( B) 12 120 ( C) 24 120 ( D) 24 60 33 在窗体上画一个命令按钮,然后编写如下事件过程: Option Base 1Private Sub Command1_Click() D
15、im a As Variant a= Array (1,2,3,4) j=1 for i=a To 1 Step-1 s=s+ a(i)*j j=j*10 Next i Print sEnd Sub 运行上面的程序,单击命令按钮,其输出结果是 _ 。 ( A) 4321 ( B) 12 ( C) 34 ( D) 1234 34 下面对语句: “Open“ Text. Dat “for Output As # FreeFile“ 的功能说明中错误的是_。 ( A)以顺序输出模式打开文件 Text. Dat ( B)如果文件 Text.dat不存在,则建立一个新文件 ( C)如果文件 Text.d
16、at已存在,则打开该文件,新写入的数据将增添到该文件中 ( D)如果文件 Text.dat已存在,则打开该文件,新写入的数据将覆盖原有的数据 35 在程序设计阶段,当双击窗体上的某个控件时,所打开的窗口是 _。 ( A)工程资源管理器窗口 ( B)工具箱窗口 ( C)代码编辑器窗口 ( D)属性窗口 36 常用的黑盒测试有等价分类法、【 】、因果图法和错误推测法 4种。 37 测试的目的是暴露错误,评价程序的可靠性;而【 】的目 的是发现错误的位置并改正错误。 38 软件维护活动包括以下几类:改正性维护、适应性维护、【 】维护和预防性维护。 39 一个项目具有一个项目主管,一个项目主管可管理多
17、个项目,则实体 “项目主管 ”与实体 “项目 ”的联系属于【 】的联系。 40 数据库设计分为以下 6个设计阶段:需求解析阶段、【 】、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段。 41 以下程序计算自然数 e的值,要求精确到 1015,阅读下列程序。已知 e的计算公式为: e=1+1/1!+1/2! + +1/n! 。请在【 】和【 】处填上正确内容。 Private Sub Commandl_ Click() 【 】 n =0: term = 1: t = 1 do n= n +1 t=t/n 【 】 Loop while t 1.0E-15 Text1. Text = term
18、 End Sub 42 下列程序实现的功能是:当在窗体上单击时,从键盘上读入 5个学生的学号、姓名 、英语成绩并存入到文件 d: stu1.dat中,然后从文件中读出第 3个人的学号、姓名和英语成绩并显示在窗体中。 Type student No As Long Name As String * 20 English As Integer End Type Private Sub form_ Click () Dim k As student, i As Integer 【 】 Open “d:stu1. dat“ for Random As #10 Len = Reclen for i =
19、1 To 5 k. No= InputBox(“请输入学号 ”) k. Name = InputBox (“请输入姓名 ”) k. English= InputBox (“请输入英语成绩 ”) 【 】 Next i 【 】 Print k. No; k. Name; k. English Close #10 End Sub 43 在窗体上有三个控件:名称为 Label1的标签控件、名称为 Text1的文本框控件和名称为 Hscroll1的水下滚动条控件。程序的功能是通过滚动条移动 Label1,并把滚动条的值显示在文本框中。滚 动条的值作为 Label1的 Left属性。程序运行时的界面如右图
20、所示。 Private Sub form_ Load()HScroll1.Max = form1. WidthHScroll1. Min= 0HScroll1.LargeChange = 50HScroll1.smallChange = 10Text1.Text = HScroll1.ValueHScroll1, Value =0Label1.Left = HScroll1.ValueEnd SubPrivate Sub HScroll1【 】 Text1.Text = NScroll1.【 】 Label1.Left = HScroll1.ValueEnd Sub 44 下面的程序是找出两个
21、正整数 a和 b,使得 a b、 a+ b=99、 a和 b的最大公约数是 3的倍数,并统计满足条件数对的个数。 Option Explicit Dim a As Integer, b As Integer, n As Integer, c As Integer Private Function Gcd (ByVal a As Integer, Byval b As Integer) As Integer do c=a Mod b: a=b=c Loop【 】 Gcd=a End Function Private Sub form_ Click() n=0 for a= 1 To 49 b=【
22、 】 c= Gcd (a, b) if c Mod 3= 0 then 【 】 Print a, b, c End if Next a Print n End Sub VB 笔试模拟试卷 161答案与解析 1 【正确答案】 C 【试题解析】 作为一个算法,一般应具有以下几个 基本特征。 可行性 确定性 有穷性 拥有足够的情报 2 【正确答案】 B 【试题解析】 希尔排序法的基本思想是:将整个无序序列分割成若干小的子序列分别进行插入排序。所以希尔排序法属于插入类排序,但它对简单插入排序做了很大的改进。 3 【正确答案】 C 【试题解析】 队列是指允许在一端进行插入、而在另一端进行删除的线性表。它
23、又称为 “先进先出 ”或 “后进后出 ”的线性表,体现了 “先来先服务 ”的原则。 4 【正确答案】 B 【试题解析】 在进行顺序查找过程中,如果被查的元素是线性表中的最 后一个,或者被查元素根本不在线性表中,则为了查找这个元素需要与线性表中所有元素进行比较,这是顺序查找最坏的情况。 5 【正确答案】 B 【试题解析】 信息隐蔽是指在一个模块内包含的信息 (过程或数据 ),对于不需要这些信息的其他模块来说是不能访问的。模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。衡量软件的模块独立性的度量标准是耦合性和内聚性。一个模块的内聚性越强,则该模块的模块独立性
24、越强。而内聚性是信息隐蔽和局部化概念的自然扩长。 6 【正确答案】 C 【试题解析】 面向对象的设计方法与传统的面向过程的方法有本质不同。它的基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。 7 【正确答案】 C 【试题解析】 总体设计过程通常由两个主要阶段组成:系统设计,确定系统的具体实现方案;结构设计,确定软件结构。为确定软件结构,首先需要从实现角度把复杂的功能进一步分解。分析员结合算法描述仔细分析数据流图中的每个处理,如果一个处理的功能过分复杂 ,必须把它的功能适当地分解成
25、一系列比较简单的功能。 8 【正确答案】 B 【试题解析】 由程序调试的概念可知:程序调试活动由两部分组成,其一是根据错误的迹象确定程序中错误的确切性质、原因和位置。其二,对程序进行修改,排除这个错误。所以程序调试的目的就是诊断和改正程序中的错误。 9 【正确答案】 C 【试题解析】 选择运算是一个一元运算,关系 R通过选择运算 (并由该运算给出所选择的逻辑条件 )后仍为一个关系。这个关系是由 R中那些满足逻辑条件的元组所组成。如果关系的逻辑条件为 f,则 R满足 f 的选择 运算可以写成: 6f(R)。 10 【正确答案】 B 【试题解析】 根据数据库物理设计的概念可知:为一个给定的逻辑数据
26、模型选取一个最合适应用要求的物理结构的过程,就是数据库的物理设计。数据库的物理结构就是指数据库在物理设备上的存储结构与存取方法。 11 【正确答案】 C 【试题解析】 单击事件为名称属性后面加 “Click()”,窗体上见到的是 Caption属性。 12 【正确答案】 C 【试题解析】 Visual Basic 中的一个工程可以包括一个或多个窗体,最多不超过255个。 13 【正确答案】 D 【试题解析】 根据题意,条件可以表述为 “X是奇数且 Y不是奇数,或 X不是奇数且 Y是奇数 ”。答案 A表述的是 “X和 Y都是奇数 ”,答案 B 表述的是 “X和 Y至少响一个是奇数,可以同时为奇数
27、 ”。答案 C表述的是 “X是奇数且 Y不是奇数,并且 X不是奇数且 Y是奇数 ”,显然该条件永远为 False。答案 D表达的条件是 “X是奇数且 Y不是奇数,或者 X不是奇数且 Y是奇数 ”,符合题意。 14 【正确答案】 C 【试题解析】 日期型常数是用 “#”号作为定界符,其格式可以为“#MM/DD/YYYY#”,故答案 C是日期型数据。答案 A是用双引号作为定界符,所以是字符型数据。答案 B 中的 Date是函数,它没有参数,用来返回当前日期。答案 D是一个数值型表达式。 15 【正确答案】 A 【试题解析】 表达式 “10 a 15”其实表示的是两个条件 “a 10”和 “a 15
28、” 同时满足,所以答案 C是正确的;满足条件 “10 a 15”的 a的取值只可能有 4种,分别是 11、 12、 13、 14,所以 B 是正确的: “a 10”的等价形式为 “Not(a =10)”,“a 15”的等价形式是 “Not(a =15)”,所以答案 D也是正确的。答案 A在 VB 中是不正确的。 16 【正确答案】 A 【试题解析】 本题的难点是熟悉下列字符串处理内部函数: Asc(x)为求单个字符ASCII代码函数, Chr (x)返回以 x为 ASCII代码值的字符, Ucase (x)将 x字符串中所有小写字符改为大写字符。 17 【正确答案】 B 【试题解析】 本题的难
29、点是按地址传递 (传址 )参数的概念。变量 x和 y是按值传递参数,变量 z默认用 “ByRef”替代,则表明参数是按地址传递 (传址 )参数,所以z将变量 c的值 12传回,并转变成字符 串赋值给文本框 Text1。 18 【正确答案】 B 【试题解析】 本题的难点是数组在循环中的计算。计算过程为“4+310+2100+11000=1234”如果改成 “for i=1 T0 4”后,其结果为 A。 19 【正确答案】 A 【试题解析】 本题的难点是嵌套循环的计算。根据 “array1(i, j)=i+ j”可知,“array1(i, j)”的值为两个下标值之和,所以 “array1(2,3)
30、+array1(3,4)”的值为“2+3+3+4=12”。 20 【正确答案】 B 【试题解析】 本题的难点是虚实结合的参数传送方式。在子过程中变量 a和 b按值传送,变量 c按地址传送。在子过程中变量 “c=a+ b=5+7=12”,通过虚实结合将c的值赋给主过程 z,经字符转换为 “z”在文本框中输出。 21 【正确答案】 C 【试题解析】 本题难点是循环体内的变量赋值。 “arr1(3)=3”比较容易理解,只是arr1(3)在 4次循环中最后的结果替代了前面的值,即 “arr1(3)=23+4=10”。 22 【正确答案】 D 【试题解析】 本题重点是在于过程的调用过程中, 虚实参数的传
31、送问题,变量 s按址传送。子过程 m求 n! sum的计算过程为 “1!+2!+3!=1+2+6=9”。 23 【正确答案】 C 【试题解析】 本题的难点是循环变量初值问题。 x=3将前面的计算值替代了,实际计算过程为 “x=3+3+3=9”。 24 【正确答案】 D 【试题解析】 本题难点是理解运算符 “Mod”和 “”。根据题意,该计算过程为:“(1+2+4+5+7+8+10)+3 =0+0+1+1+2+2+3=9”。 25 【正确答案】 D 【试题解析】 本题的难点是了解生 成字符函数 String ()和计算字符函数Len(), “a =“*“”的作用只是被用来计算字符串长度,没有被打
32、印出来。打印分隔符为 “; ”时,字符串之间没有空格。空打印 Print操作是换行。 26 【正确答案】 B 【试题解析】 由于函数 LEFTS 是从字符串的左边取出 N个字符, Unicode编码将一个汉字和一个西文字符都视为一个字符,因此函数值仍是: “北京和Shanghai”,函数 STRINGS 返回 N个指定字符构成字符串,因此函数值是: “-”。将它们连接在一起构成字符串 “北京 -Shanghai”。 27 【正确答案】 B 【试题解析】 本题的难点在于理解求余和整除运算。当 “num=123”时,程序计算过程为 “321=6”。 28 【正确答案】 D 【试题解析】 本题的难点
33、是熟悉下列字符串处理内部函数: Asc(x)为求单个字符ASCII代码函数, Chr (x)返回以 x为 ASCII代码值的字符, “String (n,“字符 ”)”得到由 n 个给定字符组成的一个字符串。 29 【正确答案】 C 【试题解析】 本题的重点是数字和字符串的区别。在 “Text1.Text”和“Text2.Text”的值为字符串,对于字符串来讲 “+”运算符和 “&”运算符是一样的。 30 【正确答案】 C 【试题解析】 要将一个窗体装载到内存应使用 Load。 31 【正确答案】 D 【试题解析】 本题重点是在子过程的调用过程中,虚实参数的传送问题,变量 a和 b 按址传送,
34、返回子过程的 x和 y值。 32 【正确答案】 C 【试题解析】 函数的调用,通过函数的返回值。子过程是个递归过程,其功能是计算阶乘,即 4!=24, 5!=120。 33 【正确答案】 D 【试题解析】 本题的难点是数组在循环中的调用。变量 s的计算过程为“s=4+310+2100+11000=1234”。 34 【正确答案】 C 【试题解析】 Output定为顺序输出模式。如果文件 Text. Dat不存在,则建立一个新文件,可以将数据写入到文件中去。如果文件 Text.Dat已存在,则该语句打开已存在的文件,新写入的数据将覆盖原来的数据,而不是增添。 35 【正确答案】 C 【试题解析】
35、 用鼠标双击窗体上的某个控件 (或单击按钮后,再单击 “工程 ”窗口的 “查看代码 ”按钮 ), 系统打开代码编辑器窗口。 36 【正确答案】 边值解析法 【试题解析】 黑盒测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。常用的黑盒测试有等价分类法、边值解析法、因果图法和错误推测法 4种。 37 【正确答案】 调试 【试题解析】 软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。 38 【正
36、确答案】 完善性 【试题解析】 软件维护活动包括以下几类:改正性维护、适应性维护、完善性维护和预防性维护。改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程;适应性维护是指为了使软件适应变化,而去修改软件的过程;完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;预防性维护是为了提高软件的可维护性、可靠性等,为以后进一步改进 软件打下良好基础。 39 【正确答案】 一对多或 1:N 【试题解析】 两个实体集间的联系实际上是实体集
37、间的函数关系,这种函数关系可以有 3种,即一对一 (1: 1)的联系、一对多 (1: N)或多对一 (N: 1)的联系和多对多 (N: N)的联系。 40 【正确答案】 概念设计阶段 【试题解析】 数据库设计分为以下 6个设计阶段:需求解析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、实施阶段及数据库运行和维护阶段。 41 【正确答案】 Dim t As double,term=term+ t 【试题解析】 既然要求精确到 10-15,所以要使用 Double型变量,否则小数点后8位的数据就没法保存和显示出来。对该题,考生还必须具备一定的计算机算法知识。 42 【正确答案】 Reclen=L
38、en(k),Put #10 i, k,Get #10, 3, k 【试题解析】 本题中定义了一个记录类型 Student,并通过一个循环读入 5条记录型数据存放到指定的文件中去,因此文件的存取方法应是随机存取方式。从打开文件的 Open 语句可以看到有一个变量 RecLen 应是写入文件中的记录长度,在该语句的前面应给该变 量赋值,故 8处应填 “Reclen= Len(k)”。在循环中每读入一个记录型的变量值,应立即把该变量写到文件中去,应使用 Put语句,故在 9处应填 “Put #10, i, k”。要读出随机文件中的某条记录,可使用 Get语句,故在 10处应填 “Get #10, 3
39、, k”。 43 【正确答案】 Change(),Value 【试题解析】 本题所要完成的工作是:操作滚动条将改变 Label1在窗体上的位置。当滚动条的值发生变化时将触发滚动条的 Change事件,只要滚动条的值发生变化, Label1的水平 位置就要改变,因此只需在滚动条的 Change事件中把滚动条的 Value属性值赋值给 Label1 的 Left属性即可。 44 【正确答案】 until c=0或 while c 0,99-a,n=n+1 【试题解析】 由求最大公约数的算法可知,当余数 c为零时, a为 a和 b 的最大公约数。因条件给定: “a+ b=99”,所以 “b=99-a”。 n 为累计数。