大学c语言复习提纲.doc
Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-date大学c语言复习提纲第七章 数组本课程要求掌握的经典算法包括:求阶乘算法,排序算法、求三个数最大值或最小值算法、将三个数按从大到小顺序输出的算法、大写字母改小写字母算法,统计字符串中各类字符个数的算法、10进制转算为不同进制的算法、求素数、求最大公约数等。参考书83页、89页、99页(2、4)、108页、109页、113页,117页 C语言复习题纲第一章-第五章1、 算法的概念:解决问题而采用的方法和步骤,是求解问题的有序集合2、算法的基本特征:可行性、确定性、有穷性、零到多个输入 、至少一个输出3、算法的组成要素:(1)对数据对象的运算和操作基本操作运算: 算术运算 + - * / % 逻辑运算 ! && 关系运算 > >= <= = != 基本数据类型:整型 浮点型 字符型 数据传输:赋值 = 格式化输入: scanf(“格式控制符”,地址列表);格式控制符:%c、 %d 、 %o 、 %x、 %s、 %fu 若输入long型、double型应加l,如%ld、 %lo、 %lf u 格式%s输入字符串不包含空格,且对应地址表列是字符数组名。u 默认分隔符:空格、回车、Tab键u 格式控制符间不宜加其它字符,如加入其它字符,输入时应原样输入,否则数据接收错误。如:scanf(“%d, %d”,&a,&b); 输入数据时两数据间要有逗号;scanf(“%d %d”,&a,&b); %d间有两个空格,则输入数据时至少有两个空格。u 输入函数中%f格式不能带小数,如:scanf(“%7.2f”,&a)是错误的。u %c格式输入单字符,空格字符和转义字符都作为有效字符接收。u %*d表示跳过它对应的输入数据。4.格式化输出:printf(“格式控制符”,输出列表);u 格式控制符部分可加入其它字符,原样输出。如:提示语或使输出结果清楚显示u 输出列表:可以是变量、常量、表达式、函数调用等。u 转义字符:以斜杠()开始,作为一个字符u 注意:输出 long 、double型数据,用%ld、%lfu 可设定输出宽度,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 a10, *p=a; 其中p=a等价于p=&a0;这对于数组元素ai,有ai=pi=*(a+i)=*(p+i). 对于二维数组:a34,对于组数元素aij,*p,p=a;有 aij=*(ai+j) <=> *(*(a+i)+j) =*(pi+j)=*(*(p+i)+j)5. . 能够理解有关应用指针变量的程序。第九章 结构体1. 掌握使用结构体变量来处理“记录”类数据及使用结构体变量类数组来处理多个“记录”类数据。2. 掌握在函数中使用结构体数组的方法。3. 结构体及结构体变量的定义定义结构体类型及定义其变量 (定义位置可以在函数内或函数外): struct 结构体类型名 类型名 成员名; 类型名 成员名; 类型名 成员名; ;struct 结构体类型名 变量名;4.结构体变量所占存储空间大小为其成员所占空间的总和。 struct student char name20; 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. 掌握文件操作方式及含义。-