20230322华清远见

作业1:定义有参函数实现,主调函数中输入两个数据,通过函数调用,交换该两个变量的值,主调函数输出交换后的结果

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>

int fun();

int fun(int m ,int n){//交换主函数传递的值
    int temp=0;
    temp=m; m=n; n=temp;
    printf("%d\t%d\n", m, n);
    return m,n;
}

int main(int argc, const char *argv[])
{
    int m,n;//输入两个数据
    printf("请分别输入两个数据:");
    scanf("%d%d", &m, &n);
    fun(m, n);
    return 0;
}

作业2:定义函数实现,主调函数中,输入6名学生成绩,调用函数求6名学生成绩的平均值,将平均值返回给主函数并输出。

要求:使用主调函数中传递数组,被调函数使用指针接收

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
double fun(int *b, int len);//函数声明

double fun(int *b, int len){//统计成绩并返回成绩的平均数
    double aver =0.0;//成绩平均数
    int sum=0;        //成绩总和
    int i=0;
    for(i=0; i<len; i++){  //遍历
        sum+=b[i];
    }
    aver=sum/6.0;
    return aver;

}

int main(int argc, const char *argv[])
{
    int arr[6]={0};//定义接受学生成绩的数组
    int i=0;          //用于计数
    for(i=0; i<6; i++){          //遍历输入成绩
        printf("请输入第%d位同学的成绩:", i+1);
        scanf("%d", &arr[i]);
    }
    printf("\n");
    double aver=fun(arr,6);
    printf("同学们的平均成绩为:%.2lf\n", aver);
    return 0;
}

作业3:定义一个长度为5的一维数组,在主函数内实现输入元素功能,调用函数实现该数组的降序输出,要求形参与实参皆使用指针完成。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
void fun(int *b, int len);

void fun(int *b, int len){
    int temp=0;
    for(int i=1; i<len; i++){        //冒泡排序,降序
        for(int j=0; j<len-i; j++){
            if(b[j]<b[j+1]){
            temp=b[j]; b[j]=b[j+1]; b[j+1]=temp;
            }
        }
    }
    for(int i=0; i<len; i++){     //遍历输出数组
        printf("%d\t", b[i]);
    }
    printf("\n");
}

int main(int argc, const char *argv[])
{
    int arr[5]={0};        //数组初始化
    int *a=arr;            //指针指向数组的首地址
    int i=0;
    for(i=0; i<5; i++){      //数组的遍历输入
        printf("请输入第%d位数:", i+1);
        scanf("%d", &a[i]);
    }
    printf("\n");
    fun(a, 5);

    return 0;
}

作业4∶定义一个长度为5的一维数组,在主函数内实现输入元素功能,调用函数实现该数组的逆置,要求形参与实参皆使用指针完成

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
void fun(int *b, int len);

void fun(int *b, int len){
    int temp=0;
    for(int i=0; i<len/2; i++){        //数组的逆置
        temp=b[i]; b[i]=b[len-1-i]; b[len-1-i]=temp;
    }
    for(int i=0; i<len; i++){     //遍历输出数组
        printf("%d\t", b[i]);
    }
    printf("\n");
}

int main(int argc, const char *argv[])
{
    int arr[5]={0};        //数组初始化
    int *a=arr;            //指针指向数组的首地址
    int i=0;
    for(i=0; i<5; i++){      //数组的遍历输入
        printf("请输入第%d位数:", i+1);
        scanf("%d", &a[i]);
    }
    printf("\n");
    fun(a, 5);

    return 0;
}

作业5:一个人赶着鸭子去每个村庄卖,每经过一个村子卖去所赶鸭子的一半又一只。这样他经过了七个村子后还剩两只鸭子,问他出发时共赶了多少只鸭子?使用递归函数求出鸭子总数。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int fun(int n);//函数声明
int fun(int n){
        if(n==1){
            return 2;
        }else{
            return (fun(n-1)+1)*2;//递归调用
        }

    }

int main(int argc, const char *argv[])
{
    int sum=fun(8);//鸭子的总数量
    printf("鸭子的总数量为:%d只\n", sum);

    return 0;
}

作业6:小明想要编写一个递归函数,接收一个非负整数,输出该数的所有位,请你帮帮他吧。

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<math.h>
int f(int n);//函数声明
int f(int n){
    if(n){
        printf("%d\t", n%10);//依次输出低位
        f(n/10);
    }
}
int main(int argc, const char *argv[])
{
    int num=0;//输入数
    printf("请输入一个整数:");
    scanf("%d", &num);
    printf("整数低位到高位分别为:\t");
    f(num);
    printf("\n");

    return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值