设a、b都是自然数,为求a除以b的余数,某人编写了以下函数: Eunction fun(a As Integer,b As Integer) While a>b a=a—b Wend fun=a End Function 在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是( )。
A.把a=a-b改为a=b-a
B.把a=a-b改为a=a\b
C.把While a>b改为While a%b
D.把While a>b改为While a>=b
第1题:
( 25 )设有以下函数过程
Function fun(a As Integer,b As Integer)
Dim c As Integer
If a<b Then
c=a:a=b:b=c
End If
c=0
Do
c=c+a
Loop Until c Mod b=0
fun=c
End function
若调用函数 fun 时的实际参数都是自然数,则函数返回的是
A ) a 、 b 的最大公约数
B ) a 、 b 的最小公倍数
C ) a 除以 b 的余数
D ) a 除以 b 的商的整数部分
第2题:
有人编写了如下程序:
Private Sub Form_Click()
Dim s As Integer,x As Integer
s=0
x=0
Do While s=10000
x=x+1
s=s+x^2
Loop
Pdnt s
End Sub
上述程序的功能是:计算s=1+22+32+…+n2+…,直到s>10000为止。程序运行后,发现得不到正确的结果,必须进行修改。下列修改中正确的是
A.把x=0改为x=1
B.把Do While s=10000改为Do While s<=10000
C.把Do While s=10000改为Do While s>10000
D.交换x=x+l和s=s+x^2的位置
第3题:
设a、b都是自然数,为求a除以b的余数,某人编写了以下函数:
Function fun(a As Integer,b As Integer)
While a>b
a=a-b
Wend
fun=a
End Function
在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是
A.把a=a-b改为a=b-a
B.把a=a-b改为a=a\b
C.把While a>b改为While a<b
D.把While a>b改为While a>=b
第4题:
下面函数的功能应该是:删除字符串str中所有与变量ch相同的字符,并返回删除后的结果,例如:若str=”ABCDABCD”,ch=”B”,则函数的返回值为:”ACDACD”
Function delchar(str As String,ch As String)As String
Dim kAs Integer,temp As String,ret As String
ret=””
For k=1 To Len(str)
temp=Mid(str,k,1)
If temp=ch Then
ret=ret&temp
End If
Next k
delchar=ret
End Function
但实际上函数有错误,需要修改,下面的修改方案中正确的是( )。
A.把ret=ret&temp改为ret=temp
B.把If temp=ch Then改为Iftemp<>ch Then
C.把delchar=ret改为delchar=temp
D.把ret=””改为temp=””
第5题:
有如下函数过程: Function fun1(ByVal x As Integer,ByVal y As Integer) As Integer Do While y<>0 reminder=x Mod y x=y y=reminder Loop fun1=x End Function 在下列按钮单击事件中调用该函数,则该程序的运行结果是( )。 Private Sub Command1_Click() Dim a AS Integer Dim b As Integer a=100 b=25 x=fun1(a,B) Print x End Sub
A.0
B.25
C.50
D.100
第6题:
某人为计算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
EndFunction
在调试时发现该函数过程产生的结果是错误的,程序需要修改。下面的修改方案中有3种是正确的,错误的方案是
A.把P=1改为P=n
B.把For k=n-1 To 2 Step-1改为For k=1 To n-l
C.把For k=n-1 T02 Step-1改为Fork=1 To n
D.把For k=n-1 To 2 Step-l改为FOr k=2 To n
第7题:
设有以下函数过程: Function fun(a As Integer,b As Integer) Dim c As Integer If a<b Then c=a:a=b:b=C End IF c=0 Do c=c+a Loop Until c Mod b=0 fun=c End Function 若调用函数fun时的实际参数都是自然数,则函数返回的是( )。
A.a、b的最大公约数
B.a、b的最小公倍数
C.a除以b的余数
D.a除以b的商的整数部分
第8题:
有如下函数: Function fun(a As Integer,n As Integer)As Integer Dim m AS Integer While a>=n a=a-n:m=m+1 Wend Fun=m End Function 该函数的返回值是。 A.a乘以n的乘积 B.a加n的和 C.a减n的差 D.a除以n的商(不含小数部分)
第9题:
有如下函数过程。 Function Fun( By Val x As Integer,By Val y As Integer) As Integer Do While y <> 0 reminder = x Mod y xmy y = reminder Loop Fun = x End Function 以下调用函数的事件过程,该程序的运行结果是 Private Sub CommandT_Click( ) Dim a As Integer,b As Integer a = 100:b =25 x =Fun(a,B)Print x End Sub
A.0
B.25
C.50
D.100
第10题:
单击命令按钮时,下列程序的运行结果为
Private Sub Command1_Click()
Print Fun(23, 18)
End Sub
Public Function Fun(m As Integer, n As Integer) As Integer
Do While m <> n
Do While m > n: m=m - n: Loop
Do While m < n: n=n - m: Loop
Loop
Fun=m
End Function
A.0
B.1
C.3
D.5
第11题:
设a、b都是自然数,为求a除以b的余数,某人编写了以下函数:
Eunction fun(a As Integer,b As Integer)
While a>b
a=a—b
Wend
fun=a
End Function
在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是( )。
A.把a=a-b改为a=b-a
B.把a=a-b改为a=a\b
C.把While a>b改为While a%b
D.把While a>b改为While a>=b
第12题:
有人编写了如下程序:
Private Sub Form. Click( )
Dim s As Integer,x As Integer
s=0
x=0
Do While S=1000
x=x+l
s=s+x^2
Loop
Print s
End Sub
上述程序的功能是:计算s=1+22+32+…+n2+…,直到s>10000为止。程序运行后,发现得不到正确的结果,必须进行修改。下列修改中正确的是( )。
A.把x=0改为x=1.
B.把Do While s=10000改为Do While s<=10000
C.do="" while="" s="">10000
D.交换x=x+1和s=s+x^2的位置
第13题:
( 29 )设 a 、 b 都是自然数,为求 a 除以 b 的余数,某人编写了以下函数:
Function fun(a As Integer,b As Integer)
While a>b
a=a-b
Wend
fun=a
End Function
在调试时发现函数是错误的。为使函数能产生正确的返回值,应做的修改是
A )把 a=a-b 改为 a=b-a
B )把 a=a-b 改为 a=a\b
C )把 While a>b 改为 While a<b
D )把 While a>b 改为 While a>=b
第14题:
有一个数列,它的前3个数为0,1,1,此后的每个数都是其前面3个数之和,即
0,1,1,2,4,7,13,24,……
要求编写程序输出该数列中所有不超过1000的数。
某人编写程序如下:
Private Sub Form_Click()
Dim i As Integer,a As Integer,b As Integer
Dim C As Integer,d As Integer
a=0:b=1:c=1
d=a+b+C
i=5
While d<=1000
Print d;
a=b:b=C:C=d
d=a+b+c
i=i+1
Wend
End Sub
运行上面的程序,发现输出的数列不完整,应进行修改。以下正确的修改是
A.把While d<=1000改为While d>1000
B.把i=5改为i=4
C.把i=i+1移到While d<=1000的下面
D.在i=5的上面增加一个语句:Print a;b;c;
第15题:
Fibonacci数列的规律是:前2个数为1,从第3个数开始,每个数是它前2个数之和,即1,1,2,3,5,8,13,2l,34,55,89,…某人编写了下面的函数,判断大于1的整数X是否是Fibonacci数列中的某个数,若是,则返回True,否则返回False。
Function Isfab(x As 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,程序需要修改。下面的修改方案中正确的是( )。
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
第16题:
单击命令按钮时,下列程序的运行结果为 Private Sub Command1_Click() Print Fun(23,18) End Sub Public Function Fun(m As Integer,n As Integer)As Integer Do While m<>n Do While m>n:m=m-n:Loop Do While m<n:n=n-m:Loop Loop Fun=m End Function
A.0
B.1
C.3
D.5
第17题:
有人编写了如下程序: Private Sub Form. Click( ) Dim s As Integer,x As Integer s=0 x=0 Do While S=1000 x=x+l s=s+x^2 Loop Print s End Sub 上述程序的功能是:计算s=1+22+32+…+n2+…,直到s>10000为止。程序运行后,发现得不到正确的结果,必须进行修改。下列修改中正确的是( )。
A.把x=0改为x=1.
B.把Do While s=10000改为Do While s<=10000
C.把Do While S=10000改为Do While s>10000
D.交换x=x+1和s=s+x^2的位置
第18题:
为计算a“的值,某人编写了函数power如下:
Private Function power(a As Integer,n As Integer)As Long
Dim P As Long
P=a
For k=l T0 n
P=P * a
Next k
poWer=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.把Fork=1 To n改为For k=1 To n-1
D.把P=a改为P=1
第19题:
有如下函数过程: Function Fun(By Val x As Integer,By Val y As Integer)As Integer Do While Y<>0 reminder=x Mod y x=y y=reminder Loop Fun=x End Function 以下调用函数的事件过程,该程序的运行结果是 Private Sub Command7_Click() Dim a As Integer,b As Integer a=100:b=25 x=Fun(a,B) Print x End Sub
A.0
B.25
C.50
D.100
第20题:
某人设计了下面的函数fun,功能是返回参数a中数值的位数: Function fun(a AS Integer)AS Integer Dim n% N=1 While a\10>=0 N=n+l:a=a\l0 Wend Fun=n End Function 在调用该函数时发现返回的结果不正确,函数需要修改,下面的修改方案中正确的是。 A.把错句n=1改为n=0 B.把循环条件a\l0>=0改为a\l0>0 C.把语句a=a\l0改为a=a Mod 10 D.把语句fun=n改为fun=a
第21题:
有一个数列,它的前3个数为0,1,1,此后的每个数都是其前面3个数之和,即0,1,1,2,4,7,13,24,… 要求编写程序输出该数列中所有不超过1000的数。 某人编写程序如下: Private Sub Form. Click( ) Dim i As Intender,a As Integer,b As Integer Dim C As Integer,d As Integer a=0:b=1:c=1 d=a4-b4-c i=5 While d<=1C00 Print d; a=b:b=c:c=d d=a+b+c i=i+1 Wend End Sub 运行上面的程序。发现输出的数列不完整,应进行修改。以下正确的修改是( )。
A.把While d<=1000改为while d>1000
B.把i=5改为i=4
C.把i=i+1移到While d<=1000的下面
D.在i=5的上面增加一个语句:Print a;b;C;
第22题:
Fibonacci数列的规律是:前2个数为1,从第3个数开始,每个数是它前2个数之和,即1,1,2,3,5,8,13,21,34,55,89,…某人编写了下面的函数,判断大于1的整数X是否是Fibonacci数列中的某个数,若是,则返回True,否则返回False。
Function Isfab(x As Integer)As Boolean
Dim ii 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,程序需要修改。下面的修改方案中正确的是( )。
A.把a=b与b=C的位置互换
B.把c=a+b移到b=C之后
C.把Do While xb
D.把If x=b Then flag=True改为If x=a Then flag True
第23题:
有如下函数过程: Function Fun (By Val x As Ingeger, ByVal y As Integer)As Integer Do While…y<>0 reminder=x Mod y x=y y=reminder Loop Fun=x End Function 以下是调用该函数的事件过程,该程序的运行结果是 Private Sub Command1_Click() Dim a As Integer Dim b As Integer a=100:b=25 x=Fun(a,b)Print x End Sub
A.0
B.25
C.50
D.100