C中的基本函数

1函数是是什么

    1.1维基百科中对函数的定义:子程序

   在计算机科学中,子程序是一个大型程序中的某部分代码,由一个或多个语句块组成,他负责完成某项特定任务,而且相较于其他代码,具备相对的独立性。

   一般会有输入参数并有返回值,提供对过程的封装和细节的隐藏,这些代码通常被集成为软件库。

   c语言中把常用的功能,进行了封装,封装成一个个的函数,提供出来大家都可以使用。

比如:scanf,printf,strlen,strcmp,rand,srand,time

    c语言并不直接去实现库函数,而是提供了c语言的标准和库函数的约定

2库函数

    为什么有库函数?

     1我们知道在我们学习c语言编程的时候,总是在一个代码编写完成之后迫不及待的想知道结果,想把这个结果打印到我们屏幕上,这个时候我们就会使用printf

    2在编程的过程中我们会频繁的做一些字符串的拷贝工作(strcpy)

    3在编程是我们也会计算,总是会计算n的k次方这样的运算(pow)

常用的库函数由:IO函数,字符串操作函数,字符操作函数,内存操作函数,时间/日期函数,数学函数,其他库函数  (scanf,printf,getchar,putchar,strlen,strcmp,islower,memset,time,sqrt,pow)

3自定义函数

//函数的组成:
// ret_type fun_name(para1,*)
// {
//     statement;//语句项
// }
// ret_type 返回类型
// fun_name 函数名
// para1 函数参数



//自定义函数和库函数一样: 函数名,函数参数,返回类型
//写一个函数可以找出两个整数中的最大值
int main()
{
    int a = 0;
    int b = 0;
    //输入
    scanf("%d %d",&a,&b);
    //计算
    int m = (a > b ? a : b);
    //输出
    printf("较大值是:%d\n",m);

    return 0;
}

//自定义函数和库函数一样: 函数名,函数参数,返回类型
//写一个函数可以找出两个整数中的最大值
int  get_max(int x, int y)
{
    int z = (x > y ? x : y);
    return z;
}
int main()
{
    int a = 0;
    int b = 0;
    //输入
    scanf("%d %d",&a,&b);
    //计算
    //int m = (a > b ? a : b);
    //使用函数来完成
    int m = get_max(a,b);
    //输出
    printf("较大值是:%d\n",m);

    return 0;
}

//形式参数 -形参
// void Swap(int x,int y)
// {
//     int tmp = x;
//     x = y;
//     y = tmp;
// }
// int main()
// {
//     int a = 0;
//     int b = 0;
//     scanf("%d %d",&a,&b);
//     printf("交换前:a=%d b=%d\n",a,b);
//     //实际参数 - 实参
//     //当实参传递给行参的时候
//     //行参是实参的一份临时拷贝
//     //使用对行参对修改不会影响实参
//     Swap(a,b);
//     printf("交换后:a=%d b=%d\n",a,b);
//     return 0;
// }

// int main()
// {
//     int num = 10;
//     int* p = #

//     *p = 20;
//     printf("%d\n",num);

//     return 0;
// }

//形式参数 -形参
void Swap(int *px,int *py)
{
    int tmp = *px;
    *px = *py;
    *py = tmp;
}
int main()
{
    int a = 0;
    int b = 0;
    scanf("%d %d",&a,&b);
    printf("交换前:a=%d b=%d\n",a,b);
    //实际参数 - 实参
    //当实参传递给行参的时候
    //行参是实参的一份临时拷贝
    //使用对行参对修改不会影响实参
    Swap(&a,&b);
    printf("交换后:a=%d b=%d\n",a,b);
    return 0;
}

4函数参数

    实际参数(实参)

    实参可以是:常量、变量、表达式、函数等;

    无论实参是何种类型的量,在进行函数调用时,他们都必须有确定的值,以便把这些值传送给行参。

    形式参数(形参)

    形式参数是指函数数名后括号中的变量,因为形式参数只有在函数被调用的过程中才实例化(分配内存单元),所以叫形式参数。形式参数当函数调用完成后呀自动销毁,因此形式参数只在函数中有效。

5函数调用

//写一个数,判断这个数是不是素数
//是素数返回1
//不说素数返回0
//2~sqrt(n)

//判断素数
int is_prime(int n)
{
    int j = 0;
    for ( j = 2;j<=sqrt(n);j++) //sqrt需要使用math.h函数库
    {
        if(n % j == 0)
        {
            return 0;
        }
    }
    return 1;
}

int main()
{
    int i = 0;
    int count = 0;
    for(i = 100; i <= 200; i++)
    {
        //判断i是否为素数
        if(is_prime(i) == 1)
        {
            printf("%d\n",i);
            count++;
        }
    }
}

//写一个函数判断一年是不是闰年
//是润年返回1
//非闰年返回0
int is_leap_year(int y)
{
    // if((y%4==0)&&(y%100!=0) || (y%400 == 0))
    // {
    //     return 1;
    // } else
    // {
    //     return 0;
    // }
    return ((y%4==0)&&(y%100!=0) || (y%400 == 0));
}
int main()
{
    int y = 0;
    int count = 0;
    for(y =1000;y<=2000;y++)
    {
        if (is_leap_year(y) == 1)
        {
            printf("%d\n",y);
            count++;
        }
        
    }
    printf("\ncount = %d\n",count);
}

6函数的嵌套调用和链式访问

7函数的声明和定义

8函数递归

你可能感兴趣的:(c++,c语言,开发语言)