VB - 数组与记录习题

更新时间:2023-12-05 09:32:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第八章 数组与记录

教学要求:

掌握一维、二维数组的定义、引用、初始化,掌握静态和动态数组及其差别,掌握数组的基本使用方法:数组元素的输入、输出和赋值等,掌握使用For Each...Next语句操作数组元素的方法;掌握控件数组的定义、建立和使用,掌握排序算法。掌握记录类型及记录数组的概念、记录变量的初始化及引用。

知识点:

数组的定义、引用、初始化;静态和动态数组及其差别;For Each...Next语句;控件数组。 熟练数组“遍历”算法的设计规律,冒泡排序、快速排序算法,顺序查找、有序表对分查找、字符查找算法。

内容导航:

一、数组的概念 (一)数组的定义 在Visual Basic中,可以用4个语句来定义数组,这4个语句格式相同,但适用范围不一样。Dim用在窗体模块或标准模块中,定义窗体或标准模块数组;ReDim、 Static可用于过程中;Public 用在标准模块中,定义全局数组。 Visual Basic 提供两种格式: 第一种格式:

一维数组 Dim 数组名(下标上界) As 类型名称

二维数组 Dim 数组名(第一维下标上界,第二维下标上界) As 类型名称 第二种格式:

Dim 数组名 ([下界 To] 上界[,[下界To]上界]……) Dim 数组名 ([下界 To[ 上界[,[下界To]上界]……) (二)默认数组 在Visual Basic中,允许定义默认数组。默认数组就是数据类型为Variant(默认)的数组。在一般情况下,定义数组应指明其类型。 二、动态数组

(一)动态数组的定义 动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先在窗体层、标准模块或过程中用Dim或Public声明一个没有下标的数组(括号不能省略),然后在过程中用 ReDim 语句定义带下标的数组。 ReDim 语句格式:

ReDim [ Preserve ] 变量 ( 下标 ) As 类型 (二)数组的清除和重定义 数组一经定义,便在内存中分配了相应的存储空间,其大小不能改变。有时需要清除数组的内容或对数组重新定义,其格式为: 数组的清除:Erase数组名[,数组名]…… 重定义:ReDim

三、数组的基本操作

(一)数组元素的输入、输出和复制 1.数组的引用 数组的引用通常是指对数组元素的引用,其方法是,在数组后面的括号中指定下标。 2.数组元素的输入 数组元素一般通过For循环语句及InputBox函数输入,当数组较小,或只需要对数组中的指定元素赋值时,可以用赋值语句来实现数组元素的输入,多维数组元素的输入通过多重循环来实现

3.数组元素的输出 数组元素的输出可以用Print方法来实现。 4.数组元素的复制 单个数组元素可以像简单变量一样从一个数组复制到另一个数组,二维数组中的元素可以复制到另一个二维数组中的某个元素,也可以复制到一个一维数组中的某个元素,并且反之亦然

(二)For Each…Next语句 For Each…Next语句类似于For…Next语句,两者都用来执行指定重复次数的一组操作,但For Each…Next语句专门用于数组或对象“集合”(本书不涉及集合),其一般格式为: For Each成员In 数组 循环体 [Exit For] ……

Next[成员] 这里的“成员”是一个变体变量,它是为循环提供的,代表的是数组中的每个元素。“数组”是一个数组名,没有括号和上下界。 四、数组的初始化 用 Array函数来给数组元素赋值,其格式为: 数组变量名=Arra(数组元素值) 注意,Array函数只适用于一维数组。即只能对一维数组进行初始化,不能对二维或多维数组进行初始化。 五、控件数组 (一)基本概念 控件数组由一组相同类型的控件组成,这些控件共用一个相同的控件名,具有同样的属性设置。数组中的每个控件都有唯一的索引号(IndexNumber),即下标,其所有元素的Name属性必须相同。 控件数组的每个元素都有一个与之关联的下标,或称索引(Index),下标值由Index属性指定。Index属性与控件数组中的某个元素有关 (二)建立控件数组 通过以下两种方法来建立控件数组:

第一种方法,步骤如下:

(1)在窗体上画出作为数组元素的各个控件; (2)单击要包含到数组中的某个控件,将其激活;

(3)在属性窗口中选择“(名称)”属性,并键入控件的名称; (4)对每个要加到数组中的控件重复(2)、(3)步,键入与第(3)步中相同的名称。 当对第二个控件键入与第一个控件相同的名称后,Visual Basic将显示一个对话框,询问是否确实要建立控件数组。单击“是”将建立控件数组,单击“否”则放弃建立操作。 第二种方法,步骤如下:

(1)在窗体上画出一个控件,将其激活;

(2)执行“编辑”菜单中的“复制”命令(热键为Ctrl+C),将该控件放入剪贴板; (3)执行“编辑”菜单中的“粘贴”命令(热键为Ctrl+V),将显示一个对话框,询问是否建立控件数组;

(4)单击对话框中的“是”按钮,窗体的左上角将出现一个控件,它就是控件数组的第二个因素,执行“编辑”菜单中的“粘贴”命令,或按热键Ctrl+V,建立控件数组中的其他元素。 控件数组建立后,只要改变一个控件的“Name”属性值,并把Index属性置为空(不是0),就能把该控件从控件数组中删除。控件数组中的控件执行相同的事件过程,通过Index属性可以决定控件数组中的相应控件所执行的操作。 六、记录

(一)记录类型和记录类型变量 1.记录类型定义格式:

[Private|Public] Type 数据类型 元素名[(下标)] As 类型名 元素名[(下标)] As 类型名 … End Type

2.定义记录类型变量 记录类型变量的定义和基本了类型变量的定义一样,在引用是有所不同,用“变量元素”的格式应用记录中的成员。

(二)记录类型变量的初始化及其引用 1.记录类型变量的初始化 用赋值语句或输入语句对记录各个成员分别赋值。 2.记录类型变量的引用及其操作 成员的引用: 记录变量.成员名 七、记录数组

定义的一般格式:Dim 数组名([下界]To上界) As 记录名 引用记录数组元素的成员: 记录数组名(下标).成员名

训练:

一、选择题

1.如下数组声明语句中正确的是________。

A) Dim A(4 5) As Integer B) Dim A(n,n) As Integer C) Dim A(4,5) As Integer D) Dim A[4,5] As Integer

