数组是由一定数目的同类元素按一定顺序排列而成的结构类型数据,使用数组可以按照下标来方便的数组内的元素进行各种操作,方便程序开发;
在VB程序中,为了将复杂问题简单化,便于代码的调试与维护,提高代码的利用率,往往将应用按功能或其他目的划分为若干个模块,而每个模块还可继续细分为子模块。
这些模块或子模块,都是可重复使用的、独立的过程。
数组的定义及使用
静态数组与动态数组。
数组的应用(初始化、赋值、排序、插入、删除、统计等)
控件数组的建立及应用
过程部分要点
i.过程如何定义与调用
ii.函数和过程的参数传递
iii.变量、过程的作用域
数组部分题目
1、设有如下数组定义语句:
Dim a(-1 To 4, 3)As Integer
以下叙述中正确的是( )。
A) a数组有18个数组元素
B) a数组有20个数组元素
C) a数组有24个数组元素
D) 语法有错
解题分析: 本题目通过定义了一个二维数组,让求出数组中一共有多少个元素。
首先要明确一点,数组的默认下标是从0开始的,本题没有用option base 语句进行声明,所以第一维是从-1 到4,共6个元素;第二维是从0到3共包含4个元素,所以相乘可得6*4=24,所以题目中的二维数组一共有24个元素。
2、定义数组:Dim A(-3 To 4,1 To 2, 3 To 5, -1 To 6 )As Integer ,
问:
LBound(A,1)=?
UBound(A,3)=?
解题分析:首先要明白LBound、UBound具体代表什么意思及其用法。
在我们的VB编程中提供了一对确定下标上界、下界值的函数:LBound和UBound。
其用法为:
LBound(数组名称[,维]),返回一个数组中指定维的下界
UBound(数组名称[,维]),返回一个数组中指定维的上界
弄清楚以上用法后,我们现在再来解答本题就非常轻松了。
LBound(A,1),表示取出数组A中第一维元素的下界,由定义的数组A可知,其值为-3;
UBound(A,4),表示取出数组A中第四维元素的上界,由定义的数组A可知,其值为6;
1、标准模块中有如下程序代码:
Public x As Integer,y As Integer
Sub var_pub()
x=10∶y=20
End Sub
在窗体上有1个命令按钮,并有如下事件过程:
Private Sub Command1_Click()
Dim x As Integer
Call var_pub
x=x+100
y=y+100
Print x;y
End Sub
运行程序后单击命令按钮,窗体上显示的是( )。
A) 100 100
B) 100 120
C) 110 100
D) 110 120
【解析】在标准模块中使用Public定义的X,Y变量是全局变量,全局变量可以在工程的每个模块、每个过程中使用。
如果在过程中有与全局变量同名的过程变量则优先使用过程变量。
在命令按钮事件中定义了局部变量x,与全局变量同名,因此在此事件中使用局部变量,而变量y在过程中没有定义,则仍使用全局变量。因此输出时x值为100,y值为120。
2、命令按钮Command1的单击事件过程如下:
Private Sub Command1_Click()
x=10
Print f(x)
End Sub
Private Function f(y As Integer)
f=y * y
End Function
运行上述程序,如下叙述中正确的是( )。
A) 程序运行出错,x变量的类型与函数参数的类型不符
B) 在窗体上显示100
C) 函数定义错,函数名f不能又作为变量名
D) 在窗体上显示10
【解析】变量x在命令按钮单击事件过程中没有定义,直接使用,因此系统自动将它定义为Variant类型。
由于过程中参数类型为Integer,所以程序运行时会提示'ByRef参数类型不符'错误。因此A选项正确。
本题解决方法:
1)、在按钮事件中加上Dim x as Integer
2)、将f过程中的y as integer改为ByVal y as integer
3、下列语句执行后,S的值为?
Private Sub Command1_Click()
Dim a%, s&
For a = 1 To 3
s = s + fac(a)
Next
Print s
End Sub
Private Function fac(n%) As Long
Static t&
t = t + n
fac = t
End Function
解题过程分析:首先,单击命令按钮后,程序按照顺序结构依次执行代码语句。在按钮事件中,通过dim语句定义了两个局部变量,一个整型的,一个为长整型的,其初值均为0。
初始化后,程序进入for循环中。
循环变量从1到3依次执行循环体。
当a=1时,s = s + fac(1),调用fac函数过程,将fac(1)传入自定义的函数中,得到:t = t + n=0+1=1,执行完函数后返回值为1,故
当a=2时,s = s + fac(2),调用fac函数过程,将fac(2)传入自定义的函数中,得到:t = t + n=1+2=3,执行完函数后返回值为3,故
s = s + fac(2)=1+3=4;
当a=3时,s = s + fac(3),调用fac函数过程,将fac(3)传入自定义的函数中,得到:t = t + n=3+3=6,执行完函数后返回值为6,故
s = s + fac(3)=10;
今天的数组与过程专项内容就到这里,大家在学习中有不懂的问题可以在文章下方留言或者加小编微信共同交流探讨。
联系客服