vb递归函数题型分析

发布 2021-04-29 23:14:28 阅读 2281

递归函数。

求最大公约数。

public function gcd(m as integer, n as integer) as integer

if (m mod n) =0 then

gcd = n

elsegcd = gcd(n, m mod n)

end if

end function

private function fact(n as string) as double

if n <=1 then

fact = 1

elsefact = n * fact (n - 1)

end if

end function

5. 执行下面的程序,第一行输出结果是___23)__第二行输出结果是___47)__

示例:(2024年)运行下面的程序,当单击窗体时,窗体上显示的内容的第一行是 ,第二行是 。

private sub test(x as integer)

x = x * 2 + 1

if x < 6 then

call test(x)

end if

x = x * 2 + 1

print x

end sub

private sub form_click()

test 2

end sub

分析:本程序共发生三次过程调用:第一次是form_click对test调用,第二次和第三次都是test对自身的递归调用,终止条件是x=11,所以应该有三次的逐层返回。答案:

5.执行下面程序,单击命令按钮command1后,显示在窗体上第一行的内容是 ,第二行的内容是 ,第三行的内容是 。

option explicit

private sub command1_click()

dim n as integer, m as integer

n = 2do while m < 3

n = n + 2

if fun(n) then

print n

m = m + 1

end if

loopend sub

private function fun(byval n as integer) as boolean

if n / 2 = int(n / 2) then

fun = fun(n / 2)

elseif n = 1 then fun = true

end if

end function

解析:本题考察的递归函数问题。表达式“n / 2 = int(n / 2)”等式成立表示n能被2整除,当n能被2整除就继续递归调用,否则就终止递归调用;当n为1时,fun返回true。

最终这3个自然数能满足上述条件。

答案: 4 8 16

4. 执行下面的程序,**框第一行内容是 cba ,**框第一行内容是 abc 。

option explicit

private sub command1_click()

dim s as string

s="abc"

back s

send sub

private sub back(st as string)

if len(st)>1 then

back(right(st, len(st)-1))

end if

left(st,1);

end sub

17、(2024年春)运行下面程序,单击命令按钮command1,则在窗体上显示的第一行内容是 ,第二行内容是 ,文本框text1中显示的内容是 。

private sub command1_click()

dim s as string

s = lausiv"

= display(s, len(s))

end sub

private function display(s as string, l as integer) as string

if l > 1 then display = display(s, l - 1)

s = left(s, l - 1) &right(s, 1) &mid(s, l, len(s) -l)

display = s

print display

end function

复合反函数题型分析

复合反函数的问题是一个难点,突破此难点的方法是 充分利用互为反函数的本质特征,即与交换 充分利用互为反函数的转化关系式,即与互为反函数。下面依题型进行分类 1 求复合反函数的解析式。例1 已知,则 解由,得。又设,得,即,故。2 求复合反函数的定义域 值域。例2 已知函数的定义域为,值域为,若该函数...

VB必学函数设计

1.打印负数并分别计算正负数只和 有如下10个数 2,73,82,76,1,24,321,25,89,20 也可以定位其他数值 打印出其中的每个负数,分别计算并输出正数和负数的和。程序如下 sub form click dim number as integer negativesum 0 post...

函数常见题型

复杂的问题往往是一些简单问题的演变和拼接组合,解题的过程则是一个不断分解 转化的过程,注重平时基本题型的积累,就可以敏感地抓住解题过程的结构特征,联想起积累的解题方法,例如一般转化类型有 1 恒成立或恒成立 2 恒成立或恒成立 3 恒成立 4 若存在x使 常用的解题技巧有分离参数,分类讨论,整体代换...