1、编写一个函数(递归实现),将参数字符串反向排列,不能使用C函数库中的字符串操作函数。

#include <stdio.h>

int my_strlen(char* a)
{
	int count = 0;
	while (*a != '\0')
	{
			count++;
			a++;
	}
	return count;
}
void nx(char* a)
{
	char tmp = a[0];
	int len = my_strlen(a);
	a[0] = a[len - 1];
	a[len - 1] = '\0';
	if (my_strlen(a+1) >= 2)
		 nx(a + 1);
	a[len - 1] = tmp;
}
int main()
{
	int len = 0;
	char a[] = "https://www.baidu.com";
	len = my_strlen(a);
	//printf("%d\n", strlen(a));
	//printf("%d\n", len);
	printf("%s\n", a);
	nx(a);
	printf("%s\n", a);
}

2、递归实现输入一个无符号整数,计算它每一位之和。

#include <stdio.h>

int Sum(unsigned int sum)
{
	if (sum > 9)
		return Sum(sum / 10) + sum % 10;
	else
		return sum;

}
int main()
{
	unsigned int sum = 0;
	scanf("%d", &sum);//1234
	int ret=Sum(sum);
	printf("%d\n",ret);
}

3、递归实现n的k次方。

#include <stdio.h>

int js(int n, int k)
{
	//4^4,4*4*4*4
	if (k >= 0)
	{
		if (k == 0)
			return n;
		else
			return js(n, k - 1)*n;
	}
	else
	{
		return -1;
	}
}
int main()
{
	int ret = 0;
	int n = 0;
	int k = 0;
	scanf("%d%d", &n, &k);
	ret = js(n, k);
	printf("%d\n", ret);
}