【程序】SET TALK OFFCLEARSTORE 10 TO ASTORE 20 TO BSET UDFPARMS TO REFERENCEDO SWAP W1TU A,(B)? A,BPROCEDURE SWAPPARAMETERS X1,X2 TEMP=X1 X1=X2 X2=TEMPENDPROCSET TALK ONRETURN
单选题 A的输出结果为 ______。
【正确答案】 B
【答案解析】
单选题 B的输出结果为 ______。
【正确答案】 B
【答案解析】解析:命令SET UDFPARAMS TO REFERENCE 用来设置参数传递方式为按引用传递。也就是说,当形参变量值改变时,实参变量也是随之改变。但是由于本题采用的调用方式是:DO WITH,所以调用方式不受参数UDFPARAMS的影响。调用过程中变量A是按引用传递,变量B用括号括起来,因此B始终是按值传递。模块SWAP的功能是将两个变量交换。程序开始时变量 A和B的值分别为10和20,执行模块SWAP之后将A和B交换,由于变量A是按引用传递,因此交换后变量A指向B的地址,因此返回主程序后A的值为20,变量B为按值传递,模块结束后,其值仍为20,因此返回主程序后,变量A和B指向同一个地址,其值均为20。
单选题 若将“DO SWAP WITH A,(B)”改为“DO SWAP WITH A,B”,则A,B的输出结果为 ______。
【正确答案】 C
【答案解析】解析:变量A、B都是按引用传递,因此,交换后变量A指向B的地址,B指向A的地址,所以返回主程序后,A、B值分别为20、10。
单选题 若将“DO SWAP WITH A,(B)”改为“D()SWAP WITH (A),B”,则A,B的输出结果为 ______。
【正确答案】 D
【答案解析】解析:变量A是按值传递,模块结束后,其值仍为10。B是按引用传递,交换后变量B指向A的地址。所以返回主程序后,A值为10,B值也为10。