当前位置:首页 > vb期末考试复习资料(经典总结版)
Dim arr
Dim Start As Integer, Finish As Integer Dim Sum As Integer arr = Array(12, 4, 8, 16) Start = LBound(arr) Finish = UBound(arr) Sum = 0
For i = Start To Finish Sum = Sum + arr(i) Next i
c = Sum / Finish Text1.Text = c End Sub
程序运行后,单击窗体,则在文本框中显示的内容是 A.40 B.10 C.12 D.16
【分析】该例首先定义了数组变量arr和三个整型变量,接着用Array函数定义了一个数组,并用LBound和UBound函数求出数组的上下界,分别存放在变量Start和Finish中。然后通过For循环求出数组中各元素的和,放在变量Sum中,最后将和除以数组的上界,实际上是求出数组各元素的平均值,即(12+4+8+16)/4=10,在文本框中显示出来。 【答案】B
例3 阅读程序: Option Base 1
Private Sub Form_Click() Dim Arr(4,4) As Integer For i= 1 To4
For j = 1 To 4
Arr(i, j) = (i - 1) * 2 +j Next j Next i
For i=3 To 4
For j = 3 To 4
Print Arr(j, i); Next j Print Next i End Sub
程序运行后,单击窗体,输出结果是 A.5 7 6 8 B.6 8 7 9 C.7 9 8 10 D.8 10 8 11
【分析】本例主要测试二维数组的输入输出操作。由于程序的开头有Option Base 1语句,因此所定义的Arr是一个4行4列的二维数组。在第一个二重For循环中,根据内层和外层循环变量的变化对数组的每个元素赋值,其计算公式为:(i-1)*2+j,其中i和j分别为外层和内层循环变量。用这个公式计算的数组Arr各元素的值如下: Arr(1,1)= 1 Arr(1,2) = 2 Arr(1,3)= 3 Arr(1,4)= 4 Arr(2,1)= 3 Arr(2,2) = 4 Arr(2,3) = 5 Arr(2,4)= 6 Arr(3,1) = 5 Arr(3,2) = 6 Arr(3,3) = 7 Arr(3,4) = 8
17
Arr(4,1)= 7 Arr(4,2) = 8 Arr(4,3) = 9 Arr(4,4) = 10
在第二个二重循环中,用Print方法输出Arr数组4个元素的值,即Arr(3,3)、Arr(3,4)、Arr(4,3)和Arr(4,4),从上面的赋值情况可以看出,这4个元素的值分别是7、8、9、10。 【答案】C
例4 在窗体上画一个文本框,然后编写如下程序: Option Base 1
Private Sub Form_Click() Dim Arr(10) As Integer For i = 6 To 10 Arr(i) = i - 3 Next i
Text 1.Text = Str(Arr(6) + Arr(Arr(6) + Arr(10))) End Sub
程序运行后,单击窗体,在文本框中显示的内容是_____ 。
【分析】在该例中,定义了一个一维数组Arr,并为其开辟了10个元素的空间,然后通过For循环为该数组的后5个元素赋值。不难看出,数组Arr后5个元素的值分别为3、4、5、6、7。最后一个语句是为文本框的Text属性赋值,这个值是Arr数组的两个元素的和,其中第一个元素是Arr(6),即3;第二个元素的下标是数组Arr第六个元素(3)和第十个元素(7)的和,即Arr(3+7)=Arr(10),而该元素的值为7。因此
Arr(6)+Arr(Arr(6)+Arr(10))=3+Arr(10)=3+7=10 【答案】10
例5 以下程序的功能是,产生10个0~1 000的随机整数,放入数组Arr中,然后输出其中的最大值。请填空。 Option Base 1
Private Sub Form_Click() Dim Arr(10) As Integer Dim Max As Integer Randomize For i= 1 To 10
Arr(i)= Int(Rnd * 1000) Next i Max=____ For i = 2 To 10 If____Then
Max = Arr(i) End If Next i Print Max End Sub
【分析】该例用Int(Rnd*1000)产生0~1 000的随机整数,通过一个For循环把这些整数放入数组Arr中。变量Max用来存放数组的最大值。为了求出数组的最大值,首先应把数组的第一个元素(即Arr(1))赋给变量Max,然后进入循环,把Max依次与数组中的其他各元素进行比较,如果某个元素比Max大,就把该元素的值赋给Max。循环结束后,变量Max中存放的就是数组的最大值。最后输出Max的值。 【答案】Arr(1)
Arr(i)>Max
例6 以下程序的功能是,程序运行后,单击命令按钮,输出结果为: 1 4 7 2 5 8 3 6 9 请填空。
18
Private Sub Command1_Click() Dim Arr(3,3) As Integer For i= 1 To 3 Forj = 1 To 3
Arr(i,j) =_____ Print Arr(i,j); Next j Print Next i End Sub
【分析】该例输出的是一个3行3列的二维数组,数组中的各元素通过外层循环变量i和内层循环变量j产生,i用来控制数组Arr的行的变化,而i用来控制数组的列的变化。每执行一次外层循环,产生并输出数组的一行。第一次执行外层循环时,产生并输出的一行为1 4 7,即内层循环变量为1时输出1,内层循环变量为2时输出4,内层循环变量为3时输出7。因此,可以根据循环变量i和j的变化,用一个公式来产生和输出指定的数组。 【答案】i+(j-1)*3 或(i-1)+j*3-2
第八章 函数与过程
例1 编写如下通用过程:
Sub Proc(x As Single,y As Single) t=x x=t/y
y = t Mod y End Sub
在窗体上画一个命令按钮,然后编写如下事件过程: Private Sub Command1_Click() Dim a As Single Dim b As Single a=5 b=4 Proc a, b Print a, b End Sub
程序运行后,如果单击命令按钮,则输出结果为 A.5 4 B.1.25 1 C.4 5 D.1.25 5
【分析】 该例中的Proc过程有两个参数,均为单精度类型;由于没有By Val关键字,参数使用的是引用(即传地址)方式。也就是说,实参a、b与形参x、y使用的是相同的地址。因此,由过程Proc计算出来的x、y的值实际上与实参a、b的值相同。在事件过程中,执行Proc a,b语句后,就把a(值为5)、b(值为4)的值分别传送给过程Proc中的x、y,使得x=5,y=4。在过程中,首先把x的值赋给t,即t的值为5,然后执行: x=t/y=5/4=1.25 y=t mod y=5 Mod 4=1 【答案】 B
在上面的程序中,如果把过程Proc的参数改为传值方式,结果会如何呢?在这种情况下,事件过程中的实参与通用过程中的形参没有任何关系,输出结果仍为5 4。 例2 阅读程序:
Function func(n As Integer) As Integer Sum = 0 For i= 1 To n
Sum = Sum + (i + 1) * i Next i
func = Sum End Function
Private Sub Command1_Click()
19
Dim a As Integer a=5
s = func(a) Print s End Sub
程序运行后,单击命令按钮,输出结果为 A.80 B.60 C.70 D.15
【分析】 该例调用一个Function过程Func,该过程只有一个参数,类型为整型,返回值也为整型。过程的调用十分简单,关键是要搞清楚过程func的功能。从循环 For i= 1 To n
Sum = Sum + (i + 1) * i Next i
可以看出,该过程的功能是计算 1*2+2*3+3*4+…+(n+1)*n
在调用过程时,实参a的值为5,即上式中的n=5。因此返回的值为: 1*2+2*3+3*4+4*5+5*6=70 【答案】 C
例3 阅读下面的程序:
Function Func(x As Integer, y As Integer) As Integer Dim n As Integer Do While n <= 4 x=x+y n=n+1 Loop Func = x End Function
Private Sub Command1_Click() Dim x As Integer, y As Integer Dim n As Integer, z As Integer x=1 y=1
For n = 1 To 6 z = Func(x, y) Next n Print z End Sub
程序运行后,单击命令按钮,输出结果是 A.16 B.21 C.26 D.31
【分析】 过程Func有两个参数,使用的是引用方式,参数和返回值均为整型,在命令按钮事件过程的For循环中调用Func过程,共循环6次,每次循环调用一次。两个过程中使用的变量(包括参数)基本相同,但由于是局部变量,不会发生冲突。无论在事件过程还是通用过程中,y的值始终保持不变,总等于1。在Func过程中,Do-Loop循环共执行5次,通过变量n控制(从0到4),每次都执行x=x+1,因此,每调用一次Func过程,都使得x=x+5,并把返回值赋给事件过程中的变量z。6次调用中,循环变量n及返回值z的结果如下: n z 1 6 2 11 3 16 4 21 5 26 6 31 【答案】 D
例4 编写如下通用过程:
Sub proc(By Val num As Long, ByRef ren As Long) Dim k As Long
20
共分享92篇相关文档