有如下程序文件mal.prg: SET UDFPARMS TO VALUE n=1 DOproc1 WITH n ?n+2 PROCEDURE proc 1 P

admin2013-02-01  36

问题 有如下程序文件mal.prg:
        SET UDFPARMS TO VALUE
        n=1
        DOproc1 WITH n
        ?n+2
        PROCEDURE proc 1
        PARAMETERS m
        FOR k=2 TO 4
            m=m+k
        ENDFOR
        RETURN
    在命令窗口输入DO mal命令后,程序的输出结果是(            )。

选项 A、12
B、11
C、10
D、3

答案A

解析 SET LJDFPARMS TO VALUE指定调用模块程序时,以按值方式传递参数。但由于主程序中调用模块程序用的格式是DO…WITH…,所以参数传递不受SETUDFPARMS TO VALUE命令的影响,应该按引用传递。先将n赋值为1,然后以n为参数,执行过程procl,在procl中,定义了一个变量m,接收传递过来的n的值,即m=1,接着进入for循环结构,共循环3次,最后m的值为10,但由于n是按引用传递,所以当执行完procl后,m的值传递回主程序,n的值变为10,当执行输出n+2时,输出的结果是12。
转载请注明原文地址:https://kaotiyun.com/show/SJsp777K
0

最新回复(0)