第5章 数组和自定义类型

2019-04-09 15:09

第5章 数组和用户自定义类型

一. 例题与解析

(1)在窗体上画一个名称为Command1的命令按钮,然后编写如下代码: Option Base 1

Private Sub Command1_Click()

d = 0: c = 10

x = Array(10, 12, 21, 32, 24) For i = 1 To 5 If x(i) > c Then

d = d + x(i) c = x(i) Else

d = d - c End If Next i Print d End Sub

程序运行后,单击命令按钮,则窗体上的输出结果为 。

A)89 B)99 C)23 D)77 【答案】C

【解析】语句Option Base 1使得数组的下标从1开始,因此,语句x = Array(10, 12, 21, 32, 24)使得数组x各元素的值分别为:x(1)=10,x(2)=12,x(3)=21,x(4)=32,x(5)=24。当i为1时,x(i)>c的值为假,执行语句d=d-c,使得d的值为-10;i为2时,x(i)>c的值为真,执行语句d=d+x(i)和c=x(i),使得d和c的值分别为2和12;i为3时,x(i)>c的值为真,执行语句d=d+ x(i)和c=x(i),使得d和c的值分别为23和21; i为4时,x(i)>c的值为真,执行语句d=d+x(i)和c=x(i),使得d和c的值分别为55和32; i为5时,x(i)>c的值为假,执行语句d=d-c,使得d的值为55-32=23。

(2)在窗体画一个名称为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 【答案】A

【解析】根据程序,i=1时,j的值分别为2、3、4,则array(1,2)=3,array(1,3)=4,array(1,4)=5;i=2时,j的值分别为2、3、4,则array(2,2)=4,array(2,3)=5,array(2,4)=6;i=3时,j的值分别为2、3、4,则array(3,2)=5,array(3,3)=6,array(3,4)=7。因此文本框内显示的值应该为12。

(3)设有如下程序:

Private Sub Command1_Click() Dim a

Dim i As Integer

a = Array(1, 2, 3, 4, 5, 6, 7, 8, 9) For i = 0 To 3 Print a(5 - i); Next End Sub

程序运行后,单击命令按钮,则在窗体上显示的是 。 A)4 3 2 1 B)5 4 3 2 C)6 5 4 3 D)7 6 5 4 【答案】C

【解析】数组a初始化后,数组各元素的值分别是: a(0)=1,a(1)=2,a(2)=3,a(3)=4,a(4)=5,a(5)=6,a(6)=7,a(7)=8,a(8)=9。 For循环内的Print语句在同一行输出元素a(5)、a(4)、a(3)、a(2)的值,即6、5、4、3。

(4)用下面语句定义的数组的元素个数是 。

Dim A(-3 To 5) As Integer A)6 B)7 C)8 D)9 【答案】D 【解析】在声明数组的同时指定数组下标下界(如本例的-3)和下标上界(如本例的5),则数组A的元素分别是A(-3)、A(-2)、A(-1)、A(0)、A(1)、A(2)、A(3)、A(4)、A(5),共9个元素。

(5)设有如下数组声明语句,则下列对数组元素的引用中错误的是 。 Dim A(5) A)A(0)=1.57 B)A(6)=12 C)A(5)=\ D)A(1)=True 【答案】B

【解析】在声明数组时,没有指定数组下标下界,系统默认的下界值是0,则数组A的元素应该是A(0)、A(1)、A(2)、A(3)、A(4)、A(5)。使用A(6)会产生数组下标越界的错误。 另外,在本题中声明数组A时省略了数据类型,则系统默认为Variant类型,即数组的每个元素可以存放不同类型的数据。 (6)运行下列程序,单击窗体,则运行结果是 。

Option Base 1

Private Sub Form_Click() Dim a(10) For i = 1 To 10

a(i) = 10 - i + i Mod 2 Next i

For i = 10 To 1 Step -2

Print a(i); Next i End Sub A) 0 2 4 6 8 B) 8 6 4 2 0

C) 1 3 5 7 9 D) 9 7 5 3 1

