当前位置: > 哪位高人帮着解释下这个程序选择题答案,看不懂....
题目
哪位高人帮着解释下这个程序选择题答案,看不懂.
下列程序的输出结果
clear
store 10 to a
store 20 to b
set udfparms to reference
do swap with a,(B)
?a,b
procedure swap
paremeters x1,x2
temp=x1
x1=x2
x2=temp
endproc
A ,10 20 B,20 20 C 20 10 D 10 10
答案是B 能每步都解释下吗 不知道答案怎么出来的,谢谢!

提问时间:2021-04-30

答案
这个程序分为两段,下面是第一段:
1、clear
2、store 10 to a
3、store 20 to b
4、set udfparms to reference
5、do swap with a,(B)
6、?a,b
上述语句的含义为:
1、清除屏幕内容
2、将10存入变量a
3、将20存入变量b
4、设置调用过程的传参数方式为传地址,这样在过程中可以修改参数的值
5、调用swap过程交换a与b中的值
6、在屏幕上输出a与b的值
第二段定义了一个过程swap,用于交换两个参数中的值
7、procedure swap
8、paremeters x1,x2
9、temp=x1
10、x1=x2
11、x2=temp
12、endproc
7、声明过程swap
8、为过程swap声明两个参数 x1,x2
9、将x1中的值存入临时变量temp中
10、用x2的值替换x1中的值,此时x1中存放的值与x2中的值相同
11、用临时变量temp中的值替换x2中的值,此时x2的值变为x1的初始值,从而完成交换x1与x2中的值的操作
12、过程定义结束
在这里最迷惑人的部分是第5句:
do swap with a,(B)
看起来,应该是交换a与b中的值,最后的输入应为20,10,即C
但这里B外面加了一个括号,在运行时,这个(B)被认为是一个表达式,被进行了计算,传入swap的实际上计算后的值的地址,而不是变量B的地址,所以执行swap后的实际效果是将B中的值赋给了A,而B的值没有变化.
如果你将第5句改为:
do swap with a,B
那么答案就变为了C
祝你好运.
举一反三
已知函数f(x)=x,g(x)=alnx,a∈R.若曲线y=f(x)与曲线y=g(x)相交,且在交点处有相同的切线,求a的值和该切线方程.
我想写一篇关于奥巴马的演讲的文章,写哪一篇好呢?为什么好
奥巴马演讲不用看稿子.为什么中国领导演讲要看?
想找英语初三上学期的首字母填空练习……
英语翻译
版权所有 CopyRight © 2012-2019 超级试练试题库 All Rights Reserved.