基本信息
- 原书名:C Programming: A Modern Approach, 2nd Edition
- 原出版社: W. W. Norton & Company
- 作者: (美)K. N. King
- 译者: 吕秀锋 黄倩
- 丛书名: 图灵程序设计丛书 C/C++系列
- 出版社:人民邮电出版社
- ISBN:9787115219572
- 上架时间:2010-3-16
- 出版日期:2010 年4月
- 开本:16开
- 页码:600
- 版次:2-1
- 所属分类:计算机 > 软件与程序设计 > C/Turbo C > C
编辑推荐
C语言经典之作,被誉为“近10年来最好的一部C语言著作”
哈佛、麻省理工、斯坦福、加州伯克利分校、耶鲁等诸多名校计算机专业教材
内容全面,覆盖C99标准,提供了对所有C99库函数的参考
精心选择的近500道习题,贴近实践
内容简介
作译者
吕秀锋 亚洲理工大学( AIT )计算机软件硕士,现为北京理工大学软件学院教师。多年来一直从事 “ 计算机基础(双语) ” 、 “ C 语言程序设计(双语) ” 、以及 “ 程序设计开发与实践 ” 等本科生课程的教学工作,深受学生欢迎。她还译有《数据结构与算法: C# 语言描述》一书。
黄倩 中国科学院计算技术研究所工学博士,中国计算机学会会员。研究方向包括视频处理、视频监控等领域,已在知名的国际期刊和国际会议论文集上发表过10 篇论文。译有《编程珠玑(第 2 版)》一书,受到读者欢迎。
目录
1.1 C语言的历史 1
1.1.1 起源 1
1.1.2 标准化 1
1.1.3 基于C的语言 2
1.2 C语言的优缺点 3
1.2.1 C语言的优点 3
1.2.2 C语言的缺点 3
1.2.3 高效地使用C语言 4
问与答 5
第2章 C语言基本概念 7
2.1 编写一个简单的C程序 7
程序 显示双关语 7
2.1.1 编译和链接 8
2.1.2 集成开发环境 8
2.2 简单程序的一般形式 9
2.2.1 指令 9
2.2.2 函数 9
2.2.3 语句 10
2.2.4 显示字符串 10
前言
自本书第1版出版以来,基于C的语言大量兴起(其中最杰出的代表是Java和C#),已有的C++和Perl等相关语言也取得了更大的成就。尽管如此,C语言仍然像当年一样流行,仍然悄无声息地掌控着世界上的许多软件。跟1996年一样,C语言仍然是计算机领域里的通用语言。
但即便是C语言也必须随着时间而发展。C99标准的发布催生了对本书新版的需求,而且,第1版涉及的DOS和16位处理器也已经趋于过时。本版对内容进行了全面更新,并在其他许多方面进行了改进。
本版新增内容
下面列出了本版的新特色和所做的改进。
完整地覆盖了C89标准和C99标准。本版和第1版最大的差别就在于覆盖了C99标准。我的目标是覆盖C89和C99之间的每一个重要差别,包括C99新增的所有语言特性和库函数。C99中的每一处改变都会清楚地标出来,或者在小节标题中加上“C99”字样,或者在讨论比较简短时在正文的左边空白处用一个专门的图标表示。我这样做有两个目的:一是提醒读者注意C99中的改变,二是让那些对C99不感兴趣或没有C99编译器的读者知道哪些内容可以跳过。C99新增的许多内容可能只有特定的读者会感兴趣,但有些新特性几乎对所有的C程序员都有用。
提供了对所有C89和C99库函数的快速参考。第1版中附录D介绍了C89的所有标准库函数,本版的附录D给出了C89和C99的所有库函数。
扩展了GCC的内容。自本书第1版出版以来,GCC(最初是GNU C Compiler的简称,现在指GNU Compiler Collection)得到了广泛应用。GCC有很多优点,包括高性能、低成本(不用花钱)以及在众多软硬件平台之间的可移植性等。由于认识到GCC日渐重要,我在本版中介绍了更多与GCC相关的信息,包括如何使用GCC以及常见的GCC错误消息和警告。
增加了对抽象数据类型的讨论。在第1版中,第19章重点讨论了C++。这部分内容现在看起来似乎作用不大,因为本书的读者可能已经学过C++、Java或者C#了。在本版中,对C++的介绍替换为讨论如何在C中建立抽象数据类型。
扩展了国际化特性的内容。本版第25章更加详尽地讨论了C语言的国际化特性。重点扩展了Unicode字符集及编码。
针对CPU和操作系统做了更新。当我编写本书第1版时,许多读者用的还是16位机和DOS操作系统,但现在情况不同了。在本版中,我把讨论的重点放在32位机和64位机上。尽管本版也介绍了Windows和Mac OS操作系统中影响C程序员的方面,但是针对Linux和其他UNIX版本的出现,我们的讨论更侧重于后一个系列的操作系统。
更多的练习题和编程题。本书第1版包括311道习题,本版有将近500(准确地说是498)道习题,分为两组:练习题与编程题。
练习题和编程题的答案。本书第1版的读者反馈最多的问题就是希望我提供习题的答案。针对读者的这一需求,我将大约三分之一的练习题和编程题的答案放到了网上,见knking.com/books/c2。这一特色对于那些没有选修相应大学课程但却需要检验自己工作的读者来说是非常有用的。提供了答案的练习题和编程题都用 图标标记(“W”表示“此题在网站上有答案”)。
有密码保护的教师网站。我为本版书建了一个新的教师资源网站(通过knking. com/books/c2访问),给出了其余练习题和编程题的答案以及大部分章节的PowerPoint讲义。教师可以通过cbook@knking.com与我联系。请使用您学校的邮件地址并给出一个可以访问贵系网站的链接,以便我核实您的身份。
此外,我在本版中对全书的文字和解释说明做了改进。这些改变所需的工作量很大,过程很辛苦:每句话都检查过并(在必要的时候)重新写过。
尽管本版改动很大,我仍然尽可能多地保持了原有的章节编号。尽管只有一章(最后一章)内容是全新的,但其他许多章都有新增的内容,少数原有章节的顺序也有所变动。本版删去了一个附录(C语言语法),但又新增了一个比较C99和C89的附录。
目标
本版的目标与第1版一致。
清晰易读,并尽可能带有趣味性。对普通读者来说,许多C语言的书籍都过于简洁。甚至某些C语言书籍不是编写得一塌糊涂,就是平淡无趣。我试图对C语言进行清晰、全面的讲解,并用适当的幽默来激发读者的阅读兴趣。
适用于广泛的读者群。我假设本书的读者都至少有一点点编程经验,但不需要掌握某种具体的编程语言。我尽量减少“行话”并定义用到的每一个术语。同时,为了鼓励初学者,我还尝试将某些高级内容从基本主题中分离出来。
媒体评论
——Karen Reid,多伦多大学计算机科学系资深讲师
“我将这本书用作工程系新生的教材。它语言简洁,阐述清晰,并且覆盖了C语言的方方面面,非常适用于初学者。“
——Maekus Bussmann,多伦多大学机械工业工程系教授
“这是我目前读到过的一本最好的C语言书籍,15年前如果有这本书的话,我大概会少走很多弯路。“
——互动网读者评论
书摘
从第2章开始,我们已经在使用了,而且已经对printf函数、scanf函数、putchar函数、getchar函数、puts函数以及gets函数的使用有了一定的了解。本章会提供更多有关这6个函数的信息,并介绍一些新的用于文件处理的函数。值得高兴的是,许多新函数和我们已经熟知的函数有着紧密的联系。例如,printf函数就是printf函数的“文件版”。
本章的开始将会讨论一些基本问题:流的概念、FILE类型、输入和输出重定向以及文本文件和二进制文件的差异(22.1节)。随后将转入讨论特别为使用文件而设计的函数,包括打开和关闭文件的函数(22.2节)。在讨论完printf函数、scanf函数以及与“格式化”输入/输出相关的函数(22.3节)以后,我们将着眼于读/写非格式化数据的函数。
·每次读写一个字符的getc函数、putc函数以及相关的函数(22.4节)。
·每次读写一行字符的gets函数、puts函数以及相关的函数(22.5节)。
·读/写数据块的fread函数和fwri七e函数(22.6节)。随后,22.7节会说明如何对文件上执行随机的访问操作。最后,22.8节会描述sprintf函数、snpr·intf函数和sscanf函数,它们是printf函数和scan£函数的变体,后两者分别用于写入和读取一个字符串。
本章涵盖了中的绝大部分函数,但忽略了其中8个函数。perror函数是这8个函1数中的一个,它与头紧密相关,所以我把它推迟到24.2节讨论头时进行介绍。26.1节涵盖了其余7个函数(vfprintf、vprintf、vsprintf、vsnprintf、vfscanf、vscanf和vsscanf)。这些函数依赖于valist类型,该类型在26.1节介绍。
在C89r扣,所有的标准输入/输出函数都属于但C99有所不同,有些输入/输出函数在.头(25.5节)中声明。中的函数用于处理宽字符而不是普通字符,但大多数函数与中的函数紧密相关。中用于读或写数据的函数称为宇节输入/输出函数,而中的类似函数则称为宽字符输入/输出函数。