问题
单项选择题
某人设计了下面的函数fun,功能是返回参数a中数值的位数。
Function fun(a As Integer) As Integer
Dim n%
n=1
While a\10>=0
n=n+1:a=a\10
Wend
fun=n
End Function
在调用该函数时发现返回的结果不正确,函数需要修改,下面的修改方案中正确的是______。
A) 把语句a\10>=0改为a\10<0
B) 把错句n=1改为n=0
C) 把语句a=a\10改为a=a Mod 10
D) 把循环条件a\10>=0改为a\10>0
答案
参考答案:D
解析: 本题中返回参数a中数值的位数所使用的方法是:将变量a的值整除10(相当于小数点左移一位后取整数部分),如果结果大于0,用于记录数值位数的变量n的值就加1,n的初始值为1。将a\10的值赋给a后,重复前面的操作。本题原程序中的循环条件a\10>=0构成一个死循环,应改为a\10>0。