执行下列程序之后的显示结果是( )。 CLEAR x1=1 x2 =2 DO p1 with x1 ,x1 +x2 ?"x1="+STR(x1 ,l),"x2="+STR(x2,1) RETURN PROC p1 PARA w1.w2 wl=wl*

admin2016-08-24  18

问题 执行下列程序之后的显示结果是(     )。
CLEAR
x1=1
x2 =2
DO p1 with x1 ,x1 +x2
?"x1="+STR(x1 ,l),"x2="+STR(x2,1)
RETURN
PROC p1
PARA w1.w2
wl=wl*2
w2=w2*2
RETURN

选项 A、x1=2 x2=2
B、x1=1 x2=2
C、x1=2 x2=6
D、x1=1 x2=6

答案A

解析 调用模块程序的语句格式:DO<文件名>l<过程名>WITH<实参l>[,<实参2>,…],实参可以是常量、变量,也可以是一般形式的表达式。调用模块程序时,如果实参是常量或一般形式的表达式,系统会计算出实参的值,并把它们赋值给相应的形参变量。这种情形称为按值传递;如果实参是变量,那么传递的将不是变量的值,而是变量的地址,在模块中对形参变量值的改变,同样是对实参变量值的改变,这种情形称为按引用传递。本题中实参x1是按照引用传递,x1+x2是表达式,将按照值进行传递,即在过程p1中,wl的值的改变会影响x1,而w2的值的改变不会影响x1+x2.最终x1的值为w1的值为2,x2的值不变,仍为2,故A选项正确。
转载请注明原文地址:https://kaotiyun.com/show/AhIp777K
0

最新回复(0)