2024年1月18日发(作者:)

无纸化真考题库试题(11)

1.算法一般都可以用哪几种控制结构组合而成( )。

A) 选择、分支、递归 B) 顺序、循环、选择 C) 循环、递归、选择 D) 顺序、选择、嵌套

参考答案:B

【解析】算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,而且也直接反映了算法的设计是否符合结构化原则。一个算法一般都可以用顺序、循环、选择三种基本控制结构组合而成。 本题答案为B)

2. 用链表表示线性表的优点是( )。

A) 花费的存储空间较顺序存储少 B) 没有明显优势 C) 便于插入和删除操作 D) 便于随机存取操作

参考答案:C

【解析】链式存储结构克服了顺序存储结构的缺点:它的结点空间可以动态申请和释放;它的数据元素的逻辑次序靠结点的指针来指示,不需要移动数据元素。故链式存储结构下的线性表便于插入和删除操作。本题答案为C)。

3.在下列几种排序方法中,要求内存量最大的是( )。

A) 冒泡排序 B) 插入排序和选择排序 C) 归并排序 D) 快速排序

参考答案:C

【解析】快速排序的基本思想是,通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,再分别对这两部分记录继续进行排序,以达到整个序列有序;插入排序的基本操作是指将无序序列中的各元素依次插入到已经有序的线性表中,从而得到一个新的序列;选择排序的基本思想是:扫描整个线性表,从中选出最小的元素,将它交换到表的最前面(这是它应有的位置),然后对剩下的子表采用同样的方法,直到表空为止;归并排序是将两个或两个以上的有序表组合成一个新的有序表。本题答案为C)。

4.下面不属于软件工程的3要素的是( )。

A) 需求 B) 需求 C) 工具 D) 过程

参考答案:A

【解析】软件工程包括3个要素,即方法、工具和过程。 本题答案为A)。

5.下列不属于结构化分析的常用工具的是( )。

A) 数据流图 B) 流程图 C) 数据字典 D) 判定树和判定表

参考答案:B

【解析】结构化分析的常用工具有数据流图、数据字典、判定树和判定表。而PAD流程图是常见的过程设计工具中的图形设计。本题答案为B)。

6.在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看做是( )。

A) 路径的集合 B) 选择的集合 C) 操作的集合 D) 目标的集合

参考答案:A

【解析】软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。本题答案为A)。

7.在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有( )。

A) 数据较低的冗余度 B) 数据共享度高 C) 特定的数据模型 D) 专门的数据管理软件

参考答案:C

【解析】在文件系统中,相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费,不方便使用。而在数据库系统中,数据是结构化的,这种结构化要求在描述数据时不仅描述数据本身,还要描述数据间的关系,这正是通过采用特定的数据模型来实现的。本题答案为C)。

8.下列说法中,不属于数据模型所描述的内容的是( )。

A) 数据结构 B) 数据操作 C) 数据约束 D) 数据管理

参考答案:D

【解析】数据模型所描述的内容有3个部分,它们是数据结构、数据操作和数据约束。其中,数据模型中的数据结构主要描述数据的类型、内容、性质,以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式。本题答案为D)。

9.用二维表的形式表示实体和实体间联系的数据模型( )。

A) 关系模型 B) 层次模型 C) 网状模型 D) 数据模型

参考答案:A

【解析】层次模型是最早发展出来的数据库模型。它的基本结构是树形结构,这种结构方式在现实世界中很普遍,如家族结构、行政组织机构,它们自顶向下、层次分明。

关系模型:用二维表的形式表示实体和实体间联系的数据模型。关系模型的特点:

关系模型与非关系模型不同,它是建立在严格的数学概念基础上的。

关系模型的概念单一,无论实体或实体之间的联系都用关系表示。

存取路径对用户透明。 关系必须是规范化的关系。本题答案为A)。

10.在数据库设计中,将E-R图转换成关系数据模型的过程属于( )。

A) 需求分析阶段 B) 概念设计阶段 C) 逻辑设计阶段 D) 物理设计阶段

参考答案:C

【解析】数据库的逻辑设计主要工作是将E-R图转换成指定的RDBMS中的关系模式。

11.以下合法的VB变量名是( )。

A) _x B) 2y C) a#b D) x_1_x

