作业1:定义有参函数实现,主调函数中输入两个数据,通过函数调用,交换该两个变量的值,主调函数输出交换后的结果
![](https://img-blog.csdnimg.cn/img_convert/5241717057ffb092f0ee1bee219c7571.png)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int fun(int i,int j)
{
int temp=0;
temp=i;i=j;j=temp; //交换次序
printf("交换后的值为:%d %d\n",i,j);
}
int main(int argc, const char *argv[])
{
int m,n; //定义两个变量
printf("输入两个数:");
scanf("%d,%d",&m,&n);
fun(m,n);
return 0;
}
作业2:定义函数实现,主调函数中,输入6名学生成绩,调用函数求6名学生成绩的平均值,将平均值返回给主函数并输出。
![](https://img-blog.csdnimg.cn/img_convert/dbcde6ae0002b00b391dbe8bbdfb84d9.png)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int ave(int *p,int n)
{
int sum=0;
for(int i=0;i<6;i++)
{
sum+=*(p);
}
return sum;
}
int main(int argc, const char *argv[])
{
int s[6];
for(int i=0;i<6;i++)
{
printf("输入第%d个学生的成绩:",i+1);
scanf("%d",&s[i]);
}
ave(s,6);
printf("平均值为:%d\n",ave(s,6)/6);
return 0;
}
作业3:定义-一个长度为5的一维数组,在主函数内实现输入元素功能,调用函数实现该数组的降序输出,要求形参与实参皆使用指针完成。
![](https://img-blog.csdnimg.cn/img_convert/5a72c8cd7efca5d2de2527a6715500b7.png)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void fun(int *p,int n)
{
for(int i=1;i<n;i++)
{
for(int j=0;j<n-i;j++)
{
if(*(p+j) < *(p+j+1))
{
int temp=0;
temp=*(p+j);
*(p+j)=*(p+j+1);
*(p+j+1)=temp;
}
}
}
printf("降序输出元素为:");
for(int i=0;i<5;i++)
{
printf("%d\t",*p);
p++;
}
printf("\n");
}
int main(int argc, const char *argv[])
{
int arr[5];
int *p=arr;
for(int i=0;i<5;i++)
{
printf("输入第%d个元素",i+1);
scanf("%d",&p[i]);
}
fun(p,5);
return 0;
}
作业4:定义一个长度为5的一维数组,在主函数内实现输入元素功能,调用函数实现该数组的逆置,要求形参与实参皆使用指针完成
![](https://img-blog.csdnimg.cn/img_convert/ae0e44a62123c32e7bdf365a64e11432.png)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void fun(int *p,int n)
{
for(int i=0;i<5/2;i++)
{
int temp=p[i];
p[i]=p[4-i];
p[4-i]=temp;
}
printf("逆序元素排列为:");
for(int i=0;i<5;i++)
{
printf("%d\t",*p);
p++;
}
printf("\n");
}
int main(int argc, const char *argv[])
{
int arr[5];
int *p=arr;
for(int i=0;i<5;i++)
{
printf("输入第%d个元素",i+1);
scanf("%d",&p[i]);
}
fun(p,5);
return 0;
}
作业5:一个人赶着鸭子去每个村庄卖,每经过一个村子 卖去所赶鸭子的一半又- -只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶了多少只鸭子?使用递归函数求出鸭子总数。
![](https://img-blog.csdnimg.cn/img_convert/b2ce0944c1c1ab03feff320da15b7472.png)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int s(int n)
{
if(n==1)
{
return 2;
}else
{
return (s(n-1)+1)*2;
}
}
int main(int argc, const char *argv[])
{
int ya=s(8);
printf("出发时赶%d只鸭子",ya);
return 0;
}
作业6:小明想要编写一个递归函数, 接收-个非负整数, 输出该数的所有位,请你帮帮他吧。
![](https://img-blog.csdnimg.cn/img_convert/e5e25e93d0d4cf892fbead37a8e62c45.png)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
void shu(int i)
{
if(i%10==i) //判断该数值是否为个位数
{
printf("%d\t",i);
}else
{
printf("%d\t",i%10); //输出该位的数值
return shu(i/10); //返回该数值除以10后的值
}
printf("\n");
}
int main(int argc, const char *argv[])
{
int s; //定义一个变量
printf("请输入一个非负整数:");
scanf("%d",&s); //输入数值
shu(s); //定义一个数组
return 0;
}