您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 《C程序设计》谭浩强第三版知识概括
I说明:以下的内容是对《C程序设计(第三版谭浩强著)》知识点的概括,主要是提取全书详细的知识点。我所呈现给大家的内容绝大部分是图表的形式,结构清晰、层次分明。一些上机操作易出错的细节也在具体内容中作了强调,其中包含了本人的一些上机实践经验。对于要参加国家二级计算机C语言等级考试的学生特别有帮助。对初学C语言的人可作为工具书来参考。另外我对原书中3到6章的知识点顺序稍作调整重组。值得注意的是,《C程序设计(第三版谭浩强著)》书中对C编译系统并未指定,而以下内容完全是按照VisualC++6.0的编译系统来写的,所以涉及的具体的情况均是按VisualC++6.0的编译系统给出的。这也正是特别适用参加国家二级计算机C语言等级考试学生的一个原因。我写这个知识总结与大家分享,是想对学C的童鞋有些帮助,当然也是自己学习C的一个总结。当然本人也是刚学习C一学期的新手,出现错误和纰漏在所难免,希望大家谅解。也非常欢迎有兴趣的朋友致邮572009833@qq.com进行相关的讨论。@竹林~幻影2012-08-25于沈阳II目录第一章C语言的特点....................................................................1第二章算法............................................................................2第三章数据类型..........................................................................4第四章四种基本运算...................................................................7第五、六章程序的三种基本结构....................................................10第七章数组..........................................................................18第八章函数..........................................................................22第九章预处理命令.....................................................................28第十章指针............................................................................30第十一章结构体与共用体.............................................................37第十二章位运算............................................................................44第十三章文件..........................................................................47附录C语言的运算符和结合性...............................................501/52第一章C语言的特点一种语言之所以能存在和发展,并具有较强的生命力,总是有其独特之处。C语言的主要特点概括如下:(1)语言简洁、紧凑,使用方便、灵活。(2)运算符丰富。(3)数据类型丰富。(4)具有结构化的控制语句。用函数作为程序的模块单位,便于实现程序的模块化。(5)语法限制不太严格,程序设计自由度大。(6)C允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。(7)生成目标代码率高,程序执行效率高。C语言一般只比汇编程序生成的目标代码率低10%~20%。(8)用C语言编写的程序移植性好(与汇编语言相比)。2/52第二章算法目录内容(一)算法的概念广义的说,为解决一个问题而采取的方法和步骤,就成为算法。不过这里只限于计算机算法,即计算机能执行的算法。计算计算法可分为两大类:数值运算算法和非数值运算算法。(二)算法的特性1)有穷性。一个算法包含的操作步骤应有限。2)确定性。算法中的每一个步骤应当都是确定的。3)有零个或多个输入。4)有一个或多个输出。没有输出的算法是没有意义的。5)有效性。算法中的每一个步骤都应有效的执行,并得到确定的结果。(三)算法的表示1)用自然语言表示算法。2)用流程图表示算法。3)3种基本结构和改进的流程图。I3种基本机构:顺序结构、选择结构和循环结构。II3种结构的共同特点:A.只有一个入口;B.只有一个出口;C.结构内的每一部分都有机会被执行到;D.结构内不存在“死循环”。III用N—S流程图表示算法,流程图符号:A.顺序结构pB.选择结构成立不成立C.循环结构(当)p1(成立)(直到)p1(成立)4)用伪代码表示算法:用介于自然语言和计算机语言之间的文字和符号来描述算法。5)用计算机语言表示算法。ABABAA3/52(四)结构程序设计方法为得到结构化程序的需实施:1)自顶向下;2)逐步细化;3)模块化设计;4)结构化编码。4/52第三章数据类型一、概述(一)数据类型C语言提供以下的数据类型,由这些数据类型可以构造出不同的数据结构。(二)常量与变量名称举例习惯声明使用常量‘a’用#define声明时标志符大写#define标识符字符串变量a(inta;)标识符小写类型标识符;先定义后使用标识符:只能由字母、数字和下划线组成,且第一个不能为数字。大小写敏感。合法的用户标识符:不与系统关键字相同的标识符。数据类型基本类型指针类型(*)空类型(void)字符型(char)枚举类型(enum)构造类型数组类型结构体类型(struct)共用体类型(union)浮点型单精度型(float)双精度型(double)长双精度型(longdouble)整型短整型(shortint)长整型(longint)基本整型(int)5/52二、最常见的三种基本类型目录内容(一)整型类型位数(字节)范围[signed]int32(4)-231~(231-1)unsignedint32(4)0~(232-1)[signed]short[int]16(2)-32768~32767{-215~(215-1)}unsignedshort[int]16(2)0~65535{0~(216-1)}long[int]32(4)-231~(231-1)unsignedlong[int]32(4)0~(232-1)(二)浮点型两种形式小数形式123.0指数形式1.23e2和12.3E1都代表123.0(e前必须有数字,后必须为整数)规范化指数形式:e(E)前小数部分中,小数点前有且只有一位非零数字。浮点数用指数形式输出时按规范化指数形式输出。分类类型位数(字节)有效数字float32(4)6~7位double64(8)15~16位longdouble64(8)18~19位由于浮点型在有效数字外的数字据随机性,应当避免将一个很大的数和一个很小的数直接相加或相减,否则就会丢失“小数”。6/52(三)字符型1.字符型常量表示用单撇号括起来的一个字符。如:‘a’、‘X’、‘?’、‘$’等。转义字符形式含义ASCII码\n换行10\tTab键,8个空格9\bBackspace,退格8\rEnter,将当前位置移到本行开头13\f换页,移到下页开头12\\代表字符“\”92\’代表单引号字符39\”代表双引号字符34\ddd1到3位八进制所代表的字符\xhh1到2位十六进制所代表的字符,x不可大写2.字符变量定义形式char字符变量名;说明I.字符变量用来存放字符,它只能放一个字符。II.它只占一个字节。另外它可以、与整型整数数据之间通用。在一定范围内两种数据可以相互输入输出。而且C语言允许字符数据与整数直接进行算术运算。3.字符串变量用一对双撇号括起来的字符序列。注意与字符常量的区别。不能把一个字符串常量赋给一个字符常量。C中没有专门的字符串常量,如果想将一个字符串放在变量中以便保存,必须用字符的数组。7/52第四章四种基本运算一、算术运算目录内容(一)算术运算符运算符说明+加法或正运算符-减法或负运算符*乘法运算符/除法运算符,如5/3,若两边均为整型则5/3=1%模(取余)运算符,%两侧应均为整型数据,如7%4=3(二)优先级和结合性优先级多个不同的运算符出现时,进行运算的先后顺序叫做运算符的优先级。以上各运算符的优先级可查附录。结合性若干个相同的运算符同时出现时,进行运算的顺序叫做运算符的结合性。算术运算符的结合性为“自左向右”。(三)强制类型转换I.算术表达式中的数据类型不相同时,按其中较高级别①的数据类型为准对级别低的一侧数据进行转换,然后再计算,计算结果为表达式结果(只有一级)。如果表达式为多级运算,则每一级运算均按上述过程进行,最终结果为表达式结果。II.算术运算要想得到指定的类型的数据结果,常常需要进行类型转换才能达到;另外有些数据只有进行类型转换后才能满足某些运算的要求。例如%两边需为整型数据,(int)5.4%(int)3.1=2使用的一般形式为:(类型名)(表达式)作用是将表达式结果转换为指定的类型。值得注意的是强制类型转换并不会把变量的类型改变,只是在运算时形成一个中间数据。III.一个整形数据后跟一个字母u或U,该数据被认为是unsignedint类型,而后跟l或L,则认为是longint类型。◇注:①数据类型高低:高低doublechar、shortfloatlongunsignedintI.红色(横向)箭头表示必定的转换。如两个char型相加也要先转换为int型再相加。II.蓝色(纵向)箭头表示运算对象不同类型时的转换方向。III.不过箭头的方向并不表示转换是这样一级一级进行的。类型不同时是直接(一步)转换为目标(高级)类型的。8/52二、赋值运算目录内容(一)运算符名称符号说明赋值运算符=运算符左侧是变量,右侧是表达式运算结果是将表达式的值赋给左侧变量。当右侧运算结果与左边变量类型不同时要进行类型转换。复合的赋值运算符+=,-=,*=,/=,%=,=,=,&=,^=,|=举例说明使用方法:a+=b相当于a=a+b;b可以是表达式,如x%=y+3与x%=(y+3)等价均可表示为x=x%(y+3)。另外后五个是关于位运算的。自增、自减运算符++--++i,--i(在使用i之前,先对i的值加(减)1);i++,i--(在使用i之后,使i的值加(减)1)。自增自减只能针对变量使用。当其用在表达式中时有些问题要注意①。逗号运算符,该运算符又被称为“顺序求值运算符”。其一般形式为:表达式1,表达式2,„,表达式n逗号表达式的结果为表达式n的值。逗号运算符的优先级是所有运算符中最低的②。(二)类型转换左值③类型右值类型转换方法整型实型舍弃小数部分实型整型数值不变,添加小数位floatdouble截取前面7位有效数字,但应注意数值范围doublefloat数值不变,有效位扩展到16位整型字符型将字符数据放到整型变量低8位,并进行符号扩展字符型整型只将整型低8位原样送到字符型变量存储位置longsignedint都是32位,直接原样转送longunsignedint都是32位,直接原样转送,可能会出现错误非unsigned型整型unsignedint长度相同时原样转送;不同时则低位转送,此时要注意数据范围unsigned非unsigned型整型长度相同时原样转送,不同时则低位转送,但均有可能出错◇注:①在表达式或含有表达式的语句(包括函
本文标题:《C程序设计》谭浩强第三版知识概括
链接地址:https://www.777doc.com/doc-5042430 .html