《C程序设计》知识点第1章C语言概述第1页共21页《C程序设计》知识点第1章C语言概述1.1.C语言属高级语言,区分字母的大小写,以函数为基本单位采用模块化程序设计,可直接访问内存,进而对硬件进行操作。1.2.用C语言编写和程序称作C源程序,简称C程序,C程序可由若干个文本文件组成,文件扩展名为C(使用C++编译器时默认扩展名为CPP)。C源程序经编译、连接后得到扩展名为EXE的可执行文件(目标程序)。预处理编译、连接执行若干个C程序文件----→C程序------→目标程序文件--→1.3.C程序从主函数开始执行,每个C程序有且仅有一个主函数,因此,每个C程序文件中至多有一个主函数。1.4.C语句以分号结尾,用{}括起来的一组语句称作复合语句,复合语句可省略花括号之后的分号。1.5.允许一行内写多个C语句,也允许一个C语句占用多行,但保留字和标识符不可拆行。1.6.在C集成环境VC++6.0中,新建工程、保存当前程序文件、编译当前程序、执行当前程序的快捷键依次为:Ctrl+N、Ctrl+S、F7、Ctrl+F5。《C程序设计》知识点第2章程序设计的灵魂——算法第2页共21页第2章程序设计的灵魂——算法2.1.解决问题的方法和步骤称作算法。算法和数据结构是程序的两个主要要素。2.2.算法具有确定性、有穷性、有效性等特点。2.3.算法可用自然语言、流程图、N-S图、计算机语言、伪代码等描述。伪代码是用介于自然语言和计算机语言之间的文字和符号来描述算法。起止框输入输出框判断框处理框注释框……连接点〇流程线有向线段或折线图2.1ANSI流程图符号2.4.算法的基本结构分为:顺序结构、选择结构、循环结构。↓↓↓↓←---┐Y┌条件┐N条件┐N│↓↓↓↓Y│↓││条件┘Y↓└---→↓←---┘↓←---┘↓N图2.2顺序结构图2.3选择结构图2.4当循环图2.5当循环条件条件循环体YN循环体条件图2.6顺序结构图2.7选择结构图2.8当循环图2.9当循环2.5.由三种基本结构组成的程序称作结构化程序,结构化程序中的每个模块只有一个入口和一个出口。结构化程序设计通常采用“自顶向下、逐步细化”的设计方法。《C程序设计》知识点第3章数据类型、运算符与表达式第3页共21页第3章数据类型、运算符与表达式3.1.C的数据类型如下所示:表3.1C语言的数据类型数据类型字节数数值范围基本类型整型无符号短整型(unsignedshortint)20~216-1有符号短整型(signedshortint)2-215~215-1无符号长整型(unsignedlongint)40~232-1有符号长整型(signedlongint)4-231~231-1实型单精度实型(float)4长37位,6位有效双精度实型(double)8长307位,15位有效长双精度实型(longdouble)10长4931位,18位有效字符型(char)10~28-1空类型(void)1构造类型枚举类型2指针类型2数组类型结构体类型共用体类型3.2.C符号常量名、变量名、函数名等统称标识符,标识符的命名规则为:以字母或下划线开头,由字母、数字、下划线组成,超出32个字符部分被忽略(最好不超过8个字符)。3.3.以0开头的整数为八进制整数,以0X或0x开头的整数为十六进制无符号整数。3.4.-32768~32767为int型,0U~65535U为unsigned型,65536U~4294967295U和0UL~4294967295UL为unsignedlong型,-2147483648~-32769、32768~2147483647和-2147483648L~2147483647L为long型。后缀U和L不区分大小写和次序。3.5.数据的存储字节数可用运算符sizeof()查询,括号内可是数据、表达式或类型名。3.6.有符号整数(int和long)按补码存储,因此,-65535U~-1U与1U~65535U依次相等,-4294967295UL~-1UL与1UL~4294967295UL依次相等。3.7.定点数(含小数点数)和浮点数统称C实型常量,浮点数的一般形式为:尾数e除码或尾数E除码其含义为:尾数×10除码其中,尾数为定点数或整数,除码为整数。标准浮点数的小数点在第1位非0数字之后。后缀L或l的实型常量为长双精度,无后缀实型常量为双精度。《C程序设计》知识点第3章数据类型、运算符与表达式第4页共21页3.8.用一对单引号括起来的单个字符称作C字符常量,其值为该字符的ASCII码(1字节无符号整数)。3.9.转义字符'\n'、'\t'、'\\'、'\''、'\'分别表示回车符、制表符、反斜杠、单引号、双引号。3.10.转义字符'\整数'、'\x整数'(或'\X整数')中的整数分别为八进制、十六进制,表示以此整数为ASCII码的字符。3.11.用双引号括起来的一串字符称作C字符串型常量,串中字符数称作串长,可以为0。字符串的存储形式为:依次存储字符串中字符的ASCII码,并追加一个空字符'\0'(1字节无符号整数0)。3.12.字符型、整型、实型数据统称数值型数据,不同类型的数值型数据可以混合运算,低精度数据被自动强制转换为高精度数据后方参与运算。另外,字符常量为有符号短整数,两个字符型数据间的运算按有符号短整数处理。3.13.如果将数值型数据赋给不同类型的数值型变量,则数值型数据将被自动强制转换为变量的数据类型。3.14.C允许定义变量的同时赋初值。3.15.C运算符及其优先级、结合性如附录C(教材第365页)所示。3.16.强制数据类型转换的一般形式为:(类型名)数据3.17.自增++、自减--运算只能作用于变量,作用于右侧时,返回变量自增、自减前的值。3.18.赋值表达式的格式为:变量=表达式或变量op=表达式其中,op为运算符+、-、*、/、%、、、&、^、|中某一个。前者将右边表达式的值赋给左边的变量,后者将左边变量的当前值与右边表达式的值作相应运算后仍赋给左边的变量。整个赋值表达式取左边变量所赋的新值。3.19.用逗号分隔的一组表达式称作逗号表达式,其一般形式为:表达式,表达式,…,表达式其功能为:从左至右依次计算各表达式的值,并以最后一个表达式的值为整个逗号表达式的值。3.20.将数学式改为C表达式时应注意:(1)乘号*不可省略;(2)正确改写脚码、运算符、括号等;(3)正确书写函数名;《C程序设计》知识点第3章数据类型、运算符与表达式第5页共21页(4)把握好运算优先级,分数线改为/时,分子、分母相应加括号;(5)正确拆分不等式组;(6)区分整数除法和实数除法。《C程序设计》知识点第4章顺序结构程序设计第6页共21页第4章顺序结构程序设计4.1.表达式后缀分号称作表达式语句,即,表达式;4.2.putchar、getchar、printf、scanf等输入输出函数的原型在头文件stdio.h中。4.3.函数putchar和getchar的格式和功能如下:(1)putchar格式:putchar(表达式)功能:向标准输出设备输出以指定表达式的值为ASCII码的字符,并以该值为函数值(自动强制转换为int型)。(2)getchar格式:getchar()功能:从标准输入设备输入一个字符,并以该字符为函数值。注意:getchar可提取空格及回车、Tab等部分控制字符,而且只提取输入中相应位置上的一个字符,因此,输入字符间无须分隔,否则也被视为输入字符。4.4.printf函数的格式和功能如下:格式:printf(格式控制串,输出表列)功能:(1)从右至左依次计算输出表列中各表达式的值;(2)从左至右依次输出格式控制串中的字符,其中,%引导的格式控制符由输出表列中相应表达式的值所取代。输出表列是一组用逗号分隔的表达式(又称输出项,可以为0项)。格式控制串为字符串型数据(可以是表达式)。其中,格式符用于控制输出表列中相应表达式的输出格式。格式符及其功能如下表所示:表4.1printf格式字符格式符说明d或i有符号十进制短整数(不输出正号)u无符号十进制短整数o无符号八进制短整数(无前缀0)x或X无符号十六进制短整数(无前缀0x,数字的大小写与x相同)c字符《C程序设计》知识点第4章顺序结构程序设计第7页共21页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函数的格式和功能如下:格式:scanf(格式控制串,地址表列)其中,格式控制串为字符串型数据(可以是表达式),地址表列是一组用逗号分隔的地址。功能:(1)右至左依次计算地址表列中各表达式的值;(2)从标准输入设备提取数据,并从左至右依次存储到所指定的存储单元。(3)地址表列中的地址可用表达式表示,通常形式为:&变量其中&是地址运算符,它表示取其后变量的存储(起始)地址。说明:(1)scanf函数格式符与printf函数的格式符的功能相似。scanf的合法格式符不区分大小写、实型格式符均等效,另外,表4.2scanf的附加格式符说明附加格式符说明正整数指定输入数据的最大宽度(插在%与其它格式符之间)*跳过当前一个数据(插在%与其它格式符之间)*正整数跳过当前指定个字符(插在%与其它格式符之间)(2)如果格式控制串中有非格式符,则输入数据中对应位置上必须是该字符,且被跳过,这为指定数据间分隔符提供了方便。(3)printf和scanf格式控制串中的每对%%(从左至右结合)按一个普通字符%对待。《C程序设计》知识点第5章选择结构程序设计第8页共21页第5章选择结构程序设计5.1.C逻辑值为短整数(int),真、假分别为1、0。另外,字符、数、指针作为逻辑量时,非0、非空为真(即1),0、空为假(即0)。逻辑运算如下表所示:表5.1逻辑运算真值表左元右元!右元左元&&右元左元||右元假(0)假(0)真(1)假(0)假(0)假(0)真(非0)假(0)假(0)真(1)真(非0)假(0)真(1)假(0)真(1)真(非0)真(非0)假(0)真(1)真(1)5.2.对于形如□||□||…的逻辑式,从左至右计算□的逻辑值,遇到真则提前终止。5.3.对于形如□&&□&&…的逻辑式,从左至右计算□的逻辑值,遇到假则提前终止。5.4.算术、关系、逻辑运算的优先级参见附录C(教材第365页)。5.5.if语句的格式和功能如下:(1)格式一:if(条件)语句功能:如果条件成立,方执行语句。(2)格式二:if(条件)语句1else语句2功能如果条件成立,执行语句1,否则执行语句2。注意:else不可独立使用,它与其前最近一个尚未配对的if配对,为避免歧义,通常只在else中嵌套if语句。5.6.条件表达式的格式和功能如下:格式:条件?表达式1:表达式2功能:如果条件成立,取表达式1的值,否则取表达式2的值。说明:条件表达式可以嵌套,与其前最近一个尚未配对的if配对。5.7.switch语句的格式和功能如下:格式:switch(表达式)《C程序设计》知识点第5章选择结构程序设计第9页共21页{…case常量i:语句组i…default:语句组n+1}功能:如果表达式的值等于常量i,则从语句组i开始执行,否则执行语句组n+1。说明:(1)“表达式”的值和“常量”为整型(包括字符型)。(2)switch中的每个语句组称作一个分支,为使各分支独立,通常以break、return、exit等语句结尾。另外,“default:语句组n+1”可以缺省。5.8.brea