【答案】A 【解析】本题要注意两点:第一个For语句的循环体有一条a(i) = 10- i + i Mod 2 语句,完成数组元素的生成;另外,第二个For语句的参数是10 To 1 Step -2,逆向间隔输出。计算数组元素中Mod运算符优先,当i是奇数时,i Mod 2的值为1,当i是偶数时,i Mod 2的值为0,10-i在循环中得到9 8 7,6,5,4,3,2,1,0,当i是奇数时加1,因此a数组中的 数是10,8,8,6,6,4,4,2,2,0,最后逆向间隔输出,输出的结果是0,2,4,6,8。 (7)运行下列程序,单击窗体,则运行结果是 。

Option Base 1

Private Sub Form_Click() Dim a

a = Array(1, 5, \ For i = 1 To 3 Print a(i); Next i End Sub

A) 1 5 abcde B) 1 5 \C) 出错信息 D) 1

5

abcde 【答案】A 【解析】a是变体变量,使用Array函数进行数组初始化时,数组的各个元素类型可以不同;并且字符串输出是不带定界符(一对西文双引号)。

(2)设窗体上有一个列表框控件List1,且其中含有若干列表项。则以下能表示当前被选中的列表项内容的是 。 A) List1.List B) List1.ListIndex C) List1.Index D) List1.Text 【答案】D

【解析】列表框的Text属性的值是最后一次选中的列表项的文本;ListIndex属性的值是最后一次选中的列表项的Index值;List属性和Index属性均为数组。因而本题的正确答案是选项D。

(3)为了清除列表框中的所有内容,应使用的方法是 。 A)Cls B)Clear C)Remove D)RemoveItem 【答案】B

【解析】Cls和Remove不是列表框的方法;Clear方法用来删除列表框中的所有项目;RemoveItem方法从列表框删除指定项目。

(15)设置组合框的样式,可用的属性是 。

A)BackStyle B)BorderStyle C)Style D)Sorted

【答案】C 【解析】组合框没有BackStyle和BorderStyle属性。组合框的Sorted属性控制列表项是否按序排列,若设置为True按升序排列,否则按加入先后顺序排列。组合框的Style属性控制组合框的样式,0为下拉式组合框,1为简单组合框,2为下拉式列表(只能选择不能输入)。

二.练习题

1.单项选择题

(1)下面程序运行后,单击窗体,窗体输出为 。

Option Base 1

Private Sub Form_Click()

x = Array(10, 25, 15, 20, 25, 25, 50, 40, 50, 60) p = x(1)

For i = 2 To 10 If x(i) > p Then

p = x(i) s = s + p

End If Next i Print p; s End Sub

A) 10 10 B) 60 70 C) 60 135

D) 10 65

(2)在窗体上放一个命令按钮,并编写如下程序,运行后单击命令按钮,则输出结果

是 。

Private Sub Command1_Click( ) Dim A

A = Array(1, 2, 3, 4) S = 0

For I = 1 To 2 S = S + A(I) Print S; Next I End Sub A)2 5 B)1 3 C)5 D)4 (3)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序: Private Sub Command1_Click() Dim i, 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 B) 2 3 4 C) 1 4 7 D) 1 2 3 2 4 6 3 4 5 2 5 8 4 5 6 3 6 9 4 5 6 3 6 9 7 8 9

(4)设有如下程序

Private Sub Form_Click() Dim abc() As Integer n1 = Int(10 * Rnd())

n2 = Int(10 * Rnd() + 50) ReDim abc(n1 To n2)

Print LBound(abc); UBound(abc) End Sub

运行程序后,多次单击窗体,则输出结果范围最大的两个数是 A)10 60 B)10 59 C)0 59 D)0 60 (5)下面四个选项中,正确的用户定义类型是 。

A) Dec abc B) Dec abc xm As String xm As String * 4 nl As Integer nl As Integer xb As Boolean xb As Boolean End Dec End Dec C) Type abc D) Type abc xm As String xm As String * 4 nl As Integer nl As Integer xb As Boolean xb As Boolean End Type End Type (6)设有如下程序 Option Base 1

Private Sub Form_Click()

a = Array(\张\刘\郝\陈\王\ w = a(1)

For i = 1 To 4 a(i) = a(i + 1) Next i a(5) = w

For i = 5 To 1 Step -1 Print a(i); Next i


第5章 数组和自定义类型.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:浅谈组织行为学在企业管理中的应用策略1

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: