【C语言】第四篇·函数调用

来源:互联网 发布:恒生指数期货模拟软件 编辑:程序博客网 时间:2024/06/11 20:11
一、函数
    1.函数: 能够完成特定功能的代码段
    2.函数定义一般形式:
     返回值类型 函数名(形式参数列表)
    {
           声明部分
           语句部分
     }
   3.作用:1)提高代码的可读性  2)提高代码的重用性
   4.函数参数:
     1)形式参数:定义函数的时候,函数后面的括号中的参数
     2)实际参数:主调函数调用被调函数的时候,给被调函数传递的参数
 
二、函数分类
    1.从用户使用的角度来分:
     1)库函数。编译器提供,用户直接调用即可。
     2)用户自定义。用户根据实际情况自己定义的函数。
    2.从函数形式分类:
     1)无参函数
     2)有参函数
    3.有返回值函数和无返回值函数

三、函数调用 
      1. 在调用函数的时候,要对调用函数进行声明。
      2.声明格式:返回值类型函数名(形式参数列表);形式参数列表可以只写参数的类型。
      3.当函数定义在调用函数前面时,可以直接调用,可以不用进行函数声明。但在后面定义时,在主调函数中必须对调用的函数进行声明。
      4.函数递归调用:函数调用自身的现象。
 
四、#include的使用
    文件包含是C语言预处理程序的另一个重要功能。
    1.文件包含命令的格式:
     1)#include包含的可以是一个头文件,也可以使用户自定义的文件
      2)包含自己定义的文件的时候可以使用#include" 文件名"
     3)包含系统头文件的时候,用#include <  文件名>
    2. 文件包含的实质:
        文件包含的功能是把指定的文件插到该命令行位置取代命令行,从而把插入的文件和当前程序文件连成一个源代码文件。
    3.#include 文件的搜索顺序:当前目录 ---> 编译器目录 ---> 系统目录--->最后报错
    4.模块化编程概念:即多文件开发,就是多文件(.c 文件)编程,一个.c文件和一个.h文件构成一个模块。
 
五、示例程序
程序一:用递归实现求n的阶乘

#include <stdio.h>int jChen(int n){int div;if(n==1){div=1;}else {div=n*jChen(n-1); //递归操作}return div;}void main(){int n;printf("请输入要求的阶乘n的值:");scanf("%d",&n);printf("%d!=%d\n",n,jChen(n));}




程序二:用递归实现求一个数的n次方

#include <stdio.h>int fun(int x,int y){int div=0;if(y==1){div=x;}else {div=x*fun(x,y-1);}return div;}void main(){int x,y;printf("x的y次方,请输入x、y的值:");scanf("%d %d",&x,&y);printf("%d的%d次方=%d\n",x,y,fun(x,y));}



0 0