为计算a"的值,某人编写了函数power如下:
Private Function power(a As Integer,n As Integer)As Long
Dim s As Long
p=a
For k=1 To n
p=p*a
Next k
power=p
End Function
在调试时发现是错误的,例如Print power(5,4)的输出应该是625,但实际输出是3125。程序需要修改。下面的修改方案中有3个是正确的,错误的一个是()。
A.把For k=1 To n改为For k=2 To n
B.把p=p*a改为p=p^n
C.把For k=1 To n改为For k=1 To n-1
D.把p=a改为p=1
参考答案:B
解析:
程序中计算a"的算法有误,南于已经将a的值赋给了p,在后边的For循环中再乘n次a显然就多乘了一次a,因此,要改正此程序,或者将p=a改为p=1,或者将for k=1 to n改成for k=1 to n-1或for k=2 to n。而B选项将p=p*a改为p=p^n将会导致p=p^n执行n次,得不到正确结果。