内容正文:
4.3递归法同步练习人教版信息技术选修1
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.有如下VB程序:
Function f(i As Integer)
If i=1 Then
f=2
Else
f=2 * 10^(i-1)+f(i-1)
End If
End Function
Private Sub Command1_Click()
Dim n As Integer,s As Integer,i As Integer
n=Val(Text1.Text)
s=0
For i=1 To n
s=s+f(i)
Next i
Labell.Caption=Str(s)
End Sub
若在Textl中输入5,则Labell中显示的内容为( )
A.22222 B.24690 C.20000 D.2468
2.某VB程序段如下:
Function f (n As Integer) As Long
If n = 1 Then
f = 5
Else
f= 2*f(n-1) – 3
End If
End Function
Private Sub Command1_click()
Dim n As Integer
n = Val (Text1.Text)
Text2. Text = Str(f(n))
End Sub.
该程序段运行后,在文本框Text1中输入5,单击命令按钮Command1后,文本框Text2中显示的是( )
A.18 B.35 C.63 D.123
3.【加试题】某VB程序使用了递归函数,代码如下:
Private Sub Command1_Click()
Text1.Text = f(3)
End Sub
Function f(x As Integer) As String
If x = 1 Then f = 1 Else f = f(x - 1) + 2
End Function
运行程序并点击按钮Command1后,文本框Text1中显示的内容是( )
A.1 B.3 C.5 D.7
4.下列VB程序模块可以计算正整数n阶乘的值。
Function f(n As Integer) As Integer
If n < =" 1" Then
f = 1
Else
f =" n" * f(n - 1)
End If
End Function
该模块采用的算法是( )
A.枚举 B.查找 C.排序 D.递归
5.有一个有趣的仓鼠繁殖问题:第一个月买来1对仓鼠,2个月后会生1对小仓鼠,以后每个月都会生1对小仓鼠;而生下来的仓鼠,也会从第二个月开始每月生1对小仓鼠,以此类推。试问一年后,仓鼠的总数达到多少?
分析问题得出出生月份与仓鼠对数关系图
程序中划线部分①②应填入的语句或表达式为( )
A.①i=0 To 12 ②a(i-1)+a(i-2)
B.①i=3 To 12 ②a(i-1)+a(i-2)
C.①i=3 To 12 ②a(i+1)+a(i+2)
D.①i=0 To 12 ②a(i+1)+a(i-2)
6.下面代码的输出结果是( )。
def add(x):
if x>0:
return x+add(x-l)
else:
return 0
result=add(10)
print(result)
A.0 B.10 C.55 D.45
7.用递归求n!,当n=1时,f(1)=1,否则f(n)=f(n-1)*n,当n=3时,递归调用顺序正确的是( )
A.f(1)、f(2)、f(3)
B.f(2)、f(3)、f(1)
C.f(3)、f(2)、f(1)
D.以上都不对
8.下列VB程序中,f是一个递归函数:
Private Sub Command1_Click()
Dim y As Integer
y = Val(Text1.Text)
Label1.Caption = Str(f(y))
End Sub
Function f(n As Integer) As Integer
If (n =" 1)" Or (n =" 2)" Then
f = 1
Else
f =" f(n" - 1) + f(n - 2)
End If
End Function
程序运行时,在文本框中输入8,单击命令按钮Command1后,Label1中显示的内容是:( )
A.5 B.8 C.13 D.21
9.程序运行时分别在文本框Text1与Text2中输入12与20,点击按钮 Command1后,文本框Text3中显示的内容是( )
Private Sub Commandl_ Click