[单项选择题] Fibonacci数列的规律是:前2个数为1,从第3个数开始,每个数是它前2个数之和,即1,1,2,3,5,8,13,21,34,55,89,…某人编写了下面的函数,判断大于1的整数x

16 查阅

[单项选择题] Fibonacci数列的规律是:前2个数为1,从第3个数开始,每个数是它前2个数之和,即1,1,2,3,5,8,13,21,34,55,89,…某人编写了下面的函数,判断大于1的整数x是否是Fibonaeci数列中的某个数,若是,则返回True,否则返回False。

Function Isfab(x As Integer)As Boolean

Dim a As Integer,b As Integer,c As Integer,flag As Boolean

fIag=False

a=1:b=1

Do While x<b

c=a+b

a=b

b=c

If x=b Then flag=True

Loop

Isfab=flag

End Function

测试时发现对于所有正整数x,函数都返回False,程序需要修改。下面的修改方案中正确的是( )

A.把a=b与b=C的位置互换

B.把c=a+b移到b=c之后

C.把Do while x<b改为Do While x>b

D.把If x=b Then flag=True改为If x=a Then flag=True

参考答案:

C

本题是利用While循环求斐波拉希契数列,将求的值与x进行比对,若x是数列中的值,则返回True,否则将返回False。由于循环条件为x<b,a与b的初始值为1,而x是整数,所以x不可能小于b,所以循环不执行,如果需要执行,只需改动While中的条件判断,所以答案选C。

计算机考试