有如下程序文件mal.prg:SET UDFPARMS TO VALUEn=1DO procl WITH n?n+2PROCEDURE proc l
有如下程序文件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命令后,程序的輸出結(jié)果是( )。
A)12
B)11
C)10
D)3
正確答案:ASETUDFPARMSTOVALUE指定調(diào)用模塊程序時,以按值方式傳遞參數(shù)。但由于主程序中調(diào)用模塊程序用的格式是DO…WITH…,所以參數(shù)傳遞不受SETUDFPARMSTOVALUE命令的影響,應該按引用傳遞。先將n賦值為1,然后以n為參數(shù),執(zhí)行過程procl,在procl中,定義了一個變量m,接收傳遞過來的n的值,即m=1,接著進入for循環(huán)結(jié)構(gòu),共循環(huán)3次,最后m的值為10,但由于n是按引用傳遞,所以當執(zhí)行完procl后,m"的值傳遞回主程序,n的值變?yōu)?0,當執(zhí)行輸出n+2時,輸出的結(jié)果是12。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。