为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

2007年4月全国计算机等级考试二级VB笔试试卷

2010-08-20 21页 doc 146KB 27阅读

用户头像

is_637923

暂无简介

举报
2007年4月全国计算机等级考试二级VB笔试试卷2007年4月全国计算机等级考试二级VB笔试试卷(含解答评析) 一、 选择题(第小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1) 下列叙述中正确的是  A) 算法的效率只与问题的规模有关,而与数据的存储结构无关 B) 算法的时间复杂度是指执行算法所需要的计算工作量 C) 数据的逻辑结构与存储结构是一一对应的 D) 算法的时间复杂度与空间复杂度一定相关  (2) 在结构化程序设计中,模块划分的原则是  A) 各模块应包括尽量多的...
2007年4月全国计算机等级考试二级VB笔试试卷
2007年4月全国计算机等级考试二级VB笔试试卷(含解答评析) 一、 选择(第小题2分,共70分) 下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的。请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。 (1) 下列叙述中正确的是  A) 算法的效率只与问题的规模有关,而与数据的存储结构无关 B) 算法的时间复杂度是指执行算法所需要的计算工作量 C) 数据的逻辑结构与存储结构是一一对应的 D) 算法的时间复杂度与空间复杂度一定相关  (2) 在结构化程序设计中,模块划分的原则是  A) 各模块应包括尽量多的功能 B) 各模块的规模应尽量大 C) 各模块之间的联系应尽量紧密 D) 模块内具有高内聚度、模块间具有低耦合度 (3) 下列叙述中正确的是  A) 软件测试的主要目的是发现程序中的错误 B) 软件测试的主要目的是确定程序中错误的位置 C) 为了提高软件测试的效率,最好由程序编制者自己来完成软件的测试工作 D) 软件测试是证明软件没有错误 (4) 下面选项中不属于面向对象程序设计特征的是  A)继承性    B)多态性    C)类比性    D)封装性 (5) 下列对队列的叙述正确的是  A) 队列属于非线性 B) 队列按“先进后出”原则组织数据 C) 队列在队尾删除数据 D) 队列按“先进先出”原则组织数据 (6) 对下列二叉树                             A                       B                        C D                   E         F                  X       Y                         Z 进行前序遍历的结果为 A)DYBEAFCZX                B)YDEBFZXCA C)ABDYECFXZ                D)ABCDEFXYZ (7)某二叉树中有n个度为2的结点,则该二叉树中的叶子结点数为  A)n+1        B)n-1            C)2n         D)n/2 (8)在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是  A)并           B)交          C)投影       D)笛卡儿乘积 (9)在E—R图中,用来表示实体之间联系的图形是  A)矩形          B)椭圆形       C)菱形        D)平行四边形 (10)下列叙述中错误的是  A)在数据库系统中,数据的物理结构必须与逻辑结构一致 B)数据库技术的根本目标是解决数据共享问题 C)数据库技术是指己有数据管理系统的基础上建立数据库 D)数据库系统需要操作系统的支持 (11)下面可以正确定义2个整型变量和1个字符串变量的语句是 A) Dim n,m As Integer,s As String B) Dim a%,b$,c As String C) Dim a As Integer,b, c As String D) Dim x%,y As Integer,z As String 考核: (1) 变量的声明; 答案: D 分析:请参阅书上77~78页。 格式1在定义变量时指定其数据类型:Dim 变量名 [As 数据类型] 格式2用类型说明符定义变量:Dim变量名[类型说明符] 若As 数据类型或类型说明符缺省,表示声明该变量为变体类型 数据类型 关键字 类型说明符 字节型 Byte 无 整型 Integer % 长整型 Long & 单精度型 Single ! 双精度型 Double # 货币型 Currency @ 字符串型 String $ (12) 下列表达式中不能判断x是否为偶数的是 A) x/2=Int(x/2) B) x Mod 2=0 C) Fix(x/2)=x/2 D) x\2=0 考核知识点: (1) 条件表达式的构造; (2) 运算符和函数的理解和应用 答案: D 分析:请参阅书上85~91页。判断x是否为偶数的条件是:x对2取余为0或x能被2整除,而选项D仅表示x对2整除商为0 (13) 设在名称为Myform的窗体上只有1个名称C1的命令按钮,下面叙述中正确的是 A) 窗体的Click事件过程的过程名是Myform_Click B) 命令按钮的Click事件过程的过程名是C1_Click C) 命令按钮的Click事件过程的过程名是Command1_Click D) 上述3种过程名称都是错误的 考核知识点: (1) 事件过程名; 答案: B 分析:采用书上201页。 窗体事件过程的一般形式如下: Private Sub Form_事件名([参数列表]) [局部变量和常数声明] 语句块 End Sub 控件事件过程的一般形式如下: Private Sub 控件名_事件名([参数列表]) [局部变量和常数声明] 语句块 End Sub 所以此处名称为Myform的窗体的Click事件过程的过程名是Form_Click,C1命令按钮的Click事件过程的过程名是C1_Click (14) 设窗体上有1个滚动条,要求单击滚动条右端的按钮一次,滚动块移动一定的刻度值,决定此刻度值的属性是 A)Max B)Min C)SmallChange D)LargeChange 考核知识点: (1) 滚动条的常用属性的功能 答案: C 分析:(1) Max和Min属性:用于设置滑块滚动的数值范围。 (2) SmallChange和LargeChange属性:用于设置滑块滚动的增量值,对于单击滚动条两端箭头可用SmallChange,而单击滚动条空白处则可用LargeChange指定其移动量。 (15)1个二维数组可以存放1个矩阵。在程序开始有语句Option Base 0,则下面定义的数组中正好可以存放1个4×3矩阵(即只有12个元素)的是 A) Dim a(-2 To 0,2) As Integer B) Dim a(3,2) As Integer C) Dim a(4,3) As Integer D) Dim a(-1 To -4,-1 To -3) As Integer 考核知识点: (1) 数组的声明定义(下标的设置),数组大小的计算 (2) Option Base的作用 答案: B 分析:请参阅书上166~167页。 数组声明格式中下标的格式为:[下界 To ]上界 其中,下界和上界分别表示该维的最小和最大的下标值;下界 To 可以缺省,若程序没有特别声明,默认的下标取值从0开始。 数组中数组元素的个数称为数组的长度(大小),数组元素的多少受内存的制约。 数组的大小(元素的个数) = 第一维大小 * 第二维大小 * …… 维的大小 = 维上界 - 维下界 + 1 Option Base 0表示数组下标从0开始。 A选项Dim a(-2 To 0,2) As Integer表示声明了3×3整形数组 B选项Dim a(3,2) As Integer表示声明了4×3整形数组 C选项Dim a(4,3) As Integer表示声明了5×4整形数组 D选项Dim a(-1 To -4,-1 To -3) As Integer存在语法错误,下标中的下界应小于上界。 (16)若设置了文本框的属性PasswordChar = "$",则运行程序时向文本框中输入8个任意字符后,文本框中显示的是 A) 8个"$" B) 1个"$" C) 8个"*" D) 无内容 考核知识点: (1) 文本框的属性PasswordChar的作用; 答案: A 分析:请参阅书上38页。 PasswordChar:口令属性。本属性的缺省值为空字符串,表示用户可以看到输入的字符;如果该属性的值为某个字符(例如:*),则表示本文本框用于输入口令,用户输入的内容仍保存在Text属性中,但输入的每个字符将被代换为PasswordChar属性设定的字符显示在文本框中;所以若设置了文本框的属性PasswordChar = "$",则运行程序时向文本框中输入8个任意字符后,文本框中显示的是8个"$" (17)设在窗体上有1个名称为Combo1的组合框,含有5个项目,要删除最后一项,正确的语句是 A) Combo1.RemoveItem Combo1.Text B) Combo1.RemoveItem 4 C) Combo1.RemoveItem Combo1.ListCount D) Combo1.RemoveItem 5 考核知识点: (1) 组合框的常用属性 (2) RemoveItem的调用格式 答案: B 分析:请参阅书上45~46页。 其中列表项序号是为列表项进行的位置编号,从上至下依次为0、1、2 ListCount:运行态属性,表示当前列表框中列表项的数目,常通过ListCount-1得到最后一个列表项的序号 Text:运行态属性,其值为当前最后选中的列表项的内容,与List(对象名.ListIndex)相同。对于组合框,Text属性值可表示用户直接在编辑区输入的文本或列表框中最后选中的列表项内容,用户可通过代码编辑器窗口直接对Text属性进行设置修改。 RemoveItem用于删除列表框和组合框中指定位置序号的列表项,该方法一次删除一个列表项。调用格式:对象名. RemoveItem 删除项的序号 此处窗体上的Combo1的组合框含有5个项目,要删除最后一项,即删除序号为4的列表项,所以应使用Combo1.RemoveItem 4 (18)工程中有2个窗体,名称分别为Form1、Form2,Form1为启动窗体,该窗体上有命令按钮Command1。要求程序运行后单击该命令按钮时显示Form2,则按钮的Click事件过程应该是 A) Private Sub Command1_Click() Form2.Show End Sub B) Private Sub Command1_Click() Form2.Visible End Sub C) Private Sub Command1_Click() Load Form2 End Sub D) Private Sub Command1_Click() Form2.Load End Sub 考核知识点: (1)窗体的常见事件和方法 答案: A 分析:请参阅书上34~37页。 Show用于显示窗体。调用格式:[窗体名.]Show Load(装载)事件:VB把窗体从磁盘或从磁盘缓冲区读入内存时触发本事件。Load事件往往用于在启动程序时对属性和变量进行初始化 VB程序在执行时会自动装载启动窗体,在使用Show方法显示窗体时,也会自动将尚未载入内存的窗体装入内存,并引发窗体的Load事件。若想将窗体(或其他对象)载入内存,但并不显示它,则可以使用装载语句;装载语句的格式:Load 对象名 (19)若在某窗体中有如下事件过程: Private Sub Command1_Click(Index Ad Integer) …… End Sub 则以下叙述中正确的是 A) 此事件过程与不带参数的事件过程没有区别 B) 有1个名称为Command1的窗体,单击此窗体则执行此事件过程 C) 有1个名称为Command1的控件数组,数组中有多个不同类型控件 D) 有1个名称为Command1的控件数组,数组中有多个相同类型控件 考核知识点: (1)窗体事件过程的框架; (2)控件数组 答案: D 分析:采用书上163~185,201页。 窗体事件过程的一般形式如下: Private Sub Form_事件名([参数列表]) [局部变量和常数声明] 语句块 End Sub 控件事件过程的一般形式如下: Private Sub 控件名_事件名([参数列表]) [局部变量和常数声明] 语句块 End Sub 控件数组是由一组相同类型的控件组成,使用相同的名称,具有基本相同的属性,执行不同的功能。 根据建立时的顺序,系统给每个控件元素赋予相同的名称和一个唯一的索引号(Index),即下标,下标从0开始。这些控件元素将使用相同的事件过程,为了区分是哪个控件数组元素触发的事件,VB会把它的下标值传送给事件过程的Index参数,然后在事件过程中根据Index参数的值来判断 (20)下面循环语句中在任何情况下都至少执行一次循环体的是 A) Do While <条件> 循环体 Loop B) While <条件> 循环体 Wend C) Do 循环体 Loop Until <条件> D) Do Until <条件> 循环体 Loop 考核知识点: (1)循环格式和执行流程; 答案: C 分析:参阅课本139~142页。 格式1: Do While 循环条件 循环体 Loop 格式2: Do 循环体 Loop While 循环条件 两种格式的循环结构的区别是:格式1是每一次进入循环,总是先进行判断循环条件是否为“True”,然后再决定是否进入执行循环体;而格式2则是先执行一次循环体,再进行判别循环条件是否为真“True”,以决定是否再次进入执行循环体。即格式1的循环形式有可能一次也没进入循环体执行,而格式2则是不管循环条件是否为真,至少执行一次循环体。 格式1: Do Until 循环条件 循环体 Loop 格式2: Do 循环体 Loop Until 循环条件 Until直到型循环与While当型循环的区别仅在于:前者当循环条件为“False”时,反复执行循环体,后者是当循环条件为“True”时反复执行循环体。格式1的循环形式有可能一次也没进入循环体执行,而格式2则是不管循环条件是否为真,至少执行一次循环体。 格式: While 循环条件 循环体 Wend 说明:这种结构使用完全类似于Do-Loop的当型循环(格式1),表示当循环条件为True时,反复执行循环体,直到循环条件为False为止。 (21)在窗体上有1个名为Cd1的通用对话框,为了在运行程序时打开保存文件对话框,则在程序中应使用的语句是 A) Cd1.Action = 2 B) Cd1.Action = 1 C) Cd1.ShowSave = True D) Cd1.ShowSave = 0 考核知识点: (1)通用对话框的Action属性和ShowSave方法的使用; 答案: A 分析:参阅课本277~278页。 Action功能属性 该属性直接决定打开何种类型的对话框。 0——None:无对话框显示。 1——Open:打开文件对话框。 2——Save As:另存为对话框。 3——Color:颜色对话框。 4——Font:字体对话框。 5——Printer:打印机对话框。 6——Help:帮助对话框。 该属性不能在属性窗口内设置,只能在程序中赋值,用于调出相应的对话框。 在实际应用中,除了可以通过对通用对话框的Action属性设置明确对话框的类型外,还可以使用VB提供的一组方法来打开不同类型的通用对话框。这些方法如下。 ShowOpen:打开对话框。 ShowSave:另存为对话框。 ShowColor:颜色对话框。 ShowFont:字体对话框。 ShowPrinter:打印机对话框。 ShowHelp:帮助对话框。 如果在程序中有下面的语句: Commondialog1.ShowSave或 Commondialog1.Action = 2 在运行到上面的语句时,系统就会调出“另存为”对话框。 (22) 下面关于菜单的叙述中错误的是 A) 各级菜单中的所有菜单项的名称必须唯一 B) 同一子菜单中的菜单项名称必须唯一,但不同子菜单中的菜单项名称可以相同 C) 弹出式菜单用PopupMenu方法弹出 D) 弹出式菜单也用菜单编辑器编辑 考核知识点: (1)菜单的设计 (2)菜单的命名 答案: B 分析:参阅课本P284~288页,弹出式菜单与下拉式菜单一样都是用菜单编辑器进行编辑设计的,各级菜单中的所有菜单项的名称必须唯一。 (23)已知有下面过程 Private Sub proc1_Click(a As Integer, b As String, Optional x As Boolean) …… End Sub 正确调用此过程的语句是 A) Call proc1(5) B) Call proc1 5, “abc”, False C) proc1(12, “abc”, True) D) proc1 5, “abc” 考核知识点: (1)过程调用的格式 (2)实参和形参的匹配关系 (3)可选参数 答案: D 分析:子程序过程的调用是一条独立的调用语句,有两种形式:一种是把过程名放在Call语句中,另一种是将过程名作为一个语句来使用。 1.用Call语句调用Sub过程 调用格式:Call 子程序过程名 [(实参列表)] 2.把过程名作为一个语句来使用 调用格式:过程名 [实参1[,实参2,…]] 与第一种方式相比,它有两点不同:(1)不需要关键字Call;(2)实参列表不需要加括号。 通常,子程序过程的调用,一般要求实参的次序必须与形参的次序相匹配,即位置顺序必须一致,而且实参和形参的数量必须相同,对应位置的参数数据类型要一致。 除非,子程序过程在定义时,用Optional关键字设置了可选参数,注意必须设置在形参表的最后,此时在调用该过程时,可以缺省可选参数所对应的参数。在过程体中可通过IsMissing函数测试调用时是否传送可选参数 此题四个选项中前三个不符合子程序过程的调用格式,选项D采用的是格式2形式,传送了必要的前两个实参,可选参数对应的第三个实参缺省。 (24)在窗体上有1个名称为Text1的文本框和1个名称为Command1的命令按钮,要求在程序执行时,每单击命令按钮一次,文本框向右移动一定距离。下面能够正确实现上述功能的程序是 A) Private Sub Command_Click() Text1.Left = 100 End Sub B) Private Sub Command_Click() Text1.Left = Text1.Left - 100 End Sub C) Private Sub Command_Click() Text1.Move Text1.Left + 100 End Sub D) Private Sub Command_Click() Text1.Move Text1.Left End Sub 考核知识点: (1)公共属性和方法的掌握 答案: C 分析:Left、Top是可见对象的位置属性:Top表示对象到直接容器上边框的距离,Left表示对象到直接容器左边框的距离;调用Move方法可以改变对象所在的位置,调用格式: [对象名.]Move 左边距离 [,上边距离 [,宽度 [,高度]]] 题目要求:每单击命令按钮一次,文本框向右移动一定距离,可以采用两种方法实现: (1)Private Sub Command_Click() Text1.Move Text1.Left + 100 End Sub (2)Private Sub Command_Click() Text1.Left = Text1.Left + 100 End Sub (25)某人创建了1个工程,其中的窗体名称为Form1;之后又添加了1个名为Form2的窗体,并希望程序执行时先显示Form2窗体,那么,他需要做的工作是 A) 在工程属性对话框中把“启动对象”设置为Form2 B) 在Form1的Load事件过程中加入语句 Load Form2 C) 在Form2的Load事件过程中加入语句 Form2.Show D) 把Form2的TabIndex属性设置为1,把Form1的TabIndex属性设置为2 考核知识点: (1)启动对象设置的作用 (2)Load方法和事件、Show方法、TabIndex属性的作用和区别 答案: A 分析:一个应用程序若具有多个窗体,它们多是并列关系。在程序运行过程中,首先执行的对象被称为启动对象。缺省情况下,第一个创建的窗体被指定为启动对象,即启动窗体。要指定其他窗体为启动窗体,应使用“工程”菜单中“属性”命令,在工程属性对话框中把“启动对象”设置。 当一个窗体要显示在屏幕之前,该窗体必须先“建立”,接着被装入内存(Load),最后显示(Show)在屏幕上 load语句 该语句把一个窗体装入内存。执行Load语句后,可以引用窗体中的控件及各种属性,但此时窗体没有显示出来。用Load语句装入窗体,其形式如下:Load 窗体名 在首次用Load语句将窗体调入内存时依次发生Initialize和Load事件。 Show方法 该方法用来显示一个窗体,它兼有加载和显示窗体两种功能。也就是说,在执行Show时,如果窗体不在内存中,则Show自动把窗体装入内存,然后再显示出来 TabIndex属性决定了按Tab键时,对象在其父窗体中得到焦点的顺序。 (26)窗体上有1个名称为Text1的文本框和1个名称为Command1的命令按钮。要求程序运行时,单击命令按钮,就可把文本框中的内容写到文件out.txt中,每次写入的内容附加到文件原有内容之后。下面能够正确实现上述功能的程序是 A) Private Sub Command_Click() Open “out.txt” For Input As #1 Print #1,Text1.Text Close #1 End Sub B) Private Sub Command_Click() Open “out.txt” For Output As #1 Print #1,Text1.Text Close #1 End Sub C) Private Sub Command_Click() Open “out.txt” For Append As #1 Print #1,Text1.Text Close #1 End Sub D) Private Sub Command_Click() Open “out.txt” For Random As #1 Print #1,Text1.Text Close #1 End Sub 考核知识点: (1) 顺序文件的基本操作 (2) 随机文件的基本操作 答案: C 分析:根据题目要求程序运行时,单击命令按钮,就可把文本框中的内容写到文件out.txt中,每次写入的内容附加到文件原有内容之后。抓住以上三点,确定(1)应在命令按钮的Click事件中实现以上功能(2)应以写的方式打开文件;(3)而且是追加写入,不是覆盖写入方式对文件操作,所以符合要求的只有答案C (27)为了计算1+3+5+…+99的值,某人编程如下 k = 1 s = 0 While k <= 99 k = k + 2 : s = s + k Wend Print s 在调试时发现运行结果有错误,需要修改。下列错误原因和修改中正确的是 A)While … Wend循环语句错误,应改为For k =1 To 99 … Next k B)循环条件错误,应改为While k < 99 C)循环前的赋值语句k=1错误,应改为k=0 D)循环中两条赋值语句的顺序错误,应改为s = s + k : k = k + 2 考核知识点: (1) While循环流程 (2) For循环流程 答案: D 分析:原代码的错误在于在累加过程中,由于K初始值为1,先K变化,后S累加,所以漏加1,多加101,所以选项D将循环中两条赋值语句的顺序调换一下,即可解决。若采用方案B循环条件改为While k < 99,还不够,还需要将S的初始值设置为1才行;而A方案将While … Wend循环语句改为For k =1 To 99 … Next k是不正确的,因为Next K本身包含K=K+1的变化 (28)下面程序在调试时出现了死循环: Private Sub Command_Click() n = InputBox(“请输入一个整数”) Do If n Mod 2 = 0 Then n = n + 1 Else n = n + 2 EndIf Loop Until n = 1000 End Sub 下面关于死循环的叙述中正确的是 A) 只有输入的n是偶数时才会出现死循环,否则不会 B) 只有输入的n是奇数时才会出现死循环,否则不会 C) 只有输入的n是大于1000的整数时才会出现死循环,否则不会 D) 输入任何整数都会出现死循环 考核知识点: (1) 循环和条件语句执行流程 (2) Mod运算符的应用和作用 答案: D 分析:条件表达式n Mod 2 = 0是用于判断n是否为偶数的,根据循环体中的If语句,可以发现:若n为偶数,经过一次循环n = n + 1之后就变为奇数,而若n为奇数,则n = n + 2,则始终为奇数。因此循环结束条件n=1000永远也不会满足,所以输入任何整数n都会出现死循环 (29)在窗体上有1个名称为CommonDialog1的通用对话框和1个名称为Command1的命令按钮,以及其他一些控件。要求在程序运行时,单击Command1按钮,则显示打开文件对话框,并在选择或输入了1个文件名后,就可以打开该文件。以下是Command1_Click事件过程的两种算法 算法1: Private Sub Command1_Click() CommonDialog1.ShowOpen Open CommonDialog1.FileName For Input As #1 End Sub 算法2: Private Sub Command1_Click() CommonDialog1.ShowOpen If CommonDialog1.FileName <> “” Then Open CommonDialog1.FileName For Input As #1 EndIf End Sub 下面关于这两种算法的叙述中正确的是 A) 显示打开文件对话框后若未选择或输入任何文件名,则算法2会出错,算法1不会 B) 显示打开文件对话框后若未选择或输入任何文件名,则算法1会出错,算法2不会 C) 两种算法的执行结果完全一样 D) 算法1允许输入的文件名中含有空格,而算法2不允许 考核知识点: (1) 通用对话框FileName属性的作用 答案: B 分析:通用对话框FileName属性中存放打开对话框用户选定的文件名或保存对话框中用户输入的文件名,所以根据执行流程,可以看到算法2,对于打开文件对话框中FileName属性先做判断,仅当选择或输入了文件名,才打开指定的文件,否则什么也不做,但算法1则没有做判断,这样会导致当未选择或输入任何文件名,打开操作失败的错误。 (30) 窗体上有1个名称为List1的列表框,其中已经输入了若干个项目(如图所示);还有2个文本框,名称分别为Text1、Text2,1个名称为Command1的命令按钮,并有以下程序 Private Sub Command1_Click() Dim str As String, s As String, k As Integer s = Text1 str = "" For k = List1.ListCount - 1 To 0 Step -1 If InStr(List1.List(k), s) > 0 Then str = str & List1.List(k) & " " End If Next k If str = "" Then Text2 = "没有匹配的项目" Else Text2 = str End If End Sub 程序运行时,在Text1中输入“京”,单击命令按钮,则在Text1中显示的内容是 A) 京 B) 北京 南京 C) 南京 北京 D) 没有匹配的项目 考核知识点: (1) For循环的执行流程 (2) 列表框的常用属性以及访问方法 (3) Instr函数的功能 答案: C 分析: For k = List1.ListCount - 1 To 0 Step -1 If InStr(List1.List(k), s) > 0 Then str = str & List1.List(k) & " " End If Next k 上述代码的作用是:逆序访问列表框的每一列表项,查找是否存在某个列表项内容包含text1中的内容,若包含,则顺序连接存放在Str中。 (31)在窗体上画1个名称为Command1的命令按钮,并编写如下程序: Private Sub Command1_Click() Print FUN("ABCDEFG") End Sub Function FUN(ST As String) As String STLEN = Len(ST) TEMP = "" For K = 1 To STLEN / 2 TEMP = TEMP + Mid(ST, K, 1) + Mid(ST, STLEN - K + 1, 1) Next K FUN = TEMP End Function 程序运行时,单击命令按钮,则在窗体上显示的是 A) ABCDEFG B) AGBFCE C) GFEDCBA D) AGBFCED 考核知识点: (1) 调用函数过程执行流程 (2) For循环的执行流程 (3) 常用字符串函数 答案: B 分析: For K = 1 To STLEN / 2 TEMP = TEMP + Mid(ST, K, 1) + Mid(ST, STLEN - K + 1, 1) Next K 作用从字符串ST两侧提取一个字符成对连接起来,注意此处循环的终值为STLEN / 2即3.5,由于K的初值为1,且步长为1,所以循环3次。 (32)在窗体上先后画2个图片框,名称分别为Picture1和banana,banana中添加了香蕉图片(见图1),且将banana.DragMode属性设置为1。要求程序运行时,可以用鼠标把banana拖曳到Picture1中(见图2)。能实现此功能的事件过程是 A) Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) banana.Move Picture1.Left + X, Picture1.Top + Y End Sub B) Private Sub banana_DragDrop(Source As Control, X As Single, Y As Single) Source.Move Picture1.Left + X, Picture1.Top + Y End Sub C) Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single) Source.Move Picture1.Left + X, Picture1.Top + Y End Sub D) Private Sub Picture1_DragDrop(Source As Control, X As Single, Y As Single) banana.Move banana.Left + X, banana.Top + Y End Sub 考核知识点: (1) 拖放 答案: C 分析: DragMode属性:用来设置源对象的拖放模式。当DragMode属性设置为1,则为自动拖动方式,控件不能正常响应鼠标事件。默认设置为0,表示启用手动拖动方式,这时必须在MouseDown事件过程中,用Drag方法启动“拖动”,确定拖放操作开始;常常在MouseUp事件过程中,用Drag方法关闭“拖动”,确定拖放操作结束。 DragDrop 事件:在一个完整的拖放动作(即将一个控件source拖动到目标对象object上,并释放鼠标按钮)完成 Private Sub object_DragDrop([index As Integer,]source As Control, x As Single, y As Single) …… End Sub 一般利用DragDrop事件过程用来控制在一个拖动操作完成时将会发生的情况。例如,可将源控件移到一个新的位置或将一个文件从一个位置复制到另一个位置。 (33)在窗体上画1个名称为Command1的命令按钮,然后编写如下事件过程 Option Base 1 Private Sub Command1_Click() Dim a(5, 5) As Integer For i = 1 To 5 For j = 1 To 5 a(i, j) = (i + j) * 5 \ 10 Next j Next i s = 0 For i = 1 To 5 s = s + a(i, i) Next i Print s End Sub A) 15 B) 13 C) 11 D) 9 考核知识点: (1) 数组的基本访问操作 (2) 循环的基本流程 答案: A 分析: For i = 1 To 5 For j = 1 To 5 a(i, j) = (i + j) * 5 \ 10 Next j Next i 上述代码是完成给二维数组元素赋值,根据赋值公式,计算得到a(i, i) = (i + i) * 5 \ 10=i 即a(1, 1) =1、a(2, 2) =2、a(3, 3) =3、a(4, 4) =4、a(5, 5) =5 s = 0 For i = 1 To 5 s = s + a(i, i) Next i Print s 上述代码是完成二维数组中次对角线上元素求和,并输出 (34)在窗体上从左到右有Text1、Text2两个文本框(见图),要求程序运行时,在Text1中输入1个分数后按回车键,则判断分数的合法性,若分数为0~100中的1个数,则光标移到Text2中;否则光标不动,并弹出对话框显示“分数错”。下面程序中正确的是 A) Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then a = Val(Text1) If a >= 0 Or a <= 100 Then Text2.SetFocus Else Text1.SetFocus: MsgBox ("分数错") End If End If End Sub B) Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then a = Val(Text1) If a >= 0 And a <= 100 Then Text1.SetFocus Else Text2.SetFocus: MsgBox ("分数错") End If End If End Sub C) Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then a = Val(Text1) If a < 0 And a > 100 Then Text2.SetFocus Else Text1.SetFocus: MsgBox ("分数错") End If End If End Sub D) Private Sub Text1_KeyPress(KeyAscii As Integer) If KeyAscii = 13 Then a = Val(Text1) If a >= 0 And a <= 100 Then Text2.SetFocus Else Text1.SetFocus: MsgBox ("分数错") End If End If End Sub 考核知识点: (1) 题目的理解,逻辑分析能力 (2) 文本框常见的事件、方法和属性的应用 (3) 逻辑表达式的准确构造 (4) Msgbox的使用 答案: D 分析:若分数为0~100中的1个数,则光标移到Text2中;否则光标不动,并弹出对话框显示“分数错”。 a = Val(Text1) If a >= 0 And a <= 100 Then ‘分数为0~100中的1个数 Text2.SetFocus Else Text1.SetFocus: MsgBox ("分数错") End If (35)在窗体上画2个命令按钮,名称分别为Command1、Command2,并编写如下程序 Const n = 5, m = 4 Dim a(m, n) Private Sub Command1_Click() k = 1 For i = 1 To m For j = 1 To n a(i, j) = k k = k + 1 Next j Next i End Sub Private Sub Command2_Click() summ = 0 For i = 1 To m For j = 1 To n If i = 1 Or i = m Then summ = summ + a(i, j) Else If j = 1 Or j = n Then summ = summ + a(i, j) End If End If Next j Next i Print summ End Sub 过程Command1_Click()的作用是在二维数组a中存放1个m行n列的矩阵;过程Command2_Click()的作用是 A)计算矩阵外围一圈元素的累加和 B)计算矩阵除外围一圈以外的所有元素的累加和 C)计算矩阵第1列和最后一列元素的累加和 D)计算矩阵第1行和最后一行元素的累加和 考核知识点: (1) 数组的基本操作 (2) 规律性访问的分析和理解能力 答案: A 分析: summ = 0 For i = 1 To m For j = 1 To n If i = 1 Or i = m Then ‘第1行或最后1行 summ = summ + a(i, j) Else If j = 1 Or j = n Then ‘第1列或最后1列 summ = summ + a(i, j) End If End If Next j Next i 二、填空题(每空2分,共30分) 请将每一个空的正确答案写在答题纸上[1]~[15]序号的横线上,答在试卷上,答在试卷上不得分, 注意:以命令关键字填空的必须写完整 (1)在深度为7的满二叉树中,度为2的结点个数为__________。 (2)软件测试分为白箱(盒)测试和黑箱(盒)测试,等价类划分法属于___________ 测试。 (3)在数据库系统中,实现各种数据管理功能的核心软件称为    数据库管理系统__________ (4)软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于   _____阶段。 (5)在结构化分析使用的数据流图(DFD)中,利用 _____  对其中的图形元素进行确切解释。 (6)下面程序的功能是从键盘输入1个大于100的整数m,计算并输出满足不等式 1+22+32+42+…+n2
/
本文档为【2007年4月全国计算机等级考试二级VB笔试试卷】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索