您的位置:首页 > 考试资料

湖南大学自考C程序设计复习资料2

发布时间:2020-11-24 点击次数:58

函数

1.函数定义的一般形式:

   无参数函数: 类型标识符 函数名()

               { 说明部分;

                 语句;}

           注:无返回值,可不写类型标识符。

    有参数函数:类型标识符 函数名(形式参数列表)

                形式参数说明

              { 说明部分;

                语句;}

           注:类型标识符指定函数返回值的类型,无类型标识符时默认为整型数。

    空  函  数:类型标识符函数名()

                {    }

2.函数的调用

    一般调用形式:函数名(实际参数列表)

函数调用方式:把函数调用作为一个语句,完成某种操作,无需返回值,

如:printstr();

    函数出现在表达式中,要求有返回值参与运算,如:c=2*max(a,b);

    函数调用作为另一个函数的实参,如:printf(“%d”,max(a,b));

说明:①被调用函数必须存在。

      ②使用库函数,一般在文件开头用 #include命令将有关函数信息包含进来。

      ③自定义函数应与主调函数在一个文件中,若自定义函数在主调函数后,主调函    数中应加以说明。

    函数的嵌套调用:C语言中不能嵌套定义函数,但可以嵌套调用函数,即在一个函数中调用另一个函数。

    函数的递归调用:在一个函数中直接或间接调用该函数本身。

3.函数的参数

    函数的参数可以是变量,也可以是数组元素、数组名或指针变量。

4.内部函数和外部函数、局部变量和全局变量、动态存储变量与静态存储变量。

第九章 编译预处理

1.宏定义:用一个指定的标识符来代表一个字符串。

    不带参数的宏定义:#define  标识符字符串

    带参数的宏定义:  #define  宏名(参数表)  字符串

    终止宏定义的作用域:#undef

2.文件包含处理:一个源文件将另一个源文件包含进来。

    形式:#include“文件名”

3.条件编译:对源程序中的一部分指定编译条件。

第十章 指针

1.指针:是一个变量的地址,即分配给一个变量的内存起始地址。

    指针变量:是存放指针(另一变量地址)的变量。

    指针变量的定义形式:  类型标识符 *标识符

2.指针变量的引用

    例如:int x=5,y,z,a[]={1,2,3,4};

    int *px,*py;

    px=&x;py=a;

    *px=5;

    z=*px;

3.指针与函数参数

例:交换两个变量内容的程序

swap(int *px, int *py)

{ int temp;

temp=*px;

*px=*py;

*py=temp;

}

main()

{ int a,b;

scanf(“%d”,&a);scanf(“%d”.&b);

printf(“a=%d\tb=%d\n”,a,b);

swap(&a,&b);

printf(“a=%d\tb=%d\n”,a,b);

}

    通过地址(指针)实现被调用函数直接修改调用函数中变量的内容。

4. 指针和数组

    数组的指针是指数组的起始地址,任何能用数组下标完成的操作都能由指针来完成。通过指针引用数组元素,例:若有int a[],*pa;pa=a;则:a[i]=*(pa+i)=*(a+i)

5.多维数组的指针

例:设有一个二维数组a[3][4],则:数组名a是数组的首地址,a+i与a[i]等价,是第i行的首地址,a[i]+j表示第i行第j列的地址。

若有:int *p=a;

则:数组中任一元素地址可表示为*(p+i)+j,或为p+i*m+j。(m列数)

指向由m个元素组成的一维数组的指针变量,例:int(*p)[m]

6.字符串与指针

例:若有:char *s;s="I am a string" 表示s指向字符串的首地址,s+i表示第i个字符的地址。输出时从指针所指地址开始直到字符串结束标记(‘\0’)为止。

7.指针数组和多级指针

    凡是可以用多维数组处理的问题,都可以用指针数组来解决,但两者有所区别。

    指针数组定义形式:类型标识符  数组名[长度说明]如:int *p[4];

指针数组的初始化:允许在定义时初始化,