《C Primer Plus 第6版 中文版》的《C Primer Plus 第6版 中文版习题解答》隆重出版。北京师范大学名师详细剖析所有题目,全面提升C编程能力的优选编程练习册。学习C Primer Plus的不再愁自己啃习题集了。
本在在对《C Primer Plus 第6版》中文版每章内容做了简单总结和梳理的基础上,对所有复习题和编程练习做了详细的解答。每章首先提供了思维导图,方便读者快速查询常用的知识点,然后简明扼要地概括和提炼了每章的难点和重点知识。本书既可作为学习笔记,也可以作为知识点速查手册,旨在给读者提供一些参考。
本书的复习题部分通过详细的分析和解答,不仅给出了题目的答案,还强调如何利用C语言的基本原理和基本方法分析、解决问题的过程。在编程练习中,首先按照程序开发的基本流程,通过分析题目要求的基本功能,设计相关的程序流程和基本算法,随后实现代码。其目的是通过对题目的分析和实现,不断锻炼和培养读者分析、设计程序的基本能力。本书提供了所有编程练习的完整代码,并且在代码中添加了详细的注释帮助读者理解程序意图。
程序设计中的任何一个问题都会有很多种解决方案,本书提供的只是其中一种基本的解决方案。本书尽量提供一种简单的、易于读者理解的解决方案,以尽量清晰、可读的形式呈现给读者,并不能保证其在算法上最优,代码实现上也远不够简洁、优美。读者可以在本书提供的解决方案和代码的基础上,不断优化和改进,实现更优的算法。
在过去40多年里,C语言已成为最重要、最流行的编程语言之一。它的成长归功于使用过的人都对它很满意。过去20多年里,虽然许多人都从C语言转而使用其他编程语言(如,C++、Objective C、Java等),但是C语言仍凭借自身实力在众多语言中脱颖而出。在学习C语言的过程中,会发现它的许多优点(见图1.1)。下面,我们来看看其中较为突出的几点。
图1.1 C语言的优点
C是一门流行的语言,融合了计算机科学理论和实践的控制特性。C语言的设计理念让用户能轻松地完成自顶向下的规划、结构化编程和模块化设计。因此,用C语言编写的程序更易懂、更可靠。
C是高效的语言。在设计上,它充分利用了当前计算机的优势,因此C程序相对更紧凑,而且运行速度很快。实际上,C语言具有通常是汇编语言才具有的微调控制能力(汇编语言是为特殊的中央处理单元设计的一系列内部指令,使用助记符来表示;不同的CPU系列使用不同的汇编语言),可以根据具体情况微调程序以获得最大运行速度或最有效地使用内存。
C是可移植的语言。这意味着,在一种系统中编写的C程序稍作修改或不修改就能在其他系统运行。如需修改,也只需简单更改主程序头文件中的少许项即可。大部分语言都希望成为可移植语言,但是,如果经历过把IBM PC BASIC程序转换成苹果BASIC(两者是近亲),或者在UNIX系统中运行IBM大型机的FORTRAN程序的人都知道,移植是最麻烦的事。C语言是可移植方面的佼佼者。从8位微处理器到克雷超级计算机,许多计算机体系结构都可以使用C编译器(C编译器是把C代码转换成计算机内部指令的程序)。但是要注意,程序中针对特殊硬件设备(如,显示监视器)或操作系统特殊功能(如,Windows 8或OS X)编写的部分,通常是不可移植的。
由于C语言与UNIX关系密切,UNIX系统通常会将C编译器作为软件包的一部分。安装Linux时,通常也会安装C编译器。供个人计算机使用的C编译器很多,运行各种版本的Windows和Macintosh(即,Mac)的PC都能找到合适的C编译器。因此,无论是使用家庭计算机、专业工作站,还是大型机,都能找到针对特定系统的C编译器。
C语言功能强大且灵活(计算机领域经常使用这两个词)。例如,功能强大且灵活的UNIX操作系统,大部分是用C语言写的;其他语言(如,FORTRAN、Perl、Python、Pascal、LISP、Logo、BASIC)的许多编译器和解释器都是用C语言编写的。因此,在UNIX机上使用FORTRAN时,最终是由C程序生成最后的可执行程序。C程序可以用于解决物理学和工程学的问题,甚至可用于制作电影的动画特效。
C语言是为了满足程序员的需求而设计的,程序员利用C可以访问硬件、操控内存中的位。C语言有丰富的运算符,能让程序员简洁地表达自己的意图。C语言不像Pascal甚至是C++那么严格。这样的灵活性既是优点也是缺点。优点是,许多任务用C来处理都非常简洁(如,转换数据的格式);缺点是,你可能会犯一些莫名其妙的错误,这些错误不可能在其他语言中出现。C语言在提供更多自由的同时,也让使用者承担了更大的责任。
另外,大多数C实现都有一个大型的库,包含众多有用的C函数。这些函数用于处理程序员经常需要解决的问题。
人无完人,金无足赤。C语言也有一些缺点。例如,前面提到的,要享受用C语言自由编程的乐趣,就必须承担更多的责任。特别是,C语言使用指针,而涉及指针的编程错误往往难以察觉。有句话说的好:想拥有自由就必须时刻保持警惕。
C语言紧凑简洁,结合了大量的运算符。正因如此,我们也可以编写出让人极其费解的代码。虽然没必要强迫自己编写晦涩的代码,但是有兴趣写写也无妨。试问,除C语言外还为哪种语言举办过年度混乱代码大赛[1]?
瑕不掩瑜,C语言的优点比缺点多很多。我们不想在这里多费笔墨,还是来聊聊C语言的其他话题。
史蒂芬·普拉达(Stephen Prata),曹良亮 编
本书共分为17章,每一章的主题与《C Primer Plus(第6版)中文版》完全一致。每章开篇采用思维导图的方式列出本章的知识点,然后对每章的重点内容进行了梳理总结,最后则对每章中的复习题和编程练习进行了分析并给出了解答思路,确保读者在彻底夯实理论知识的同时,进一步提升实际编程能力。
作为《C Primer Plus(第6版)中文版》的配套参考书,本书特别适合需要系统学习C语言的初学者阅读,也适合打算巩固C语言知识或者希望进一步提高编程技术的程序员阅读。
第1章 初识C语言
第2章 C语言概述
第3章 数据和C
第4章 字符串与格式化输入/输出
第5章 运算符、表达式和语句
第6章 C控制语句——循环
第7章 C控制语句—分支和跳转
第8章 字符输入/输出和输入验证
第9章 函数
第10章 数组和指针
第11章 字符串和字符串函数
第12章 存储类别、链接和内存管理
第13章 文件输入/输出
第14章 结构和其他数据形式
第15章 位操作
第16章 C预处理器和C库
第17章 高级数据表示