作业1:定义有参函数实现,主调函数中输入两个数据,通过函数调用,交换该两个变量的值,主调函数输出交换后的结果
int temp(int *a,int *b)
{
int p = *a;
*a = *b;
*b = p;
}
int main (int argc, const char *argv[])
{
int a = 520;
int b = 1314;
temp(&a,&b);
printf("a = %d, b = %d\n",a,b);
return 0;
}
输出结果:
作业2:定义函数实现,主调函数中,输入6名学生成绩,调用函数求6名学生成绩的平均值,将平均值返回给主函数并输出。
要求:使用主调函数中传递数组,被调函数使用指针接收
double age(int *p,int n)
{
int sum = 0;
for(int i = 0; i < n; i++)
{
sum += p[i];
}
return sum/n*1.0;
}
int main (int argc, const char *argv[])
{
int i;
int num;
int score[6];
for(i = 0; i < 6; i++)
{
printf("请输入第%d位学生的成绩:\n",i+1);
scanf("%d",&num);
if(num >= 0 && num <= 100)
{
score[i] = num;
}
else
{
printf("不规范,重新输入\n");
i--;
}
}
printf("6名学生的平均值为%.2lf\n",age(score,6));
return 0;
}
输出结果:
作业3:定义一个长度为5的一维数组,在主函数内实现输入元素功能,调用函数实现该数组的降序输出,要求形参与实参皆使用指针完成。
void sort(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 = p[j];
p[j] = p[j+1];
p[j+1] = temp;
}
}
}
}
int main (int argc, const char *argv[])
{
int array[5] = {0};
printf("请输入5个整型数字\n");
for(int i = 0; i < 5; i++)
{
scanf("%d",&array[i]);
getchar();
}
int *p = array;
sort(p,5);
printf("排序后的数组元素如下:\n");
for(int i = 0; i < 5; i++)
{
printf("%d\n",array[i]);
}
return 0;
}
输出结果:
作业4:定义一个长度为5的一维数组,在主函数内实现输入元素功能,调用函数实现该数组的逆置,要求形参与实参皆使用指针完成
void temp(int *p,int n)
{
int i,j;
i = 0;
j = n - 1;
int h = 0; // 用来交换
while(i < j)
{
h = p[i];
p[i] = p[j];
p[j] = h;
i++;
j--;
}
}
int main (int argc, const char *argv[])
{
int array[5] = {0};
printf("请输入5个整型数字\n");
for(int i = 0; i < 5; i++)
{
scanf("%d",&array[i]);
getchar();
}
int *p = array;
temp(p,5);
printf("逆置后的数组元素如下:\n");
for(int i = 0; i < 5; i++)
{
printf("%d\n",array[i]);
}return 0;
}
输出结果:
作业5:一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶了多少只鸭子?使用递归函数求出鸭子总数。
int fun(int n)
{
if(n == 0)
return 2;
else
{
return 2*(fun(n-1)+1);
}
}
int main (int argc, const char *argv[])
{
int count = fun(7);
printf("鸭子总数为:%d\n",count);
return 0;
}
输出结果:
作业6:小明想要编写一个递归函数,接收一个非负整数,输出该数的所有位,请你帮帮他吧。
int fun(int n)
{
if(n /10 == 0)
{
printf("%d\n",n);
}
else
{
printf("%d\n",n%10);
return fun(n/10);
}
}
int main (int argc, const char *argv[])
{
printf("请输入一个正整数\n");
int num = 0;
scanf("%d",&num);
fun(num);
return 0;
}
输出结果: