1、二级 VISUAL+BASIC-28 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.程序流程图中带有箭头的线段表示的是_。(分数:2.50)A.图元关系B.数据流C.控制流D.调用关系2.结构化程序设计的基本原则不包括_。(分数:2.50)A.多态性B.自顶向下C.模块化D.逐步求精3.软件设计中模块划分应遵循的准则是_。(分数:2.50)A.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合4.在软件开发中,需求分析阶段产生的主要文档是_。(分数:2.50)A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测
2、试计划5.算法的有穷性是指_。(分数:2.50)A.算法程序的运行时间是有限的B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用6.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方法是_。(分数:2.50)A.快速排序B.冒泡排序C.直接插入排序D.堆排序7.下面关于栈的叙述中错误的是_。(分数:2.50)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据C.只能在栈底插入数据D.不能删除数据8.在数据库设计中,将 ER 图转换成关系数据模型的过程属于_。(分数:2.50)A.需求分析阶段B.概念设计阶段C.逻辑设计
3、阶段D.物理设计阶段9.有三个关系 R、S 和 T 如下: R B C D a 0 k1 b 1 n1 S B C D f 3 h2 a 0 k1 n 2 x1 T B C D a 0 k1 由关系 R 和 S 通过运算得到关系 T,则所使用的运算为_。(分数:2.50)A并B.自然连接C.笛卡儿积D交10.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:2.50)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩11.在窗体上画一个文本框(名称为 Text1
4、)和一个标签(名称为 Label1),程序运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数。以下可以实现上述操作的事件过程是_。(分数:2.50)A.Private Sub Text1_Change()Label1.Caption=Str(Len(Text1.Text)End SubB.Private Sub Text1_Click()Label1.Caption=str(Len(Text1.Text)End SubC.Private sub Text1_Change()Label1.Caption=Text1.TextEnd SubD.Private Sub Labe
5、l1_Change()Label1.Caption=Str(Len(Text1.Text)End Sub12.在窗体上画两个单选按钮,名称分别为 Option1、0ption2,标题分别为“宋体”和“黑体”;1 个复选框(名称为 Check1,标题为“粗体”)和 1 个文本框(名称为 Text1,Text 属性为“改变文字字体”),窗体外观如图所示。程序运行后,要求“宋体”单选按钮和“粗体”复选框被选中,则以下能够实现上述操作的语句序列是_ (分数:2.50)A.Option1.Value=FalseCheck1.Value=TrueB.Option1.Value=TrueCheck1.Val
6、ue=0C.Option2.Value=FalseCheck1.Value=2D.Option1.Value=TrueCheck1.Valne=113.以下说法中正确的是_。(分数:2.50)A.当焦点在某个控件上时,按下一个字母键,就会执行该控件的 KeyPress 事件过程B.因为窗体不接受焦点,所以窗体不存在自己的 KeyPress 事件过程C.若按下的键相同,KeyPress 事件过程中的 KeyAscii 参数与 KeyDown 事件过程中的 KeyCode 参数的值也相同D.在 KeyPress 事件过程中,KeyAscii 参数可以省略14.假定通过复制、粘贴操作建立了一个命令按
7、钮数组 Command1,以下说法中错误的是_。(分数:2.50)A.数组中每个命令按钮的名称(Name 属性)均为 Command1B.若未做修改,数组中每个命令按钮的大小都一样C.数组中各个命令按钮使用同一个 Click 事件过程D.数组中每个命令按钮的 Index 属性值都相同15.以下关于菜单的叙述中,错误的是_。(分数:2.50)A.当窗体为活动窗体时,用 Ctrl+E 键可以打开菜单编辑器B.把菜单项的 Enabled 属性设置为 False,则可删除该菜单项C.弹出式菜单在菜单编辑器中设计D.程序运行时,利用控件数组可以实现菜单项的增加或减少16.以下叙述中错误的是_。(分数:2
8、.50)A.在程序运行时,通用对话框控件是不可见的B.调用同一个通用对话框控件的不同方法(如 ShowOpen 或 ShowSave)可以打开不同的对话框窗口C.调用通用对话框控件的 ShowOpen 方法,能够直接打开在该通用对话框中指定的文件D.调用通用对话框控件的 ShowColor 方法,可以打开颜色对话框窗口17.下面控件中,没有 Caption 属性的是_。(分数:2.50)A.复选框B.单选按钮C.组合框D.框架18.用来设置文字字体是否斜体的属性是_。(分数:2.50)A.FontUnderlineB.FontBoldC.FontSlopeD.FontItalic19.若看到程
9、序中有以下事件过程,当程序运行时_。 Private Sub Click_MouseDown(Button As Integer,_Shift As Integer,X As Single,Y As Single) Print“VB Program“ End Sub(分数:2.50)A.用鼠标左键单击名称为“Command1”的命令按钮时,执行此过程B.用鼠标左键单击名称为“MouseDown”的命令按钮时,执行此过程C.用鼠标右键单击名称为“MouseDown”的控件时,执行此过程D.用鼠标左键或右键单击名称为“Click”的控件时,执行此过程20.下窗体上有名称为 Command1 的命令
10、按钮和名称为 Text1 的文本框 Private Sub Command1_Click() Text1.Text=“程序设计“ Text1.SetFocus End Sub Private Sub Text1_GotFocus() Text1.Text=“等级考试“ End sub 运行以上程序,单击命令按钮后_。(分数:2.50)A.文本框中显示的是“程序设计”,且焦点在文本框中B.文本框中显示的是“等级考试”,且焦点在文本框中C.文本框中显示的是“程序设计”,且焦点在命令按钮上D.文本框中显示的是“等级考试”,且焦点在命令按钮上21.在窗体上画一个命令按钮(名称为 Command1),并
11、编写如下代码: Function Fun1(By Val a As Integer,b As Integer)As Integer Dim t As Integer t=a-b b=t+a Fun1=t+b End Function Private Sub Command1_Click() Dim x AS Integer x=10 Print Fun1(Fun1(x,(Fun1(x,x-1),x-1) End Sub 程序运行后,单击命令按钮,输出结果是_。(分数:2.50)A.10B.0C.11D.2122.设有如下通用过程: Public Function Fun(xStr As Str
12、ing)As String Dim tStr As String,strL As Integer tStr=“ strL=Len(xStr) i=strL/2 Do Whlle i=strL tStr=tStr numb End Sub 连续 3 次调用 var_dim 过程,第 3 次调用时的输出是_。(分数:2.50)A.2 1B.2 3C.6 1D.6 327.在窗体上画 1 个命令按钮,并编写如下事件过程: Private Sub Command1_Click() Dim a(3,3) For m=1 To 3 For n=1 Tn 3 If n=m Or n=4-m Then a(m
13、,n)=m+n Else a(m,n)=0 End If Print a(m,n); Next n Print Next m End Sub 运行程序,单击命令按钮,窗体上显示的内容为_。 A B C D (分数:2.50)A.B.C.D.28.窗体上有 1 个名称为 Text1 的文本框;1 个名称为 Timer1 的计时器控件,其 Interval 属性值为5000,Enabled 属性值是 True。Timer1 的事件过程如下: Private Sub Timer1_Timer() Static flag As Integer If flag=0 Then flag=1 flag=-f
14、lag If flag=1 Then Text1.ForeColor=y End Sub 运行程序后单击命令按钮,窗体上显示的是_。(分数:2.50)A.100 100B.100 120C.110 100D.110 12031.阅读程序: Option Base 1 Dim arr() As Integer Private Sub Form_Click() Dim i As Integer,J As Integer ReDim arr(3,2) For i=1 To 3 For j=1 To 2 arr(i,j)=i*2+j Next Next ReDim Preserve arr(3,4)
15、For j=3 To 4 art(3,j)=j+9 Next Print arr(3,2)+arr(3,4) End Sub 程序运行后,单击窗体,输出结果为_。(分数:2.50)A.21B.13C.8D.2532.设用复制、粘贴的方法建立了一个命令按钮数组 Command1,以下对该数组说法错误的是_。(分数:2.50)A.命令按钮的所有 Caption 属性都是 Command1B.在代码中访问任意一个命令按钮只需使用名称 Command1C.命令按钮的大小都相同D.命令按钮共享相同的事件过程33.Sub 过程与 Function 过程最根本的区别是_。(分数:2.50)A.Sub 过程可
16、以用 Call 语句直接使用过程名调用,而 Function 过程不可以B.Function 过程可以有形参,Sub 过程不可以C.Sub 过程不能返回值,而 Function 过程能返回值D.两种过程参数的传递方式不同34.关于创建通用过程的方法叙述正确的是_。(分数:2.50)A.双击窗体打开的“代码编辑窗口”中不能创建通过过程B.创建通用过程一定要使用 Sub 关键字C.选择“工具”下拉菜单中的“添加过程”命令才能创建通过过程D.在“代码编辑窗口”中既可以建立事件过程,也能建立通用过程35.以下关于过程及过程参数的描述中,错误的是_。(分数:2.50)A.过程的参数可以是控件名称B.用数
17、组作为过程的参数时,使用的是“传地址”方式C.只有函数过程能够将过程中处理的信息传回调用的程序中D.窗体可以作为过程的参数36.阅读程序: Function Fun(a As Integer) Static c b=0:b=b+2:c=c+2 Fun=a*b*c End Function Private Sub Command1_Click() Dim a As Integer a=2 For i=1 To 2 Print Fun(a); Next End Sub 运行上面的程序,单击命令按钮,输出结果为_。(分数:2.50)A.8 16B.9 18C.10 20D.7 1437.编写如下事件
18、过程: Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) Print Chr(KeyCode) End Sub Private Sub Form_KeyPress(KeyAscii As Integer) Print Chr(KeyAscii) End Sub 在一般情况下(即不按住 Shift 键和锁定大写键时)运行程序,若按 t 键,则程序输出的结果是_。(分数:2.50)A.TTB.tTC.TtD.tt38.Print 方法可以在对象上输出数据,这些对象包括_。(分数:2.50)A.图片框B.状态栏C.标题栏D.代
19、码窗口39.在 Visual Basic 中,要将一个窗体从内存中释放,应使用的语句是_。(分数:2.50)A.HideB.UnloadC.LoadD.Show40.向顺序文件 Temp.txt 中写入 1、2、3 这 3 个数。在程序中加入_可以使程序功能完整。 Private Sub Command1_Click() Open“c:/Temp.txt“,Output As #1 For i=0 To 3 Next Close #1 End Sub(分数:2.50)A.Print # 1,Temp.txtB.Get # 1,iC.Print # 1,iD.Unit # 1,i二级 VISUA
20、L+BASIC-28 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.程序流程图中带有箭头的线段表示的是_。(分数:2.50)A.图元关系B.数据流C.控制流 D.调用关系解析:解析 在数据流图中,用标有名字的带箭头的线段表示数据流。在程序流程图中,用标有名字的带箭头的线段表示控制流,因此本题答案为 C。2.结构化程序设计的基本原则不包括_。(分数:2.50)A.多态性 B.自顶向下C.模块化D.逐步求精解析:解析 结构化程序设计的思想包括:自顶向下、逐步求精、模块化、限制使用 goto 语句,多态性是面向对象的程序设计的思想,因此本题答案
21、为 A。3.软件设计中模块划分应遵循的准则是_。(分数:2.50)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析 软件设计中,模块划分应遵循的准则是高内聚低耦合、模块大小规模适当、模块的依赖关系适当等。模块的划分应遵循一定的准则,以保证模块划分合理,并进一步保证以此为依据开发出的软件系统可靠性高,易于理解和维护。模块之间的耦合应尽可能地低,模块的内聚应尽可能地高,因此本题答案为 B。4.在软件开发中,需求分析阶段产生的主要文档是_。(分数:2.50)A.可行性分析报告B.软件需求规格说明书 C.概要设计说明书D.集成测试计划解析:解析 A 错误,可行性分析阶段产生
22、可行性分析报告。C 错误,总体设计阶段产生概要设计说明书。D 错误,集成测试计划是在概要设计阶段编写的文档。B 正确,软件需求规格说明书是需求分析阶段产生的主要文档,是后续工作如设计、编码等需要的重要参考文档。5.算法的有穷性是指_。(分数:2.50)A.算法程序的运行时间是有限的 B.算法程序所处理的数据量是有限的C.算法程序的长度是有限的D.算法只能被有限的用户使用解析:解析 算法原则上能够精确地运行,而且人们用笔和纸做有限次运算后即可完成。算法的有穷性是指算法程序的运行时间是有限的,因此本题答案为 A。6.对长度为 n 的线性表排序,在最坏情况下,比较次数不是 n(n-1)/2 的排序方
23、法是_。(分数:2.50)A.快速排序B.冒泡排序C.直接插入排序D.堆排序 解析:解析 快速排序、冒泡排序和直接插入排序在最坏情况下,比较次数都是 n(n-1)/2,堆排序在最坏情况下的比较次数最少,是 O(log 2 n),因此本题答案为 D。7.下面关于栈的叙述中错误的是_。(分数:2.50)A.栈按“先进先出”组织数据B.栈按“先进后出”组织数据 C.只能在栈底插入数据D.不能删除数据解析:解析 栈是只允许在同一端进行插入和删除运算的线性表,按“先进后出”组织数据,因此本题答案为 B。8.在数据库设计中,将 ER 图转换成关系数据模型的过程属于_。(分数:2.50)A.需求分析阶段B.
24、概念设计阶段C.逻辑设计阶段 D.物理设计阶段解析:解析 将 ER 图转换成关系数据模型是把图形分析出来的联系反映到数据库中,即设计出表,因此属于逻辑设计阶段,答案为 C。9.有三个关系 R、S 和 T 如下: R B C D a 0 k1 b 1 n1 S B C D f 3 h2 a 0 k1 n 2 x1 T B C D a 0 k1 由关系 R 和 S 通过运算得到关系 T,则所使用的运算为_。(分数:2.50)A并B.自然连接C.笛卡儿积D交 解析:解析 自然连接是一种特殊的等值连接,它要求两个关系中进行比较的分量必须是相同的属性组,并且在结果中把重复的属性列去掉,因此 B 错误。笛
25、卡儿积是用 R 集合中的元素为第一元素,S 集合中的元素为第二元素构成的有序对,因此 C 错误。根据关系 T 可以很明显地看出是从关系 R 与关系 S 中取得相同的关系组,所以使用的是交运算,选择 D。10.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:2.50)A.课号,成绩B.学号,成绩C.学号,课号 D.学号,姓名,成绩解析:解析 学号是学生表 S 的主键,课号是课程表 C 的主键,因此选课表 SC 的关键字就应该是与前两个表能够直接联系且能唯一定义的学号和课号,
26、故本题答案为 C。11.在窗体上画一个文本框(名称为 Text1)和一个标签(名称为 Label1),程序运行后,在文本框中每输入一个字符,都会立即在标签中显示文本框中字符的个数。以下可以实现上述操作的事件过程是_。(分数:2.50)A.Private Sub Text1_Change()Label1.Caption=Str(Len(Text1.Text)End Sub B.Private Sub Text1_Click()Label1.Caption=str(Len(Text1.Text)End SubC.Private sub Text1_Change()Label1.Caption=Te
27、xt1.TextEnd SubD.Private Sub Label1_Change()Label1.Caption=Str(Len(Text1.Text)End Sub解析:解析 根据题意可知,在文本框中输入字符这个动作使标签上显示的内容发生变化,说明是文本框触发了某事件,因此排除 D 选项;文本框中每输入一个字符,标签中立即就会发生变化,故为 Change事件,排除 B 选项;标签中显示的是文本框中字符的个数,不是输入的内容,排除 C 选项。因此 A 选项正确。12.在窗体上画两个单选按钮,名称分别为 Option1、0ption2,标题分别为“宋体”和“黑体”;1 个复选框(名称为 Ch
28、eck1,标题为“粗体”)和 1 个文本框(名称为 Text1,Text 属性为“改变文字字体”),窗体外观如图所示。程序运行后,要求“宋体”单选按钮和“粗体”复选框被选中,则以下能够实现上述操作的语句序列是_ (分数:2.50)A.Option1.Value=FalseCheck1.Value=TrueB.Option1.Value=TrueCheck1.Value=0C.Option2.Value=FalseCheck1.Value=2D.Option1.Value=TrueCheck1.Valne=1 解析:解析 单选按钮控件的 Value 属性值为 True 表示被选中,False 表
29、示未被选中;复选框控件的Value 属性值为 0 表示未选中,1 表示选中,2 表示禁止。本题中是单选按钮和复选框都被选中,因此 D选项正确。13.以下说法中正确的是_。(分数:2.50)A.当焦点在某个控件上时,按下一个字母键,就会执行该控件的 KeyPress 事件过程 B.因为窗体不接受焦点,所以窗体不存在自己的 KeyPress 事件过程C.若按下的键相同,KeyPress 事件过程中的 KeyAscii 参数与 KeyDown 事件过程中的 KeyCode 参数的值也相同D.在 KeyPress 事件过程中,KeyAscii 参数可以省略解析:解析 B 选项错误原因:窗体有自己的 K
30、eyPress 事件过程;C 选项错误原因:KeyPress 事件过程中的 KeyAscii 参数返回按键的 ASCII 码值,大小写字母返回值不同;而 KeyDown 事件过程中的 KeyCode参数返回的是按键代码,大小写字母返回值相同。因此当按下的键相同时,KeyAscii 和 KeyCode 参数不一定返回相同值;D 选项错误原因:KeyPress 事件中的 KeyAscii 参数不能省略。因此 A 选项正确。14.假定通过复制、粘贴操作建立了一个命令按钮数组 Command1,以下说法中错误的是_。(分数:2.50)A.数组中每个命令按钮的名称(Name 属性)均为 Command1
31、B.若未做修改,数组中每个命令按钮的大小都一样C.数组中各个命令按钮使用同一个 Click 事件过程D.数组中每个命令按钮的 Index 属性值都相同 解析:解析 命令按钮控件数组中各控件用相同的名称和同一个 Click 事件过程,大小也一样,但是为了区分它们,各控件的 Index 属性值是不同的。因此 D 选项错误。15.以下关于菜单的叙述中,错误的是_。(分数:2.50)A.当窗体为活动窗体时,用 Ctrl+E 键可以打开菜单编辑器B.把菜单项的 Enabled 属性设置为 False,则可删除该菜单项 C.弹出式菜单在菜单编辑器中设计D.程序运行时,利用控件数组可以实现菜单项的增加或减少
32、解析:解析 在当菜单项的 Enabled 属性值设置为 False 时,菜单项只是变为无效项,不可用,但不会删除该菜单项。因此 B 选项错误。16.以下叙述中错误的是_。(分数:2.50)A.在程序运行时,通用对话框控件是不可见的B.调用同一个通用对话框控件的不同方法(如 ShowOpen 或 ShowSave)可以打开不同的对话框窗口C.调用通用对话框控件的 ShowOpen 方法,能够直接打开在该通用对话框中指定的文件 D.调用通用对话框控件的 ShowColor 方法,可以打开颜色对话框窗口解析:解析 调用通用对话框的 Show:Open 方法,只是显示文件的“打开”对话框,如果 Sho
33、wOpen 方法后面没有其他处理文件的代码,就不能实现打开文件的功能。因此选项 C 错误。17.下面控件中,没有 Caption 属性的是_。(分数:2.50)A.复选框B.单选按钮C.组合框 D.框架解析:解析 Caption 属性是设置或返回控件的标题,组合框没有 Caption 属性。因此选 C。18.用来设置文字字体是否斜体的属性是_。(分数:2.50)A.FontUnderlineB.FontBoldC.FontSlopeD.FontItalic 解析:解析 FontUnderline 属性设置文字是否有下划线;FontBold 属性设置文字是否加粗;FontItalic 属性设置文
34、字是否斜体;没有 FontSlope 属性。因此选 D。19.若看到程序中有以下事件过程,当程序运行时_。 Private Sub Click_MouseDown(Button As Integer,_Shift As Integer,X As Single,Y As Single) Print“VB Program“ End Sub(分数:2.50)A.用鼠标左键单击名称为“Command1”的命令按钮时,执行此过程B.用鼠标左键单击名称为“MouseDown”的命令按钮时,执行此过程C.用鼠标右键单击名称为“MouseDown”的控件时,执行此过程D.用鼠标左键或右键单击名称为“Click
35、”的控件时,执行此过程 解析:解析 本题中,Click 是控件的名称,MouseDown 是鼠标按下事件,当用鼠标左键或右键单击Click 控件时就会触发 MouseDown 事件,执行 MouseDown 事件过程。因此选 D。20.下窗体上有名称为 Command1 的命令按钮和名称为 Text1 的文本框 Private Sub Command1_Click() Text1.Text=“程序设计“ Text1.SetFocus End Sub Private Sub Text1_GotFocus() Text1.Text=“等级考试“ End sub 运行以上程序,单击命令按钮后_。(分
36、数:2.50)A.文本框中显示的是“程序设计”,且焦点在文本框中B.文本框中显示的是“等级考试”,且焦点在文本框中 C.文本框中显示的是“程序设计”,且焦点在命令按钮上D.文本框中显示的是“等级考试”,且焦点在命令按钮上解析:解析 运行程序,单击命令按钮后,执行 Command1_Click 事件过程代码,文本框 Text1 中显示“程序设计”,并且文本框 Text1 获得焦点,此时焦点在 Text1 中;当 Text1 获得焦点时就会触发它的Got_Focus 事件,执行 Got_Focus 事件过程,结果文本框 Text1 中显示“等级考试”。因此 B 选项正确。21.在窗体上画一个命令按
37、钮(名称为 Command1),并编写如下代码: Function Fun1(By Val a As Integer,b As Integer)As Integer Dim t As Integer t=a-b b=t+a Fun1=t+b End Function Private Sub Command1_Click() Dim x AS Integer x=10 Print Fun1(Fun1(x,(Fun1(x,x-1),x-1) End Sub 程序运行后,单击命令按钮,输出结果是_。(分数:2.50)A.10B.0 C.11D.21解析:解析 本题是过程的嵌套调用,过程嵌套调用时要先
38、计算最内层的过程,然后由里向外执行。因此 Fun1(Fun1(x,(Fun1(x,x-1),-1)执行过程如下: 先执行 Fun1(x,x-1),由于形参 a 是按值传递,因此不会影响 x 的值,x=10,即 Fun1(10,9)。t=1,b=1+10=11,则函数返回值为 1+11=12。 再执行 Fun1(x,(Fun1(x,x-1),由于内层过程返回 12,因此又可写成 Fun1(x,(12),由于 x 仍为原值,因此过程即 Fun1(10,12)。t=-2,b=-2+10=8,则函数返回值为-2+8=6。 最后执行 Fun1(Fun1(x,(Fun1(x,x-1),x-1),即 Fun
39、1(6,x-1),由于 x 仍为原值,因此过程即为Fun1(6,9)。t=-3,b=-3+6=3,则函数返回值为-3+3=0,B 选项正确。22.设有如下通用过程: Public Function Fun(xStr As String)As String Dim tStr As String,strL As Integer tStr=“ strL=Len(xStr) i=strL/2 Do Whlle i=strL tStr=tStr numb End Sub 连续 3 次调用 var_dim 过程,第 3 次调用时的输出是_。(分数:2.50)A.2 1B.2 3C.6 1 D.6 3解析:
40、解析 Static 声明的变量为静态变量,静态变量在程序运行期间,每次进入过程时都会保留上次的值,而普通变量不会保留。numa 定义为静态变量,因此每次调用都会保留结果,调用 3 次过程后,numa 的值为 6,numb 的值为 1。因此本题选 C。27.在窗体上画 1 个命令按钮,并编写如下事件过程: Private Sub Command1_Click() Dim a(3,3) For m=1 To 3 For n=1 Tn 3 If n=m Or n=4-m Then a(m,n)=m+n Else a(m,n)=0 End If Print a(m,n); Next n Print N
41、ext m End Sub 运行程序,单击命令按钮,窗体上显示的内容为_。 A B C D (分数:2.50)A.B. C.D.解析:解析 根据 For 循环中的 If 语句的条件 n=m or n=4-m 中的 n=m,首先可以得出 a(1,1)=2,a(2,2)=4,a(3,3)=6,其次根据 n=4-m 的条件可以得出 a(1,3)=4,a(2,2)=4,a(3,1)=4,而其他的元素值都为0。因此窗体上输出的三行分别是:2 0 4,04 0,4 0 6,B 选项正确。28.窗体上有 1 个名称为 Text1 的文本框;1 个名称为 Timer1 的计时器控件,其 Interval 属性
42、值为5000,Enabled 属性值是 True。Timer1 的事件过程如下: Private Sub Timer1_Timer() Static flag As Integer If flag=0 Then flag=1 flag=-flag If flag=1 Then Text1.ForeColor=y End Sub 运行程序后单击命令按钮,窗体上显示的是_。(分数:2.50)A.100 100B.100 120 C.110 100D.110 120解析:解析 在标准模块中使用 Public 定义的变量是全局变量,全局变量可以在工程的每个模块、每个过程中使用。如果在过程中有与全局变量
43、同名的过程变量,则优先使用过程变量。在命令按钮事件中定义了局部变量 x,与全局变量同名,因此在此事件中使用局部变量,而变量 v 在此过程中没有定义,则仍使用全局变量。因此输出时 x 值为 100,y 值为 120,B 选项正确。31.阅读程序: Option Base 1 Dim arr() As Integer Private Sub Form_Click() Dim i As Integer,J As Integer ReDim arr(3,2) For i=1 To 3 For j=1 To 2 arr(i,j)=i*2+j Next Next ReDim Preserve arr(3,
44、4) For j=3 To 4 art(3,j)=j+9 Next Print arr(3,2)+arr(3,4) End Sub 程序运行后,单击窗体,输出结果为_。(分数:2.50)A.21 B.13C.8D.25解析:解析 每次使用 ReDim 语句都会使原来数组中的值丢失,也可以在 ReDim 后加 Preserve 参数来保留数组中的数据,但使用 Preserve 只能改变最后一维的大小,前面几维大小不能改变,而在本题中arr(3,2)赋值实为 8,arr(3,4)=4+9=13,故最后为 13+8=21。32.设用复制、粘贴的方法建立了一个命令按钮数组 Command1,以下对该数
45、组说法错误的是_。(分数:2.50)A.命令按钮的所有 Caption 属性都是 Command1B.在代码中访问任意一个命令按钮只需使用名称 Command1 C.命令按钮的大小都相同D.命令按钮共享相同的事件过程解析:解析 在访问数组控件时,除了要使用控件的名称外,还需要使用控件下标(即 Index 属性)来区别数组控件中的具体控件。33.Sub 过程与 Function 过程最根本的区别是_。(分数:2.50)A.Sub 过程可以用 Call 语句直接使用过程名调用,而 Function 过程不可以B.Function 过程可以有形参,Sub 过程不可以C.Sub 过程不能返回值,而 F
46、unction 过程能返回值 D.两种过程参数的传递方式不同解析:解析 在 Visual Basic 中有两类过程:一类是系统提供的内部函数和事件过程;另一类是用户根据自己的需要定义的,供事件过程的多次调用,而在第二类过程中,我们现在涉及最多的是子过程。它们的共同点是完成某种特定功能的一组程序代码;不同的是函数是带有返回值的特殊过程,所以函数过程定义时有返回值的类型说明。34.关于创建通用过程的方法叙述正确的是_。(分数:2.50)A.双击窗体打开的“代码编辑窗口”中不能创建通过过程B.创建通用过程一定要使用 Sub 关键字C.选择“工具”下拉菜单中的“添加过程”命令才能创建通过过程D.在“代
47、码编辑窗口”中既可以建立事件过程,也能建立通用过程 解析:解析 代码窗口可以创建通用过程。35.以下关于过程及过程参数的描述中,错误的是_。(分数:2.50)A.过程的参数可以是控件名称B.用数组作为过程的参数时,使用的是“传地址”方式C.只有函数过程能够将过程中处理的信息传回调用的程序中 D.窗体可以作为过程的参数解析:解析 通过间接访问,也可以在非函数过程中访问和处理调用过程中的变量内容,并且定义多个“传地址”的参数,可以返回多个值。Visual Basic 中的控件和窗体都可以作为过程的参数。36.阅读程序: Function Fun(a As Integer) Static c b=0
48、:b=b+2:c=c+2 Fun=a*b*c End Function Private Sub Command1_Click() Dim a As Integer a=2 For i=1 To 2 Print Fun(a); Next End Sub 运行上面的程序,单击命令按钮,输出结果为_。(分数:2.50)A.8 16 B.9 18C.10 20D.7 14解析:解析 本题的难点是子函数调用过程和 Static 变量。子函数有 Static 变量 c,在第 1 次子函数调用时其值为 2,局部变量 b 为 2,但在第 2 次子函数调用时 c=2+2=4,b=0+2=2。表达式 a*b*c 的结果通过子函数名 F 返回。37.编写如下事件过程: Private Sub Form_KeyDown(KeyCode As Integer,Shift As Integer) Print Chr(KeyCode) End Sub Private Sub Form_KeyPress(KeyAscii As Int