首页 - 网校 - 万题库 - 美好明天 - 直播 - 导航
您现在的位置: 考试吧 > 自学考试 > 复习指导 > 工学类 > 正文

2017年自学考试《C语言程序设计》复习资料二

来源:考试吧 2017-8-24 16:27:30 要考试,上考试吧! 自考万题库
考试吧整理“2017年自学考试《C语言程序设计》复习资料二”,更多关于自学考试知识点、自考复习资料,请及时关注考试吧自考网或微信搜索“万题库自考”获取!

扫描/长按下面二维码
获取自考备考指导

扫描/长按下面二维码
免费做题、免费学直播课

考试吧提醒:下载自考万题库立即进入刷题模式>>

  函数

  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];

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

  如:static char *a[]={"ab","cde","fghi"};

  指针数组的引用:a+i表示第i个字符串。

  多级指针定义形式:类型标识符 **指针变量名; 如:char **p;

  多级指针的初始化:p=a;

  多级指针的引用:p+i表示第i个字符串,p++表示下一个字符串,*(p+i)+j表示第i个字符串中第j个字符的地址。

  8.函数的指针

  定义形式:数据类型标识符 (*指针变量名)(); 如:int (*f)();

  初 始 化:int max(x,y);f=max;

  用指针变量调用函数:c=(*f)(a,b);

  9.返回指针值的函数

  定义形式:类型标识符函数名(形参列表); 如:int *a(x,y);

  10.指针数组

  指针数组的元素均为指针类型数据。

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

  11.指向指针的指针

  定义形式:类型标识符 **标识符; 如:char **p;

  12、有关指针的数据类型

  变量int iint *pint **p

  数组int a[n]int (*p)[n]int *p[n]

  函数int f()int (*p)()int *p()

  第十一章 结构体

  结构体是一种类型,是包含若干个类型不同的数据项组成的组合体。

  1、定义结构体类型

  struct 结构体名

  { 成员表列 };

  2、定义结构体类型的变量的三种方法

  (1) 先声明结构体类型再定义变量名

  例:struct student{ 成员表列 };

  struct student student1,student2;

  (2) 声明结构体类型的同时定义变量名

  struct 结构体名

  {

  成员表列

  }变量名表列;

  (3) 直接定义结构体类型变量

  struct

  {

  成员表列

  }变量名表列;

  3、结构体变量的引用及初始化

  不能将结构体变量作为一个整体进行输入和输出,只能对结构体变量中的各个成员分别进行输入和输出。引用结构体变量中各个成员的方式:结构体变量名.成员名

  结构体变量可以在定义时指定初始值,也可以先定义,而后给每个成员赋值。

  4、结构体数组

  结构体数组中每个元素都是同一个结构体类型的数据,它们都分别包括各个成员项。

  例:定义struct student stu[3];

  5、指针与结构体

  一个结构体类型的指针是所指结构体变量所占内存的起始地址。

  若有:struct student stu,*p;p=stu;

  以下三种形式等价: stu.成员名 等价于 (*p).成员名 等价于 p->成员名

  6、用指针处理链表

  (1) 建立链表的函数:p.297 例11.8

  struct student *creat( )

  { struct student *head, *p1, *p2;

  int i, len;

  len=sizeof(struct student);

  for(i=1; i<=N; i++)

  { p1=(struct student *)malloc(len);

  printf("Enter num,score:");

  scanf("%ld,%f", &p1->num, &p1->score);

  if(i==1) head=p2=p1;

  else { p2->next=p1; p2=p1; }

  if(i==N) p2->next=NULL;

  }

  return(head); /*返回链表头指针*/

  }

  (2) 输出链表的函数:p.300 例11.9

  void plink(struct student *head) /*更具通用性*/

  { struct student *p;

  p=head;

  while(p!=NULL)

  { printf("num=%ld, score=%5.2f\n",

  p->num, p->score);

  p=p->next;

  }

  return;

  }

  (3) 对链表的删除操作:p.301 例11.10

  struct student *del(struct student *head, long n)

  { struct student *p1, *p2; /*↑n:要删除学号*/

  p1=head;

  if(p1->num==n) head=p1->next; /*删除首节点*/

  else

  { do { p2=p1; p1=p1->next;

  }

  while(p1!=NULL && p1->num!=n);

  if(p1->num==n) p2->next=p1->next; /*找到*/

  else printf("Not be found!\n"); /*未找到*/

  }

  free(p1); /*释放被删除节点的存储区*/

  return(head); /*返回头指针*/

  }

  (4) 对链表的插入操作:p.303 例11.11

  第十二章 位运算

  1、 按位“与”运算符(&):参与运算的两个数据,按二进制位进行“与”的运算。

  2、 按位“或”运算符(|):参与运算的两个数据,按二进制位进行“或”的运算。

  3、 按位“异或”运算符(^):参与运算的两个二进制位同号为0(假),异号为1(真)。

  4、 “取反”运算符(~):对二进制位按位取反。

扫描/长按二维码即可帮助自考通关
获取2017自考最新资讯
获取最后6套预测卷
免费获取8次直播课程
获取历年考试真题试卷

自考万题库手机题库下载微信搜索"万题库自考"

题库自考3群:570246985 自学考试学习交流QQ群

1 2  下一页

  相关链接:

  自考万题库:2017年自学考试每日一练大汇总

  2017年自学考试特点分析、课程特点及复习技巧最新文章

  2017年自学考试应试:各种题型及答题技巧

  2017年自学考试冲刺技巧:调整好心态不怯场

  考试吧策划:历年自考真题及答案在线估分专题热点文章

  各地2017年自考大纲、教材目录相关调整汇总

  2017自学考试如何选专业?如何报考?如何备考?

文章搜索
万题库小程序
万题库小程序
·章节视频 ·章节练习
·免费真题 ·模考试题
微信扫码,立即获取!
扫码免费使用
大学语文
共计461课时
讲义已上传
18020人在学
管理系统中计算机应用
共计21课时
讲义已上传
7218人在学
政治经济学(财经类)
共计738课时
讲义已上传
87485人在学
经济法概论(财经类)
共计21课时
讲义已上传
989人在学
毛概
共计269课时
讲义已上传
16493人在学
推荐使用万题库APP学习
扫一扫,下载万题库
手机学习,复习效率提升50%!
版权声明:如果自学考试网所转载内容不慎侵犯了您的权益,请与我们联系800@exam8.com,我们将会及时处理。如转载本自学考试网内容,请注明出处。
官方
微信
扫描关注自考微信
领《大数据宝典》
报名
查分
扫描二维码
关注自考报名查分
看直播 下载
APP
下载万题库
领精选6套卷
万题库
微信小程序
帮助
中心
文章责编:chenruoqian