目录
简单完成一个作业,后面会发详细的解析 |
一、💥
关于递归的描述错误的是:( )
A.存在限制条件,当满足这个限制条件的时候,递归便不再继续
B.每次递归调用之后越来越接近这个限制条件
C.递归可以无限递归下去
D.递归层次太深,会出现栈溢出现象
二、💥
根据下面递归函数:调用函数
Fun(2)
,返回值是多少( )
A.2
B.4
C.8
D.16
int Fun(int n)
{
if(n==5)
return 2;
else
return 2*Fun(n+1);
}
三、💥
打印一个数的每一位
递归方式实现打印一个整数的每一位
四、💥
求阶乘
递归和非递归分别实现求
n
的阶乘(不考虑溢出的问题)
五、💥
strlen的模拟(递归实现)
递归和非递归分别实现
strlen
六、💥
字符串逆序(递归实现)
编写一个函数
reverse_string(char * string)
(递归实现)
实现:将参数字符串中的字符反向排列,不是逆序打印。
要求:不能使用C函数库中的字符串操作函数。
比如:
char arr[] = "abcdef";
逆序之后数组的内容变成:
fedcba
七、💥
计算一个数的每位之和(递归实现)
写一个递归函数
DigitSum(n)
,输入一个非负整数,返回组成它的数字之和
例如,调用DigitSum(1729)
,则应该返回1+7+2+9
,它的和是19
输入:1729
,输出:19
八、💥
递归实现
n
的k
次方
编写一个函数实现
n
的k
次方,使用递归实现。
九、💥
计算斐波那契数
递归和非递归分别实现求第n个斐波那契数
例如:
输入:5
输出:5
输入:10
, 输出:55
输入:2
, 输出:1
(转自比特就业课)