C程序设计复习资料知识点总结C语言_第1页
C程序设计复习资料知识点总结C语言_第2页
C程序设计复习资料知识点总结C语言_第3页
C程序设计复习资料知识点总结C语言_第4页
C程序设计复习资料知识点总结C语言_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、?C程序设计?知识点第1章C语言概述?C程序设计?知识点都懂了,一定过!第1章C语言概述1.1. C语言属高级语言,区分字母的大小写,以函数为根本单位采用模块化程序 设计,可直接访问内存,进而对硬件进行操作.1.2. 用C语言编写和程序称作C源程序,简称C程序,C程序可由假设干个文本文 件组成,文件扩展名为C 使用C+编译器时默认扩展名为 CPP.C源程 序经编译、连接后得到扩展名为 EXE的可执行文件目标程序.预处理编译、连接执行假设干个C程序文件-TC程序-T目标程序文件-T1.3. C程序从主函数开始执行,每个 C程序有且仅有一个主函数,因此,每个C程序文件中至多有一个主函数.1.4.

2、C语句以分号结尾,用括起来的一组语句称作复合语句,复合语句可省略花 括号之后的分号.1.5. 允许一行内写多个C语句,也允许一个C语句占用多行,但保存字和标识符 不可拆行.1.6. 在C集成环境VC+ 6.0中,新建工程、保存当前程序文件、编译当前程序、执行当前程序的快捷键依次为:Ctrl+N、Ctrl+S、F7、Ctrl+F5.第1页共21页?C程序设计?知识点第3章数据类型、运算符与表达式第6页共21页第2章程序设计的灵魂一一算法2.1. 解决问题的方法和步骤称作算法.算法和数据结构是程序的两个主要要素2.2. 算法具有确定性、有穷性、有效性等特点.2.3. 算法可用自然语言、流程图、N-

3、S图、计算机语言、伪代码等描述.伪代码是 用介于自然语言和计算机语言之间的文字和符号来描述算法.起止框C)输入输出框判断框O处理框注释框连接点0流程线有向线段或折线图2.1 ANSI流程图符号2.4. 算法的根本结构分为:顺序结构、选择结构、循环结构图2.2顺序结构NNJ N图2.6顺序结构条件Y 厂N匚t图2.3选择结构图2.7选择结构2.5. 由三种根本结构组成的程序称作结构化程序,结构化程序中的每个模块只有 一个入口和一个出口.结构化程序设计通常采用“自顶向下、逐步细化的 设计方法.第3章数据类型、运算符与表达式3.1. C的数据类型如下所示:表3.1 C语言的数据类型数据类型字节数数值

4、范围基 本 类 型整型无符号短整型(unsigned short int)40 216-1有符号短整型(signed short int)2-215 215-1无符号长整型(unsigned long int)40 2 C符号常量名、变量名、函数名等统称标识符,标识符的命名规那么为:以字母 或下划线开头,由字母、数字、下划线组成,超出32个字符局部被忽略最好不超过8个字符.3.3. 以0开头的整数为八进制整数,以0X或0x开头的整数为十六进制无符号整数.3.4. -3276832767 为 int 型,0U 65535U 为 unsigned型,65536U4294967295U 和 0UL

5、4294967295UL 为 unsignedlong型,-2147483648-32769、32768 2147483647和-2147483648L2147483647L 为 long 型.后缀 U 和 L 不区分大 小写和次序.3.5. 数据的存储字节数可用运算符sizeof查询,括号内可是数据、表达式或类型名.3.6. 有符号整数int和long按补码存储,因此,-65535U-1U与1U65535U依次 相等,-4294967295UL-1UL 与 1UL 4294967295UL 依次相等.3.7. 定点数含小数点数和浮点数统称C实型常量,浮点数的一般形式为:尾数e除码 或 尾数E