答案:D【解析】VB中变量的命名规则为:①必须以字母或汉字开头②由字母、汉字、数字或下划线组成③不能使用VB的保留字。_x不能以_下划线开头,不合法;2y不能以数字开头,不合法;a#b中有#,不合法;D选项符合命名规则,故D选项正确

12.以下关于VB特点的叙述中,错误的是( )。

A) VB中一个对象可有多个事件过程 B) VB应用程序能以编译方式运行

C) VB应用程序从Form_Load事件过程开始执行 D) 在VB应用程序中往往通过引发某个事件导致对对象的操作

参考答案:C【解析】VB程序不一定从From_Load事件开始执行,它由工程中启动对象决定先从哪儿开始执行。故C选项错误

13.有如下语句序列:

Dim a, b As Integer

Print a

Print b 执行以上语句序列,下列叙述中错误的是( )。

A) 输出的a值是0 B) 输出的b值是0 C) a是变体类型变量 D) b是整型变量

参考答案:A

【解析】任何变量在被声明后都会有一个初始值。一般情况下,数值型变量的初始值为0;字符串变量的初始值为空字符串;变体型变量的初始值为空值,即Null值;布尔型的初始值为假,即False。

本题中变量a定义时没有声明数据类型,默认为Variant变体型变量,默认值是Null;变量b定义为整型变量,默认值为0。所以输出a为空白,b为0 。故A选项错误。

14.以下关于控件数组的叙述中,错误的是( )。

A) 各数组元素共用相同的事件过程 B) 各数组元素通过下标进行区别

C) 数组可以由不同类型的控件构成 D) 各数组元素具有相同的名称

参考答案:C

【解析】控件数组是由类型相同的控件组成,具有相同的名称,用下标Index属性区分各数组元素,它们共用相同的事件过程。故C选项错误。

15.以下关于VB文件的叙述中,正确的是( )。

A) 标准模块文件的扩展名是.frm B) VB应用程序可以被编译为.exe文件

C) 一个工程文件只能含有一个标准模块文件 D) 类模块文件的扩展名为.bas

参考答案:B

【解析】标准模块文件的扩展名是.bas,不是.frm,故A选项错误。一个工程中可以包含一个或多个标准模块文件,故C选项错误。类模块文件的扩展名为.cls,不是.bas。故D选项错误。B选项正确。

16.以下自定义数据类型的语句中,正确的是( )。

A) Type student B) Type student C) Type student D) Type

ID As String * 20 ID As String * 20 ID As String ID As String * 20

name As String * 10 name As String * 10 name As String name As String * 10

age As Integer age As Integer age As Integer age As Integer

End student End Type End student End Type student

参考答案:B

【解析】自定义数据类型的语法结构是:

Type 自定义类型名

<成员名1>[(下标)] As<标准类型名1>

<成员名2>[(下标)] As<标准类型名2>

……

End Type 其中,成员可以定义为定长的或不定长字符串,也可定义为数组。本题中,B项符合语法规则,故B正确。

17.设:a=12,b=5,c=7,表达式 x=(ac+a Mod b)+Int(13 / 5)的值是( )。

A) 5 B) 6 C) 7 D) 9

参考答案:A

【解析】按算术运算符优先级从高到低顺序依次计算: /、、Mod,结果为5,故选A。

18.在程序中要使用Array函数给数组arr赋初值,则以下数组变量定义语句中错误的是( )。

A) Static arr B) Dim arr(5) C) Dim arr() D) Dim arr As Variant

参考答案:B

【解析】用Array函数可以给Variant类型的动态数组赋值;也可给Variant类型的变量赋值,此时该变量也看作是一个Variant类型的动态数组。 例如: Dim a()As Variant ,b As Variant

a=Array(1,"abc",3): b=Array(5,6)

本题中A、D选项是把arr都定义为 Variant型的变量,C选项是把arr定义为动态数组,这都可以用Array函数给arr数组赋初值;B选项定义了一个Variant型的一维固定数组arr,Array函数不能给固定数组赋初值,故B选项错误。

19.以下关于变量作用域的叙述中错误的是( )。

A) 在窗体模块的声明部分声明的Private变量,其作用域是窗体内的所有过程

B) 在标准模块的声明部分声明的Private变量,其作用域是模块内的所有过程

C) 在窗体模块的声明部分声明的Pubilc变量,其作用域是本窗体的所有过程

D) 在标准模块的声明部分声明的Pubilc变量,其作用域是应用程序的所有过程

