有下面程序代码: Private Sub Command1_Click() Dim a(6)As Integer For k=0 To 5 a(k)=k*2+1 Next k proc a,4,0 F

admin2019-06-20  27

问题 有下面程序代码:
    Private Sub Command1_Click()
    Dim a(6)As Integer
    For k=0 To 5
    a(k)=k*2+1
    Next k
    proc a,4,0
    For k=0 To 6
    Print a(k);
    Next k
    End Sub
    Private Sub proe(b()As Integer,n As Integer,x
    As Integer)
    For k=UBound(b)To n Step一1
    b(k)=b(k一1)
    Next k
    b(k)=X
    End Sub
    执行Command1_Click事件过程后产生的输出是(    )。

选项 A、1 3 5 4 0 7 9 11
B、1 3 5 7 0 9 11
C、1 3 5 0 7 9 11
D、1 3 5 0 9 11

答案C

解析 在过程Command1_Click中定义了一个数组a,第一个For循环的功能是:为数组中的元素赋值,循环执行结束后,a(0)=1;a(1)=3;a(2)=5;a(3)=7;a(4)=9;a(5)=11。接着使用语句proc a,4,0调用过程proc,并传递相应的参数,其中第一个参数为数组名,当用数组作为过程的参数时,使用的是“传地址”的方式,也就是说实参a和形参b指向的是同一个存储空间,对数组b的任何修改本质上都是修改数组a。过程proc中使用UBound函数获得数组下标的上界值,循环变量k的初始值为6,终止值为4。当k=6时,执行语句b(6)=b(5)=11;当k=5时,执行语句b(5)=b(4)=9;当k=4时,执行语句b(4)=b(3)=7,循环结束后执行语句b(3)=0,所以最终数组a中各元素的值依次为:1,3,5,0,7,9,11。C选项正确。本题选择C选项。
转载请注明原文地址:https://kaotiyun.com/show/CfUp777K
0

最新回复(0)