VB第5章数组和自定义类型.doc
《VB第5章数组和自定义类型.doc》由会员分享,可在线阅读,更多相关《VB第5章数组和自定义类型.doc(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、【精品文档】如有侵权,请联系网站删除,仅供学习与交流VB第5章数组和自定义类型.精品文档.第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 dEnd Sub 程序运行后,单击命令按钮,
2、则窗体上的输出结果为 。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
3、(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 = arra
4、y1(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
5、 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); NextEnd 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
6、(5)、a(4)、a(3)、a(2)的值,即6、5、4、3。(4)用下面语句定义的数组的元素个数是 。Dim A(-3 To 5) As IntegerA)6B)7C)8D)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.57B)A(6)=12 C)A(5)=qaz D)A(1)=True【答案】B【解析】在声明数组时,没有
7、指定数组下标下界,系统默认的下界值是0,则数组A的元素应该是A(0)、A(1)、A(2)、A(3)、A(4)、A(5)。使用A(6)会产生数组下标越界的错误。另外,在本题中声明数组A时省略了数据类型,则系统默认为Variant类型,即数组的每个元素可以存放不同类型的数据。(6)运行下列程序,单击窗体,则运行结果是 。Option Base 1Private 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 iEnd
8、SubA) 0 2 4 6 8B) 8 6 4 2 0C) 1 3 5 7 9D) 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,
9、4,6,8。(7)运行下列程序,单击窗体,则运行结果是 。Option Base 1Private Sub Form_Click() Dim a a = Array(1, 5, abcde) For i = 1 To 3 Print a(i); Next iEnd SubA) 1 5 abcdeB) 1 5 abcdeC) 出错信息D) 1 5 abcde【答案】A【解析】a是变体变量,使用Array函数进行数组初始化时,数组的各个元素类型可以不同;并且字符串输出是不带定界符(一对西文双引号)。(2)设窗体上有一个列表框控件List1,且其中含有若干列表项。则以下能表示当前被选中的列表项内容的
10、是 。 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方法从列表框删除指定
11、项目。 (15)设置组合框的样式,可用的属性是 。 A)BackStyle B)BorderStyle C)Style D)Sorted【答案】C【解析】组合框没有BackStyle和BorderStyle属性。组合框的Sorted属性控制列表项是否按序排列,若设置为True按升序排列,否则按加入先后顺序排列。组合框的Style属性控制组合框的样式,0为下拉式组合框,1为简单组合框,2为下拉式列表(只能选择不能输入)。二练习题1单项选择题(1)下面程序运行后,单击窗体,窗体输出为 。Option Base 1Private Sub Form_Click() x = Array(10, 25,
12、15, 20, 25, 25, 50, 40, 50, 60) p = x(1)For i = 2 To 10 If x(i) p Thenp = x(i)s = s + p End If Next i Print p; sEnd SubA) 10 10B) 60 70C) 60 135D) 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
13、End SubA)2 5 B)1 3 C)5D)4(3)在窗体上画一个名称为Command1的命令按钮,然后编写如下程序: Private Sub Command1_Click() Dim i, j As Integer Dim a(10, 10) As IntegerFor i = 1 To 3 For j = 1 To 3 a(i, j) = (i - 1) * 3 + j Print a(i, j); Next j Print Next iEnd Sub程序运行后,单击命令按钮,窗体上显示的是 。A) 1 2 3 B) 2 3 4 C) 1 4 7 D) 1 2 3 2 4 6 3 4
14、5 2 5 84 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
15、As String xm As String * 4 nl As Integer nl As Integer xb As Boolean xb As BooleanEnd Dec End DecC) 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 1Private Sub Form_Click() a = Array(张, 刘, 郝, 陈, 王) w =
16、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 iEnd Sub运行程序后,输出结果是 。A) 张王陈郝刘B) 王陈郝刘张C) 张刘郝陈王D) 刘郝陈王张 (7) 有如下程序Option Base 1Dim a() As IntegerPrivate Sub Command1_Click() n = Val(InputBox(请输入数组的下界:) ReDim a(n) s = 0 For j = 1 To n a(j) = 2 * j s = s + a(j)
17、 Next j av = s / n For j = 1 To n If a(j) av Then lag = lag + 1 Else sma = sma + 1 End If Next j Print n; 个数的平均值是; av; Print 大于平均值的个数是; lag; 小于平均值的个数是; smaEnd Sub运行程序后,当用户在输入对话框中输入3,按“确定”按钮后,输出结果是 A)3个数的平均值是 4 大于平均值的个数是 1 小于平均值的个数是2B)3个数的平均值是 5 大于平均值的个数是 1 小于平均值的个数是2C)3个数的平均值是 4 大于平均值的个数是 2 小于平均值的个数
18、是1D)3个数的平均值是 5 大于平均值的个数是 2 小于平均值的个数是1(8)有如下程序Private Sub Form_Click() Dim A(10) As Integer For J = 6 To 10 A(J) = InputBox(请按顺序输入1,2,3,4,5) Next J Print A(0) + A(A(6) / A(10)End Sub运行时顺序输入1,2,3,4,5,输出的结果是 A) 0.2B) 1.6C) 0D) 出错信息(9)在窗体上有一个命令按钮,然后编写如下事件过程。 Private Sub Command1_Click()Dim a(5)As String
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 数组 自定义 类型
限制150内