参考答案:C

【解析】在窗体模块中声明的Public变量,其作用域是应用程序的所有过程,故C选项错误。

但用时注意:变量名前要加窗体名,否则不能被其他模块的过程引用,只能被本模块内的所有过程引用。

20.下面关于文件叙述中错误的是( )。

A) VB数据文件需要先打开,再进行处理 B) 随机文件每个记录的长度是固定的

C) 不论是顺序文件还是随机文件,都是数据文件 D) 顺序文件的记录是顺序存放的,可以按记录号直接访问某个记录

答案:D【解析】顺序文件的记录是顺序存放的,先写入的记录存放在文件的最前面,后写入的依次往后面存放,最后写入的记录放在文件的最后面.如果访问某条记录,要先访问前面的记录,才能访问后面的记录,不能按记录号直接访问.故D选项错误

21.若要使文本框能够输入多行文本,应该设置的属性是( )。

A) MultiLine B) WordWrap C) ScrollBars D) AutoSize

参考答案:A

【解析】文本框控件的MultiLine属性如果设置为False,则在文本框中只能输入单行文本;当设置为True时,可以使用多行文本,即在文本框中输入或输出文本时可以换行,并在下一行接着输入或输出。

22.以下关于命令按钮的叙述中正确的是( )。

A) 命令按钮上可以显示图片 B) 命令按钮能够分别响应单击、双击事件

C) 程序运行时,不能改变命令按钮上的文字

D) 若命令按钮的Cancel属性设为True,焦点在其他控件上时,按下回车键与单击该按钮的效果相同

参考答案:A

【解析】按钮控件的Picture属性可以给命令按钮指定一个图形。按钮的标题由属性Caption设置,可以在程序中动态指定。当一个命令按钮的Cancel属性被设置为True时,按ESC键与单击该命令按钮的作用相同。命令按钮能够响应单击事件,但不能响应双击事件。

23.窗体上有一个名为VScroll1的垂直滚动条,要求程序运行时,滚动块的初始位置在最下端,应使的值等于( )

A) hange B) hange C) D)

参考答案:C

【解析】滚动条的Value属性表示滚动框在滚动条上的当前位置,默认值为0,即在滚动条的左端或顶端,如果Value的值等于Max属性的值时,则滚动框在滚动条的最右端或底端。

24.设窗体名称为frm1。以下叙述中正确的是( )。

A) 运行程序时,能够加载窗体的事件过程是frm1_Load B) 运行程序时,能够加载窗体的事件过程是Form1_Load

C) 程序运行中用语句:="New" 可以更改窗体名称

D) 程序运行中用语句:n="新标题" 可以改变窗体的标题

参考答案:D

【解析】一个控件的事件过程由控件的实际名字(Name属性)、下划线和事件名称组成,而窗体事件过程由"Form"、下划线和事件名组成。因此,不管窗体名称是什么,窗体加载事件过程总是Form_Load。窗体的名称即Name属性在程序运行时不可以更改,窗体的标题即Caption属性则可以在程序运行时更改。

25.设运行程序时弹出的菜单如图所示.关于该菜单,以下叙述中错误的是( )。

A) 菜单中能够显示分隔线是因为该菜单项的标题为"-" B) 分隔线对应的菜单项的Name属性可以为空

C) "退出"菜单项的有效性属性被设为False D) 使用PopupMenu方法能够显示如图所示的菜单

参考答案:B

【解析】在设计菜单时,如果在菜单标题栏输入"-",则可以在菜单中加入一条分隔线,菜单中每一个菜单项,包括分隔线,都要有一个名称,即Name属性不能为空。菜单项有效性属性设为Flase时,则该项显示为灰色不可用状态。可以使用PopupMenu的方法显示弹出式菜单,格式为:PopupMenu 菜单名。

26.窗体上有一个列表框控件List1。以下叙述中错误的是( )。

A) List1中有ListCount-1个列表项 B) 当ed(i)=True,表明第i项被选中

C) 设置某些属性,可以使列表框显示多列数据 D) 的值是最后一次被选中的列表项文本

参考答案:A 【解析】列表框控件的列表项个数即为ListCount属性值。如果列表项的某项被选中,则该项的Selected属性值为True。列表框控件的Columns属性用来确定列表框的列数.Text属性的值为最后一次选中的表项的文本,不能直接修改Text属性

27.以下关于单选按钮和复选框的叙述中,正确的是( )。

A) 单选按钮和复选框都能从多个选项中选择一项 B) 单选按钮和复选框被选中时,选中控件的Value属性值为True

C) 是否使用框架控件将单选按钮分组,对选项没有影响 D) 是否使用框架控件将复选框分组,对选项没有影响

参考答案:D【解析】复选框按钮可以同时选择多个,而在一组单选按钮中,只能选择其中的一个。单选按钮被选中时,其Value属性值为True,如果没有被选中其Value值为False,复选框的Value属性可以设置为0、1和2,分别代表没选中、选中和禁用。单选按钮一般用框架进行分组,每个框架内的单选按钮的操作不影响其他组的按钮,而复选框是否分组对选项没有影响。

28.窗体的MouseUp事件过程如下:

Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)

……

End Sub 关于以上定义,以下叙述中错误的是( )。

A) 根据Shift参数,能够确定使用转换键的情况 B) 根据X、Y参数可以确定触发此事件时鼠标的位置

C) Button 参数的值是在MouseUp事件发生时,系统自动产生的 D) MouseUp是鼠标向上移动时触发的事件

参考答案:D

【解析】MouseUp事件是鼠标松开时触发的事件过程,事件过程的Button参数值由系统产生,为被按下的键,Shift参数表示Shift、Ctrl和Alt键的状态,X、Y参数表示光标的当前位置。

29.窗体上有一个名称为CD1的通用对话框,一个名称为Command1的命令按钮,相应的事件过程如下:

Private Sub Command1_Click()

="All File|*.*|Text File|*.txt|Word|*.Doc"

Index=2

me="E:"

r="E:"

en

End Sub 关于上述程序,以下叙述中正确的是( )。

A) 初始过滤器为"*.*" B) 指定的初始目录为"E:"

C) 以上程序代码实现打开文件的操作 D) 由于指定文件类型是.ppt,所以导致打开文件的操作失败

参考答案:B

【解析】通用对话框的FilterIndex属性值表示默认的过滤器,值为2表示初始过滤器为过滤器中的第2个,即"*.txt"。InitDir属性表示打开对话框时的初始目录。ShowOpen方法表示显示打开文件对话框。打开文件通用对话框只是返回选中的文件,具体如何操作文件需要另行编程决定,因此不会导致文件打开失败。

30.编写如下程序:

Private Sub Command1_Click()

Dim i As Integer, j As Integer

n=InputBox("输入一个大于1的正整数")

For i=2 To n

For j=2 To Sqr(i)

If i Mod j=0 Then Exit For

Next j

If j>Sqr(i)Then Print i

Next i

End Sub 该程序的功能是( )。

A) 判断n是否为素数 B) 输出n以内所有的奇数 C) 输出n以内所有的偶数 D) 输出n以内所有的素数

参考答案:D

【解析】假设输入2、4、9进行验证,输入2时程序会输出2,输入4时,程序会输出2、3,可见程序不是判断n是否为素数,所以A不对。由前面验证可知,程序也不是输出n以内的所以奇数或偶数,所以B、C也不对。如果输入9时,程序会输出2、3、5、7,说明程序是输出n以内的所有素数,所以D正确。

31.以下程序的功能是随机产生10个两位的整数:

Option Base 1

Private Sub Command1_Click()

Dim a(10)As Integer

Dim i As Integer

Randomize

For i=1 To 10

a(i)=Int(Rnd * 100)+1

Print a(i)

Next i

End Sub 运行以上程序,发现有错误,需要对产生随机数的语句进行修改。以下正确的修改是( )。

A) a(i)=Int(Rnd * 100) B) a(i)=Int(Rnd * 90)+10 C) a(i)=Int(Rnd * 100)+10 D) a(i)=Int(Rnd * 101)

参考答案:B

【解析】由Rnd函数生成的随机数在0~1之间,包括0但不包括1,所以有可能产生0,与题目要求的两位的整数不符。所以语句a(i)=Int(Rnd * 100)+1需要修改为a(i)=Int(Rnd * 90)+10,这样就能正确产生两位的整数了。

32.在窗体上画一个名称为Command1的命令按钮,编写如下事件过程:

Private Sub Command1_Click()

n=0

For i=0 To 10

X=2 * i-1

If X Mod 3=0 Then n=n+1

Next i

Print n