6、除码其含义为:尾数X10除码其中,尾数为定点数或整数,除码为整数.标准浮点数的小数点在第1位非0数字之后.后缀L或l的实型常量为长双精度,无后缀实型常量为双精度.-1有符号长整型(signed long int)4-231 231-1实 型单精度实型float4 1长37位,6位有效双精度实型double8长307位,15位有效长双精度实型long double10长4931位,18位有效字符型char1 :0 28-1空类型void1构 造 类 型枚举类型2指针类型2数组类型结构体类型共用体类型3.8. 用一对单引号括起来的单个字符称作 1字节无符号整数.C字符常量,其值为该字符的 ASCI

7、I码3.9.转义字符'n'、't'、''、'''、'"'分别表示回车符、制表符、反斜杠、单引号、 双引号.3.10. 转义字符 整数'、'x整数或'X整数'中的整数分别为八进制、十六进制, 表示以此整数为ASCII码的字符.3.11. 用双引号括起来的一串字符称作 C字符串型常量,串中字符数称作串长,可以为0.字符串的存储形式为:依次存储字符串中字符的ASCII码,并追加一个空字符'0' 1字节无符号整数0.3.12. 字符型、整型、实型数据统称数值

8、型数据,不同类型的数值型数据可以混合运 算,低精度数据被自动强制转换为高精度数据前方参与运算.另外,字符常量 为有符号短整数,两个字符型数据间的运算按有符号短整数处理.3.13. 如果将数值型数据赋给不同类型的数值型变量,那么数值型数据将被自动强制转 换为变量的数据类型.3.14. C允许定义变量的同时赋初值.3.15. C运算符及其优先级、结合性如附录 C 教材第365页所示.3.16. 强制数据类型转换的一般形式为:类型名数据3.17. 自增+、自减-运算只能作用于变量,作用于右侧时,返回变量自增、自减前 的值.3.18. 赋值表达式的格式为:变量=表达式 或变量0卩=表达式其中,op为运

9、算符+、-、*、/、%、VV、&、八、|中某一个.前者将右 边表达式的值赋给左边的变量,后者将左边变量的当前值与右边表达式的值作 相应运算后仍赋给左边的变量.整个赋值表达式取左边变量所赋的新值.3.19. 用逗号分隔的一组表达式称作逗号表达式,其一般形式为:表达式,表达式,表达式其功能为:从左至右依次计算各表达式的值,并以最后一个表达式的值为整个 逗号表达式的值.3.20. 将数学式改为C表达式时应注意:1乘号*不可省略;2正确改写脚码、运算符、括号等;3正确书写函数名;(4) 把握好运算优先级,分数线改为/时,分子、分母相应加括号;(5) 正确拆分不等式组;(6) 区分整数除法和实数

10、除法.?C程序设计?知识点第4章顺序结构程序设计第4章顺序结构程序设计4.1. 表达式后缀分号称作表达式语句,即,表达式;4.2. putchar、getchar、printf、scanf等输入输出函数的原型在头文件 stdio.h中.4.3. 函数putchar和getchar的格式和功能如下: putchar格式:putchar表达式功能:向标准输出设备输出以指定表达式的值为ASCII码的字符,并以该值为函数值自动强制转换为int型.2getchar格式:getchar功能:从标准输入设备输入一个字符,并以该字符为函数值.注意:getchar可提取空格及回车、Tab等局部限制字符,而且只提

11、取输 入中相应位置上的一个字符,因此,输入字符间无须分隔,否那么也被视为 输入字符.4.4. printf函数的格式和功能如下:格式:printf格式限制串,输出表列功能:1从右至左依次计算输出表列中各表达式的值;2从左至右依次输出格式限制串中的字符,其中,%引导的格式限制符由输出表列中相应表达式的值所取代.输出表列是一组用逗号分隔的表达式又称输出项,可以为0项.格式限制串为字符串型数据可以是表达式.其中,格式符用于限制输出表列中相应 表达式的输出格式.格式符及其功能如下表所示:表4.1 printf格式字符格式符说明d或i有符号十进制短整数不输出正号u无符号十进制短整数o无符号八进制短整数无

12、前缀0x或X无符号十六进制短整数无前缀0x,数字的大小写与 x相冋c字符s字符串f定点数默认6位小数.e或E浮点数浮点数中e的大小写与格式符 e的大小写相冋g或G%f和%e中输出宽度较短者e与g的大小写相同附加格式符说明l插在%和d、i、u、o、x、X之间,表示输出相应长整数.整数插在%和其它格式符之间,前一个整数的绝对值为输出数据的宽度,后一个整数 限制实际输出位数:输出整数时,指定输出位数,缺乏左补0,超出保存;输出实数时,指定输出小数位数,缺乏右补0,超出四舍五入;输出字符串时,指定输出字符数.另外,第一个整数为负时,输出数据左对齐,否那么右对齐.整数整数.整数4.5. scanf函数的

13、格式和功能如下:格式:scanf格式限制串,地址表列其中,格式限制串为字符串型数据可以是表达式,地址表列是一组用逗号分 隔的地址.功能:1右至左依次计算地址表列中各表达式的值;2从标准输入设备提取数据,并从左至右依次存储到所指定的存储单元.3地址表列中的地址可用表达式表示,通常形式为:&变量其中&是地址运算符,它表示取其后变量的存储起始地址.说明:1 scanf函数格式符与printf函数的格式符的功能相似.scanf的合法格式符 不区分大小写、实型格式符均等效,另外,表4.2 scanf的附加格式符说明附加格式符说明正整数指定输入数据的最大宽度插在%与其它格式符之间*跳过当前

14、一个数据插在%与其它格式符之间*正整数跳过当前指定个字符插在%与其它格式符之间2如果格式限制串中有非格式符,那么输入数据中对应位置上必须是该字符, 且被跳过,这为指定数据间分隔符提供了方便.printf和scanf格式限制串中的每对%从左至右结合按一个普通字符% 对待.第8页共21页?C程序设计?知识点第5章选择结构程序设计第5章选择结构程序设计5.1. C逻辑值为短整数int,真、假分别为1、0.另外,字符、数、指针作为逻辑 量时,非0、非空为真即1,0、空为假即0.逻辑运算如下表所示:表5.1逻辑运算真值表左兀右元!右元左兀&&右兀左元|右元假(0)假(0)真假(0)假(0

15、)假(0)r真非0假(0)假(0)真真非0假(0)真假(0)真真非0真非0假(0)真真52对于形如口 II 口 II 的逻辑式,从左至右计算的逻辑值,遇到真那么提前终止.5.3. 对于形如 &&3 && 的逻辑式,从左至右计算的逻辑值,遇到假那么提前终止.5.4. 算术、关系、逻辑运算的优先级参见附录 C 教材第365页.5.5. if语句的格式和功能如下:1格式一:if条件语句功能:如果条件成立,方执行语句.2格式二:if条件语句1 else语句2功能 如果条件成立,执行语句1,否那么执行语句2.注意:else不可独立使用,它与其前最近一个尚未配对的if配对,

16、为防止歧义,通常只在else中嵌套if语句.5.6. 条件表达式的格式和功能如下:格式:条件?表达式1:表达式2功能:如果条件成立,取表达式1的值,否那么取表达式2的值.说明:条件表达式可以嵌套,与其前最近一个尚未配对的if配对.5.7. switch语句的格式和功能如下:格式:switch表 达式case常量i:语句组idefault:语句组 n+1功能:如果表达式的值等于常量i,那么从语句组i开始执行,否那么执行语句组n+1.说明:(1) “表达式的值和“常量为整型(包括字符型).(2) switch中的每个语句组称作一个分支,为使各分支独立,通常以 break、 return、exit等

17、语句结尾.另外,“ default:语句组n+1 可以缺省.5.8. break语句的格式和功能如下:格式:break;功能:结束本层switch语句或本层循环语句.说明:break语句只能用于switch语句和循环.第10页共21页?C程序设计?知识点第6章循环结构程序设计第6章循环结构程序设计6.1. while语句的格式和功能如下:格式:while表达式循环体功能:当表达式的值为真时,重复执行其后循环体.说明:循环体是循环语句的内嵌语句,可以是空或复合语句下同o6.2. do-while语句的格式和功能如下:格式:do循环体while表达式功能:重复执行循环体,直到表达式的值为假.说明:

18、do-while循环至少执行一次循环体.6.3. for语句的格式和功能如下:格式:for表达式1;表达式2;表达式3循环体功能:1计算表达式1;2当表达式2的值为真时,重复执行循环体和计算表达式3o说明:表达式1、表达式2、表达式3均可缺省,但保存分号.6.4. continue语句的格式和功能如下:格式:continue;功能:跳过循环体中其后程序段结束本次循环o说明:continue语句只能用于循环.6.5. 掌握以下算法:累加、阶乘、判断素数、分解整数数字、递推数列、打印字符 图形.第11页共21页?C程序设计?知识点第7章数组第7章数组7.1. 同一类型数据的序列称作数组,数组中数据

19、用相应下标变量访问,因此,数组 亦可视为由下标变量组成的序列.72 定义数组语句的一般格式和功能为:格式:数据类型名 数组名第1维长度第n维长度功能:为数组分配连续内存单元,用于存储数组中的下标变量低维优先,并将起始地址又称基址赋给数组名.说明:数组长度只能为整型常量或整型常量表达式.7.3. 数组的要素有:数据类型、数组名、维数及各维的长度.各维的长度必须是常 量,可用常量表达式表示,其值的整数位有效一一截断取整.7.4. 下标变量的格式为:数组名第1维下标第n维下标7.5. 下标从0开始,可用表达式表示,其值的整数位有效.下标最大值比长度小1.7.6. 下标变量的使用与普通变量相同.7.7

20、. 定义数组的同时可对数组中的下标变量赋初值.格式:数据类型名 数组名第1维长度第n维长度=数据表功能:定义数组的同时将数据表中数据依次赋给数组中下标变量,未赋值下标 变量的初值为相应数据类型的0.说明:数据表中的数据必须是常量,可用表达式表示.第1维长度可省略,如果省略,其长度由数据表和其它维长度确定一一存储所需的最小长度.7.8. 以字符为数据元素的数组称作字符数组,它由一组字符型下标变量组成.除赋 值外,字符数组名的使用与字符串变量相似.字符数组也可用字符串初始化.7.9. 标准函数库提供许多用于处理字符串的函数.表7.1常用字符串处理函数格式功能头文件puts 串依次输出串中字符,遇到

21、0'终止,然后换行.stdio.hgets串读入一行字符,依次存入所分配的内存空间,并追加'0'.strcat串 1,串 2将串2复制、连接到串1的第一个'0'处.string.hstrcpy串 1,串 2将串2复制到串1.strcmp串 1,串 2比拟串1和串2的大小.strlen串求字符串的长度.strlwr串将串中大与字母均转换为相应小与字母.strupr串将串中小与字母均转换为相应大与字母.注意:输出字符串及处理字符串的函数,均忽略字符串中第一个'0'及其后的字符.7.10.掌握冒泡排序.第13页共21页?C程序设计?知识点第8章

22、函数第15页共21页第8章函数61. 自定义函数的格式为:函数值类型 函数名带类型声明的形参表列函数体62. 函数值的默认数据类型为into63. 如果函数有返回值,那么用return语句返回,其格式为:return表达式; 或 return表达式;64. 如果函数无返回值,即函数值类型为void,亦可用格式:return;结束本函数并返回调用者.&5.函数一般调用格式为:函数名实参表列其中,实参表列为一组逗号分隔的表达式.实参按从右至左的次序计算并传递 给相应形参.8.6. 如果函数调用在其定义之前,调用前应作相应声明,声明格式为:函数值类型名函数名形参及其类型声明表列;其中,形参可

23、省略.8.7. 函数不可嵌套定义,但允许嵌套调用,亦可直接或间接调用自身称作递归函数o&8.递归函数的函数体的一般格式为:B班同学不作要求if递归条件语句1else语句2或if!递归条件语句1 else语句2/*递归时,如何递归*/*非递归时,如何处理*/*非递归时,如何处理*/*递归时,如何递归*/8.9. 形参及函数内定义的变量称作局部变量,它从定义处生效,且只在该函数内有 效.因此,不同函数中的局部变量可以同名,但同名不同义.&10.在所有函数之外定义的变量称作全局变量,它从定义处生效.8.11. 如果局部变量与全局变量同名,那么同名全局变量被屏蔽.8.12. 局部变量的

24、存储方式分为:自动auto,默认、静态static卜存放器register& 13.存储方式和数据类型是变量的两个重要属性,必须在定义变量时一并声明,关 键字的排列顺序没有限制.变量的默认数据类型为int,默认存储方式为auto,但关键字auto和int不可同时缺省.8.14. auto型局部变量占用动态数据区,当函数调用结束时释放所占内存.register占用CPU中的存放器,但存放器不够用时,占用动态数据区.& 15.全局变量和static型局部变量占用静态数据区,默认初值为相应数据类型的08.16. static型局部变量的声明和初始化只执行一次.8.17. 如果全局变量

25、被声明为static型,那么其它程序文件不能使用该全局变量.否那么,其它程序文件也可使用该全局变量,但使用前应作extern声明.8.18. 被声明为static型的函数,只在本程序文件中有效,不能被其它程序文件调用否那么,其它程序文件也可调用此函数,但调用前应作extern声明.8.19. 常用数学函数在头文件 math.h中.掌握根本初等函数.?C程序设计?知识点第9章预处理命令第9章预处理命令9.1. 预处理命令在程序编译前执行,其主要功能是“文本置换.92不带参数宏定义的格式和功能如下:格式:#define宏名文本功能:在预处理时,将程序中宏名用相应的文本置换.9.3. 带参数宏定义的

26、格式和功能如下:格式:#define宏名形参表列文本功能:在预处理时,将程序中带参数的宏用相应的文本置换,且文本中的形参 被相应的实参所置换.注意:形参无须且做类型声明.9.4. 终止宏定义的格式如下:格式 #undef宏名9.5. 宏定义可以引用已有的宏,亦可重新定义所代表的文本.9.6. 预处理命令无须以分号结尾,否那么分号也参与置换.9.7. #include命令的格式和功能如下:格式一:#include "文件名"格式二:#include <文件名 >功能:在预处理时,用指定文件置换本命令一一加载文件.置换后,被包含文 件成为本文件的一局部,其函数、全局

27、变量等均可在本文件中直接使用,无须 作extern声明.前一种格式先在当前目录中找指定文件,如果未找到,方到存 放C头文件的目录中查找.后一种格式直接到存放C头文件的目录中查找指定 文件.9.8. 条件编译命令的格式和功能如下:格式一:#ifdef宏名 程序段1 #else程序段2 #endif功能:在预处理时,如果指定的宏名已定义,那么用程序段1置换本命令,否那么用程序段2置换本命令.当程序段2为空时,#else可省略下同.格式二:#ifndef宏名 程序段1 #else程序段2 #endif功能:在预处理时,如果指定的宏名未定义,那么用程序段1置换本命令,否那么用程序段2置换本命令.格式三

28、:#if常量表达式 程序段1 #else程序段2 #endif功能:在预处理时,如果指定常量表达式的值为真非0,那么用程序段1置换本 命令,否那么用程序段2置换本命令.注释命令的格式如下:9.9. 注释命令在预处理时被删除,不影响源程序和目标程序/*注释内容*/第17页共21页?C程序设计?知识点第10章指针第10章指针10.1. 内存的根本单位是字节,每个字节都有相应的编号,称作地址或指针.借助于 指针,C语言可以直接访问内存,从而对硬件进行操作.10.2. 变量所占用内存的大小由其数据类型决定,变量所占用内存的第1个字节的地址称作该变量的地址或指针,表为:&变量名10.3. 指针所

29、指向数据的类型称作该指针的基类型,它所指向数据用*指针访问,可作为普通变量使用.10.4. 指针本身也是一种数据类型,占用2字节内存,可作为无符号整数输出和参与关系运算、逻辑运算,但指针的其它运算不同于整数运算.10.5. 指针运算可简单地分为以下五类:(1) 单目运算有六个:!、&、*、+、-、sizeo.(2) 双目运算有四种:-、关系运算、逻辑运算、赋值运算.(3) 指针与整数间的运算有三个:+、-、.(4) 强制类型转换运算:().(5) 结构体成员运算:->.其中,+、-、+、-、+=、-=均以基类型数据为根本单位.10.6. 一维数组的数组名可作为指针调用,它指向数组

30、中的第一个元素,以数组中元 素的类型为基类型.数组名的值不可修改,且sizeof数组名)的值为整个数组所 占内存的字节数.10.7. 对于一维数组来说,基址+i和 &基址i均指向数组中的第i+1个元素(i>=0);*(基址+i) 和 基址i均表示数组中的第i+1个元素(i>=0).10.8. n维数组可看作是以n-1维数组为元素的一维数组,数组名可看作是指向数组 中的第一个n-1维数组的指针.10.9. 下标变量可作为实参,但不可作为形参,实际上,它被误认为指针.10.10. 探C源程序经编译后,系统为源程序中的每个函数均分配一个入口地址,称作函数指针.在C源程序中,函数指

31、针用函数名表示,其值不可修改.以函 数指针为值的变量称作函数指针变量,其定义格式为:函数类型名*函数指针变量名;可用下述格式代替函数名:*函数指针10.11. 探标注表示此局部为非测试内容.函数返回值可以是指针,定义函数的一般格式为:基类型*函数名形参列表函数体10.12. 不允许将非0数直接赋给指针变量,须做强制转换.当指针变量的值为0时, 称之为空指针.10.13. 探 以指针为元素的数组称作指针数组.10.14. 探以指针为基类型的指针称作指向指针的指针,以指向指针的指针为值的 变量称作指向指针的指针变量,其定义格式为:存储方式关键字 基类型名*指向指针的指针变量名10.15. 探C源程

32、序经编译、连接所得目标程序exe文件可作为DOS外部命令使 用,命令行的一般式为:路径目标程序文件名 参数1参数2参数n10.16. 探C主函数main可带两个形参,前者为int型,用于接收命令行中字符串 个数,后者为字符串指针数组,用于接收命令行中各字符串.带参主函数的格 式为:void mainint 形参 1,char *形参 2 函数体其中,形参1=参数个数+1形参20="路径目标程序文件名"形参 2i="参数 i",i=1,2,n第19页共21页?C程序设计?知识点第11章 结构体与共用体第11章结构体与共用体11.1. 声明结构体语句的一般格式为:struct标识符成员表列;其中,成员表列为一组声明变量的语句,这些变量称作该结构体的成员,又称 数据项、分量、域、字段等.语句结尾处的分号不可缺省,标识符可以省略, 如果不省略标识符,那么新增一个数据类型(名):struct标识符11.2. 定义结构体变量的一般格式为:struct标识符 变量表列;也可在声明结构体的同时定义变量:struct标识符成员表列变量表列;11.3. 结构体变量可在定义时赋初值

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论