大学c语言复习提纲
- 格式:doc
- 大小:32.50 KB
- 文档页数:4
本课程要求掌握的经典算法包括:求阶乘算法,排序算法、求三个数最大值或最小值算法、将三个数按从大到小顺序输出的算法、大写字母改小写字母算法,统计字符串中各类字符个数的算法、10进制转算为不同进制的算法、求素数、求最大公约数等。
参考书83页、89页、99页(2、4)、108页、109页、113页,117页C语言复习题纲第一章------第五章1、算法的概念:解决问题而采用的方法和步骤,是求解问题的有序集合2、算法的基本特征:可行性、确定性、有穷性、零到多个输入、至少一个输出3、算法的组成要素:(1)对数据对象的运算和操作基本操作运算:算术运算+ - * / %逻辑运算!&& ||关系运算> >= <= == !=基本数据类型:整型浮点型字符型数据传输:赋值=格式化输入:scanf(“格式控制符”,地址列表);格式控制符:%c、 %d 、 %o 、 %x、 %s、 %f◆若输入long型、double型应加l,如%ld、 %lo、 %lf◆格式%s输入字符串不包含空格,且对应地址表列是字符数组名。
◆默认分隔符:空格、回车、Tab键◆格式控制符间不宜加其它字符,如加入其它字符,输入时应原样输入,否则数据接收错误。
如:scanf(“%d, %d”,&a,&b);输入数据时两数据间要有逗号;scanf(“%d %d”,&a,&b); %d间有两个空格,则输入数据时至少有两个空格。
◆输入函数中%f格式不能带小数,如:sc anf(“%7.2f”,&a)是错误的。
◆%c格式输入单字符,空格字符和转义字符都作为有效字符接收。
◆%*d表示跳过它对应的输入数据。
4..格式化输出:printf(“格式控制符”,输出列表);◆格式控制符部分可加入其它字符,原样输出。
如:提示语或使输出结果清楚显示◆输出列表:可以是变量、常量、表达式、函数调用等。
◆转义字符:以斜杠(\)开始,作为一个字符◆注意:输出 long 、double型数据,用%ld、%lf◆可设定输出宽度,m和n,如:%5d、%6.2f、%.2f单字符输入/出:Getchar()函数:从键盘接收一个字符,赋给变量一般形式:变量=getchar()Putchar()函数:一般形式:putchar(变量);.字符串:Gets()函数:从键盘接收一个字符串一般形式:gets(字符数组名)Puts()函数:将字符数组中所存放的字符串,进行输出一般形式:puts(字符数组名);(2)算法的控制结构:顺序结构、选择结构、循环结构选择结构:if语句if----else if嵌套4、 C语言是完全模块化和结构化的程序设计语言5、C语言程序的构成和基本格式构成:(1) C语言的源程序是由函数构成的,每一个函数完成相对独立的功能,其中至少包括一个主函数。
函数是C语言程序的基本单位,一个程序由一个或多个函数组成,其中必须有一个main()函数(也只能有一个),程序从main()开始执行,执行完main()函数结束。
(2) C语言的函数由函数头和函数体:用花括号括起来,一般包括两部分:声明部分和执行部分。
(3) C语言规定每个语句以分号结束,分号是语句组成不可缺少的部分,它在每条语句的最后出现。
(4)程序的注释部分应括在 /* 和 */ 之间不能有空格,注释部分允许出现在程序的任何位置。
6、C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件,源程序的扩展名为.c,目标文件的扩展名为.obj,可执行程序的扩展名为.exe7、合法的标识符只能由字母、数字和下划线组成,且第一个字符必须是字母或下划线。
第六章数组1. 掌握各种类型的数据的定义形式、在内存中的存储形式,初始化形式及对数组元素的访问。
注意:数组名是数组的首地址,是一个地址常量(不能对常量赋值)2. 数组必须先定义,后使用。
数组的长度必须事先给定,或者根据初始值的个数给定,不允许动态定义。
数组元素的下标从0开始标记。
3. 掌握对数组元素的输入输出方法。
注意,不能对数组整体进行输入输出,必须使用循环结构逐个元素进行输入输出。
4. 注意,对数组元素初始化时,可以对全部元素初始化,也可以对部分元素进行初始化。
对部分元素初始化,则其他元素的值自动设为0。
5. 掌握对一维、二维数组的定义,在内存中的储存形式,初始化的形式,掌握对一、二维数组元素的引用和输入输出方法。
注意:二维数组元素下标的取值(行下标和列下标都是从0开始编号)。
注意:常用双重循环对二维数组的元素逐个进行存取操作。
6. 掌握字符数组的定义,初始化形式。
特别注意对字符数组进行初始化有哪些形式。
7. 掌握字符数组和字符串的输入输出方法, 如puts、gets,scanf和printf函数。
注意:对字符数组元素逐个输入\输出方法和对字符串进行整体输入输出的方法。
整体输入时使用gets ()或scanf()函数的差别是:scanf()以回车或空格结束输入,而gets()以回车作为输入结束符。
所以,如果想输入带有空格的字符串,应该使用gets()函数。
8. 熟悉常用的字符串处理库函数,理解各函数的工作原理。
注意:要使用这些库函数,需要包含其相关头文件:#include <string.h>9. 本章特别注意掌握数组元素的排序算法,特别是冒泡法。
第七章函数1. 函数就是对实现某一功能的函数进行封装,使其成为一个函数封装,可以通过参数和返回值与其它函数进行通信。
2. C语言程序有一个主函数和若干个其他函数组成。
由主函数可以调用其他函数,其他函数也可以互相调用。
调用格式:函数名(实参);3. 被调用的函数要先声明后调用,但若是定义位于调用前面,可省略声明。
为了统一或标准化起见,一般将自定义的所有函数都在程序前面予以声明。
4. 掌握有参函数与无参函数的定义方法。
能够根据题目要求,将实现某种功能的一段程序转换成函数的形式加以定义。
注:Return 语句5. 掌握实参和形参的概念,理解形参为函数内定义的参数,为局部变量,只在函数执行时才有意义。
函数执行完毕后,即释放该参数。
6. 理解参数传递中值传递和地址传递的原理和本质。
值传递是单向传递,只能从实参向形参传递,而不能有形参传回实参。
实参和形参占有不同的内存单元,即使同名也互不影响。
7. 掌握函数的调用的方式:函数语句,函数表达式和函数参数的形式。
嵌套调用与递归调用8. 掌握数组作函数参数的应用,主要有两种形式:(1)数组元素作为实参使用,该方式与其它类型的普通变量作实参并没有区别,在发生函数调用时,把数组元素的值传递给形参,实现单向值传递;(2)把数组名作为函数的实参和形参使用,要求形参和对应的实参都是必须是类型相同的数组(或者是指相同类型数组的指针变量),并且必须由明确的数组定义。
该方式实现的是地址传递,即把实参的地址传递给形参。
第八章指针1. 明确指针就是内存的地址,所谓指针变量就是存放变量的首地址的变量称为指针变量。
2. 掌握指针变量的定义、初始化方法。
定义的指针变量一定要初始化,否则它可能只想不确定的存储单元,对其进行操作可能出现运行出错。
3. 掌握通过指向变量的指针对变量进行存取的方法。
4. 掌握指向数组的指针的定义和初始化方法。
掌握引用数组元素的指针法和下标法。
例如:int a[10],*p=a;其中p=a等价于p=&a[0];这对于数组元素a[i],有a[i]=p[i]=*(a+i)=*(p+i).对于二维数组:a[3][4],对于组数元素a[i][j],*p,p=a;有a[i][j]=*(a[i]+j) <=> *(*(a+i)+j) ==*(p[i]+j)==*(*(p+i)+j)5. . 能够理解有关应用指针变量的程序。
第九章结构体1. 掌握使用结构体变量来处理“记录”类数据及使用结构体变量类数组来处理多个“记录”类数据。
2. 掌握在函数中使用结构体数组的方法。
3.结构体及结构体变量的定义定义结构体类型及定义其变量(定义位置可以在函数内或函数外):struct 结构体类型名{类型名成员名;类型名成员名;类型名成员名;……};struct 结构体类型名变量名;4..结构体变量所占存储空间大小为其成员所占空间的总和。
struct student{ char name[20];int age;float score;};struct student s1,s2;变量s1,s2所占空间=20+2+4=26字节5. 结构体类型必须先声明(给出一个模板),然后才能定义结构体变量或数组(生成实体,分配存储空间)。
掌握结构体变量和数组定义的几种形式。
4. 如果两个函数都用到一种结构体类型,则对结构体类型的声明要在这两个函数之前。
否则如果结构体类型声明在一个函数内部,则另一函数中就不能识别这种类型。
5. 掌握访问结构体变量的成员的访问方法。
如果指针pStr已指向结构体变量stPerson,则以下三种形式等价:stPerson.成员,(*pStr).成员,pStr->成员。
5. 注意对结构变量和数组元素不能整体输入,要访问到成员,对各成员分别输入输出。
第十章文件1. 掌握文件的基本概念及分类二进制文件与数据文件2. 掌握以文件系统方式读写文件的步骤为:(1). 定义文件指针,(2). 打开文件,(3). 读写文件,(4). 关闭文件。
3. 掌握fopen函数和fclose函数的用法。
4. 掌握文件操作方式及含义。