End Sub 运行程序,单击命令按钮,则窗体上显示的是( )。

A) 1 B) 3 C) 5 D) 7

参考答案:B

【解析】Mod是取模运算符,即求运算两数相除的余数。每次循环中X的值分别是-1,1,3,5,7,9,11,13,15,17,19,其中与3求模为0的数有3、9、15共3个,因此n=n+1会执行3次,最终n=3。

33.窗体上有名称为Command1的命令按钮,名称分别为Label1、Label2、Label3的标签。编写如下程序:

Private x As Integer

Private Sub Command1_Click()

Static y As Integer

Dim z As Integer

n=5

z=z+n

y=y+n

x=x+y

Label1=x

Label2=y

Label3=z

End Sub 运行程序,连续3次单击命令按钮后,3个标签中分别显示的是( )。

A) 5 5 5 B) 15 10 5 C) 15 15 15 D) 30 15 5

参考答案:D

【解析】变量x被定义为窗体模块变量,它在整个窗体模块中有效。Click事件中变量y定义为Static,即静态变量,它的值在每调用过程时都会保留上次的值。每次单击按钮标签中显示的值即x、y、z的值是:

第一次,n=5,z=z+n=0+5=5,y=y+n=0+5=5,x=x+y=0+5=5;

第二次,n=5,z=z+n=0+5=5,y=y+n=5+5=10,x=x+y=5+10=15;

第三次,n=5,z=z+n=0+5=5,y=y+n=10+5=15,x=x+y=15+15=30;

因此3次单击命令按钮后,3个标签中分别显示的是30 15 5。

34.命令按钮Command1的事件过程如下:

Private Sub Command1_Click()

Dim arr(5, 5)As Integer

Dim i As Integer, j As Integer

For i=1 To 4

For j=2 To 4

arr(i, j)=i+j

Next j

Next i

Print arr(1, 3)+arr(3, 4)

End Sub 执行上述过程,输出结果是( )。

A) 6 B) 7 C) 11 D) 12

参考答案:C

【解析】当用Dim语句定义数组时,该语句把数组中的全部元素都初始化为0,而把字符串数组中的全部元素都初始化为空字符串。程序中利用For循环为数组arr的部分元素赋值这些元素的第一维范围是1~4,第二维的范围是2~4,值为两维下标的和。程序要输出arr(1, 3)+arr(3, 4)的值,arr(1, 3)值为1+3=4,arr(3, 4)值为3+4=7。4+7=11,因此程序输出结果为11。

35.现有程序如下:

Option Base 1

Sub f(m As Integer, n As Integer, a()As Integer, b()As Integer)

Private Sub Form_Click()

For i=1 To m

Dim x(5, 6)As Integer, y(5)As Integer

b(i)=0

For i=1 To 5

For j=1 To n

For j=1 To 6

b(i)=b(i)+a(i, j)

x(i, j)=Int(Rnd * 9+1)

Next j

Next j

Next i

Next i

End Sub

Call f(5, 6, x, y)

For i=1 To 5

Print y(i);

Next i

End Sub 关于上述程序,以下叙述中正确的是( )。

A) 调用过程语句有错,参数不匹配 B) 程序有错,数组下标越界

C) y数组中保存的是x数组每行数据之和 D) x数组中数据的取值范围是1-10

参考答案:C

【解析】程序利用For循环为数组x的5行6列元素以随机整数赋值,随机数的范围是从1到9。过程f的功能是计算二维数组a()的每一行中元素值的和,每一行的和存放在另一个数组b()中,最后程序输出这些和值。因此C正确。

36.窗体上有一个名为Label1标签;一个名称为Timer1计时器,其Enabled和Interval属性分别为True和1000。编写如下程序

Dim n As Integer

Private Sub Timer1_Timer()

ch=Chr(n+Asc("A"))

n=ch

n=n+1

n=n Mod 4

End Sub 运行程序,将在标签中( )。

A) 不停地依次显示字符"A"、"B"、"C"、"D",直至窗体被关闭

B) 依次显示字符"A"、"B"、"C"、"D"各一次

C) 每隔1秒显示字符"A"一次 D) 每隔1秒依次显示26个英文字母中的一个

参考答案:A

