1、二级 VISUAL+BASIC-29-1 及答案解析(总分:67.00,做题时间:90 分钟)一、选择题(总题数:25,分数:40.00)1.设窗体上有名称为 Option1 的单选按钮,且程序中有语句: If Option1.Value=True Then 下面语句中与该语句不等价的是_。(分数:2.00)A.If Option1.Value ThenB.If Option1=True ThenC.If Value=True ThenD.If Option1 Then2.在窗体上添加一个文本框,其名称为 text1,然后编写如下的 Load 事件过程,则该程序的运行结果是_。 Private
2、 Sub form_ load Text1. Text = “ “ t = 1 for k = 10 To 6 Step -2 t= t* k Next k Text1. Text = t End Sub(分数:2.00)A.在文本框中显示 120B.文本框中仍为空C.在文本框中显示 480D.出错3.确定一个窗体或控件的大小的属性是_。(分数:2.00)A.Width 或 HeightB.Width 和 HeightC.Top 或 LeftD.Top 和 Left4.以下关于菜单的叙述中,不正确的是_ 。(分数:2.00)A.在程序运行过程中能够增加或减少菜单项B.使菜单项的 Enabled
3、 属性为 False,则可删除该菜单项C.弹出式菜单在菜单编辑器中设计D.利用控件数组可以实现菜单项的增加或减少5.下列关于过程的叙述不正确的是 _(分数:2.00)A.过程的传值调用是将实参的具体值传递给形参B.过程的传址调用是将实参在内存的地址传递给形参C.过程的传值调用参数是单向传递的,过程的传址调用参数是双向传递的D.无论过程传值调用还是过程传址调用,参数传递都是双向的6.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub sub1(p,m,n) p=p + 1 : m = m + 1 : n =n + 1 Print p;m;n End
4、 Sub Private Sub Command1_Click() x=6 : y=4 : z=2 Call sub1(x,y+1,(z) Print x;y;z End Sub 程序运行后,单击命令按钮,则窗体上第二行显示的内容是(分数:1.00)A.7 6 3B.7 4 2C.6 4 2D.4 6 37.软件结构图能描述软件系统的总体结构,它应在软件开发的_阶段提出。(分数:1.00)A.需求分析B.概要设计C.详细设计D.代码编写8.设工程中有 Form1、Form2 两个窗体,要求单击 Form2 上的 Command1 命令按钮,Form2 就可以从屏幕上消失,下面的事件过程中不能实
5、现此功能的是 _ 。(分数:1.00)A.Private Sub Command1_Click()Form2. HideEnd SubB.Private Sub Command1_Click()Unload MeEnd SubC.Private Sub Command1_Click()Form2. UnloadEnd SubD.Private Sub Command1_Click()Me. HideEnd Sub9.在窗体上画一个命令按钮 Command1 和两个文本框,名称分别为 Text1 和 Text2。编写如下两个事件过程: Dim Str1 As String,str2 As Str
6、ing Private Sub form_load() Text1.Text=“ Text2.Text=“ Text1.Enabled=False Text2.Enabled=False End Sub Private Sub Form_KeyPress(KeyAscii As Integer) str1=str1 m;n End Sub Private Sub Command1_Click() x=6 : y=4 : z=2 Call sub1(x,y+1,(z) Print x;y;z End Sub 程序运行后,单击命令按钮,则窗体上第二行显示的内容是(分数:1.00)A.7 6 3B.
7、7 4 2 C.6 4 2D.4 6 3解析:解析 本题考察的是函数过程的调用和参数传送。当发生了 Command1 的单击事件时,调用函数过程 sub1,虽然 sub1 函数过程在定义时 3 个参数都被定义成传址方式传送,但在调用时只有第 1 个参数是变量,按引用传送,其他两个参数均按传值传送。参数传送后,进入 subl 函数过程执行,p、m 和 n 均加1 分别得到的值为 7、 6 和 3。函数过程调用返回后,只有 x 的值发生了变化,变为 7,y 和 z 的值仍为 4和 2。7.软件结构图能描述软件系统的总体结构,它应在软件开发的_阶段提出。(分数:1.00)A.需求分析B.概要设计 C
8、.详细设计D.代码编写解析:8.设工程中有 Form1、Form2 两个窗体,要求单击 Form2 上的 Command1 命令按钮,Form2 就可以从屏幕上消失,下面的事件过程中不能实现此功能的是 _ 。(分数:1.00)A.Private Sub Command1_Click()Form2. HideEnd SubB.Private Sub Command1_Click()Unload MeEnd SubC.Private Sub Command1_Click()Form2. UnloadEnd Sub D.Private Sub Command1_Click()Me. HideEnd
9、Sub解析:解析 Form2. Hide 是隐藏 Form2 窗体;Unload Me 是卸载并关闭当前窗体;Me. Hide 是隐藏当前窗体。From2. Unload 语法错误。故 C 选项不能使窗体 Form2 消失。9.在窗体上画一个命令按钮 Command1 和两个文本框,名称分别为 Text1 和 Text2。编写如下两个事件过程: Dim Str1 As String,str2 As String Private Sub form_load() Text1.Text=“ Text2.Text=“ Text1.Enabled=False Text2.Enabled=False En
10、d Sub Private Sub Form_KeyPress(KeyAscii As Integer) str1=str1 & Chr(KeyAscii) End Sub Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) str2=str2 & Chr(KeyCode) End Sub Private SubCommand1_Click() Text1.Text=str1 Text2.Text=str2 str1=“ str2=“ End Sub 当在设计阶段的窗体的 KeyPreview 属性设置为 True 时,程
11、序运行过程中,在键盘上输入小写字母 abc,然后单击命令按钮,则文本框 Text1 中显示的内容为(分数:2.00)A.abc B.不显示任何信息C.ABCD.出错解析:解析 在 Command1 的 Click 事件中将字符串变量 Str 赋给 Text1,Str 变量是在 KeyPress 事件中被赋值的,语句 Str=Str & Chr(KeyAscii) 将输入的字符存储并连接起来,此处是通过参数 KeyAscii 来得到输入字符的(因此要区分字母的大小写) ,又因为在 Form 的 Load 事件中将 Text1 和 Text2 的Enabled 属性设置成 False,所以当前拥有
12、输入焦点的对象是窗体,为了使窗体能接收键盘事件,已经将窗体的 KeyPreview 属性设置为 True,所以在输入小写字母 abc 后,单击 Command1,触发其 Click 事件,使得 Text1 文体控件的值等于 Str 字符串的值,即 abc。10.开发软件所需高成本和产品的低质量之间有着尖锐的矛盾,这种现象称做(分数:1.00)A.软件投机B.软件危机 C.软件工程D.软件产生解析:解析 软件工程概念的出现源自软件危机。所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题。总之,可以将软件危机归结为成本、质量、生产率等问题。11.以下语句的输出结果是 _。 Pr
13、int Format (“123.58”,“#,#.00”)(分数:2.00)A.123.58 B.123.00C.123.58D.0,123.58解析:解析 Format 用于格式化输出文本,其一般格式如下: Format(expression,format) 其中,expression 为任何有效表达式。format 为格式字符串,其描述符作用如下: #:输出数字,不在输出前后补 0。 0:输出数字,在输出的前后补 0。 .:输出小数点。 ,:输出千分位分隔符。 %:输出百分比符号,同时转化数值。 :输出前加“”。12.软件测试是软件开发过程的重要阶段,是软件质量保证的重要手段,下列各项中
14、,_是软件测试的任务。 预防软件发生错误 发现改正程序错误 提供诊断错误信息(分数:1.00)A.只有B.只有C.只有D.全部都是 解析:13.执行以下程序段 a$=“abbacddcba” For i=6 To 2 Step2 X=Mid(a,i,i) Y=Left(a,i) z=Right(a, i) z=Ucase(X & Y & z) Next i Print z 输出结果为(分数:1.00)A.ABAB.BBABBA C.ABBABAD.AABAAB解析:解析:此题考查 Left 函数,Right 函数,Mid 函数和 Ucase 函数的知识,执行 For 循环后最后一个循环时 i=
15、2,X=bb,Y=ab,z=ba,使用 Ucase 函数将 X & Y & z 联成的字符串中所有字母变为大写字母,结果为 BBABBA,选项 B)正确。14.下面描述中错误的是 _ 。(分数:2.00)A.系统总体结构图支持软件系统的详细设计 B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具解析:解析 软件设计是将软件需求转换为软件表示的过程;数据结构与数据库设计是软件设计的任务之一;PAD 图,即问题分析图,是一种主要用于描述软件详细设计的图形工具。15.在窗体上画一个列表框和一个命令按钮,其名称分别为 List
16、1 和 Command1,然后编写如下事件过程: Private Sub Form_Load() List1.AddItem“Item 1“ List1.AddIrem“tem 2“ List1.AddItem“Item 3“ End Sub Private Sub Command1_Click() List1.List(List1.Listcount)=“AAAA“ End Sub 程序运行后,单击命令按钮,其结果为(分数:1.00)A.把字符串“AAAA“添加到列表框中,但位置不能确定B.把字符串“AAAA“添加到列表框的最后(即“Item 3“的后面) C.把列表框中原有的最后一项改为”
17、AAAA“D.把字符串“AAAA“插入到列表框的最前面(即“Item 1“的前面)解析:解析 列表框的 list 属性用来列出表项的内容,也可以改变数组中的已有的值。列表框中表项的排列是从 0 开始,最后一项的序号为 ListCount-1,所以,该题语句的作用是把字符串“AAAA”添加到列表框的最后,但不是改变 Iterm3 的值,所以本题的正确答案是选项 B) 。16.执行以下语句后显示结果为 _。 Dim x As Integer If x Then Print x Else Print x-1(分数:1.00)A.1B.0C.-1 D.不确定解析:解析 Dim 定义的变量,If 语句
18、在 Visual Basic 中,Dim 用于在标准模块、窗体模块或过程中定义变量或数组,而当引用 Dim 定义的变量时,变量值会被重新设置(数值变量重新设置为 0,字符串变量被设置为空)。 If 语句的格式: If 条件 Then 若干条语句 Else 若干条语句 或者 IF 条件 Then 若干条语句 Else 若干条语句 End If If 语句的执行方式: 当“条件”为真的时候,执行 Then 后面的语句:“条件”为假,执行 Else 后面的语句。 如果“条件”是数值表达式,则数值表达式为非。值时,“条件”为真;数值表达式为。时,“条件”为假。 在此题中,“条件”是整型变量 x,其值为
19、 0,“条件”为假,执行 Else 分支,即打印出-1。17.设已经在窗体上添加了一个通用对话框控件 CommonDialog1,以下正确的语句是_。(分数:2.00)A.Commondialog1.Filter=All Files | *.* | Pictures(*.Bmp) | *.BmpB.Commondialog1.Filter=“All Files1“ | *.* | Pictures(*.Bmp) | *.BmpC.Commondialog1.Filter=All Files1 *.* | Pictures(*.Bmp) | *.Bmp |D.CommonDialog1.Filt
20、er=“All Files1 | *.* | Pictures(*.Bmp) | *.Bmp“ 解析:18.下列关于文件的叙述中,说法不正确的是 _ 。(分数:2.00)A.顺序文件中的记录一个接一个地顺序存放B.随机文件中记录的长度是随机的 C.执行打开文件命令后,自动生成一个文件指针D.LOF 函数返回给文件分配的字节数解析:解析 顺序文件结构比较简单,文件中的记录一个接一个地存放:而随机文件不同,访问随机文件不必考虑各个记录的排列顺序或位置,只要给出记录号,就可以进行存取,随机文件中记录的长度是固定的;文件被打开后,自动生成一个文件指针,文件的读写就从这个指针所指的位置开始:LOF 函数
21、返回给文件分配的字节数,即文件的长度。19.在结构化方法中,软件功能分解属于软件开发中的_阶段。(分数:1.00)A.概要设计 B.需求分析C.详细设计D.编程调试解析:解析 概要设计的任务是划分出构成系统的各物理元素以及设计出软件的结构(如确定模块及模块间的关系)。设计过程通常分为以下几步:提出可选择方案、选择合理方案、推荐最佳方案、功能分解、设计软件结构、制定测试计划,最后提交概要设计文档。软件功能分解属于概要设计阶段。本题的正确答案为选项 A。20.有如下函数过程: Function fun1(By Val x As Integer,By Val y As Integer)As Inte
22、ger Do While y0 reminder=x Mod y x=y y=reminder Loop fun1=x End Function 在下列按钮单击事件中调用该函数,则该程序的运行结果是 _ 。 Private Sub Command1_CliCk() Dim a As Integer Dim b As Integer a=100 b=25 x=fun1(a,b) Print x End Sub(分数:2.00)A.0B.25 C.50D.100解析:解析 可以通过两种方式来传递参数,即按值传递参数和按地址传递参数。按值传递参数时,传递的只是变量的副本。如果过程改变了这个值,则所作
23、变动只影响副本而不会影响变量本身。用 ByVal 关键字指出参数是按值来传递的。按地址传递参数使过程用变量的内存地址去访问实际变量的内容,在将变量传递给过程时,通过过程可永远改变变量值。默认时是按地址传递参数。 题中 fun1 函数的参数都是按值传送的,函数使用“过程名二表达式”的形式获得函数的返回值,如题中“fun1=x”语句。调用函数“x=fun1(a,b)”后,x=25。21.在窗体(Name 属性为 Form1)上画两个文本框(其 Name 属性分别为 Text1 和 Text2)和一个命令按钮(Name 属性为 Command1),然后编写如下两个事件过程: Private Sub
24、Command1_Click() a=Text1. Text+Text2. Text Print a End Sub Private Sub Form_Load() Text1. Text=“ Text2. Text=“ End sub 程序运行后,在第一个文本框(Text1)和第二个文本框(Text2)中分别输入 123 和 321 然后单击命令按钮,则输出结果为 _ 。(分数:2.00)A.444B.321123C.123321 D.132231解析:解析 本题考查对字符串的“+”操作。由于文本框的 Text 属性值为字符串类型,所以可以直接用“+”相连,得到的结果为 123321。22.
25、以下不属于对象的基本特点的是(分数:2.00)A.分类性B.多态性C.继承性 D.封装性解析:解析 对象的基本特点:标识唯一性、分类性、多态性、封装性和模块独立性。23.在窗体上画一个文本框、一个标签和一个命令按钮,其名称分别为 Textl、Labell 和 Commandl,然后编写如下两个事件过程: Prirate SUb Command1 Click() strText = InputBox(“请输入”) Textl.Text = strText End Sub Private Sub Text1 Change() Labell.Caption = Right(Trim(Text1.Te
26、xt), 3) End Sub 程序运行后,单击命令按钮,如果在输入对话框中输入 abcdef,则在标签中显示的内容是(分数:2.00)A空B.abcdefC.abcD.def 解析:解析 本题考查字符串函数。 Trim 表示去掉字符串两边的空白字符。Right 函数返回字符串最后面的 n 个字符。本题首先通过 InputBox 函数输入一个字符串并赋给 strText,然后把 strText 赋给Textl.Text。再经过 Trim 函数和 Right 函数的计算,得出的结果应该是 abcdef 的最后三个字符 def,故正确答案为 D。24.MsgBox 函数的返回值的类型为 _ 。(分
27、数:2.00)A.数值型 B.变体类型C.字符串型D.日期型解析:解析 MsgBox 在一个简单的对话框中显示消息,这个对话框可包括预定义的按钮和项目、用户要指定对话框中所使用的消息、标题、按钮和项目。MsgBox 可以用来在对话框中显示消息并等待用户单击按钮,然后返回一个整型值,让程序了解用户单击的是哪一个按钮。因此选项 A 正确。25.编写如下事件过程: Option Base 1 Private Sub Form Click() Dim x1()As Integer Dim i As Integer Dim s As Integer ReDim x1(3) For i = 1 To UB
28、ound(x1) x1(i)=i + 1 Next i Call sub1(x1) For i = 1 To UBound(x1) s = s + x1(i) Next i Print s End Sub Private Sub sub1(n()As Integer) Dim i As Integer ReDim Preserve n(5) For i = 3 To 5 n(i)=n(i-1)*2 Next i End Sub 程序运行后,单击窗体,则窗体上显示的内容是(分数:1.00)A.6B.12C.24D.47 解析:解析 在主过程中,数组 x1 的下标最大值为 3,赋初值分别为 2、3
29、、4,通过实参和形参的调用,数组 x1 的值传给了数组 n。在子过程中,数组 n 的下标最大值被重新定义为 5,下标 35 的值计算的结果分别为 6、12、24。在主过程中,将数组 x1 的各值相加得:2+3+6+12+24=47。二、填空题(总题数:15,分数:27.00)26.与数学表达式 cos (a+B) /3x+5 对应的 Visual Basic 表达式是 1。 (分数:1.00)解析:(cos(a+B) )2/(3*x)+5 解析 在 Visual Basic 中,表示指数运算,*表示乘法,/表示除法。乘法运算符不能像数学表达式那样省略。27.在关系数据库中,把数据表示成二维表,
30、每一个二维表称为 _ 1_ 。 (分数:1.00)解析:关系解析 在关系数据库中,把数据表示成二维表,而一个二维表就是一个关系。28.数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中, _ 1_ 是用户的数据视图,也就是用户所见到的数据模式。 (分数:1.00)解析:外模式解析 外模式由概念模式推导而出,给出了每个用户的局部数据描述,即数据视图。29.关系模型的数据操纵即是建立在关系上的数据操纵,一般有 1、增加、删除和修改四种操作。 (分数:2.00)解析:查询30.软件是 1、数据和文档的集合。 (分数:2.00)解析:程序解析 参考软件的定义。31.二叉树的遍历可以分为三
31、种:前序遍历、 1 遍历和后序遍历。 (分数:2.00)解析:中序 解析 二叉树的遍历可以分为三种:前序遍历、中序遍历和后序遍历。 前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍历左子树,最后遍历右子树:并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。 中序遍历指在访问根结点、遍历左子树与遍历有子树这三者中,首先遍历左子树,然后访问根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。 后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问根结点,最后遍历左子树;并且遍
32、历左、右子树时,仍然先遍历右子树,然后访问根结点,最后遍历左子树。32.深度为 5 的满二叉树有 1 个叶子节点。 (分数:2.00)解析:16 解析 在满二叉树中,叶子节点数目的计算公式为 2 n-1 ,其中 n 为树的深度。33.在面向对象的语言中, 1 是程序设计的基本实体。 (分数:2.00)解析:对象34.数据库系统的核心是 1。 (分数:2.00)解析:数据库管理系统(或 DBMS)解析 一般认为,数据库系统包括四个部分:数据库、数据库管理系统、数据库应用程序、数据库管理员。其中 DBMS 是为数据库的建立、使用和维护而配置的软件,是数据库系统的核心。35.下列程序运行后的输出结果
33、是 1。 Private Sub f(k,s) s=1 For j=1 To k S=S*j Next End Sub Private Sub Command1_Click() Sum=0 For i=1 To 3 Call f(i,s) Sum=Sum+s Next Print Sum End Sub (分数:2.00)解析:9解析 本题考查的重点是在子过程的调用过程中,虚实参数的传送问题,变量 s 按十传送。子过程 f()求 n!,sum 的计算过程为 1!+2!+3!=1+2+6=936.负责数据库中查询操作的数据库语言是 1。 (分数:2.00)解析:数据操纵语言解析 数据库中有三种主
34、要程序设计语言类别的语句:数据定义语言(DDL),数据操纵语言(DML)及数据控制语言(DCL)。其中数据操纵语言主要负责数据的插入、删除、查询、修改等操作。37.窗体 KeyUp 事件过程如下,启动程序后按小写字母“a”,输出结果为 1。 Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer) Print Chr(KeyCode) End Sub (分数:2.00)解析:A38.下列程序的功能是:将数据 1,2,8 写入顺序文件 Num.txt 中,请补充完整。 Private Sub Form_Click() Dim i A
35、s Integer Open“Numtxt”For Output As#1 For i=1 To 8 1 Next Close#1 End Sub (分数:2.00)解析:Print#1,i解析 向文件中写入数据时用 Print 语句。39.下列程序的功能是:将数据 1,2,10 写入顺序文件 Base.txt 中,请填空。 Private Sub Form_Click() Dim i As Integer Open 1As#1 For i=1 To 10 Print #1,i Next Close #1 End Sub (分数:2.00)解析:“Base.txt“ For Output解析 本题中以输出方式来打开文件,故要用“Open “Base.txt“ For Output As#1”语句;向文件中写入数据用 Print 语句。40.如果要通过程序代码来一次性删除列表框中所有项目,则应使用的方法是 1。 (分数:2.00)解析:Clear解析 Clear 方法用于清除控件中所有列表内容或系统剪贴板的内容。