硕彦博创学习记录——2018.7.18(函数)

函数:就是功能(实现这个功能过程) 
 1、定义函数:
    返回值  函数名(形参)
    {
    }
    static 返回值 函数名(形参)
    {
    }
    注:如果被修饰为static,此函数只能被本地调用。
    
 2、调用函数:执行一次函数
   注:此函数的作用域一定要存在声明(告诉编译器,此接口就是为一个函数)
   
    声明函数:告诉编译器,函数的类型
   
    头文件:就是存放模块提供函数原型或类型声明
    后缀名: .h
    1、外部声明:告诉编译器此类型来自非本文件(外文件)
        extern 声明;
            函数: extern 函数原型;
                extern void insert(int buf[],int ilen);
            变量:extern 变量原型;
                extern int a;
    2、引用头文件:#include<>只有会去系统目录下查找
                   #include""会去指定路径下查找,如果查找不到,则会去系统下

递归:直接或者间接调用自身函数
1、
    返回值 函数名(形参)
    {
        ...
        函数名(实参);
        ...
    }    
    注:1when从什么时候 2when到什么时候结束 3what 每次递归时你需要干嘛 
2、调用函数会系统调用函数的栈空间;
    栈:First IN LAST OUT(FILO)
    (模型:#)
   
   
练习题:
    1、求1-100的和(递归)
         f(4)=x+(x-1)...+1
         f(1)=1
         f(2)=2+1=2+f(1)=2+1
         f(3)=3+2+1=3+f(2)
         f(4)=4+3+2+1=4+f(3)
         f(100)=100+99+..1=100+f(99)


    2、求阶层:f(5)=5*4*3*2*1
              f(1)=1!=1  
              f(2)=2*1=2*f(1)=2
              f(3)=3*2*1=3*f(2)


    3、求前n项的阶层和: s(5)=f(1)+f(2)+f(3)+f(4)+f(5)
        s(1)=f(1)
        s(2)=f(2)+f(1)
        s(3)=f(3)+f(2)+f(1)=f(3)+s(2)


    4、求斐波拉锲数

  5、猴子第一天摘下N个桃子,当时就吃了一半,还不过瘾,就多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都吃前一天剩下的一半零一个。到第10天在想吃的时候就剩一个桃子了,问第一天共摘下来多少个桃子?并反向打印每天所剩桃子数。


      
函数的作用域:
      
    头文件:  
      
    6、将出下列字符串中的表达式:
        "1+1=2;2+1=3;2*8=16;4/4=1"


    7、为用户提供功能模块: 对整型数组排序(冒泡)
        bubble.c:
            void bubble(int buf[100],int ilen);
            //static void swap(int*,int*);
        提供声明头文件:bubble.

猜你喜欢

转载自blog.csdn.net/yangwenxiao123456/article/details/81101434
今日推荐