【解析】Asc函数返回字符的ASCII,Chr函数将数值转换成相应的ASCII码字符。计时器间隔Interval属性设置为1000,则计时器事件每1秒钟发生一次。n的值每次调用计时器事件过程都会加1,n=n Mod 4又会使n值只能为0、1、2、3,因此程序运行后每1秒Label1标签将依次显示"A"、"B"、"C"、"D"。

37.窗体上有一个名称为Command1的命令按钮,一个名称为Text1的文本框。编写如下程序:

Private Sub Command1_Click()

Dim x As Integer

x=Val(InputBox("输入数据"))

Text1=Str(x+fun(x)+fun(x))

End Sub

对于上述程序,以下叙述中错误的是( )。

Private Function fun(ByRef n As Integer)

If n Mod 3=0 Then

n=n+n

Else

n=n * n

End If

fun=n

End Function

A) 语句 fun=n 有错,因为n是整型,fun没有定义类型 B) 运行程序,输入值为5时,文本框中显示655

C) 运行程序,输入值为6时,文本框中显示42 D) ByRef表示参数按址传递

参考答案:A

【解析】过程fun的功能是将传入的值运算后返回,当传入数值为3的整数倍时返回该值的2倍,否则返回该值的平方。过程Fun的参数指定为ByRef方式,即按址传递,因此会影响实参的值。Str函数是将数值转换为字符串。过程fun定义时没有指明返回类型因此默认为Variant类型,它可以表示任何值,因此A)选项的说法不正确。

38.设工程文件中包名称分别为Form1、Form2的两个窗体,且Form1的菜单属性设置如下,窗体Form1中的程序如下:

Dim Flag As Boolean

Private Sub mnu1_Click(index As Integer)

Private Sub Form_Load()

If Index=1 Then

Flag=True

If Flag=True Then

End Sub

mnu1(1).Caption="隐藏窗体2"

Flag=False

Else

mnu1(1).Caption="显示窗体2"

Flag=True

End If

End If

If Index=2 Then End

End Sub 关于上述程序,以下叙述中错误的是( )。

A) Index属性的值可以用来区分控件数组元素 B) Index为1的菜单项的标题可能会改变

C) 两个名称均为Mnu1的菜单项构成一个控件数组 D) 语句将Form2卸载

参考答案:D

【解析】程序中菜单Mnu1是一个控件数组,它们以Index属性值作为数组下标来区分各元素。在菜单单击事件中,Flag值为真时,显示Form2,同时把索引为1的菜单项标题改为"隐藏窗体2",然后把Flag标志设为假;当Flag值为假时,隐藏Form2,同时把索引为1的菜单项标题改为"显示窗体2",然后把Flag标志设为真。窗体Hide方法,只是将窗体隐藏,并没有从内容中卸载。因此D选项错。

39.有如下程序:

Private Sub Command1_Click()

Dim i As Integer, j As Integer

Dim sum As Integer

n=1

Do

j=1

Do

sum=sum+j

j=j+1

Print j;

Loop Until j>3

n=n+2

Loop Until n>10

Print sum

End Sub 运行上述程序,外层Do循环执行的次数为( )。

A) 4 B) 5 C) 7 D) 10

参考答案:B

【解析】外层Do循环结束条件是n>10,n初值为1,每次加2,循环体中每次循环n的值为3、5、7、9、11,值变化5次,因此外层Do循环执行次数为5次。

40.以下过程的功能是从数组中寻找最大值:

Private Sub FindMax(a()As Integer, ByRef Max As Integer)

Dim s As Integer, f As Integer

Dim i As Integer

s=LBound(a)

f=UBound(a)

Max=a(s)

For i=s To f

If a(i)>Max Then Max=a(i)

Next

End Sub 以下关于上述过程的叙述中,错误的是( )。

A) 语句Call FindMax(a,m)可以调用该过程,其中的a是数组,m是Integer类型变量 B) For循环次数等于a数组的元素数

C) 过程末尾应该增加一条返回最大值的语句FindMax=Max D) 参数Max用于存放找到的最大值

参考答案:C

【解析】过程定义语句中第1个参数是数组,调用是实参应该是一个数组变量或元素,第2个参数是整型变量。过程中LBound函数获取了数组下标的下限,UBound函数获取了数组下标的上限,在For i=s to f语句的循环中就可以访问数组中的各个元素。本过程是用Sub定义的过程不需要返回值。程序中找到的最大值由参数Max返回,因为它是按址传递的参数,它的值会带给实参。因此C选项的说法错误。