单选题
Fibonacci数列的规律是:前2个数为1,从第3个数开始,每个数是它前2个数之和,即1,1,2,3,5,8,13,21,34,55,89,…。某人编写了下面的函数,判断大于1的整数x是否是Fibonacci数列中的某个数,若是,则返回True,否则返回False。
Function Isfab(xAs Integer)As Boolean
Dim a As Integer,b As Integer,c As Integer, flag As Boolean
flag=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,程序需要修改。下面的修改方案中正确的是______。
【正确答案】
C
【答案解析】[解析] 本题主要考查Do While...Loop循环,程序中b的初始值为1,当程序运行到Do While x<b时,将传递过来的参数x与变量b进行比较,发现所有正整数都不满足此条件,因此也就不能进入循环体,跳出Do While...Loop循环,直接执行Isfab=flag语句,而flag的初始值为False,函数的返回值即变量flag的值,故对所有正整数x,函数都返回False。