1、二级 VISUAL+BASIC-74 及答案解析(总分: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
2、栈C.双向链表D.二叉树5.下列叙述中正确的是_。(分数:2.50)A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构6.对如下二叉树: (分数:2.50)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA7.在深度为 7 的满二叉树中,叶子结点的个数为_。(分数:2.50)A.32B.31C.64D.638.“商品”与“顾客”两个实体集之间的联系一般是_。(分数:2.50)A.一对一B.一对多C.多对一D.多对多9.在 E-R 图中,用来表示实体的图形是_。(分数:2.50)A.矩形B.椭圆形C.菱形D.三角形10
3、.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:2.50)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMSD.没有任何关系11.以下关于 Visual Basic 特点的叙述中,错误的是_。(分数:2.50)A.Visual Basic 是采用事件驱动编程机制的语言B.Visual Basic 程序既可以编译运行,也可以解释运行C.构成 Visual Basic 程序的多个过程没有固定的执行顺序D.Visual Basic 程序不是结构化程序,不具备结构化程序的三种基本结构12.以下叙述中,错误的
4、是_。(分数:2.50)A.一个 Visual Basic 应用程序可以含有多个标准模块文件B.一个 Visual Basic 工程可以含有多个窗体文件C.标准模块文件可以属于某个指定的窗体文件D.标准模块文件的扩展名是.bas13.以下叙述中,错误的是_。(分数:2.50)A.在 Visual Basic 中,对象所能响应的事件是由系统定义的B.对象的任何属性既可以通过属性窗口设定,也可以通过程序语句设定C.Visual Basic 中允许不同对象使用相同名称的方法D.Visual Basic 中的对象具有自己的属性和方法14.设有如下语句: Dim a,b As Integer c=“Vi
5、sual Basic“ d=#7/20/2005# 以下关于这段代码的叙述中,错误的是_。(分数:2.50)A.a 被定义为 Integer 类型变量B.b 被定义为 Integer 类型变量C.c 中的数据是字符串D.d 中的数据是日期类型15.以下能从字符串“Visual Basic“中直接取出子字符串“Basic“的函数是_。(分数:2.50)A.LeftB.MidC.StringD.Instr16.设 a=4,b=3,c=2,d=1,下列表达式的值是_。 ab+1 Or cd And b Mod c(分数:2.50)A.TrueB.1C.-1D.017.以下可以作为 Visual Ba
6、sic 变量名的是_。(分数:2.50)A.A#AB.counstAC.3AD.?AA18.设 x=4,y=6,则以下不能在窗体上显示出“A=10”的语句是_。(分数:2.50)A.Print A=x+yB.Print “A=“; x+yC.Print “A=“+Str(x+y)D.Print “A=“ If arrItem90 Then Exit For Next End Sub 对于该事件过程,以下叙述中错误的是_。(分数:2.50)A.a 数组中的数据是 30 个 100 以内的整数B.语句 For Each arrItem In a 有语法错误C.If arrItem Mod 7=0语
7、句的功能是输出数组中能够被 7 整除的数D.If arrItem90语句的作用是当数组元素的值大于 90 时退出 For 循环22.设有命令按钮 Command1 的单击事件过程,代码如下: PrivateSubCommand1_Click() Dim a(3,3)As Integer For i=1 To 3 For j=1 To 3 a(i,j)=i*j+i Next j Next i Sum=0 For i=1 To 3 Sum=Sum+a(i, 4-i) Next i Print Sum End Sub 运行程序,单击命令按钮,输出结果是_。(分数:2.50)A.20B.7C.16D.
8、1723.在窗体上画 1 个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() a=0 For i=1 To 2 For j=1 To 4 If j Mod 20 Then a=a-1 End If a=a+1 Next j Next i Print a End Sub 程序运行后,单击命令按钮,输出结果是_。(分数:2.50)A.0B.2C.3D.424.窗体上有名称分别为 Text1、Text2 的 2 个文本框,有一个由 3 个单选按钮构成的控件数组 Option1,如图 1 所示。程序运行后,如果单击某个单选按钮,则执
9、行 Text1 中的数值与该单选按钮所对应的运算(乘以 1、10 或 100),并将结果显示在 Text2 中,如图 2 所示。为了实现上述功能,在程序中的问号(?)处应填入的内容是_。 (分数:2.50)A.IndexB.Option1.IndexC.Option1(Index)D.Option1(Index).Value25.在窗体上画 1 个命令按钮,其名称为 Command1,然后编写如下程序: Private Sub Command1_Click() Dim a(10) As Integer Dim x As Integer For i=1 To 10 a(i)=8+i Next x
10、=2 Print a(f(x)+x) End Sub Function f(x As Integer) x=x+3 f=x End Function 程序运行后,单击命令按钮,输出结果为_。(分数:2.50)A.12B.15C.17D.1826.以下关于过程的叙述中,错误的是_。(分数:2.50)A.事件过程是由某个事件触发而执行的过程B.函数过程的返回值可以有多个C.可以在事件过程中调用通用过程D.不能在事件过程中定义函数过程27.在窗体上画 3 个标签、3 个文本框(名称分别为 Text1、Text2 和 Text3)和 1 个命令按钮(名称为Command1),外观如下图所示。 (分数:
11、2.50)A.4B.6C.8D.1228.窗体上有名称分别为 Text1、Text2 的 2 个文本框,要求文本框 Text1 中输入的数据小于 500,文本框Text2 中输入的数据小于 1000,否则重新输入。为了实现上述功能,在以下程序中间号(?)处应填入的内容是_。 Private SubText1_LostFocus() Call CheckInput(Text1.500) End Sub Private SubText2_LostFocus() Call CheckInput(Text2.1000) End Sub Sub CheckInput(t As?, x As Intege
12、r) If Val(t.Text)x Then MsgBox “请重新输入!“ End If End Sub(分数:2.50)A.TextB.SelTextC.ControlD.Form29.在窗体上画 1 个文本框,其名称为 Text1,然后编写如下过程: Private SubText1_KeyDown(KeyCode As Integer, Shift As Integer) Print Chr(KeyCode) End Sub Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) Print Chr(KeyCode+
13、2) End Sub 程序运行后,把焦点移到文本框中,此时如果按“A”键,则输出结果为_。(分数:2.50)A.AAB.ABC.ACD.AD30.为了使列表框中的项目呈多列显示,需要设置的属性为_。(分数:2.50)A.ColumnsB.StyleC.ListD.MultiSelect31.在窗体上画 1 个命令按钮,名称为 Command1,然后编写如下程序: Dim Flag As Boolean Private Sub Command1_Click() Dim intNum As Integer intNum=InputBox(“请输入:“) If Flag Then Print f(i
14、ntNum) End If End Sub Function f(X As Integer)As Integer If X10 Then Y=X Else Y=X+10 End If f=Y End Function Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Flag=True End Sub 运行程序,首先单击窗体,然后单击命令按钮,在输入对话框中输入 5,则程序的输出结果为_。(分数:2.50)A.0B.5C.15D.无任何输出32.在菜单编辑器中建立 1
15、个名称为 Menu0 的菜单项,将其“可见”属性设置为 False,并建立其若干子菜单,然后编写如下过程: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button=1Then PopupMenu Menu0 End If End Sub 则以下叙述中错误的是_。(分数:2.50)A.该过程的作用是弹出一个菜单B.单击鼠标右键时弹出菜单C.Menu0 是在菜单编辑器中定义的弹出菜单的名称D.参数 X、Y 指明鼠标当前位置的坐标33.窗体上有 1 个名称为
16、 CD1 的通用对话框,1 个名称为 Command1 的命令按钮。命令按钮的单击事件过程如下: Private Sub Command1_Click() CD1.FileName=“ CD1.Filter=“All Files|*。*|(*。DoC)|*。Doc|(*。Txt)|*.txt“ CD1.FilterIndex=2 CD1.Action=1 End Sub 关于以上代码,错误的叙述是_。(分数:2.50)A.执行以上事件过程,通用对话框被设置为“打开”文件对话框B.通用对话框的初始路径为当前路径C.通用对话框的默认文件类型为*.TxtD.以上代码不对文件执行读写操作34.以下叙述
17、中错误的是_。(分数:2.50)A.用 Shell 函数可以执行扩展名为.exe 的应用程序B.若用 Static 定义通用过程,则该过程中的局部变量都被默认为 Static 类型C.Static 类型的变量可以在标准模块的声明部分定义D.全局变量必须在标准模块中用 Public 或 Global 声明35.以下关于文件的叙述中,错误的是_。(分数:2.50)A.使用 Append 方式打开文件时,文件指针被定位于文件尾B.当以输入方式(Input)打开文件时,如果文件不存在,则建立一个新文件C.顺序文件各记录的长度可以不同D.随机文件打开后,既可以进行读操作,也可以进行写操作36.如果在窗体
18、上有命令按钮 Ok,在代码编辑窗口有与之对应的 CmdOk_Click()事件,则命令按钮控件的名称属性和 Caption 属性分别为_。(分数:2.50)A.Ok,CrudB.Cmd,OkC.CmdOk,OkD.Ok,CmdOk37.下列说法错误的是_。(分数:2.50)A.窗体文件的扩展名为.frmB.一个窗体对应一个窗体文件C.Visual Basic 中的一个工程只包含一个窗体D.Visual Basic 中的一个工程最多可包含 255 个窗体38.表示 X 和 Y 之中有一个是奇数的表达式是_。(分数:2.50)A.X Mod 2=1 And Y Mod 2=1B.X Mod 2=1
19、 Or Y Mod 2=1C.(X Mod 2=1 And Y Mod 2=0)And(X Mod 2=0 And Y Mod 2=1)D.(X Mod 2=1 And Y Mod 2=0)Or(X Mod 2=0 And Y Mod 2=1)39.下列_是日期型数据。(分数:2.50)A.“01/03/2002“B.Date(“01/03/2002“)C.#01/02/2002#D.01/03/200240.设 a 为整型变量,不能正确表达数学关系“10a15”的 VB 表达式是_。(分数:2.50)A.10a15B.a=11 Or a=12 Or a=13 Or a=14C.a10 And
20、 a15D.Not(a=10) And Not(a=15)二级 VISUAL+BASIC-74 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:100.00)1.下列选项中不属于结构化程序设计方法的是_。(分数:2.50)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 20 世纪 70 年代以来,提出了许多软件设计方法,主要有:逐步求精:对复杂的问题,应设计一些子目标作过渡,逐步细化;自顶向下:程序设计时应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化;模块化:一个
21、复杂问题,肯定是由若干相对简单的问题构成。模块化是把程序要解决的总目标分解为分日标,再进一步分解为具体的小目标,把每个小目标称为一个模块,而可复用是而向对象程序设计的一个优点。2.两个或两个以上模块之间关联的紧密程度称为_。(分数:2.50)A.耦合度 B.内聚度C.复杂度D.数据传输特性解析:解析 耦合度是模块间互相连接的紧密程度的度量;内聚度是一个模块内部各个元素间彼此结合的紧密程度的度量。3.下列叙述中正确的是_。(分数:2.50)A.软件测试应该由程序开发者来完成B.程序经调试后一般不需要再测试C.软件维护只包括对程序代码的维护D.以上三种说法都不对 解析:解析 程序调试的任务是诊断和
22、改正程序中的错误。它与软件测试不同,软件测试是尽可能多地发现软件中的错误。先要发现软件的错误,然后借助于一定的调试工具去找出软件错误的具体位置。软件测试贯穿整个软件生命期,调试主要在开发阶段。为了达到更好的测试效果,应该由独立的第三方来构造测试。因为从心理学角度讲,程序人员或设计方在测试自己的程序时,要采取客观的态度程度不同地存在障碍。软件的运行和维护是指将已交付的软件投入运行,并存运行使用中不断地维护,根据新提出的需求进行必要而且可能的扩充和删改。4.按照“后进先出”原则组织数据的数据结构是_。(分数:2.50)A.队列B栈 C.双向链表D.二叉树解析:解析 栈和队列都是一种特殊的操作受限的
23、线性表,只允许在端点处进行插入和删除。两者的区别是:栈只允许在表的一端进行插入或删除操作,是一种“后进先出”的线性表;而队列只允许在表的一端进行插入操作,在另一端进行删除操作,是一种“先进先出”的线性表。具有记忆功能。双向链表和二叉树都没有按照“后进先出”的原则。5.下列叙述中正确的是_。(分数:2.50)A.线性链表是线性表的链式存储结构 B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构解析:解析 根据数据结构中各数据元素之间前后关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:有且只有一个根结点;每个结
24、点最多有一个前件,也最多有一个后件。则称该数据结构为线性结构,又称线性表。如果一个数据结构不是线性结构,则称之为非线性结构。线性表、栈与队列、线性链表都是线性结构,而二叉树是非线性结构。6.对如下二叉树: (分数:2.50)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA 解析:解析 后序遍历:若需遍历的二叉树为空,执行空操作;否则,依次执行下列操作: (1)首先按照后序遍历的顺序访问根结点的左子树; (2)然后按照后序遍历的顺序访问根结点的右子树; (3)最后访问根结点。7.在深度为 7 的满二叉树中,叶子结点的个数为_。(分数:2.50)A.32B.31C.64 D.63解
25、析:解析 所谓满二叉树是指这样的一种二叉树:除最后一层外,每层上的所有结点都有两个子结点。这就是说,在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的笫 k 层上有 2 k-1 个结点,且深度为 m 的满二叉树有 2 m-1 个结点。树的最大层次称为树的深度。本题中深度为 7,故叶子结点数为2 7-1 =64。8.“商品”与“顾客”两个实体集之间的联系一般是_。(分数:2.50)A.一对一B.一对多C.多对一D.多对多 解析:解析 在现实世界中,两个实体之间的联系可分为三种类型: 一对一联系(简记为 1:1):一对一的联系表现为主表中的每一条记录只与相关表中的一条记录相关联。 一对多联
26、系(简记为 1:n):一对多的联系表现为主表中的每一条记录与相关表中的多条记录相关联。 多对多联系(简记为 m:n 或 m:n):多对多的联系表现为一个表中的多个记录在相关表中同样有多个记录其匹配。 该题目中一个顾客可以购买多种商品,同一种商品可以有多个顾客购买,所以商品和顾客之间是多对多的联系。9.在 E-R 图中,用来表示实体的图形是_。(分数:2.50)A.矩形 B.椭圆形C.菱形D.三角形解析:解析 该题目主要考的是 E-R 模型的图示法:在 E-R 图中用矩形表示实体,在矩形内写上该实体的名字,这是实体表示法;用椭圆表示属性,在椭圆形内写上该属性的名称,这是属性表示法;用菱形表示联系
27、,这是联系表示法。10.数据库 DB、数据库系统 DBS、数据库管理系统 DBMS 之间的关系是_。(分数:2.50)A.DB 包含 DBS 和 DBMSB.DBMS 包含 DB 和 DBSC.DBS 包含 DB 和 DBMS D.没有任何关系解析:解析 数据库系统由如下几部分组成:数据库、数据库管理系统、数据库管理员、系统平台(硬件平台和软件平台)。所以数据库、数据库系统与数据库管理系统之间的关系是数据库系统包含数据库和数据库管理系统。11.以下关于 Visual Basic 特点的叙述中,错误的是_。(分数:2.50)A.Visual Basic 是采用事件驱动编程机制的语言B.Visua
28、l Basic 程序既可以编译运行,也可以解释运行C.构成 Visual Basic 程序的多个过程没有固定的执行顺序D.Visual Basic 程序不是结构化程序,不具备结构化程序的三种基本结构 解析:解析 本题主要考查对 Visual Basic 特点的理解。Visual Basic 是一种可视化的、面向对象的采用事件驱动方式的结构化高级程序设计语言,同时 Visual Basic 的程序既可以编译运行,也可以解释运行,Visual Basic 中的过程没有固定的执行次序。12.以下叙述中,错误的是_。(分数:2.50)A.一个 Visual Basic 应用程序可以含有多个标准模块文件
29、B.一个 Visual Basic 工程可以含有多个窗体文件C.标准模块文件可以属于某个指定的窗体文件 D.标准模块文件的扩展名是.bas解析:解析 标准模块也称全局模块或总模块,由全局变量声明、模块层声明及通用过程等几部分组成,因此标准模块不能属于某个特定的窗体文件。13.以下叙述中,错误的是_。(分数:2.50)A.在 Visual Basic 中,对象所能响应的事件是由系统定义的B.对象的任何属性既可以通过属性窗口设定,也可以通过程序语句设定 C.Visual Basic 中允许不同对象使用相同名称的方法D.Visual Basic 中的对象具有自己的属性和方法解析:解析 在 Visua
30、l Basic 中,并不是对象的任何属性既可以通过属性窗口设定,也可以通过程序语句设定,如 Name(名称)属性只能在属性窗口中改变。14.设有如下语句: Dim a,b As Integer c=“Visual Basic“ d=#7/20/2005# 以下关于这段代码的叙述中,错误的是_。(分数:2.50)A.a 被定义为 Integer 类型变量 B.b 被定义为 Integer 类型变量C.c 中的数据是字符串D.d 中的数据是日期类型解析:解析 当在一个 Dim 语句中定义多个变量时,每个变量都要用 As 声明其类型,否则该变量被看作是变体类型,所以 A 是错的。其他选项均是正确的。
31、15.以下能从字符串“Visual Basic“中直接取出子字符串“Basic“的函数是_。(分数:2.50)A.LeftB.Mid C.StringD.Instr解析:解析 A 中的 Left 函数是从字符串左边起取 n 个字符,因此不能从字符串“Visual Basic“中直接取出子字符串“Basic“。C 中的 String 函数是得到由 n 个给定字符组成的一个字符串,因此也不能。D 中的 Instr 函数是在字符串中查找给定的字符,返回该字符在 x 中的位置,因此也不能。只有 B 是满足要求的,故选 B。16.设 a=4,b=3,c=2,d=1,下列表达式的值是_。 ab+1 Or
32、cd And b Mod c(分数:2.50)A.TrueB.1C.-1D.0 解析:解析 各种运算符间的优先顺序是:先处理算术运算符,接着处理关系运算符,最后处理逻辑运算符。因此先计算 b+1=3+1=4,b Mod c=3 Mod 2=1,再算 ab+1,结果为 False;cd,结果为 False;由于 And 的优先级比 Or 高,则先计算(cd)And(b Mod c),结果为 0;最后计算(a(b+1)Or(cd)An(1(b Mod c),最终的结果为 0,故选 D。17.以下可以作为 Visual Basic 变量名的是_。(分数:2.50)A.A#AB.counstA C.3
33、AD.?AA解析:解析 变量名的命名规则:首字符必须是英文字母,作为变量名的字符串内不得包括点号和用于类型说明的字符%、 x+yC.Print “A=“+Str(x+y)D.Print “A=“ If arrItem90 Then Exit For Next End Sub 对于该事件过程,以下叙述中错误的是_。(分数:2.50)A.a 数组中的数据是 30 个 100 以内的整数B.语句 For Each arrItem In a 有语法错误 C.If arrItem Mod 7=0语句的功能是输出数组中能够被 7 整除的数D.If arrItem90语句的作用是当数组元素的值大于 90 时
34、退出 For 循环解析:解析 该题考查的是 For EachNext 语句。该语句可用于对数组元素进行处理,重复执行的次数由数组中元素的个数确定的,因此 For Each arrItem In a 是没有语法错误的,相反,For EachNext语句比 ForNext 语句更方便,因为它不用指明循环结束的条件。所以选 B。22.设有命令按钮 Command1 的单击事件过程,代码如下: PrivateSubCommand1_Click() Dim a(3,3)As Integer For i=1 To 3 For j=1 To 3 a(i,j)=i*j+i Next j Next i Sum=
35、0 For i=1 To 3 Sum=Sum+a(i, 4-i) Next i Print Sum End Sub 运行程序,单击命令按钮,输出结果是_。(分数:2.50)A.20B.7C.16 D.17解析:解析 经赋值后数组 a 的元素为(2,3,4,4,6,8,6,9,12),而第三个 For 循环语句的作用是求次对角线上三个元素的和,即 Sum=a(1,3)+a(2,2)+a(3,1)=4+6+6=16。23.在窗体上画 1 个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() a=0 For i=1 To 2 For
36、 j=1 To 4 If j Mod 20 Then a=a-1 End If a=a+1 Next j Next i Print a End Sub 程序运行后,单击命令按钮,输出结果是_。(分数:2.50)A.0B.2C.3D.4 解析:解析 此程序有两重循环,内循环的功能是对变量 a 进行运算,外循环的功能是内循环重复执行。a 的初值为 0,当外循环变量 i=1 时,内循环重复执行循环体 4 次,变量 a 的值分别为 0,1,1,2;当外循环变量 i=2 时,内循环重复执行循环体 4 次,变量 a 的值分别为 2,3,3,4。此时整个循环结束,变量 a 的值定格在 4 上,因此输出的结果
37、为 4,故选 D。24.窗体上有名称分别为 Text1、Text2 的 2 个文本框,有一个由 3 个单选按钮构成的控件数组 Option1,如图 1 所示。程序运行后,如果单击某个单选按钮,则执行 Text1 中的数值与该单选按钮所对应的运算(乘以 1、10 或 100),并将结果显示在 Text2 中,如图 2 所示。为了实现上述功能,在程序中的问号(?)处应填入的内容是_。 (分数:2.50)A.Index B.Option1.IndexC.Option1(Index)D.Option1(Index).Value解析:解析 在程序运行阶段,为了区分控件数组中的各个元素,Visual Ba
38、sic 把下标值传送给一个过程,程序根据 Index 属性来确定执行控件数组中的哪个元素,因此“?”处应该填 Index,故选 A。25.在窗体上画 1 个命令按钮,其名称为 Command1,然后编写如下程序: Private Sub Command1_Click() Dim a(10) As Integer Dim x As Integer For i=1 To 10 a(i)=8+i Next x=2 Print a(f(x)+x) End Sub Function f(x As Integer) x=x+3 f=x End Function 程序运行后,单击命令按钮,输出结果为_。(分
39、数:2.50)A.12B.15C.17D.18 解析:解析 由于程序中采用的是按地址传递,因此,当形参发生改变的时候,实参也随着改变。一开始 x=2,但在执行完过程 f()后,x 的值变为了 5,所以在窗体上显示的是 a(10),即 18,故选 D。26.以下关于过程的叙述中,错误的是_。(分数:2.50)A.事件过程是由某个事件触发而执行的过程B.函数过程的返回值可以有多个 C.可以在事件过程中调用通用过程D.不能在事件过程中定义函数过程解析:解析 函数过程的返回值只能有一个,因此 B 是错误的,其他选项均是正确的,故选 B。27.在窗体上画 3 个标签、3 个文本框(名称分别为 Text1
40、、Text2 和 Text3)和 1 个命令按钮(名称为Command1),外观如下图所示。 (分数:2.50)A.4B.6C.8D.12 解析:解析 Function f 过程的功能是求两个正整数的最大公约数,并将最大公约数在 Text3 中显示出来。36 和 24 的最大公约数为 12,故选 D。28.窗体上有名称分别为 Text1、Text2 的 2 个文本框,要求文本框 Text1 中输入的数据小于 500,文本框Text2 中输入的数据小于 1000,否则重新输入。为了实现上述功能,在以下程序中间号(?)处应填入的内容是_。 Private SubText1_LostFocus()
41、Call CheckInput(Text1.500) End Sub Private SubText2_LostFocus() Call CheckInput(Text2.1000) End Sub Sub CheckInput(t As?, x As Integer) If Val(t.Text)x Then MsgBox “请重新输入!“ End If End Sub(分数:2.50)A.TextB.SelTextC.Control D.Form解析:解析 在一个通用过程中设置相同性质控件所需要的属性,然后用不同的控件调用此过程。29.在窗体上画 1 个文本框,其名称为 Text1,然后编
42、写如下过程: Private SubText1_KeyDown(KeyCode As Integer, Shift As Integer) Print Chr(KeyCode) End Sub Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer) Print Chr(KeyCode+2) End Sub 程序运行后,把焦点移到文本框中,此时如果按“A”键,则输出结果为_。(分数:2.50)A.AAB.ABC.AC D.AD解析:解析 当按下【A】键时,触发 Text1 KeyDown 事件,在窗体上显示“A”;当松开【A】键
43、时,触发 Text1_KeyUp 事件,将“A”的 KeyCode 码加 2 后显示在窗体上,即显示“C”,故选 C。30.为了使列表框中的项目呈多列显示,需要设置的属性为_。(分数:2.50)A.Columns B.StyleC.ListD.MultiSelect解析:解析 Style 为外观属性,该属性用于确定控件的外观;List 为表属性,用于保存列表内容。也可以使用以下形式来访问列表;MultiSelect 为选择多个表项属性,该属性用来设置一个可以选择的表项数;Columns 为列表框显示形式,取值为 0 时,逐行显示列表项,可能有垂直滚动条;取值为大于 0 的值时,列表项可占多行显
44、示。故答案为 A。31.在窗体上画 1 个命令按钮,名称为 Command1,然后编写如下程序: Dim Flag As Boolean Private Sub Command1_Click() Dim intNum As Integer intNum=InputBox(“请输入:“) If Flag Then Print f(intNum) End If End Sub Function f(X As Integer)As Integer If X10 Then Y=X Else Y=X+10 End If f=Y End Function Private Sub Form_MouseUp(
45、Button As Integer, Shift As Integer, X As Single, Y As Single) Flag=True End Sub 运行程序,首先单击窗体,然后单击命令按钮,在输入对话框中输入 5,则程序的输出结果为_。(分数:2.50)A.0B.5 C.15D.无任何输出解析:解析 Form_MouseUp 过程的作用是将布尔型变量 Flag 设置为 True,Furiction f 过程的作用是把 InputBox 中输入的数(设为 a)与 10 作比较,如果大于 10 则返回 a+10;如果小于 10,则返回 a。此时在判断 Flag 的值,如果为 True
46、,则输出 Function f 过程的返回值,如果为 False,则无任何输出。32.在菜单编辑器中建立 1 个名称为 Menu0 的菜单项,将其“可见”属性设置为 False,并建立其若干子菜单,然后编写如下过程: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button=1Then PopupMenu Menu0 End If End Sub 则以下叙述中错误的是_。(分数:2.50)A.该过程的作用是弹出一个菜单B.单击鼠标右键时弹出菜单 C.Me
47、nu0 是在菜单编辑器中定义的弹出菜单的名称D.参数 X、Y 指明鼠标当前位置的坐标解析:解析 Form_MouseDown 事件过程中,当参数 Button=1 时,表示按下鼠标左键,就会弹出菜单,则 B 是错误的,其他选项均正确,故选 B。33.窗体上有 1 个名称为 CD1 的通用对话框,1 个名称为 Command1 的命令按钮。命令按钮的单击事件过程如下: Private Sub Command1_Click() CD1.FileName=“ CD1.Filter=“All Files|*。*|(*。DoC)|*。Doc|(*。Txt)|*.txt“ CD1.FilterIndex=
48、2 CD1.Action=1 End Sub 关于以上代码,错误的叙述是_。(分数:2.50)A.执行以上事件过程,通用对话框被设置为“打开”文件对话框B.通用对话框的初始路径为当前路径C.通用对话框的默认文件类型为*.Txt D.以上代码不对文件执行读写操作解析:解析 由于 CD1.FilterIndex=2,则通用对话框的默认文件类型为*.DoC,则 B 是错误的,其他 3个选项均是正确的,故选 C。34.以下叙述中错误的是_。(分数:2.50)A.用 Shell 函数可以执行扩展名为.exe 的应用程序B.若用 Static 定义通用过程,则该过程中的局部变量都被默认为 Static 类型C.Static 类型的变量可以在标准模块的声明部分定义 D.全局变量必须在标准模块中用 Public 或 Global 声明解析:解析 Static 语句只能出现在事件过程、Sub 过程或 Function 过程中,不能在标准模块的声明部分定义,则 C 是错误