执行下列程序之后的显示结果是( )。 CLEAR xl=l x2=2 DO p1 with x1,x1+x2 ?"xl="+STR(x1,1),")x2="+STR(x2,1) RETURN P

admin2017-09-25  21

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

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

答案B

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

最新回复(0)