试题与答案

在窗体上画一个命令按钮和一个标签,其名称分别为Command1和Label1,然后编

题型:单项选择题

题目:

在窗体上画一个命令按钮和一个标签,其名称分别为Command1和Label1,然后编写如下代码:
Sub s(x As Integer, y As Integer)
Static z As Integer
y=x*x+z
z=y
End Sub
Private Sub Command1 Click()
Dim i As Integer, z As Integer
m=0
z=0
For i=1 To 3
S i, Z
m=m+z
Next i
Labell. Caption=Str(m)
End Sub
程序运行后,单击命令按钮,在标签中显示的内容是( )。

A) 50 B) 20 C) 14 D) 7

答案:

参考答案:B

解析: Static语句在过程级别中使用,用于声明变量并分配存储空间,在整个代码运行期间都能保留使用Static语句声明的变量的值。参数传递时默认为地址传递,如果实参为常量或者形参加上ByVal关键字说明,则为传值传递。本题中过程s的参数x和y均为地址传递,在过程s中有一个静态变量z。在本题中要注意过程s中的变量z和命令按钮的单击事件中的变量z都是各自过程的局部变量,这两个变量并不是同一个变量。在命令按钮的Click事件中,分三次使用循环调用了过程s,并且将调用s后改变的z值累加到变量m中,最后m即为所求。在第一次循环中,i的值为1,z的值为0,通过调用过程s改变了形参y的值为1并且随之影响了实参z的值为1,同时过程s中的静态变量z的值也为1,在m中累加了1;在第二次循环中,i的值为2,z的值为1,通过调用过程s改变了形参y的值为5并且随之影响了实参z的值为5,同时过程s中的静态变量z的值也为5,在m中累加了5;在第三次循环中,i的值为3,z的值为5,通过调用过程s改变了形参v的值为14并且随之影响了实参z的值为14,在m中累加了14。最终m的值为1+5+14=20。

试题推荐
微信公众账号搜索答案