有如下程序
DECLARE SUB add(x,y)
x=1:y=1
CALL add((x),(y))
PRINT "x=";x;",y=";y
END
SUB add(x,y)
x=x+y
PRINT "x=";x;",y=";y
END SUB
运行后的输出结果是
(A)x=1,y=1 (B)x=2,y=1
x=2,y=2 x=1,y=1
(C)x=1,y=1 (D)x=2,y=1
x=1,y=1 x=2,y=1
解析:在本程序中,实际参数中的变量是用圆括号括起来的,因此为值传递方式,而不是按地址传递方式,即将变量的值传递给形式参数,形式参数不影响实际参数变量。因此,执行主程序中的CALL语句时,实际参数x,y分别把值1传递给形式参数x,y(注:它们与形式参数x,y不共用同一内存单元)。在执行子程序PRINT语句时,x=2、y=1,输出为:x=2,y=1。
结束子程序后,由于实际参数x,y都为值传递方式,因而形式参数在子程序中的变化不会改变实际参数的值。所以,当执行主程序中的PRINT语句时,x,y仍为1,输出结果为x=1,y=1。因此答案为B。
有如下程序
m$="123"
n$="456"
k$=LCASE$(m$)
j$=UCASE$(n$)
PRINT ASC(k$),ASC(j$)
END
运行时输出的结果是
(A)123 456 (B)!@# $%^
(C)49 52 (D)33 36
解析:LCASE$函数是将字符串中的所有英文字母转换为小写,UCASE$函数是将字符串中的所有英文字母转换为大写,因此k$="123",j$="456"。而在PRINT ASC(k$),ASC(j$)语句中,ASC函数是取字符串中的第一个字符的ASCII码,即分别取“1”和“4”的ASCII码,而数字字符的ASCII码是以48(“0”的ASCII码值)开始,按“0123456789”的顺序,依次递增1,因此选择C。