1.使用递归实现 求 n的k次方
#include<stdio.h>
int xixi(int a,int b)
{
if(b==0)
{
return 1;
}else
{
return a*xixi(a,b-1);
}
}
int main()
{
int n=0,k=0;
printf("输入n,k并求n的k次方:");
scanf("%d %d",&n,&k);
int c=xixi(n,k);
printf("结果为:%d\n",c);
return 0;
}
运行:
2.使用递归实现 stren 的功能
#include <stdio.h>
#include <string.h>
int changdu(char *a)
{
if (*a == '\0')
{
return 0;
}
else
{
return 1 + changdu(a + 1);
}
}
int main()
{
char b[100] = "";
printf("输入一个字符串:");
gets(b);
printf("输入的字符串的长度为:%d\n", changdu(b));
return 0;
}
3.使用递归实现汉诺塔问题(君子作业)
#include<stdio.h>
int hnt(int n)
{
if(n==1)
{
return 1;
}
if(n==2)
{
return 3;
}
else{
return hnt(n-1)*2+1;
}
}
int main()
{
int a=0;
while(1)
{
printf("输入汉诺塔层数:");
scanf("%d",&a);
printf("移动次数:%d\n",hnt(a));
}
return 0;
}
4.定义一个函数将一个字符串从大到小排序
#include <stdio.h>
#include <string.h>
void paixu_1(char a[])
{
int n = strlen(a);
for (int i = 1; i < n; i++)
{
for (int j = 0; j < n - 1; j++)
{
if (a[j] > a[j + 1])
{
char t = a[j];
a[j] = a[j + 1];
a[j + 1] = t;
}
}
}
printf("排序后的字符串为:");
for (int i = 0; i < n; i++)
{
printf("%c", a[i]);
}
printf("\n");
}
int main()
{
char a[100] = "";
printf("输入一个字符串:");
gets(a);
paixu_1(a);
return 0;
}
5.实现一个函数,用于检查一个字符串是否是回文字符串(正序和反序都相同)
#include <stdio.h>
#include <string.h>
char huiwen_1(char a[100])
{
char b[100] = "";
int n = strlen(a);
for (int i = n - 1; i >=0; i--)
{
b[i] = a[n - i - 1];
}
int m = 0;
for (int i = 0; i < n; i++)
{
if (a[i] == b[i])
{
m=m+1;
}
else
{
m = 0;
}
}
if (m == n)
{
printf("是回文字符串\n");
}
else
{
printf("不是回文字符串\n");
}
}
int main()
{
char a[100] = "";
printf("输入一个字符串:");
gets(a);
huiwen_1(a);
return 0;
}
6.使用指针完成判断自己的主机存储多字节整数时,是大端存储还是小端存储
#include <stdio.h>
int check_sys()
{
int i = 1;
return (*(char *)&i);
}
int main()
{
int ret = check_sys();
if(ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
7.有一段文本,统计其中 英文个数
代码:
#include <stdio.h>
#include <string.h>
void haha_1(char a[100])
{
int n = strlen(a);
int m = 0;
for (int i = 0; i < n; i++)
{
if (a[i] == ' ' && a[i - 1] != ' '||a[i]==','&&a[i-1]!=','||a[i]=='!'&&a[i-1]!='!'||a[i]=='?'&&a[i-1]!='?'||a[i]=='.'&&a[i-1]!='.')
{
m++;
}
}
printf("单词个数为:%d\n", m);
}
int main()
{
char a[100] = "";
printf("输入一句英文句子:");
gets(a);
haha_1(a);
return 0;
}