问题 单项选择题

某人编写了下面的程序:
Private Sub Command1_Click()
Dim a As Integer,b As Integer
a=InputBox("请输入整数")
b=InputBox("请输入整数")
pro a
pro b
Call pro(a+b)
End Sub
Private Sub pro(n As Integer)
While(n>0)
Print n Mod 10:
n=n\10
Wend
Print
End Sub
此程序功能是:输入2个正整数,反序输出这2个数的每一位数字,再反序输出这2个数之和的每一位数字。例如,若输入123和234,则应该输出:
3 2 1
4 3 2
7 5 3
但调试时发现只输出了前2行(即2个数的反序),而未输出第3行(即2个数之和的反序),程序需要修改。下面的修改方案中正确的是______。

A) 把过程pro的形式参数"n As Integer"改为"ByVal n As Integer"
B) 把"Call pro(a+b)"改为"pro a+b"
C) 把"n=n\10"改为"n=n/10"
D) 在pro b语句之后增加语句c%=a+b,再把"Call pro(a+b)"改为"pro c\

答案

参考答案:A

解析: 本题中过程pro的形式参数n的传值方式为地址传递,若不把它改成值传递则前两次的调用已经将a,b的值均变为了0,第三次调用就只能得到0值了,所以选项A) 是正确的。

单项选择题
单项选择题