有如下程序文件mal.prg:SET UDFPARMS TO VALUEn=1DO procl WITH n?n+2PROCEDURE proc l

18 查阅

有如下程序文件mal.prg:

SET UDFPARMS TO VALUE

n=1

DO procl WITH n

?n+2

PROCEDURE proc l

PARAMETERS m

FOR k=2T04

m=m+k

ENDFOR

RETURN

在命令窗口输入DO ma1命令后,程序的输出结果是( )。

A)12

B)11

C)10

D)3

参考答案:

ASETUDFPARMSTOVALUE指定调用模块程序时,以按值方式传递参数。但由于主程序中调用模块程序用的格式是DO…WITH…,所以参数传递不受SETUDFPARMSTOVALUE命令的影响,应该按引用传递。先将n赋值为1,然后以n为参数,执行过程procl,在procl中,定义了一个变量m,接收传递过来的n的值,即m=1,接着进入for循环结构,共循环3次,最后m的值为10,但由于n是按引用传递,所以当执行完procl后,m"的值传递回主程序,n的值变为10,当执行输出n+2时,输出的结果是12。

计算机二级