数 组
一、思考题
1. 要分配存放12个元素的整型数组,下列数组声明(下界若无,按默认规定)哪些符合要求?
1. 要分配存放12个元素的整型数组,下列数组声明(下界若无,按默认规定)哪些符合要求?
(1) n=12 (2) Dim a%( )
Dim a(1 To n) As Integer n=11
ReDim a(n)
Dim a(1 To n) As Integer n=11
ReDim a(n)
(3) Dim a%[2,3] (4) Dim a(1,1,2) As Integer
(5) Dim a%(10) (6) Dim a!( )
ReDim a(1 To 12) ReDim a(3,2) As Integer
ReDim a(1 To 12) ReDim a(3,2) As Integer
(7) Dim a%(2,3) 8) Dim a(1 to 3, 1 to 4) As Integer
2. 已知下面的数组声明,写出它的数组名、数组类型、维数、各维的上、下界、数组的大小、并按行的顺序列出各元素。
Dim a(-1 to 2,3) As Single
3. 已声明了静态数组A(3, 4),能否在下面再用重定义动态数组A(4, 4)来重定义A数组的大小吗?
3. 已声明了静态数组A(3, 4),能否在下面再用重定义动态数组A(4, 4)来重定义A数组的大小吗?
二、选择题
1. 以下关于数组的说法,不正确的是______。
(A)静态数组在声明时大小必须固定 (B)动态数组在声明时大小可以不确定
(C)默认情况下数组的下界为0 (D)运行时可改变动态数组或静态数组的大小
2. 有关数组的说法,错误的是______。
(A)数组是一种特殊的数据类型 (B)一个数组中可存放多种类型的数据
(C)数组是一组相同类型的变量的集合 (D)数组可以被声明为变体类型
3. 如下数组声明语句,______正确。
(A)Dim a[3, 4] As Integer (B)Dim a(3, 4) As Integer
(C)Dim a(n, n) As Integer (D)Dim a(3 4) As Integer
4. 要分配存放如下方阵的数据,______数组声明语句能实现(不能浪费空间)。
1. 以下关于数组的说法,不正确的是______。
(A)静态数组在声明时大小必须固定 (B)动态数组在声明时大小可以不确定
(C)默认情况下数组的下界为0 (D)运行时可改变动态数组或静态数组的大小
2. 有关数组的说法,错误的是______。
(A)数组是一种特殊的数据类型 (B)一个数组中可存放多种类型的数据
(C)数组是一组相同类型的变量的集合 (D)数组可以被声明为变体类型
3. 如下数组声明语句,______正确。
(A)Dim a[3, 4] As Integer (B)Dim a(3, 4) As Integer
(C)Dim a(n, n) As Integer (D)Dim a(3 4) As Integer
4. 要分配存放如下方阵的数据,______数组声明语句能实现(不能浪费空间)。
(A)Dim a(9) As Single (B)Dim a(3, 3) As Single
(C)Dim a( 1 To 3 , 1 To 3) As Single (D)Dim a( -3 To -1 , 5 To 7) As Integer
5. 如下数组声明语句,则数组a包含元素的个数有______。
Dim a(3, -2 to 2,5)
(A)120 (B)75 (C)60 (D)13
6. 以下程序输出的结果是______。
Dim a
a = Array(1, 2, 3, 4, 5, 6, 7)
For i = Lbound (a) To Ubound (a)
a(i) = a(i) * a(i)
Next i
Print a(i)
(A)49 (B)0 (C)不确定 (D)程序出错
7.下列数组声明语句中的数组a包含了______个数组元素
Dim a(4,-1 To 2, 3)
(A) 120 (B) 11 (C)60 ( D)80
8. 有如下程序段:
Type student
nl as Integer
name as String*13
End Type
Dim stu As student
For i = Lbound (a) To Ubound (a)
a(i) = a(i) * a(i)
Next i
Print a(i)
(A)49 (B)0 (C)不确定 (D)程序出错
7.下列数组声明语句中的数组a包含了______个数组元素
Dim a(4,-1 To 2, 3)
(A) 120 (B) 11 (C)60 ( D)80
8. 有如下程序段:
Type student
nl as Integer
name as String*13
End Type
Dim stu As student
该程序段定义了两个程序成分,它们分别是______
(A)数据类型和自定义类型变量 (B)自定义类型和变量
(C)显示类型和变量 (D)自定义类型和自定义类型变量
9.在窗体的通用声明段自定义了数据类型student,下列 定义方式是正确的。
(A)数据类型和自定义类型变量 (B)自定义类型和变量
(C)显示类型和变量 (D)自定义类型和自定义类型变量
9.在窗体的通用声明段自定义了数据类型student,下列 定义方式是正确的。
(A) Private Type student (B)Type student
No as Integer No as Integer
Name as String *8 Name as String *8
End Type End student
(C) Type student (D)Type student
No Integer No as Integer
Name String *8 Name as String *8
End Type End Type
10. 设数组a中有N个元素,并已按递增次序排列,下面______程序段可以使a数组的元素按递减次序排列。
(A) For i = 1 To N (B) For i = 1 To N / 2
a(N - i + 1) = a(i) a(i) = a(N - i + 1)
Next i Next i
(C)For i = 1 To N (D)For i = 1 To N / 2
t = a(i) t = a(i)
a(i) = a(N - i + 1) a(i) = a(N - i + 1)
a(N - i + 1) = t a(N - i + 1) = t
Next i Next i
(A) For i = 1 To N (B) For i = 1 To N / 2
a(N - i + 1) = a(i) a(i) = a(N - i + 1)
Next i Next i
(C)For i = 1 To N (D)For i = 1 To N / 2
t = a(i) t = a(i)
a(i) = a(N - i + 1) a(i) = a(N - i + 1)
a(N - i + 1) = t a(N - i + 1) = t
Next i Next i
三、填空题
1. 在VB中,若要设定每个数组默认的下界固定为1,其声明语句是_option base 1_____ 。
2. 程序中自动测试数组的下界用__Lbound____函数来实现,上界用_Ubound_____函数来实现。
3. 当数组首次被声明时,对所有数值型数组默认初值是_0_____;字符串数组默认初值是_
1. 在VB中,若要设定每个数组默认的下界固定为1,其声明语句是_option base 1_____ 。
2. 程序中自动测试数组的下界用__Lbound____函数来实现,上界用_Ubound_____函数来实现。
3. 当数组首次被声明时,对所有数值型数组默认初值是_0_____;字符串数组默认初值是_
空_____。
4. 当用ReDim语句要改变动态数组的大小时,数组元素的值会_丢失_____;用_Preserve_____关键字可保留数组元素原来的值。
5. 已知建立了5个元素的Command1控件数组,用_Index__参数可识别用户单击了某控件数组元素。
6. 在一个二维数组中,第一个下标指明了一个元素的_行_____;第二个下标指明了元素的_列_____。
7. 已知如下a(1 To 5)数组和i、j、k变量有了初值:
4. 当用ReDim语句要改变动态数组的大小时,数组元素的值会_丢失_____;用_Preserve_____关键字可保留数组元素原来的值。
5. 已知建立了5个元素的Command1控件数组,用_Index__参数可识别用户单击了某控件数组元素。
6. 在一个二维数组中,第一个下标指明了一个元素的_行_____;第二个下标指明了元素的_列_____。
7. 已知如下a(1 To 5)数组和i、j、k变量有了初值:
| |||||||||||||||||||||||||||
请写出下列各数组元素的值或会产生什么情况:
a(3)=_5__;a(i)=_3_; a(i+j)=_越界_____;
a(k-i)=______;a(a(i))=______; a(3+k\3)=______;
a(i*j)=______; a(0)=______;
a(3)=_5__;a(i)=_3_; a(i+j)=_越界_____;
a(k-i)=______;a(a(i))=______; a(3+k\3)=______;
a(i*j)=______; a(0)=______;
8. 如下程序中随机产生6位学生的分数(分数范围1~100),存放在数组a中,以每2分一个"*"显示,如图1.5.14所示。
Private Sub Command1_Click() Dim a%(1 To 6) For i = 1 To 6 a(i) = _Int(Rnd*100+1)_ Print string(a(i)\2,_”*”);”A” & “(“ & “)” & “=” & a(i)_ Next i End Sub | 图1.5.14: 随机分数运行界面 | |
9. 下面程序的功能是从键盘输入6个整数,出最大数和最小数所在的位置,并把两者对调,然后输出调整后的6个数。
Private Sub Command1_Click()
Private Sub Command1_Click()
Dim a(5) As Integer, max%,maxi%, min%,mini%, i%,t%
For i = 0 To 5
a(i) = _val(text1)__
Next i
min=a(0):mini=0
max=a(0):maxi=0
For i = 1 To 5
If _a(i)<min___ Then mini = i
If _a(i)>max___ Then maxi=i
Next i
t=a(maxi)
_a(maxi)=a(mini)_
a(mini) = t
For i = 0 To 5
Print a(i);
For i = 0 To 5
a(i) = _val(text1)__
Next i
min=a(0):mini=0
max=a(0):maxi=0
For i = 1 To 5
If _a(i)<min___ Then mini = i
If _a(i)>max___ Then maxi=i
Next i
t=a(maxi)
_a(maxi)=a(mini)_
a(mini) = t
For i = 0 To 5
Print a(i);
Next i
End Sub
End Sub
过 程
一、思考题
1. 简述子过程与函数过程的共同点、不同处?
2. 什么是形参?什么是实参?什么是值引用?什么是地址引用?地址引用时,对应的实参有没有限制?
3. 请比较函数过程和子过程调用的区别。
4. 请说明局部变量与静态变量的区别。
5. 指出下面过程语句说明中的错误。
(1) Sub f1( n%) As Integer 子过程f1没有类型
(2) Function f1%(f1%) 函数过程名和形参同名令数组全部的值为0
(3) Sub f1(ByVal n%()) 形参数组必须是传址
(4) Sub f1( x(i) as Integer) 形参不能指定大小,
1. 简述子过程与函数过程的共同点、不同处?
2. 什么是形参?什么是实参?什么是值引用?什么是地址引用?地址引用时,对应的实参有没有限制?
3. 请比较函数过程和子过程调用的区别。
4. 请说明局部变量与静态变量的区别。
5. 指出下面过程语句说明中的错误。
(1) Sub f1( n%) As Integer 子过程f1没有类型
(2) Function f1%(f1%) 函数过程名和形参同名令数组全部的值为0
(3) Sub f1(ByVal n%()) 形参数组必须是传址
(4) Sub f1( x(i) as Integer) 形参不能指定大小,
6. 已知有如下求两个平方数和的fsum子过程:
Public Sub fSum(sum%, ByVal m%, ByVal n%)
sum = a * a + b * b
End Sub
在事件过程中有如下变量声明:
Private Sub Command1_Click()
Dim a%, b%, c!
a = 10: b = 20
则指出如下过程调用语句错误所在:
(1) fsum 3, 4, 5
(2) fsum c, a, b
(3) fsum a + b, a, b
(4) Call fsum(Sqr(c), sqr(a), Sqr(b))
(5) Call fsum c,a, b
7. 要使变量在某事件过程中保值,有哪几种变量声明的方法?
Public Sub fSum(sum%, ByVal m%, ByVal n%)
sum = a * a + b * b
End Sub
在事件过程中有如下变量声明:
Private Sub Command1_Click()
Dim a%, b%, c!
a = 10: b = 20
则指出如下过程调用语句错误所在:
(1) fsum 3, 4, 5
(2) fsum c, a, b
(3) fsum a + b, a, b
(4) Call fsum(Sqr(c), sqr(a), Sqr(b))
(5) Call fsum c,a, b
7. 要使变量在某事件过程中保值,有哪几种变量声明的方法?
声明变量为全局(public),通用声明段或标准模块声明的模块级变量,局部过程声明的静态变量(static).
8. 为了使某变量在所有的窗体中都能使用,应在何处声明该变量?
8. 为了使某变量在所有的窗体中都能使用,应在何处声明该变量?
在标准模块声明的全局变量
9. 在同一模块、不同过程中声明的相同变量名,两者是否表示同一个变量?有没有联系?
9. 在同一模块、不同过程中声明的相同变量名,两者是否表示同一个变量?有没有联系?
表示不同的变量,没有任何关系
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论