问题 单项选择题

为计算an的值,某人编写了函数power如下: Private Function power(a As Integer,n As Integer)As LongDim p As Longp=aFor k=1 Ton p=p*aNext kpower=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

解析:
[知识点] For循环
[评析] 本题要求编写计算an的值的程序,创建一个通用过程,建立一个函数过程来满足要求,最后返回的函数值的数据类型为长整型,先定义一个变量p,用变量p来存放方根的乘积。通过For循环计算方根的积,本题程序的运行过程为:当k=1,执行的结果为p=a*a=a2,当k=2,执行的结果为p=a*a=a3以此类推,当k=n,执行的结果为p=a*a=an+1,所以power(5,4)输出的是p=55=3125,实际应该输出的是p=54=625。
选项A如果把For k=1 to n改为For k=2 to n,则执行的次数会减1,所以最后p的值为an,所以选项A正确。选项B将p=p*a改为p=p^n,当执行第一次循环时,p=a1,当执行第二次循环时,p=a^2,执行第三次循环时,(a^2)^3=a6,第四次循环时为(a6)^4=a24,所以选项B不正确。选项C的运算次数有n-1次,a*an-1=an所以选项C也是正确的,选项D把p=a改为p=1,循环执行n次,所以p=1*a*a*a…=an,,所以选项D也正确。

不定项选择
单项选择题