3.语句Option Base 1:Dim a(3,4)定义的数组所包含的数组元素的个数是________。 A) 7 B) 12 C) 15 D) 20

4.要分配存放如下方阵的数据,正确的且最节约存储空间的数组声明语句是________。 1.1 2.2 3.3 4.4 5.5 6.6

A) Dim a(6) As Single B) Dim a(2,3) As Single

C) Dim a(2 To 3,-3 To –1) As Single D) Dim a(1,2) As Integer

5.设有数组声明:Dim a(-2 To 4,3 To 6),则下面引用数组元素正确的是________。 A) a(-2,3)B) a(5) C) a[-2,4] D) a(-1,7)

6.用下面语句定义的数组元素个数是________。 Dim A(-3 To 5) As Integer A) 6 B) 7 C) 8 D) 9

7.语句Dim arr(-3 To 5,2 To 6) As Integer定义的数组元素有________。 A) 45 B) 40 C) 11 D) 54

8.以下程序输出的结果是________。 Option Base 1

Private Sub Form_Click() Dim a,B(3,3) a=Array(1,2,3,4,5,6,7,8,9) For i=1 To 3 For j=1 To 3 B(i,j)=a(i*j) If(i>=j) Then print Tab(j*3);format(B(i,j),\ Next j Print Next i End Sub A) 1 2 3 4 5 6 7 8 9 B) 1 2 4 3 6 9 C) 1 4 7 2 4 6 3 6 9 D) 1 2 3 4 6 9

9.在窗体上面画一个命令按钮,然后编写如下事件过程: Option Base 1

Private Sub Command1_Click() Dim a a=Array(1,2,3,4)

j=1 For i=4 To 1 Step -1 s=s+a(i)*j j=j*10 Next i Print s End Sub

运行上面的程序,单击命令按钮,其输出结果是________。 A) 4321 B) 12 C) 34 D) 1234

10.在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程:

Private Sub Command1_Click() Dim array1(10,10) As Integer Dim i,j As Integer For i=1 To 3 For j=2 To 4 array1(i,j)=i+j Next j Next i Text1.Text=array1(2,3)+array1(3,4) End Sub 程序运行后,单击命令按钮,在文本框中显示的值是________。 A) 12 B) 13 C) 14 D) 15

11.在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim i As Integer,j As Integer Dim a(10,10) As Integer For i=1 To 3 For j=1 To 3 a(i,j)=(i-1)*3+j Print a(i,j); Next j Print Next i End Sub 程序运行后,单击命令按钮,在窗体上显示的值是________。 A) 1 2 3 2 3 4 3 6 9 B) 2 3 4 3 4 5 4 5 6 C) 1 4 7 2 5 8

本文来源:https://www.bwwdw.com/article/k8at.html

Top