问题 单项选择题

某人为计算n!(0<n<=12)编写了下面的函数过程:

Private Function fun(n As Integer)As Long

Dim P As Long

p=1

For k=n-1 To 2 Step-1

p=p*k

Next k

fun=P

End Function

在调试时发现该函数过程产生的结果是错误的,程序需要修改。下面的修改方案中有3种是正确的,错误的方案是()。

A.把P=1改为P=n

B.把For k=n-1 To 2 Step-1改为For k=1 To n-1

C.把For k=n-1 To 2 Step-1改为For k=1 To n

D.把For k=n-1 To 2 Step-1改为For k=2 To n

答案

参考答案:B

解析:

原程序的错误在于没有把n的值乘进去。而B选项中把For k=n-1 To 2 Step-1改为Fork=1 To n-1,依然没有把n乘进去。

综合
单项选择题