二话不说,直接原题呈现
1、请编写字符串反转函数mystrrev()该函数功能为将指定字符中的字符顺序颠倒排列,并编写主函数验证之。
(基础题)
#include <stdio.h>
char mystrrev(char *str);
int main(){
char str[50];
printf("输入字符串\n");
gets(str);
mystrrev(str);
}
char mystrrev(char *str)
{
int *p;
p=str;
printf("反转:\n");
for(int i=strlen(str);i>=0;i--)
{
printf("%c",str[i]);
}
}
运行结果:
2、编程实现:输入5个用户的姓名和电话号码,按姓名的字母顺序排列后,输出用户的姓名和电话号码。输入数据可自行设定。
(基础题,可能改编成链表.参考2020压轴2020年833)
#include <stdio.h>
//#include <string.h>
struct st{
char name[30];
char tel[30];
};
//stu[5]={"chen","185551000","zhang","18999998787","hei","13444446775","ji","17856519888","luo","1101201309"};//数据多,直接定义好省时省力
int main()
{
struct st stu[5];
int i,j;
for(i=0;i<5;i++)
{
printf("输入第%d个总统的信息:\n",i+1);
scanf("%s%s",stu[i].name,stu[i].tel);
}
for(i=0;i<4;i++)//冒泡
{
for(j=0;j<5-i-1;j++)
{
if(strcmp(stu[j].name,stu[j+1].name)>0)
{
char st[30],tt[30];
strcpy(st,stu[j].name); //姓名和号码都要换
strcpy(stu[j].name,stu[j+1].name);
strcpy(stu[j+1].name,st);
strcpy(tt,stu[j].tel);
strcpy(stu[j].tel,stu[j+1].tel);
strcpy(stu[j+1].tel,tt);
}
}
}
printf("简简单单排个序:\n");
for(i=0;i<5;i++)
{
printf("%s\t%s\n",stu[i].name,stu[i].tel);
}
}
运行结果:
3、求解猴子吃桃问题。 猴子在第1天摘下一堆桃子,当即就吃了一半,又觉不过瘾,于是又多吃了一个。以后每天如此,到第10天时,就只剩下了一个桃子。请编程计算第1天猴子摘得桃子数,并给出计算结果。
(吃个桃桃,好凉凉!!!基础题)
#include <stdio.h>
int main()
{
int n=1; //第十天🍑🌲
for(int i=9;i>0;i--)//已知第十天🍑,直接从第九天算就完事了
n=(n+1)*2;
printf("%d",n);
}
运行结果:
4、用指针编写冒泡排序程序。
(基础入门)
#include <stdio.h>
#define N 10
int sort(int *p)
{
for(int i=0;i<N-1;i++)
{
for(int j=0;j<N-i-1;j++)
{
if(*(p+j)>*(p+j+1))
{
int t;
t=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=t;
}
}
}
}
int main()
{
int a[N];
int i;
printf("输入10个数:\n");
for(i=0;i<N;i++){
scanf("%d",&a[i]);
}
sort(a);
printf("简简单单排个序:\n");
for(i=0;i<N;i++)
{
printf("%d\t",a[i]);
}
}
运行结果:
5、通过键盘输入一个整数n,然后调用递归函数fun(int n)计算 1+2+3+4+n并输出计算结果
请编程实现之。
(一看就会,一做就废 基础题)
#include <stdio.h>
int fun(int n)
{
if(n == 1)
return 1;
else
return fun(n - 1) + n;
}
int main()
{
int n;
printf("输入一个数\n");
scanf("%d", &n);
printf("%d",fun(n));
}
运行结果: