有如下过程代码:
Sub var_dim()
Static numa As Integer
Dim numb As Integer
numa=numa+2:numb=numb+1
Print numa; numb
End Sub
连续三次调用var_dim过程,第三次调用时的输出是
A.2 1
B.2 3
C.6 1
D.6 3
参考答案:C
解析: 本题考查静态变量和动态变量的区别。题目中变量numa用static申明,是静态变量,numb是动态变量。
过程内的动态变量在程序运行到变量所在的过程时,系统为变量分配存储空间,并进行变量的初始化,当该过程结束时,释放变量所占用的存储空间。所以本题中第三次调用var_dim过程时,变量numb的值与前两次调用var_dim过程没关系,首先分配存储空间并初始化为0,在执行numb=numb+1后输出其值,结果为1。
过程内的静态变量,只在第一次调用该过程时,系统为该静态变量分配存储空间,并进行变量的初始化,当该过程结束时,不释放变量所占用的存储空间,下次再调用该过程时,静态变量的值依然存在。所以本题第三次调用var_dim过程时,numa是在第二次调用var_dim过程后numa的值的基础上再加2,而第二次调用时是在第一次调用var_dim过程后的numa的值的基础上加2,numa的初始值为0,调用3次var_dim过程后结果为6。所以本题输出的结果为6 1,故本题答案为C。