在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,然后编写以下程序代码: Private Sub sub1(ByRef d(), ByRef m1 As Integer) Dim i As Integer m1 = d(

admin2018-10-18  20

问题 在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,然后编写以下程序代码:
Private Sub sub1(ByRef d(), ByRef m1 As Integer)
  Dim i As Integer
  m1 = d(LBound(d))
  For i = LBound(d) + 1 To UBound(d)
    If m1 < d(i) Then m1 = d(i)
  Next i
End Sub
Private Sub Command1_Click()
  Dim n1 As Integer
  n1=-1
  Dim data()
  data = Array(10, 20, -20, 50, 15, -5)
  Call sub1(data(), n1)
  Text1.Text = n1
End Sub
程序运行过程中,当单击命令按钮Command1时,则在文本框Text1中显示的结果为(    )。

选项 A、-5
B、-1
C、0
D、50

答案D

解析 程序的主要功能为:找出数组中的最大值并输出。首先,在程序中定义一个数组变量data,然后通过Array函数给数组整体赋值。LBound函数返回数组某一维的下界,UBound函数返回数组某一维的上界。在子程序sub1中,通过ByRef方式将数组的首地址及变量n的地址分别传给形参数组d和变量m1,此时形参数组d和变量m1与实参数组data和变量n1共享相同的地址空间。在Command_Click过程中语句"Call sub1(data(    ), n1)"调用子过程sub1,并传递参数。在子过程sub1中,LBound(d)=0(数组下标的下界值),UBound(d) = 5;m1=d(LBound(d))=d(0)=10。程序进入For循环,i从1开始执行到5结束,当i=1时,d(1)=20,10<20为真,m1=d(1)=20;当i=2时,d(2)=-20,20<-20为假;当i=3时,d(3)=50,20<50为真,m1=d(3)=50;当i=4时,d(4)=15,50<15为假;当i=5时,d(5)=-5,50<-5为假。整个程序运行结束,最终m1的值为50,也就是说n1的值为50,程序返回后将n1的值显示在文本框Text1中,故选项D正确。
转载请注明原文地址:https://kaotiyun.com/show/1PFp777K
0

最新回复(0)