某人编写了下面的程序 Private Sub Command l_Click() Dim aAs Integer,bAs Integer a=InputBox(”请输入整数”):b=InputBox(”请输入整数

admin2019-06-11  33

问题 某人编写了下面的程序
    Private Sub Command l_Click()
         Dim aAs Integer,bAs 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函数时使用的是默认的传地址调用,这时在pro过程中的对形参的更改都会影响到实参。仔细观察pro过程,发现每次循环都要对形参n整除10一直到n为0为止,所以每次pro过程调用结束后都会把对应实参改为0。修改参数传递方式为传值调用即可使程序正确运行。
转载请注明原文地址:https://jikaoti.com/ti/lfN0FFFM
0

最新回复(0)