《C程序设计(第四版)》适用专业通用.doc_第1页
《C程序设计(第四版)》适用专业通用.doc_第2页
《C程序设计(第四版)》适用专业通用.doc_第3页
《C程序设计(第四版)》适用专业通用.doc_第4页
《C程序设计(第四版)》适用专业通用.doc_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

C程序设计(第四版) 适用专业:通用ISBN:978-7-302-22446-4出版日期:2010年6月定价:29.00元页码:390页作者:谭浩强教授,1958年清华大学自动控制系毕业,是我国著名的计算机教育专家,现任全国高等院校计算机基础教育研究会荣誉会长,教育部全国计算机应用技术证书考试委员会主任委员。曾获全国高校教学成果国家级奖、国家科技进步奖,原国家科委授予“全国先进科普工作者” ,北京市政府授予“有突出贡献专家”称号。计算机世界报组织的“世纪评选”把他评为我国“20世纪最有影响的IT人物”10个人之一(排在第2位)。他的功绩是把千百万群众带入计算机的大门。所属项目:原电子工业部优秀教材一等奖,全国高等院校计算机基础教育研究会优秀教材一等奖,全国高校出版社优秀畅销书特等奖。教材特点:C语言是国内外广泛学习和使用的计算机语言,使用C语言进行程序设计是计算机工作者的一项基本功。本书的第一版于1991年出版,第二版于1999年出版,第三版于2006年出版。由于本书作者具有丰富的教学经验和编写教材的经验,并针对初学者的特点,精心策划、准确定位,使得本书概念清晰、例题丰富、深入浅出,受到专家和读者的一致好评。本书被普遍认为是学习C语言的好教材,并被全国大多数高校选用。本书累计发行逾1100万册,不仅创同类书的全国最高纪录,在世界上也是独一无二的。本书是在广受赞誉的C程序设计(第三版的基础上修订出版的。作者认为:任何工作都要与时俱进,不断完善,追求完美。计算机科学技术不断发展,C语言也在发展,高校计算机教学累积了新的经验,也出现了新的问题,广大读者也提出了新的期望和建议。因此,2010年作者对C程序设计一书再次进行修订,出版了C程序设计(第四版)。第四版保持了前三版的写作风格和概念清晰、通俗易懂的特点,并在以下几个方面作了修改:(1) 按照C 99标准进行介绍,以适应C语言的发展,使程序更加规范目前大多数介绍C语言的教材是按照 C89标准介绍的,而国外的同类教材多以C 99为蓝本。这样,在阅读国外书刊或进行国际交流时会发生一些问题。本书按照 C99的规定进行介绍,程序符合 C99的要求。(2)采用Visual C+ 6.0作为编译和运行环境考虑到国内当前的情况和读者使用的方便,本书中的程序是用Windows环境下使用的Visual C+ 6.0编译的,运行结果也是在Visual C+ 6.0环境下得到的。在分析时也以Visual C+6.0为环境为例进行介绍。读者使用会更加方便,容易理解。(3)加强算法,以程序设计为中心把算法与语言工具紧密结合专门用一章介绍算法的概念、算法的特点、表示算法的工具以及怎样设计算法,并通过一些简单的例子说明怎样构造一个算法,使读者有一个初步的、基本的了解。在以后各章中,由浅入深地结合例题介绍各种典型的算法,并且用C语言实现此算法,写出程序。这样就使算法与程序紧密结合,而且通过运行程序,得到结果,便于验证算法的正确性。学习时不会觉得抽象,而会觉得算法具体有趣,看得见,摸得着。实践证明这种方法可取得很好的效果。 (4)更加通俗易懂,容易学习本书采用作者提出的“提出问题解决问题归纳分析”的新的教学三部曲,先具体后抽象,先实际后理论,先个别后一般。而不是先抽象后具体,先理论后实际,先一般后个别。实践证明这样做符合读者的认知规律,读者很容易理解。在介绍每个例题时,都采取以下的步骤:给出问题解题思路编写程序运行结果程序分析有关说明,使读者很容易理解。具有高中以上文化水平的人,即使没有教师讲解,也能基本上掌握本书的内容。这样就便于自学,就有可能做到:教师少讲,提倡自学,上机实践。(5)根据当前需要重新组织教材内容根据近年来各校教学中的实际情况,作者对本书内容作了相应的取舍与调整,目的是使本书更切合需要,贴近读者,深入浅出,降低难度。调整的细节请见本书前言。为了帮助读者学习本书,作者编了一本C程序设计(第四版)学习辅导,内容包括:主教材各章习题的参考解答,预处理指令,位运算,C程序案例,如何使用Visual C+集成环境运行程序,以及上机实践指导等。该书由清华大学出版社于2010年出版。对使用本教材的建议:(1) 本书是作为高等学校学生学习C程序设计的教材,对象是没有学过计算机程序设计的大学生。本书既注重概念清晰,使读者建立起对程序设计和C语言的清晰理解,又注意引导学生学以致用,使学生在较短的时间内初步学会用C语言编写程序,具有初步的编程知识和能力,而不是仅停留在理论知识层面上。虽然如此,本书与就业上岗前的职业培训教材是有区别的,也不是供软件开发人员使用的手册和技术规范,本书带有基础的性质,主要帮助学生学习程序设计方法,学习怎样去编写程序,为以后的进一步提高与应用打好基础。如果读者准备从事软件开发工作,可以在学习本书的基础上进一步学习有关专业知识和职业要求。(2) 本书系统全面,内容丰富,供基础较好的学校和学生学习。建议采取课堂讲授与自学相结合的方法。在课堂上教师主要介绍编程思路和怎样用C语言去实现算法,不要孤立地一一介绍语法的细节,但是要在介绍程序时重点指出关键之处,以及容易出错的地方。要求学生通过自己上机实践来理解程序设计方法,学会正确使用C语言工具,具有初步编程能力。语法不是靠讲和背学会的,而是在实践中掌握的。(3) 在本书第11章“常见错误分析”中列举了初学者在编程序时常出现的错误,这是作者在多年教学实践中收集和总结出来的,是很有价值的,希望教师和同学能充分利用这个资源。教师可以结合教学提醒学生避免出现类似的错误。学生在学习过程中可以随时翻阅,了解在什么情况下容易出错。在经过一段时间的编程和上机实践后,再系统地阅读一下,回顾和总结自己易出错的问题,这样可以减少错误,提高编程效率。(4) 要善于利用习题。本书各章中的习题包括不同类型、不同程度的142道题目。其中有些题目的难度高于书中的例题,这样做的目的是使学生不满足于已学过的内容,而要举一反三,善于发展已有知识,提倡创新精神,培养解决问题的能力。有的专家和读者说,如果能独立地完成全部习题,他的C语言学习就过关了。希望教师能指定学生完成各章中有一定难度的习题。希望学生能尽量多做习题,以提高自己的水平。在C程序设计(第四版)学习辅导一书中,提供了绝大多数习题的参考解答,列出了程序。对于比较难的习题,除了给出程序外,还作了比较详细的说明。这些习题解答实际上是作者对本教材例题的补充,希望读者能充分利用它。学生即使没有时间自己做全部习题,如果能把全部习题的参考解答都看一遍,而且都能看懂,也会很有收获,能扩大眼界,丰富知识。教师也可以挑选一些习题解答在课堂上讲授,作为补充例题。(5) 预处理指令往往是C程序中必要的部分,尤其是用#include指令来包含头文件和用#define指令定义符号常量。在本教材中结合编写程序,介绍了怎样使用这两种预处理指令。在C程序设计(第四版)学习辅导一书中,专门有一章系统地、详细地介绍各种预处理指令的使用,以供使用参考。教师可在介绍#include指令和#define指令时,说明还有其他预处理指令,请同学们自己学习参考。(6) “位运算”是C语言区别于其他高级语言的一个重要特点。C语言能对“位” 进行操作,使得C具有比较接近机器的特点。考虑到非计算机专业学生的情况,在这次修订时在教材中不再包括位运算的内容。但是,在编写系统软件和数据采集、检测与控制中往往需要用到位运算。信息类专业的学生需要学习这方面的知识,因此,把位运算的内容放到C程序设计(第四版)学习辅导一书中,计算机和其他信息类专业可以把它列入教学内容,其他读者可以选学。(7) 为了便于教学,本教材中的例题程序的规模一般都不大。在学完各章内容之后,需要综合应用已学过的知识,编写一些应用程序,以提高编程能力。在C程序设计(第四版)学习辅导一书中专门有一章“C程序案例”,这些案例很有实用价值,对于读者在学习本书后提高编程能力会有很大的帮助。要善于利用这些资源,教师可以指定学生阅读这些程序。(8) 由于学时少,只靠几十小时的教学就能使学生真正掌握C程序设计是困难的,如果有条件,最好在学完本教材后安排一次课程设计,要求学生独立完成一个有一定规模的程序设计,这是一个重要的教学实践环节,能大大提高学生的独立编程能力。(9) 有的学校由于分配给本课程的学时有限,可能不能讲完教材中的全部内容。建议不要把本书后面几章舍弃,应当让学生基本学完第110章,使学生对C语言有全面的了解。例如,文件的概念是很重要的,宁可作简单的介绍,也不要放弃。前5章的进度可以快些,有些程序可指定学生自学。配套资源: 1C程序设计(第四版)学习辅导。ISBN:9787302226727,2010年6月出版。2向选用本教材的教师免费提供讲课的电子演示文稿,可在清华大学出版社网站下载。目录:第1章程序设计和C语言11.1什么是计算机程序11.2什么是计算机语言11.3C语言的发展及其特点31.4最简单的C语言程序51.4.1最简单的C语言程序举例61.4.2C语言程序的结构101.5运行C程序的步骤与方法121.6程序设计的任务14习题15第2章算法程序的灵魂162.1什么是算法162.2简单的算法举例172.3算法的特性212.4怎样表示一个算法222.4.1用自然语言表示算法222.4.2用流程图表示算法222.4.3三种基本结构和改进的流程图262.4.4用NS流程图表示算法282.4.5用伪代码表示算法312.4.6用计算机语言表示算法322.5结构化程序设计方法34习题36第章最简单的C程序设计顺序程序设计373.1顺序程序设计举例373.2数据的表现形式及其运算393.2.1常量和变量393.2.2数据类型423.2.3整型数据443.2.4字符型数据473.2.5浮点型数据493.2.6怎样确定常量的类型513.2.7运算符和表达式523.3C语句573.3.1C语句的作用和分类573.3.2最基本的语句赋值语句593.4数据的输入输出653.4.1输入输出举例653.4.2有关数据输入输出的概念673.4.3用printf函数输出数据683.4.4用scanf函数输入数据753.4.5字符数据的输入输出78习题82第4章选择结构程序设计854.1选择结构和条件判断854.2用if语句实现选择结构874.2.1用if语句处理选择结构举例874.2.2if语句的一般形式 894.3关系运算符和关系表达式914.3.1关系运算符及其优先次序914.3.2关系表达式924.4逻辑运算符和逻辑表达式924.4.1逻辑运算符及其优先次序934.4.2逻辑表达式944.4.3逻辑型变量964.5条件运算符和条件表达式974.6选择结构的嵌套994.7用switch语句实现多分支选择结构1024.8选择结构程序综合举例105习题111第5章循环结构程序设计1145.1为什么需要循环控制1145.2用while语句实现循环1155.3用dowhile语句实现循环1175.4用for 语句实现循环1205.5循环的嵌套1245.6几种循环的比较1255.7改变循环执行的状态1255.7.1用break语句提前终止循环1265.7.2用continue语句提前结束本次循环1275.7.3break语句和continue语句的区别1285.8循环程序举例131习题140第6章利用数组处理批量数据1426.1怎样定义和引用一维数组1426.1.1怎样定义一维数组1436.1.2怎样引用一维数组元素1446.1.3一维数组的初始化1456.1.4一维数组程序举例1466.2怎样定义和引用二维数组1486.2.1怎样定义二维数组1496.2.2怎样引用二维数组的元素1506.2.3二维数组的初始化1516.2.4二维数组程序举例1526.3字符数组1546.3.1怎样定义字符数组1546.3.2字符数组的初始化1556.3.3怎样引用字符数组中的元素1556.3.4字符串和字符串结束标志1566.3.5字符数组的输入输出1596.3.6使用字符串处理函数1616.3.7字符数组应用举例165习题168第7章用函数实现模块化程序设计1707.1为什么要用函数1707.2怎样定义函数1727.2.1为什么要定义函数1727.2.2定义函数的方法1737.3调用函数1747.3.1函数调用的形式1747.3.2函数调用时的数据传递1757.3.3函数调用的过程1777.3.4函数的返回值1787.4对被调用函数的声明和函数原型1797.5函数的嵌套调用1827.6函数的递归调用1847.7数组作为函数参数1927.7.1数组元素作函数实参1937.7.2数组名作函数参数1947.7.3多维数组名作函数参数1977.8局部变量和全局变量1997.8.1局部变量1997.8.2全局变量2007.9变量的存储方式和生存期2047.9.1动态存储方式与静态存储方式2047.9.2局部变量的存储类别2057.9.3全局变量的存储类别2087.9.4存储类别小结2127.10关于变量的声明和定义2147.11内部函数和外部函数2157.11.1内部函数2157.11.2外部函数215习题218第8章善于利用指针2208.1指针是什么2208.2指针变量2228.2.1使用指针变量的例子2228.2.2怎样定义指针变量2238.2.3怎样引用指针变量2248.2.4指针变量作为函数参数2268.3通过指针引用数组2308.3.1数组元素的指针2308.3.2在引用数组元素时指针的运算2318.3.3通过指针引用数组元素2338.3.4用数组名作函数参数2378.3.5通过指针引用多维数组2458.4通过指针引用字符串2558.4.1字符串的引用方式 2558.4.2字符指针作函数参数2598.4.3使用字符指针变量和字符数组的比较2638.5指向函数的指针2668.5.1什么是函数指针2668.5.2用函数指针变量调用函数2668.5.3怎样定义和使用指向函数的指针变量2688.5.4用指向函数的指针作函数参数2708.6返回指针值的函数2748.7指针数组和多重指针2778.7.1什么是指针数组 2778.7.2指向指针数据的指针2808.7.3指针数组作main函数的形参2828.8动态内存分配与指向它的指针变量2858.8.1什么是内存的动态分配2858.8.2怎样建立内存的动态分配2858.8.3void指针类型 2878.9有关指针的小结288习题291第9章用户自己建立数据类型2939.1定义和使用结构体变量2939.1.1自己建立结构体类型2939.1.2定义结构体类型变量 2959.1.3结构体变量的初始化和引用2979.2使用结构体数组3009.2.1定义结构体数组3009.2.2结构体数组的应用举例3019.3结构体指针3039.3.1指向结构体变量的指针3039.3.2指向结构体数组的指针3049.3.3用结构体变量和结构体变量的指针作函数参数3069.4用指针处理链表3099.4.1什么是链表 3099.4.2建立简单的静态链表3109.4.3建立动态链表3119.4.4输出链表3159.5共用体类型3179.5.1什么是共用体类型3179.5.2引用共用体变量的方式3189.5.3共用体类型数据的特点3199.6使用枚举类型3239.7用typedef声明新类型名326习题330第10章对文件的输入输出33110.1C文件的有关基本知识33110.1.1什么是文件33110.1.2文件名33210.1.3文件的分类33210.1.4文件缓冲区33310.1.5文件类型指针33310.2打开与关闭文件33510.2.1用fopen函数打开数据文件33510.2.2用fclose函数关闭数据文件33710.3顺序读写数据文件33810.3.1怎样向文件读写字符33810.3.2怎样向文件读写一个字符串34110.3.3用格式化的方式读写文件34410.3.4用二进制方式向文件读写一组数据34510.4随机读写数据文件34910.4.1文件位置标记及其定位34910.4.2随机读写 35210.5文件读写的出错检测353习题354第11章常见错误分析355附录370附录A在Visual C+ 6.0环境下运行C程序的方法370附录B常用字符与ASCII代码对照表377附录CC语言中的关键字378附录D运算符和结合性378附录EC语言常用语法提要380附录FC库函数384参考文献390第4章选择结构程序设计854.1选择结构和条件判断854.2用if语句实现选择结构874.2.1用if语句处理选择结构举例874.2.2if语句的一般形式 894.3关系运算符和关系表达式914.3.1关系运算符及其优先次序914.3.2关系表达式924.4逻辑运算符和逻辑表达式924.4.1逻辑运算符及其优先次序934.4.2逻辑表达式944.4.3逻辑型变量964.5条件运算符和条件表达式974.6选择结构的嵌套1004.7用switch语句实现多分支选择结构1024.8选择结构程序综合举例106习题112第5章循环结构程序设计1155.1为什么需要循环控制1155.2用while语句实现循环1165.3用dowhile语句实现循环1185.4用for 语句实现循环1215.5循环的嵌套1255.6几种循环的比较1265.7改变循环执行的状态1265.7.1用break语句提前终止循环1275.7.2用continue语句提前结束本次循环1285.7.3break语句和continue语句的区别1295.8循环程序举例132习题141第6章利用数组处理批量数据1436.1怎样定义和引用一维数组1436.1.1怎样定义一维数组1446.1.2怎样引用一维数组元素1456.1.3一维数组的初始化1466.1.4一维数组程序举例1476.2怎样定义和引用二维数组1496.2.1怎样定义二维数组1506.2.2怎样引用二维数组的元素1516.2.3二维数组的初始化1526.2.4二维数组程序举例1536.3字符数组1556.3.1怎样定义字符数组1556.3.2字符数组的初始化1566.3.3怎样引用字符数组中的元素1566.3.4字符串和字符串结束标志1576.3.5字符数组的输入输出1606.3.6使用字符串处理函数1626.3.7字符数组应用举例166习题169第7章用函数实现模块化程序设计1717.1为什么要用函数1717.2怎样定义函数1737.2.1为什么要定义函数1737.2.2定义函数的方法1747.3调用函数1757.3.1函数调用的形式1757.3.2函数调用时的数据传递1767.3.3函数调用的过程1787.3.4函数的返回值1797.4对被调用函数的声明和函数原型1817.5函数的嵌套调用1837.6函数的递归调用1857.7数组作为函数参数1937.7.1数组元素作函数实参1937.7.2数组名作函数参数1957.7.3多维数组名作函数参数1987.8局部变量和全局变量2007.8.1局部变量2007.8.2全局变量2017.9变量的存储方式和生存期2057.9.1动态存储方式与静态存储方式2057.9.2局部变量的存储类别2067.9.3全局变量的存储类别2097.9.4存储类别小结2137.10关于变量的声明和定义2157.11内部函数和外部函数2167.11.1内部函数2167.11.2外部函数216习题219第8章善于利用指针2218.1指针是什么2218.2指针变量2238.2.1使用指针变量的例子2238.2.2怎样定义指针变量2248.2.3怎样引用指针变量2258.2.4指针变量作为函数参数2278.3通过指针引用数组2328.3.1数组元素的指针2328.3.2在引用数组元素时指针的运算2338.3.3通过指针引用数组元素2348.3.4用数组名作函数参数2398.3.5通过指针引用多维数组2478.4通过指针引用字符串2578.4.1字符串的引用方式 2578.4.2字符指针作函数参数2618.4.3使用字符指针变量和字符数组的比较2658.5指向函数的指针2688.5.1什么是函数指针2688.5.2用函数指针变量调用函数2688.5.3怎样定义和使用指向函数的指针变量2708.5.4用指向函数的指针作函数参数2728.6返回指针值的函数2768.7指针数组和多重指针2798.7.1什么是指针数组 2798.7.2指向指针数据的指针2828.7.3指针数组作main函数的形参2848.8动态内存分配与指向它的指针变量2878.8.1什么是内存的动态分配2878.8.2怎样建立内存的动态分配2878.8.3void指针类型 2898.9有关指针的小结290习题293第9章用户自己建立数据类型2959.1定义和使用结构体变量2959.1.1自己建立结构体类型2959.1.2定义结构体类型变量 2979.1.3结构体变量的初始化和引用2999.2使用结构体数组3029.2.1定义结构体数组3029.2.2结构体数组的应用举例3049.3结构体指针3059.3.1指向结构体变量的指针3059.3.2指向结构体数组的指针3069.3.3用结构体变量和结构体变量的指针作函数参数3089.4用指针处理链表3119.4.1什么是链表 3119.4.2建立简单的静态链表3129.4.3建立动态链表3139.4.4输出链表3179.5共用体类型3199.5.1什么是共用体类型3199.5.2引用共用体变量的方式3209.5.3共用体类型数据的特点3219.6使用枚举类型3259.7用typedef声明新类型名328习题332第10章对文件的输入输出33310.1C文件的有关基本知识33310.1.1什么是文件33310.1.2文件名33410.1.3文件的分类33410.1.4文件缓冲区33510.1.5文件类型指针33510.2打开与关闭文件33710.2.1用fopen函数打开数据文件33710.2.2用fclose函数关闭数据文件33910.3顺序读写数据文件34010.3.1怎样向文件读写字符34010.3.2怎样向文件读写一个字符串34310.3.3用格式化的方式读写文件34610.3.4用二进制方式向文件读写一组数据34710.4随机读写数据文件35110.4.1文件位置标记及其定位35110.4.2随机读写 35410.5文件读写的出错检测355习题356第11章常见错误分析374附录390附录A在Visual C+ 6.0环境下运行C程序的方法390附录CC语言中的关键字398附录D运算符和结合性398附录EC语言常用语法提要400附录FC库函数404参考文献410出版界的奇迹记谭浩强教授C程序设计(第四版)你听说过一本科技书发行量超过1000万册吗?无论在中国还是外国,这大概都会被认为是可望不可及的奇迹。然而这个奇迹被谭浩强教授著、清华大学出版社出版的C程序设计一书实现了。2008年,在美国举行的一次信息技术教育国际会议上,当各国专家知道谭浩强教授编著的科技书籍有两种(BASIC语言和C程序设计) 的发行量双双超过1000万册时,无不感到震惊,热烈鼓掌,争相与谭浩强教授握手并合影,这是我们中国人的骄傲。谁说中国人比外国人差,我们做到了外国人想都不敢想的事迹。C程序设计自1991年出版后,很快占领了国内市场,先后出版了三版,重印160余次,目前已累计发行1100多万册,平均每年发行60多万册,一本书20年经久不衰,这是出版界的奇迹。北京三大图书市场之一的中关村图书大厦2008年底根据5年来畅销图书的销售排名,评出10种图书获 “最具影响力图书奖”,获奖图书中只有C程序设计(第三版)一书是自然科学类图书,其他9种全是社科类图书。多年来C程序设计始终位于北京图书大厦“畅销书排行榜”的前列。全国出版的C语言教材超过1000种,唯有C程序设计一枝独

温馨提示

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

评论

0/150

提交评论