计算机学习的一些书籍推荐

http://blog.csdn.net/wyzlwyzl/article/details/43888521

2楼 : Java
此篇收录:.《Java 2 核心技术》、2.《Java编程语言》、3.《Effective Java》、4.《Java解惑》、5.《Java编程思想》

3楼: C篇
此篇收录:1.《C程序设计语言》、2.《C和指针》、3.《C陷阱与缺陷》、4.《C专家编程》、5.《你必须知道的495个C语言问题》

4楼: C++篇
此篇收录:1.《C++ Primer》、2.《C++程序设计语言》、3.《Effective C++》、4.《More Effective C++》、5.《C++标准程序库:自修教程与参考手册》、6.《C++ Templates》、7.《C++必知必会》、8.《Essential C++》、9.《More Exceptional C++》、10.《C++ 编程思想》、11.《C++沉思录》、12.《Accelerated C++》、13.《C++编程规范:101条规则、准则与最佳实践》、14.《C++完全参考手册》、15.《Effective STL》、16.《STL源码剖析》

5楼 :数据结构与算法篇
此篇收录:1.《算法导论》、2.《数据结构与算法分析—C语言描述》、3.《计算机程序设计艺术》、4.《C算法(第一卷):基础、数据结构、排序和搜索》、5.《C算法(第二卷):图算法》、6.《算法艺术与信息学竞赛》、7.《计算机算法设计与分析》

6楼: 程序员综合篇
此篇收录:1.《程序员面试攻略》、2.《程序员面试宝典》、3.《游戏之旅-我的编程感悟》、4.《哥德尔、埃舍尔、巴赫——集异壁之大成》、5.《Programming Interviews Exposed》、6.《新手编程导论》、7.《代码大全》、8.《代码之美》、9.《代码优化:有效使用内存》、10.《Working Effectively with Legacy Code》、11.《Code Reading -- The Open Source Perspective》、12.《代码阅读方法与实践》、13.《疯狂的程序员》、14.《程序人生》、15.《软件工程思想》、16.《我是一只IT小小鸟》、17.《程序员修炼之道》




7楼: 操作系统篇
此篇收录:1.《操作系统-内核与设计原理》、2.《现代操作系统》、3.《自已动手写操作系统》、4.《鸟哥的Linux私房菜》、5.《Linux内核编程指南》、6.《深入理解LINUX内核》、7.《UNIX环境高级编程》、8.《Unix操作系统设计与实现》、9.《LINUX与UNIX SHELL编程指南》、10.《LINUX设备驱动程序》、1.《LINUX教程:Windows用户转向Linux的12个步骤》、12.《Linux内核源代码情景分析》、13.《Linux内核源代码分析》、14.《Linux内核完全注释》、15.《Linux 0.01内核分析与操作系统设计》




8楼 :面向对象篇
此篇收录:1.《Head First设计模式》、2.《大话设计模式》、3.《设计模式精解》、4.《UML与Rational Rose 2002从入门到精通》、5.《Sams Teach Yourself UML in 24 Hours》、6.《UML精粹:标准对象建模语言简明指南》、7.《Java与模式》、8.《UML和模式应用》、9.《道法自然:面向对象实践指南》、10.《Design Patterns Explained : A New Perspective
on Object-Oriented Design》、11.《UML Distilled: A Brief Guide to the Standard
Object Modeling Language》、12.《面向对象分析与设计》、13.《重构--改善既有代码的设计(中文版)》、14.《大象:Thinking in UML》




9楼: 编译汇编篇
此篇收录:1.《Intel微处理器结构、编程与接口(第六版)》、2.《Windows环境下32位汇编语言程序设计(第2版)》、3.《汇编语言(附答案)》、4.《IBM PC汇编语言程序设计(第五版)》、5.《汇编语言编程艺术》、6.《Intel 汇编语言程序设计(第四版)》、7.《黑客反汇编揭秘》
8.《编译原理及实践》、9.《现代编译程序设计》、10.《现代编译原理--C语言描述》、11.《编译原理》、12.《程序设计语言编译原理》、13.《Advanced Compiler Design and Implementation 高级编译器设计与实现》、




10楼: 数据库
此篇收录:1.《数据库系统概论》、2.《数据库系统导论》、3.《数据库系统基础教程》、4.《数据挖掘--概念与技术》、5.《数据库原理、编程与性能》、6.《数据库系统实现》、7.《数据库处理--基础、设计与实现》、8.《SQL语言艺术》、9.《SQL必知必会》




11楼: 网络篇
此篇收录:1.《UNIX网络编程》、2.《Unix网络编程(第二卷):进程间通信》、3.《C++网络编程
卷1:运用ACE和模式消除复杂性》、4.《C++网络编程,卷2:基于ACE和框架的系统化复用》、5.《TCP/IP详解卷1:协议》、6.《TCP-IP详解卷二:实现》、7.《TCP-IP详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议》




12楼 :数学篇
此篇收录:1.《具体数学--计算机科学基础》、2.《组合数学》、3.《离散数学》、4.《离散数学及其应用》、5.《概率与统计》、6.《数字原理》、7.《数论导引》




13楼 :其他篇
此篇收录:1.《Python语言入门》、.《计算机图形学的算法基础》、3.《OpenGL SuperBible》、4.《Perl语言编程》、5.《Perl编程金典》、6.《Perl语言入门》、7.《深入学习Python程序开发》、8.《Python技术参考大全》、9.《Python 编程指南》、10.《Python核心编程》、11.《C#程序员参考手册》、12.《C#完全手册》、13.《C# 精髓》、14.《C#入门经典》、15.《游戏之旅-我的编程感悟》、16.《GNU make中文手册v3.80》




JAVA篇
1.《Java 2 核心技术》
l推荐理由
本书是Java技术经典参考书,多年畅销不衰,第7版在保留以前版本风格的基础上,涵盖Java2开发平台标准版J2SE5.0的基础知识,主要内容包括面各对象程序设计、反射与代理、接口与内部类、事件监听器模型、使用Swing UI工具箱进行图形用户界面设计,异常处理、流输入/输出和对象序列化、泛型程序设计等。
l九度链接
http://t.jobdu.com/thread-49-1-1.html


2.《Java编程语言》
l推荐理由
这是一本众多Java Fans千呼万唤才出来的好书,本书由“Java之父”以及另外两名顶级大师(Jini技术的创建者和著名开发大师)亲自撰写,无论是对Java语言的初学者还是资深使用者都具有极高的价值。至少有100000名使用C、C++、Smalltalk或者其他高级语言的开发人员通过阅读本书对Java语言有了准确、明智和深刻的认识。
l九度链接
http://t.jobdu.com/thread-61-1-3.html

3.《Effective Java》
l推荐理由
《Effective Java中文版》:你正在寻找一本间明扼要地阐述Java精髓的书吗?你希望深入地理解Java程序设计语言吗?你希望编写出清晰、正确、健壮和可重用的代码吗?不用再找了,你手上这本书将会使你实现这些愿望,而且还能提供其他许多你意想不到的好处。
l九度链接
http://t.jobdu.com/thread-59-1-3.html

4.《Java解惑》
l推荐理由
本书特写了95个有关Java或其类库的陷阱和缺陷的谜题,其中大多数谜题都采用了短程序的方式,这些程序的行为与其看似的大相径庭。在每个谜题之后都给出了详细的解惑方案,这些解惑方案超越了对程序行为的简单解释,向读者展示了如何一劳永逸地避免底层的陷阱与缺陷。
本书趣味十足、寓教于乐,适合于具备Java知识的学习者和有编程经验的Java程序员。
l九度链接
http://t.jobdu.com/thread-50-1-3.html

5.《Java编程思想》
l推荐理由
本书的作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章,包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Java I/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容,包含了Java语言基础语法以及高级特性,适合各个层次的Java程序员阅读,同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。
l九度链接
http://t.jobdu.com/thread-1171-1-1.html


C篇
1.《C程序设计语言》
l推荐理由
《C程序设计语言》(第2版新版)讲述深入浅出,配合典型例证,通俗易懂,实用性强,适合作为大专院校计算机专业或非计算机专业的C语言教材,也可以作为从事计算机相关软硬件开发的技术人员的参考书。
《C程序设计语言》(第2版新版)原著即为C语言的设计者之一Dennis M.Ritchie和著名的计算机科学家Brian W.Kernighan合著的一本介绍C语言的权威经典著作。我们现在见到的大量论述C语言程序设计的教材和专著均以此书为蓝本。原著第1版中介绍的C语言成为后来广泛使用的C语言版本——标准C的基础。人们熟知的“hello,world”程序就是由本书首次引入的,现在,这一程序已经成为所有程序设计语言入门的第一课。
l九度链接
http://t.jobdu.com/thread-1173-1-1.html


2.《C和指针》
l推荐理由
本书提供与C语言编程相关的全面资源和深入讨论。本书通过对指针的基础知识和高级特性的探讨,帮助程序员把指针的强大功能融入到自己的程序中去。全书共18章,覆盖了数据、语句、操作符和表达式、指针、函数、数组、字符串、结构和联合等几乎所有重要的C编程话题。书中给出了很多编程技巧和提示,每章后面有针对性很强的练习,附录部分则给出了部分练习的解答。本书适合C语言初学者和初级C程序员阅读,也可作为计算机专业学生学习C语言的参考。
l九度链接
http://t.jobdu.com/thread-1209-1-1.html


3.《C陷阱与缺陷》
l推荐理由
作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。写作本书的出发点不是要批判C语言,而是要帮助C程序员绕过编程过程中的陷阱和障碍。作者以自己1985年在Bell实验室时发表的一篇论文为基础,结合自己的工作经验扩展成为这本对C程序员具有珍贵价值的经典著作。
l九度链接
http://t.jobdu.com/thread-1210-1-1.html


4.《C专家编程》
l推荐理由
《C专家编程》,原著《Expert C Programming》撷取了几十个实例,细致、深入地讲解了C的历史、语言特性、声明、数组、指针、链接、运行时、内存以及分析了如何进一步学习C++等问题。这是一本ANSIC编程语言的高级读本。它适用于已经编写过C程序的人,以及那些想迅速获取一些专家观点和技巧的人。
专家级的C编程指南展示优秀C程序员的编程技巧。
即使你读过AndyKoneig的《C陷阱与缺陷》,你还是应该看看PeterVanDerLinden的书。我想,他们两人的书称都应该千方百计的搞到,如获至宝地捧读。
l九度链接
http://t.jobdu.com/thread-1212-1-1.html


5.《你必须知道的495个C语言问题》
l推荐理由
C是一门简洁精妙的语言,掌握基本语法容易,真正能够自如运用,就不那么简单了。你难免会遇到各种各样的问题,有些可能让你百思不得其解,甚至翻遍图书馆,也找不到问题的答案。
本书的出版,填补了这一空白。书中内容是世界各地的C语言用户多年来在新闻组comp.lang.c中讨论的结晶。
l九度链接
http://t.jobdu.com/thread-1222-1-1.html


C++篇
1.《C++ Primer》
l推荐理由
本书是久负盛名的C++经典教程,其内容是C++大师Stanley B. Lippman丰富的实践经验和C++标准委员会原负责人Josée Lajoie对C++标准深入理解的完美结合,已经帮助全球无数程序员学会了C++。对C++基本概念和技术全面而且权威的阐述,对现代C++编程风格的强调,使本书成为C++初学者的最佳指南;对于中高级程序员,本书也是不可或缺的参考书。
本书所有作者都是著名的C++权威人物。
l九度链接

http://t.jobdu.com/thread-119-1-2.html


2.《C++程序设计语言》
l推荐理由
体味C++语言的精妙与魅力
享受与大师的心灵对话
《C++程序设计语言》介绍了标准C++以及由C++所支持的关键性编程技术和设计技术。标准C++较以前的版本功能更强大,其中许多新的语言特性,如名字空间、异常、模板、运行时类型声明等使得新技术得以直接应用。这本书围绕语言及库功能来组织,内容涉及C++的主要特征及标准库,并通过系统软件领域中的实例解释说明一些关键性的概念与技术。
l九度链接

http://t.jobdu.com/thread-1207-1-1.html


3.《Effective C++》
l推荐理由
Effective C++是世界顶级C++大师Scott Meyers的成名之作,初版于1991年。在国际上,这本书所引起的反响之大,波及整个计算机技术出版领域,余音至今未绝。几乎在所有C++书籍的推荐名单上,这部专著都会位于前三名。作者高超的技术把握力,独特的视角、诙谐轻松的写作风格、独具匠心的内容组织,都受到极大的推崇和仿效。
书中的50条准则,每一条都扼要说明了一个可让你写出更好的C++ 程序代码的方法,并以特别设计过的例子详加讨论。在此第二版中,Meyers重新检验了每一准则,特别注意兼容于C++标准规格与现行编译器技术,并融入软件界对C++运用的最新观察结果。
l九度链接

http://t.jobdu.com/thread-1214-1-1.html


4.《More Effective C++》
l推荐理由
继《Effective C+》之後,Scott Meyers 於 1996 推出这本「续集」。条款变得比较少,页数倒是多了一些,原因是这次选材比「第一集」更高阶,尤其是第五章。Meyers 将此章命名为技术(Techniques),并明白告诉你,其中都是一些 patterns,例如 virtual ctors、smart pointers、reference counting、proxy classes,double dispatching等等。这一章的每个条款篇幅都在 15~30 页之谱,实在让人有「山穷水尽疑无路,柳暗花明又一村」之叹。虽然出版年代稍嫌久远,本书并没有第二版,原因是当其出版之时(1996),C++ Standard 已经几乎定案,本书即依当时的标准草案而写。其间与现今之 C++ 标准规格几乎相同。可能变化的几个弹性之处,Meyers 也都有所说明与提示。
l九度链接

http://t.jobdu.com/thread-79-1-3.html


5.《C++标准程序库:自修教程与参考手册》
l推荐理由
这本包含最新资料的完整书籍,反映出被ANSI/ISO C++语言标准规格书纳入的C++标准程序库的最新组成。更明确地说,这本书将焦点放在标准模板库身上,检验其中的容器、迭代器、仿函数和算法。读者还可以找到特殊容、字串、数值类别、国际化议题、IOStream。每一个元素都有深刻的呈现,包括其介绍、设计、运用实例、细部解说、陷阱、意想不到的危险,以及相关类别和函数的精确樯记式和定义式。
l九度链接

http://t.jobdu.com/thread-1206-1-1.html


6.《C++ Templates》
l推荐理由
本书是C++模板编程的完全指南,旨在通过基本概念、常用技巧和应用实例3方面的有用资料,为读者打下C++模板知识的坚实基础。
l九度链接

http://t.jobdu.com/thread-1185-1-1.html


7.《C++必知必会》
l推荐理由
职业C++程序员必备常识,初学者登堂入室的阶梯,C++界20年经验结晶。本书作者资深C++专家Stephen C.Dewhurst从业界多年来积累的宝贵经验中萃取了C++开发所应必备但常常被误解的知识,并在阐述时过滤掉了不必要的复杂性。你从何时(或者哪里)开始学习C++并不重要,但在迈出下一步之前,使用本书作为指南,可以确保轻松上路!
l九度链接

http://t.jobdu.com/thread-82-1-3.html


8.《Essential C++》
l推荐理由
书中以4个面向来表现C++的本质:procedural(程序性的)、generic(泛型的)、object-based(个别对象的)、object-oriented(面向对象的),全书围绕着一系列逐渐繁复的程序问题,以及用以解决这些问题的语言特性。循此方式,读者不只学到C++的函数和结构,也会学习到它们的设计目的和基本原理。
l九度链接

http://t.jobdu.com/thread-1220-1-1.html


9.《More Exceptional C++》
l推荐理由
More Exceptional C++是Exceptional C++的续篇。根据多年程序开发的实践经验、Herb Sutter向C++程序员提供了久经考验的程序设计技术和行之有效的解决方案,这些技术和方案对设计从小型工程到企业级应用的现代软件系统大有裨益。
围绕着40个编程难题,More Exceptional C++引导读者深刻理解成功的C++软件设计和开发中至关重要的原则和议题。书中包括一些新的主题,强化了泛型程序设计、内存管理、C++标准库的使用等内容,并涵盖了traits和predicates这样的重要技术;还就使用标准容器和算法时应该牢记的准则和要点进行了分析——其它资料很少深入涉及这一主题。
l九度链接

http://t.jobdu.com/thread-81-1-3.html


10.《C++ 编程思想》
l推荐理由
这本书是C++领域的一本权威著作,书中的内容、讲授方法、选用例子和跟随练习既适合课堂教学,又适合读者自学。
l九度链接

http://t.jobdu.com/thread-80-1-3.html


11.《C++沉思录》
l推荐理由
《C++沉思录》适合有一定经验的C++程序员阅读学习,可以帮助读者加强提高技术能力,成为C++程序设计的高手。
Koenig 和MOO的《C++沉思录》将会为许多人提供有用的帮助。对于C++是什么样的以及能够做些什么,他们的先见之明在这本书里随处可见。
l九度链接

http://t.jobdu.com/thread-1177-1-1.html


12.《Accelerated C++》
l推荐理由
本书系统介绍C++程序设计,是美国斯坦福大学的经典教材。从使用C++标准库中的高级抽象开始,使读者很快掌握编程方法。每一章都有很经典独特的例子以及非常到位的讲解,覆盖了C++非常多的内容,从标准库容器、泛型算法的使用,到类的设计、泛型算法的设计,本书都进行了详细的讲解。本书作者有丰富的C++开发、研究和教学经验,内容由浅入深,讲解精炼巧妙。无论是刚入门的新手还是有经验的开发人员都能从本书中受益。
l九度链接

http://t.jobdu.com/thread-1183-1-1.html


13.《C++编程规范:101条规则、准则与最佳实践》
l推荐理由
良好的编程规范可以改善软件质量,缩短上市时间,提升团队效率,简化维护工作。在本书中,两位全世界最受尊敬的C++专家将全球C++社区的集体智慧和经验凝结成一整套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位C++程序员应该遵循的行事准则。
本书涵盖了C++程序设计的每一个方面,包括设计和编码风格、函数、操作符、类的设计、继承、构造与析构、赋值、名字空间、模块、模板、泛型、异常、STL容器和算法等。书中对每一条规范都给出了言简意赅的叙述,并辅以实例说明;另外还给出了从类型定义到错误处理等方面的大量C++最佳实践,包括许多最新总结和标准化的技术,即使使用C++多年的程序员也会从中受益匪浅。
l九度链接

http://t.jobdu.com/thread-1193-1-1.html


14.《C++完全参考手册》
l推荐理由
本书作者Herbert Schildt是程序设计语言的大师,其著作涉及C、C++、Java和C#等语言。
本书以一种清晰而易懂的方式,全面介绍了C++语言的各个方面,如关键字、语法、函数、类和库,以及一些C++高级特性,如重载、继承、虚拟函数、命名空间、模板、RTTI(运行时类型信息),以及STL(标准模板库)等。读者不仅可以从本书中学习到程序设计所需的语言知识,而且还可以了解如何进行程序设计。
l九度链接

http://t.jobdu.com/thread-1208-1-1.html


15.《Effective STL》
l推荐理由
你已经熟悉STL了。你知道怎样创建容器、怎样遍历容器中的内容,知道怎样添加和删除元素,以及如何使用常见的算法,比如find和sort。但是你并不满意。你总是感到自己还不能充分地利用STL。本该很简单的任务却并不简单;本该很直接的操作却要么泄漏资源,要么结果不对;本该更有效的过程却需要更多的时间或内存,超出了你的预期。是的,你已经知道如何使用STL了,但是你并不能确定自己是否在有效地使用它。
l九度链接

http://t.jobdu.com/thread-1213-1-1.html


16.《STL源码剖析》
l推荐理由
学习编程的人都知道,阅读、剖析名家代码乃是提高水平的捷径。源码之前,了无秘密。大师们的缜密思维、经验结晶、技术思路、独到风格,都原原本本体现在源码之中。
这本书所呈现的源码,使读者看到vector的实现、list的实现、heap的实现、deque的实现、Red Black tree的实现、hash table的实现、set/map的实现;看到各种算法(排序、查找、排列组合、数据移动与复制技术)的实现;甚至还能够看到底层的memory pook和高阶抽象的traits机制的实现。
l九度链接
http://t.jobdu.com/thread-120-1-2.html
回复 引用 报告 TOP
wangxuyang666
xuyang

数据结构与算法篇
1.《算法导论》
l推荐理由
这本书深入浅出,全面地介绍了计算机算法。对每一个算法的分析既易于理解又十分有趣,并保持了数学严谨性。本书的设计目标全面,适用于多种用途。涵盖的内容有:算法在计算中的作用,概率分析和随机算法的介绍。书中专门讨论了线性规划,介绍了动态规划的两个应用,随机化和线性规划技术的近似算法等,还有有关递归求解、快速排序中用到的划分方法与期望线性时间顺序统计算法,以及对贪心算法元素的讨论。此书还介绍了对强连通子图算法正确性的证明,对哈密顿回路和子集求和问题的NP完全性的证明等内容。全书提供了900多个练习题和思考题以及叙述较为详细的实例研究。
l九度链接

http://t.jobdu.com/thread-1274-1-1.html


2.《数据结构与算法分析—C语言描述》
l推荐理由
现在的程序员总是用着别人封装好的函数、类、库、API,满满的,我们就会觉得编程不过是这么回事,搭积木而已,别人都把材料提供好了,至于材料是怎么做的,不用理会。 
真的是这样吗?说数据结构和算法没用的人,那是因为他用不到。为什么用不到?他的层次决定了他不会接触到编程最关键最核心的部分——算法。
先不说那些反应算法的力量的似乎变态的问题,也不说2006年第4期《程序员》的专题,只说,当我们遇到一个问题时,如何搭建数学模型?当我们在有限的硬件条件下要完成高速的数据处理,如何设计?当我们为客户开发完一套软件后,能不能保证未来几年内数据猛增不会带来计算量的指数级增长?当我们需要升级服务器内存和硬盘是,能不能修改几个函数就避免硬件的投资?
这些问题的答案,请在这本书中寻找。
l九度链接

http://t.jobdu.com/thread-1275-1-1.html


3.《计算机程序设计艺术》
l推荐理由
任何人发现书上的错误,都可以向Donald E. Knuth举发,并领取$2.56美金,因为“256美分刚好是十六进制的一美元”(256 pennies is one hexadecimal dollar.)。比尔·盖茨在1995年说,“如果你认为你是一名真正优秀的程序员,就去读第一卷,确定可以解决其中所有的问题。”“如果你能读懂整套书的话,请给我发一份你的简历。”《计算机程序设计艺术》是Knuth一生中最重要的事业,他写这本书的目的是“组织和总结所知道的计算机方法的相关知识,并打下坚实的数学、历史基础”。
l九度链接

http://t.jobdu.com/thread-1277-1-1.html


4.《C算法(第一卷):基础、数据结构、排序和搜索》
l推荐理由
《C算法(第1卷):基础、数据结构、排序和摸索》分4部分、共16章。第一部分“基础知识”(第1~2章)介绍了基本算法分析原理。第二部分“数据结构”(第3~5章)讲解算法分析中必须掌握的数据结构知识。主要包括基本数据结构、抽象数据结构、递归和树。第三部分“排序”(第6~11章)按章节顺序分别讨论了基本排序方法(如选择排序、插入排序、冒泡排序、希尔排序等)、快速排序方法,归并和归并排序方法、优先队列与堆排序方法、基数排序方法以及特殊目的排序方法,并比较了各种排序方法的性能特征。第四部分“搜索”(第12~16章)在进一步讲解符号表、树等抽象数据类型的基础上,重点讨论哈希方法、基数搜索以及外部搜索方法。
l九度链接

http://t.jobdu.com/thread-163-1-1.html


5.《C算法(第二卷):图算法》
l推荐理由
《C算法(第2卷):图算法》所讨论的图算法,都是实际中解决图问题的最重要的已知方法。这本书的主要宗旨是让越来越多需要了解这些算法的人的能够掌握这些方法及基本原理。书中根据基本原理从基本住处开始循序渐进地讲解,然后再介绍一些经典方法,最后介绍仍在进行研究和发展的现代技术。精心挑选的实例、详尽的图示以及完整的实现代码与正文中的算法和应用描述相辅相成。
l九度链接

http://t.jobdu.com/thread-164-1-1.html


6.《算法艺术与信息学竞赛》
l推荐理由
计算机解题的核心是算法设计。算法设计涉及许多先修的基础知识,包括数据结构、高级语言程序设计、离散数学、图论、组合数学、人工智能、计算几何等。当然还包括除数学与信息学之外的其他学科知识,因为没有这些知识,往往连题目都会看不懂,这可能也是要求参加ACM大赛的选手应该具备全面科学素养的原因之一。刘汝佳、黄亮两位作者都曾在高中时参加过信息学奥林匹克竞赛活动,他们在如何用计算机解难题方面投入过很大精力,有着比较丰富的经验。
l九度链接

http://t.jobdu.com/thread-122-1-1.html


7.《计算机算法设计与分析》
l推荐理由
这本书以算法设计策略为知识单元系统地介绍计算机算法的设计方法和分析技巧。其主要内容包括:算法及算法复杂性基本概念,算法描述,有效算法最常用的设计策略——递归和分治法,动态规划法的设计要点与适用性,贪心算法,回溯法和分支限界法,许多难解问题的高效算法——概率算法,以及NP完全理论和NP难问题的近似解法。书中既涉及传统算法的实例分析,更有算法领域热点研究课题追踪,具有很高的实用价值。
l九度链接
http://t.jobdu.com/thread-162-1-1.html

6楼

程序员综合篇


1.《程序员面试攻略》
l推荐理由
本书对程序员面试中的各种注意事项、常见题型和常解答技巧进行了介绍,书中的面试例题都取材于顶绷计算机公司的实际招聘面试题,每道例的后面都紧跟解决方案的思路和逻辑分析步骤。它不仅能帮助求职者快速复习有关的知识,也对如何给大面试考官留下一个良好而又深刻印象的面试技巧进行了指导,面这些能帮助读者获得一份真正的高薪工作。本书适合于所有正在找工作或将要找工作的程序员。
l九度链接

http://t.jobdu.com/thread-128-1-3.html


2.《程序员面试宝典》
l推荐理由
本书取材于各大IT公司历年面试真题(包括笔试题、口试题、电话面试、英语面试,以及逻辑测试和智商测试)。通过精确详细的分类,把在应聘程序员(含网络、测试等)过程中所遇见的常见考点分为21章。不仅对传统的C系语言考点做了详尽的解说,包括面向对象问题、sizeof问题、const问题、数据结构问题等。还根据外企出题最新特点,针对设计模式问题、C#问题、网络问题、数据库问题、NET问题等,做了深入的说明。  最后本书着力讲述了如何进行英语面试和电话面试,并给出了大量实际英语面试中的问题、参考答案,以及常用词汇,尝试解决程序员应聘外企时语言问题造成的瓶颈。本书的面试题并非简单的罗列。除了对每道题目都有详细的解析和回答外,对相关知识点还有扩展说明。  希望真正做到由点成线,举一反三。本书对于读者从求职就业到提升计算机专业知识都有显著的帮助。
l九度链接

http://t.jobdu.com/thread-127-1-3.html


3.《游戏之旅-我的编程感悟》
l推荐理由
这是一本非常有特色的计算机编程学习书籍。其特色就在于它将作者十余年来对游戏编程的所思、所感、所悟与编程理论知识相结合,褪去了纯理论的教学理念,使读者在前人的学习过程中吸取学习经验和教训,将计算机基础知识和高级编程技术不知不觉地融入自己的头脑中。
本书忠实地记录了作者十余年来对游戏编程的所思、所感、所悟。全书按照作者本人学习和实践的过程,带着读者从基础的计算机知识到高级的编程技术,从非常专业的汇编优化到非常实际的项目管理进行了一次游戏开发的全景探索。本书不仅适合游戏开发者阅读,也会给所有的开发者和程序爱好者带来启示。
l九度链接

http://t.jobdu.com/thread-916-1-3.html


4.《哥德尔、埃舍尔、巴赫——集异壁之大成》
l推荐理由
这是一本空前的奇书,也是一本杰出的科学普及名著,它以精心设计的巧妙笔法深入浅出地介绍了数理逻辑、可计算理论、人工智能等学科领域中的许多艰深理论,轻松、幽默、流畅的文字隐藏着大量的潜台词,它们前后照应、互相联系,交织成一个复杂、无形的网络,读者看不见它,但可以嗅出它的气味,并觉察到这是作者有意喷洒的。作者希望借此引起读者的兴趣,从而在反复玩味中体会出那些潜台词来,真正触及本书的精华。
l九度链接

http://t.jobdu.com/thread-915-1-3.html


5.《Programming Interviews Exposed》
l推荐理由
Everything you need to know to succeed in the programming interview and get the job you want Whether you are a veteran programmer seeking a new position or a whiz kid starting your career, interviewing for a programming job requires special preparation. The interview is likely to consist of an hour-long interactive oral exam in computers, programming, and logic. This helpful guide will give you the tools necessary to breeze through the test and make a lasting impression that will get you a top-dollar offer!
l九度链接

http://t.jobdu.com/thread-914-1-3.html


6.《新手编程导论》
l推荐理由
设计才是真正的编程!面向对象并不是一切?对象的引用才是对象 对接口编程才是真正的编程 对数据的描述才是数据 面向对象数据库并非数据库?网络才是真正的操作系统!无论你以为上述观点是惊天大秘还是不过尔尔,你都需要这本书!
l九度链接

http://t.jobdu.com/thread-1020-1-4.html


7.《代码大全》
l推荐理由
第2版的《代码大全》是著名IT畅销书作者史蒂夫·迈克康奈尔11年前的经典著作的全新演绎:第2版不是第一版的简单修订增补,而是完全进行了重写;增加了很多与时俱进的内容。这也是一本完整的软件构建手册,涵盖了软件构建过程中的所有细节。它从软件质量和编程思想等方面论述了软件构建的各个问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。这本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。这本书对经验丰富的程序员、技术带头人、自学的程序员及几乎不懂太多编程技巧的学生们都是大有裨益的。可以说,无论是什么背景的读者,阅读这本书都有助于在更短的时间内、更容易地写出更好的程序。
l九度链接

http://t.jobdu.com/thread-978-1-4.html


8.《代码之美》
l推荐理由
《代码之美》介绍了人类在一个奋斗领域中的创造性和灵活性:计算机系统的开发领域。在每章中的漂亮代码都是来自独特解决方案的发现,而这种发现是来源于作者超越既定边界的远见卓识,并且识别出被多数人忽视的需求以及找出令人叹为观止的问题解决方案。《代码之美》33章,有38位作者,每位作者贡献一章。每位作者都将自己心目中对于“美丽的代码”的认识浓缩在一章当中,张力十足。38位大牛,每个人对代码之美都有自己独特的认识,现在一览无余的放在一起,对于热爱程序的每个人都不啻一场盛宴。虽然本书的涉猎范围很广,但也只能代表一小部分在这个软件开发这个最令人兴奋领域所发生的事情。
l九度链接

http://t.jobdu.com/thread-982-1-4.html


9.《代码优化:有效使用内存》
l推荐理由
本书系统深入地介绍了各种代码优化编程技术。全书分为4章。第1章集中介绍如何确定程序中消耗CPU时钟最多的热点代码的所谓程序剖析技术以及典型部分工具的实用知识。第2,3章分别全面介绍RAM了系统与高速缓存子系统的代码优化知识。第4章主要介绍了机器代码优化技术。各章在讨论基本原理的同时详细给出了代码实例,并对优化性能进行了定量的分析。
该书特别适合于作为应用程序员及系统程序员的学习与开发之用。同时,本书对在硬件方面的专业人员与技术工作者有一定的参考价值。
ll九度链接

http://t.jobdu.com/thread-1000-1-4.html


10.《Working Effectively with Legacy Code》
l推荐理由
Get more out of your legacy systems: more performance, functionality, reliability, and manageability 
Is your code easy to change? Can you get nearly instantaneous feedback when you do change it? Do you understand it? If the answer to any of these questions is no, you have legacy code, and it is draining time and money away from your development efforts.
l九度链接

http://t.jobdu.com/thread-996-1-4.html


11.《Code Reading -- The Open Source Perspective》
l推荐理由
首先,阅读代码这个领域确实很少有书涉及到,作者试图阐述他阅读代码的一些经验,当然,这很值得我们参考,尤其是阅读开源代码的人,可能会从中学到很多开源项目的规范与设计方法,从而更好地去理解open source 另外,我觉得这本书最重要的地方在于,一,它论述了阅读代码的重要性,我们程序员常常太醉心于写代码,却忘了开源世界......
l九度链接

http://t.jobdu.com/thread-986-1-4.html


12.《代码阅读方法与实践》
l推荐理由
代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用600多个现实的例子,向读者展示如何区分好的(和坏的)代码,如何阅读,应该注意什么,以及如何使用这些知识改进自己的代码。养成阅读高品质代码的习惯,可以提高编写代码的能力。阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题,系统性地加以论述。本书引用的代码均取材于开放源码项目——所有程序员都应该珍视的宝库。本书围绕代码阅读,详细论述了相关的知识与技能。“他山之石、可以攻玉”,通过仔细阅读并学习本书,可以快速地提高读者代码阅读的技能与技巧,进而从现有的优秀代码、算法、构架、设计中汲取营养,提高自身的开发与设计能力。
l九度链接

http://t.jobdu.com/thread-979-1-4.html


13.《疯狂的程序员》
l推荐理由
本书描写了绝影等程序员的成长之路,分为大学、工作、创业三部分。作者笔下以绝影、BOSS liu、Bug Yang等为代表的程序员是大多程序员成长的真实写照,很多网友看过小说之后都说“这些事好像就是我身上发生的事情,但是我写不出来,绝影写出来了”。
l九度链接

http://t.jobdu.com/thread-130-1-4.html


14.《程序人生》
l推荐理由
这是一些文章的合集。这些文章包括普通的,有名的的程序员的经历,还有一些让人深思的程序员问题, 书中把它们分成奋斗篇,中国篇,外国篇,反思篇,如果你想进入程序设计的世界,这些文章应该能给你一些启示,也一定能给你一定的鼓励!
l九度链接

http://t.jobdu.com/thread-126-1-5.html


15.《软件工程思想》
l推荐理由
《软件工程思想》讲述“软件开发”和“做程序员”的道理,视野独特,构思新颖,内容风趣,不落窠臼,令人耳目一新。堪称难得,以至回味无穷。
l九度链接

http://t.jobdu.com/thread-149-1-5.html


16.《我是一只IT小小鸟》
l推荐理由
一群IT小小鸟——
来自十几所院校,或男生,或女生;或科班,或半路转行。
分布在不同的公司,或外企,或国企,或民企,老板有土有洋。
有失意,有快意;有泪水,有欢笑。在失望中追求希望,在迷茫中辨别方向。
他们用自己的成长故事,告诉在校的师弟师妹们:
青春太宝贵,千万别浪费;要想不浪费,万事早准备。
l九度链接
http://t.jobdu.com/thread-99-1-5.html
17.《程序员修炼之道》
l推荐理由
《程序员修炼之道》由一系列独立的部分组成,涵盖的主题从个人责任、职业发展,直以用于使代码保持灵活、并且易于改编和复用的各种架构技术,利用许多富有娱乐性的奇闻轶事、有思想性的例子以及有趣的类比,全面阐释了软件开发的许多不同方面的最佳实践和重大陷阱。无论你是初学者,是有经验的程序员,还是软件项目经理,本书都适合你阅读。
l九度链接
http://t.jobdu.com/thread-129-1-5.html




操作系统篇

1.《操作系统-内核与设计原理》
l推荐理由
《操作系统:精髓与设计原理》既注重对操作系统的经典内容的论述,又紧密联系当代流行的设计问题以及当前操作系统的发展方向,可作为大学计算机专业或计算机应用相关专业的本科生教材和参考书,也可供从事计算机方向研究的专业技术人员使用。
l九度链接
http://t.jobdu.com/thread-139-1-3.html


2.《现代操作系统》
l推荐理由
本书是操作系统领域的经典之作,与第1版相比有较大的变化。书中集中讨论了操作系统的基本原理,除了重点放在单处理机操作系统之处,还包含了有关计算机安全、多媒体操作系统、UNIX、Window2000以及操作系统设计等方面的内容。书中涉及的主题包括图形用户界面、多处理机操作系统、笔记本电脑电源管理、可信系统、病毒、网络终端、CD-ROM文件系统、互斥信号量、RAID、软定时器、稳定存储器以及新的页面置换算法等。此外,书中还增加了大量习题,方便教学。
本书适合作为高等院校计算机科学与技术专业操作系统课程教材,也是设计、开发操作系统的重要参考书。
l九度链接
http://t.jobdu.com/thread-137-1-3.html


3.《自已动手写操作系统》
l推荐理由
本书在详细分析操作系统原理的基础上,用丰富的实例代码,一步一步地指导读者用C语言和汇编语言编写出一个具备操作系统基本功能的操作系统框架。本书不同于其他的理论型书籍,而是提供给读者一个动手实践的路线图。书中讲解了大量在开发操作系统中需注意的细节问题,这些细节不仅能使读者更深刻地认识操作系统的核心原理,而且使整个开发过程少走弯路。
l九度链接
http://t.jobdu.com/thread-136-1-3.html


4.《鸟哥的Linux私房菜》
l推荐理由
Linux的基础知识在各大主流Linux安装版本中基本相同,如账号管理、硬盘文件格式、数据管理与核心编译等。本书深入浅出地介绍了Linux操作系统的基本原理与架构,适合当前所有主流Linux版本的学习。
l九度链接
http://t.jobdu.com/thread-1063-1-3.html


5.《Linux内核编程指南》
l推荐理由
本书面向希望深入学习这种操作系统的读者,全面介绍了Linux操作系统的技术原理。全书共分10章,内容分别涉及Linux内核简介、内存管理、进程间通信、Linux文件系统、设备驱动程序、网络实现方式、模块和调试,以及多重处理等Linux内核原理和开发技术。
l九度链接
http://t.jobdu.com/thread-1062-1-3.html


6.《深入理解LINUX内核》
l推荐理由
《深入理解Linux内核,第三版》指导你对内核中使用的最重要的数据结构、算法和程序设计诀窍进行一次遍历。通过对表面特性的探究,作者给那些想知道自己机器工作原理的人提供了颇有价值的见解。书中讨论了Intel特有的重要性质。相关的代码片段被逐行剖析。然而,本书涵盖的不仅仅是代码的功能,它解释了Linux以自己的方式工作的理论基础。
l九度链接
http://t.jobdu.com/thread-1061-1-3.html


7.《UNIX环境高级编程》
l推荐理由
本书全面介绍了UNIX系统的程序设计界面——系统调用界面和标准C库提供的许多函数。
本书的前15章着重于理论知识的阐述,主要内容包括UNIX文件和目录、进程环境、进程控制、进程间通信以及各种I/O。在此基础上,分别按章介绍了多个应用实例,包括如何创建数据函数库,PostScript打印机驱动程序,调制解调器拨号器及在伪终端上运行其他程序和程序等。
本书内容丰富权威,概念清晰精辟,一直以来被誉为UNIX编程的“圣经”,对于所有UNIX程序员——无论是初学者还是专家级人士——都是一本无价的参考书籍。
l九度链接
http://t.jobdu.com/thread-1060-1-3.html


8.《Unix操作系统设计与实现》
l推荐理由
本书对FreeBSD操作系统的内容结构进行了最全国、最新鲜、最权威的论述。
主要针对BSD4.3版本。
l九度链接
http://t.jobdu.com/thread-1059-1-3.html


9.《LINUX与UNIX SHELL编程指南》
l推荐理由
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。
l九度链接
http://t.jobdu.com/thread-1058-1-3.html


10.《LINUX设备驱动程序》
l推荐理由
本书是针对那些想在Linux操作系统下支持计算机外设或者是想在Linux下开发并运行新硬件的人而写的。Linux是UNIX市场中份额增长最快的操作系统,在许多应用领域中赢得了众多热心的追随者。本书展示了迄今为止流传于口头上的或隐含在源代码评注背后的信息,并引导您为众多的设备编写驱动程序。
l九度链接
http://t.jobdu.com/thread-1057-1-3.html
11.《LINUX教程:Windows用户转向Linux的12个步骤》
l推荐理由
本书是一本Windows用户转向Linux操作系统的专业书籍,其内容详尽,语言精练易懂,实用性强,适用于那些具有Windows使用经验并想学习Linux的开发人员、系统管理员和普通用户。本书也是一本很好的Linux操作参考书,能够为那些迫切需要了解和掌握Linux的读者提供帮助。
l九度链接
http://t.jobdu.com/thread-1037-1-3.html


12.《Linux内核源代码情景分析》
l推荐理由
这本书采取类似于英语教学中行之有效的情景会话的教学方法,全面深入地剖析了Linux最新版本核心源代码,并对Linux核心的独特优点和需要进一步改进的问题作了精辟的评述。上册的内容包括预备知识、存储管理、中断和系统调用、进程和进程调度、文件系统以及传统的Unix进程通讯六章。
l九度链接
http://t.jobdu.com/thread-1036-1-4.html


13.《Linux内核源代码分析》
l推荐理由
Linux拥有现代操作系统所有的功能,如真正的抢先式多任务处理、支持多用户,内存保护,虚拟内存,支持SMP、UP,符合POSIX标准,联网、图形用户接口和桌面环境。具有快速性、稳定性等特点。本书通过分析Linux的内核源代码,充分揭示了Linux作为操作系统的内核是如何完成保证系统正常运行、协调多个并发进程、管理内存等工作的。
l九度链接
http://t.jobdu.com/thread-1035-1-4.html


14.《Linux内核完全注释》
l推荐理由
本书对Linux早期操作系统内核(v0.11)全部代码文件进行了详细全面的注释和说明,旨在使读者能够在尽量短的时间内对Linux的工作机理获得全面而深刻的理解,为进一步学习和研究Linux系统打下坚实的基础.书中首先以Linux源代码版本的变迁历史为主线,详细介绍了Linux系统的发展历史,着重说明了各个内核版本之间的重要区别和改进方面,给出了选择0.11(0.95)版作为研究的对象的原因。然后本书依据内核源代码的组织结构对所有内核程序和文件进行了注释和详细说明。在注释的同时,还介绍了读者应该了解的相关知识,并给出了相关的硬件信息。本书带介绍了内核源代码的组织结构信相互关系。
本书适合作为计算机专业学生学习操作系统课程的实践教材和参考书,也适合Linrx操作系统爱好者自学,还可以供具有一定基础的技术人员作为嵌入式开发应用的参考书。
l九度链接
http://t.jobdu.com/thread-1032-1-4.html


15.《Linux 0.01内核分析与操作系统设计》
l推荐理由
本书巧妙地结合了Linux内核源代码分析、操作系统设计原理和操作系统设计实践三个方面的内容,在对Linux 0.01内核源代码进行深入分析的基础上,讲解了操作系统设计的基本原理和方法技巧。同时,还向读者提供了大量的操作系统实践方面的实例。通过对本书的学习,读者可以对操作系统的内核有深入的了解,掌握基本的硬件操作和控制能力,具有对操作系统的理解和实践能力。
本书中的所有例子,都可以使用GNU编译器来编译,所有的工具软件也都可以应用到GNU的自由软件中。本书内窜丰富、通俗易懂、可操作性强,既可作为大学高年级本科和研究生学习操作系统设计的辅导教材,也可作为计算机爱好者学习和分析Linux内核的教材。同时,也是软件工程师进行各类操作系统设计的最佳参考用书。
l九度链接
http://t.jobdu.com/thread-1028-1-4.html


面向对象篇
1.《Head First设计模式》
l推荐理由
本书的内容深入浅出,基本上每一章都是我们生活中的一个例子。看过会令人印象比较深刻!而且在每章后面还有练习题,利于巩固学过的知识,是学习设计模式,领悟面向对象思想不可多得的入门好书!
l九度链接
http://t.jobdu.com/thread-890-1-1.html


2.《大话设计模式》
l推荐理由
本书通篇都是以情景对话的形式,用多个小故事或编程示例来组织讲解GoF总结的23个设计模式。本书的特色是通过小菜与大鸟的趣味问答,在讲解程序的不断重构和演变过程中,把设计模式的学习门槛降低,让初学者可以更加容易地理解——为什么这样设计才是好的?是怎样想到这样设计的?以达到不但授之以“鱼”,还授之以“渔”的目的。引导读者体会设计演变过程中蕴藏的大智慧。
本书适合编程初学者或希望在面向对象编程上有所提高的开发人员阅读。
l九度链接
http://t.jobdu.com/thread-150-1-1.html 


3.《设计模式精解》
l推荐理由
本书从一个新的视角描述面向对象设计,将面向中对象编程的原则与运用设计模式力量创建健壮、可靠的软件开发环境结合起来。书中采用实用、恰当的例子,指导读者用模式解决普通的编程问题,并且解释现代软件设计模式的优越性。
本书适用于学习面向中对象设计和设计模式的学生、程序员以及从事软件开发的人士。
l九度链接
http://t.jobdu.com/thread-154-1-1.html 


4.《UML与Rational Rose 2002从入门到精通》
l推荐理由
本书深入浅出地介绍了统一建模语言(UML)和Rational Rose软件,通过航空公司与购物推车例子介绍如何用UML和Rose进行项目需求分析、结构规划和生成框架代码,以及如何从现有系统逆向转出工程代码,生成Rose模型,并分章介绍了C++、Java、Visual Basic与CORBA/IDL和XML代码的代码生成与逆向转出工程代码。通过本书学习,项目开发人员可以用这个全新工具紧扣用户需求,方便地开发出符合用户需求的系统或根据用户需求对现有系统进行改造。
本书适合项目开发人员参考,也适合作为大学教材或自学材料。。
l九度链接
http://t.jobdu.com/thread-157-1-2.html


5.《Sams Teach Yourself UML in 24 Hours》
l推荐理由
本书教读循序渐进地、系统地学习UML基础知识和应用技术。和前一版相比,本书内容根据UML 2.0进行了补充和更新,随书光盘包含了建模工具Poseidon的试用版。 全书分为三部分24章。第一部分“基础知识”包括第1章到第15章,主要是介绍UML语言的基础知识以及面向对象的概念和思想,还简单介绍了UML在开发过程的应用方法。第二部分“学习案例”包括第16章到第22章,结合实例详细分析了UML的应用方法与技巧,还介绍了UML在热点领域设计模式中的应用。第三部分“高级应用”包括最后两章,先是运用UML来描述设计模式和嵌入式系统,然后讨论UML在其他领域的应用前景。附录给出了每章的小测验答案,介绍了使用Microsoft Visio专业版绘制常用UML图的方法步骤,还对常用UML图进行了总结。
本书适用于从事面向对象软件开发的软件工程人员,也特别适合UML的初中级学习者。
l九度链接
http://t.jobdu.com/thread-156-1-2.html


6.《UML精粹:标准对象建模语言简明指南》
l推荐理由
本书为Martin Fowler所著《UML精粹》一书第3版之中译本。原书首版自1997年问世以来,深受读者欢迎,堪称书中上乘。数年来,内容与时俱进,不断更新,继第2版之后,去岁九月,第3版出,内容以UML 2.0为基础,引进交互概观图、定时图、复合结构图等新图型;对类图、顺序图、状态图、活动图等均多有更新。作者一如既往,力求以极小篇幅,讲述重要内容,见地独到,且使用对话文体,讲述技术内容,实用与基础并重;文笔清新,引人入胜。
本书可作为高等学校计算机、电子、通信等专业高年级学生及研究生课程之教学用书,同时对软件研究者与开发人员亦颇具参考价值。
l九度链接
http://t.jobdu.com/thread-152-1-2.html


7.《Java与模式》
l推荐理由
本书是一本讲解设计原则以及最为常见的设计模式的实用教材,目的是为了工作繁忙的Java系统设计师提供一个快速而准确的设计原则和设计模式的辅导。本书大多数的章节都是相对独立的,读者可以打开本书,从任何一章开始读起。为了满足不同程序的读者的需要,本书提供了一些标为“专题”的章节,不阅读这些章节,对阅读本书的标准章节没有影响。读过本书之后,读者可以很有信心地在自己的系统设计工作中使用学过的内容,与同事交流面向对象的设计经验,并在事业发展上有更多的收获。
本书适合于Java程序员、架构设计师及设计模式爱好者,是一本实用的设计原则和设计模式的自学教材和使用手册。
l九度链接
http://t.jobdu.com/thread-888-1-1.html


8.《UML和模式应用》
l推荐理由
本书是面向对象分析和设计(OOA/D)的实用指南,并且阐述了迭代开发相关方面的内容。如果你刚刚接触OOA/D,你将会面临如何掌握这个复杂主题的挑战;本书提供了一个良好定义的路标—统一过程,使你能一步一步地实现从需求到编码的全过程。本书的结构和重点建立在作者多年教授和培训成千上万学生掌握OOA/D的经验之上,它提供了一个精炼的、已证明的和高效率的掌握OOA/D的学习方法,使你在阅读和学习上的投资得到优化。本书详尽地说明一个案例,以便实际地说明整个OOA/D过程,并深入讨论问题的棘手细节;这是一个实际的练习。本书还说明如何将对象设计工件映射成Java代码。
本书适合于熟悉OOA/D但希望学习UML表示法、应用模式的读者,或者希望加强和提高自己的分析和设计技能的读者。
l九度链接
http://t.jobdu.com/thread-894-1-1.html


9.《道法自然:面向对象实践指南》
l推荐理由
本书共分19章,通过实际的开发案例--fishgui项目为主线依次介绍了需求和用例分析、面向对象分析、架构分析、面向对象设计、设计模式、编码技巧等几个主要的技术领域,并基本按照时间顺序,描述了fishgui系统设计和实现的全过程。 如果把面向对象大师们偏重理论建构的经典读物称为面向对象盛宴中的主菜,那么,这本指南若能充当佐餐的凉菜或是饭后的甜点,作者就心满意足了。
本书适合所有在软件开发领域辛勤工作的开发人员、管理人员、系统分析人员、测试人员、技术支持人员等阅读。
l九度链接
http://t.jobdu.com/thread-898-1-1.html


10.《Design Patterns Explained : A New Perspective on Object-Oriented Design》
l推荐理由
本书讲述了作者在学习设计模式过程中所积累的个人经验。书中包含很多实际的和可应用的实例,教你如何使用模式解决普通的编程问题,以及解释如何利用模式来进行先进的软件设计。本书清晰地演示了模式如何使整个开发过程变得更容易,还解释了面对对象设计的关键原则以及特定模式的概念和优势。
通过直观的C++和Java实例,本书阐明了使用模式的原因以及如何使用模式,并解释了模式的实现。
l九度链接
http://t.jobdu.com/thread-901-1-1.html


11.《UML Distilled: A Brief Guide to the Standard Object Modeling Language》
l推荐理由
Pressured with tight deadlines, application developers do not have the luxury of keeping completely up-to-date with all of the latest innovations in software engineering. Once in a great while, a tremendous resource comes along that helps these professionals become more efficient. The first two editions of UML Distilled have been perennial best-sellers because of their concise, yet thorough, nature. This eagerly-anticipated third edition allows you to get acquainted with some of the best thinking about efficient object-oriented software design using the latest version of the industry-standard for modeling software: UML 2.0. The author has retained the book's convenient format that has made it an essential resource for anyone who designs software for a living. The book describes all the major UML 2.0 diagram types, what they are intended to do, and the basic notation involved in creating and deciphering them. A true treasure for the software engineering community.
l九度链接
http://t.jobdu.com/thread-904-1-1.html


12.《面向对象分析与设计》
l推荐理由
本书是一本关于面向对象分析和设计的教材,讲述了面向对象的基本思想、主要概念以及相应的表示法,并给出了建模过程指导。本书注重理论与实践相结合,给出大量的例题和一个内容较为详尽的案例分析,详述了建模概念的运用以及进行面向对象建模的方法与技术。
本书适合作为高等院校的软件学院和信息学院(或计算机学院等)软件工程专业以及相关专业的工程硕士、高年级本科生的教材,也可作为从事软件开发的工程技术人员的参考读物。
l九度链接
http://t.jobdu.com/thread-905-1-1.html


13.《重构--改善既有代码的设计(中文版)》
l推荐理由
软件工程领域的超级经典巨著,与另一巨著《设计模式》并称"软工双雄",全美销量超过100000册,亚马逊书店五星书。
在本书中,作者Martin Fowler充分展示了何处可能需要重构,以及如何将不好的设计改造为良好的设计。
当对象技术成为老生常谈之后——尤其在Java编程语言之中,新的问题也在软件开发社区中浮现了出来。缺乏经验的开发人员完成了大量粗劣设计,获得的程序不但缺乏效率,也难以维护和扩展。渐渐地,软件系统专家发现,与这些沿袭下来的、质量不佳的程序共处,是多么艰难。对象专家运用许多技术来改善既有程序的结构完美性与性能,已有数年之久。
l九度链接
http://t.jobdu.com/thread-906-1-1.html


14.《大象:Thinking in UML》
l推荐理由
本书以UML为载体,将面向对象的分析设计思想巧妙地融入建模过程中,通过贯穿全书的实例将软件系统开发过程中方方面面的知识有机地结合在一起,用生动的语言和精彩的事例将复杂枯燥的软件过程讲解得津津有味。
全书分为准备篇、基础篇、进阶篇和总结篇四个部分。准备篇讲述面向对象分析的一些基本概念,及学习建模需要了解的一些基本知识。基础篇对UML的基础概念重新组织和归纳整理,进行扩展和讨论,引申出针对UML的这些概念在面向对象方法中应用方法的思考。进阶篇以一个实例贯穿全篇,阐述如何使用UML从头到尾地实施一个项目。总结篇针对在现实中经常遇到并且较难掌握的问题进行深入的探讨,升华在前几篇学习到的知识。
本书可供正在学习编程、软件工程等知识,准备将来从事IT行业的读者、正努力向设计师或系统分析员转变的技术人员及期望对软件分析设计更上一层楼的设计人员学习和提高之用。
l九度链接
http://t.jobdu.com/thread-1286-1-1.html

9楼
发表于 2011-1-4 21:45 | 只看该作者
编译汇编篇
1.《Intel微处理器结构、编程与接口(第六版)》
l推荐理由
本书取材实用、广泛、先进,涵盖了微机原理、汇编语言和接口通信技术的教学要求和知识点,与上下游课程衔接合理,适合国内教学要求。 此外,本书重点突出,概念清晰,讲述深入浅出,既可以按部就班地系统学习,也可以抽取部分章节重点钻研,适合不同层次的读者。 而且每章提示本章的学习目的,并结合实例讲授工作原理,章末有小结和习题,既适合教学使用也适合读者自学。
书中给出的许多实例都可能成为读者开发类似应用的样版或原型,指引读者创造性地开发新的应用。
l九度链接
http://t.jobdu.com/thread-1306-1-1.html


2.《Windows环境下32位汇编语言程序设计(第2版)》
l推荐理由
本书从编写应用程序的角度,从“Hello World!”这个简单的例子开始到编写多线程、注册表和网络通信等复杂的程序,通过70多个实例逐步深入Win32汇编语言编程的方方面面。本书作者有十多年的汇编编程经验,很清楚初学者在哪些地方会遇到问题,所以本书在系统全面地介绍Win32汇编编程的同时,也穿插了很多作者的经验之谈,使读者能够快速入门并最终熟练地写出各种Windows应用程序。
Windows环境下32位汇编语言是一种全新的编程语言。它使用与C++语言相同的API接口,不仅可以用来开发出大型的软件,而且是了解操作系统运行细节的最佳方式。
l九度链接
http://t.jobdu.com/thread-91-1-1.html


3.《汇编语言(附答案)》
l推荐理由
《汇编语言》是各种CPU提供的机器指令的助记符的集合,人们可以用汇编语言直接控制硬件系统进行工作。汇编语言是很多相关课程(如数据结构、操作系统、微机原理等)的重要基础。为了更好地引导、帮助读者学习汇编语言,作者以循序渐进的思想精心创作了《汇编语言》。《汇编语言》具有如下特点:采用了全新的结构对课程的内容进行组织,对知识进行最小化分割,为读者构造了循序渐进的学习线索;在深入本质的层面上对汇编语言进行讲解;对关键环节进行深入的剖析。
l九度链接
http://t.jobdu.com/thread-86-1-1.html


4.《IBM PC汇编语言程序设计(第五版)》
l推荐理由
本书详细介绍了80X86汇编语言程序设计的方法和技术。 全书分为7个部分26章,从硬件和软件基础知识、汇编语言基础知识、视频与键盘操作、数据操作、高级输入/输出等几个方面进行讲解和分析,阐述了宏的使用、连接、程序装入和覆盖等特殊编程技术,最后3章以及附录部分的内容既是知识的扩展又是实用的参考资料。书中提供了大量程序实例,除最后3章以外,每章还附有习题。
本书可用作高等院校及大中专院校汇编语言程序设计课程的教材或参考书,也能够帮助初学者通过自学上机掌握汇编语言程序设计的一般技术。
l九度链接
http://t.jobdu.com/thread-1312-1-1.html


5.《汇编语言编程艺术》
l推荐理由
本书以x86系列微机为背景,从简单的hello程序开始,系统而详细地阐述了x86微机汇编语言编程的各种基础知识和编程技巧,内容涉及到数据表示、存储器管理、各种数据类型、过程、与汇编语言相关的体系结构、控制结构、文件、宏指令、位处理指令、字符串指令、mmx指令、类和对象,以及混合语言编程等,尤其是在高级汇编语言(hla)方面,该书给予了细致深入的讲解。对于有意学习x86汇编语言编程的程序员来说,这是一本难得的好书。 本书的作者randall hyde在大学中教授汇编语言十多年,并且开发了好几个商用软件,具有丰富的汇编语言开发经验。该书的英文电子版受到了成千上万的网站和高级程序员的高度评价,已经成为了高级汇编语言编程方面的一本经典之作。
虽然该书的出版时间不长,但在amazon上为该书作出评价的人很多,而且几乎所有的人都给予5星的评价,可见其内容之好。笔者相信,随着时间的推移,它在程序员中的影响回越来越大。
l九度链接
http://t.jobdu.com/thread-89-1-1.html


6.《Intel 汇编语言程序设计(第四版)》
l推荐理由
本书全面细致地讲述了汇编语言程序设计的各个方面。从微处理器体系结构、工作机制到指令集;从最基本的编译器链器的使用到高级过程、结构和宏的使用;从用纯汇编编写程序到用c/c++等最新编译器与汇编的混合接口编程;从16位实模式下bios、dos实模式文本及图形程序设计到32位保护模式的windows程序设计;从磁盘基础知识到intel指令编码、浮点运算等相关知识都做了深入而细致的讲解。
本书对计算机体系结构及基本原理做了相当篇幅的介绍,因此本书不仅可作为高等院校计算机专业汇编语言的教材,也可以作为计算机体系结构和原理的参考资料。
l九度链接
http://t.jobdu.com/thread-1315-1-1.html


7.《黑客反汇编揭秘》
l推荐理由
本书主要讨论程序设计方面的问题,即发现程序有漏洞以后,如何在没有源代码的情况下通过反汇编程序来加以克服。该书涵盖了利用调试器与反汇编器分析程序的黑客技术,内容包括虚函数、局部与全局变量、分支、循环、对象与对象层次以及数学运算符等。书中还介绍了一些防范反汇编的方法,包括使用操作系统的自修改代码、在堆栈中执行代码、编译器优化以及可重定位代码应用等。学习如何利用调试器与反汇编器进行程序分析的一本好书。
l九度链接
http://t.jobdu.com/thread-87-1-3.html


8.《编译原理及实践》
l推荐理由
本书结合对现代编译器设计理论的详细研究,完整描述了一个可运行的小规模语言编译器(包括源代码)。本书反映了作者的这样一些观点:不掌握理论就不会真正地理解实际的编译器设计:而对大学生来说,看不到理论在实际中的应用就不会真正地理解理论。把本书讨论的概念统一起来,就是一个完整的可运行的编译器,它使用每一章所讨论的技术进行开发,用C语言写成。每章最后有大量的练习,使学生的注意力集中在编程问题上。
主要特点: 1 详细给出了自顶而下的分析算法(第4章和第5章),包括递归下降和LL(1)分析方法、自底向上的分析、LALR(1)分析表以及Yacc分析器产生器工具的使用。 2 完整讨论了运行时环境的一般形式(第7章),从Fortran的完全静态环境到各种基于栈的环境,最后是Lisp语言的全动态环境。 3 通过一个例子语言的完整的代码产生器介绍了代码生成(第8章),并介绍了代码优先技术。
l九度链接
http://t.jobdu.com/thread-87-1-3.html


9.《现代编译程序设计》
l推荐理由
本书全面地介绍了现代编译技术,结构上分为通用编译技术和高级编译技术两大部分。第一部分介绍通用的编译程序实现技术,包括词法和语法分析、上下文处理、代码生成以及存储器管理的一般方法。第二部分介绍特定范型语言的高级编译技术,包括命令式语言、面向对象语言、逻辑式语言、函数式语言及并行 / 分布式语言的上下文处理和代码生成等内容。本书注重编译程序的具体实现和优化技术,实例丰富,具有很强的可读性和实用性。
本书可作为高校计算机专业本科和研究生编译程序设计课程的教科书,也可供从事计算机软件开发的人员参考。
l九度链接
http://t.jobdu.com/thread-907-1-1.html


10.《现代编译原理--C语言描述》
l推荐理由
本书全面讲述了现代编译器的各个组成部分,包括词法分析、语法分析、抽象语法、语义检查、中间代码表示、指令选择、数据流分析、寄存器分配以及运行时系统等。全书分成两部分,第一部分是编译的基础知识,适用于第一门编译原理课程(一个学期);第二部分是高级主题,包括面向对象语言和函数语言、垃圾收集、循环优化、SSA(静态单赋值)形式、循环调度、存储结构优化等,适合于后续课程或研究生教学。书中专门为学生提供了一个用C语言编写的实习项目,包括前端和后端设计,学生可以在一学期内创建一个功能完整的编译器。
本书适用于高等院校计算机及相关专业的本科生或研究生,也可供科研人员或工程技术人员参考。
l九度链接
http://t.jobdu.com/thread-1307-1-1.html


11.《编译原理》
l推荐理由
本书深入讨论了编译器设计的重要主题,包括词法分析、语法分析、语法制导分析、类型检查、运行环境、中间代码生成、代码生成、代码优化等,并在最后两章中讨论了实现编译器的一些编程问题和几个编译器实例,每章都提供了大量的练习和参考文献。本书从介绍编译的原理性概念开始,然后通过构建一个简单的一遍编译器来逐一解释这些概念。 本书是编译原理课程的经典教材,作者曾多次使用本书的内容在贝尔实验室、哥伦比亚大学、普林斯顿大学和斯坦福大学向本科生和研究生讲授初等及高等编译课程。
本书 是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。本书一 直被世界各地的著名高等院校和科研机构(如贝尔实验室、哥伦比亚大学、普 林斯顿大学和斯坦福大学等)广泛用作本科生和研究生编译原理与技术课程的 教材,本书对我国计算机教育界也具有重大影响。 书中深入讨论了编译器设计的重要主题,包括词法分析、语法分析、语法制 导分析、类型检查、运行环境、中间代码生成、代码生成、代码优化等,并在 最后两章中讨论了实现编译器的一些编程问题和几个编译器实例,而且每章都 提供了大量的练习和参考文献。
本书可以作为高等院校计算机专业本科生和研究生编译原理与技术课程的 教材,也可以作为计算机技术人员必读的专业参考书之一。
l九度链接
http://t.jobdu.com/thread-48-1-1.html


12.《程序设计语言编译原理》
l推荐理由
本书是在陈火旺、钱家骅、孙永强三位教授编写的《程序设计语言编译原理》的基础上,结合编译技术的最新研究成果和作者多年的教学经验编写而成的。
本书比较全面、系统地介绍了编译程序构造的一般原理和基本实现方法,内容包括词法分析、语法分析、属性文法与语法制导翻译、语义分析与中间代码产生、符号表与运行时存储空间组织、优化与目标代码生成、并行编译技术。与原教材相比,本书将编译技术的最新发展,例如属性文法、面向对象语言的编译技术、并行编译技术、编译程序自动构造工具等内容系统地融合到教材中;在语言背景方面,以C,Pascal替代原教材中的FORTRAN和Algol;并在一些重要的章节中增加了必要的例题,以帮助读者理解和自学。
本书可作为高等(理、工)院校计算机科学(或工程)专业的教材,或作为教师、研究生、高年级学生或软件工程技术人员的参考书。
l九度链接
http://t.jobdu.com/thread-1308-1-1.html


13.《Advanced Compiler Design and Implementation 高级编译器设计与实现》
l推荐理由
本书涵盖了现代微处理器编译器的设计和实现方面的所有高级主题。
本书首先介绍编译器的结构、符号表管理、中间代码结构、运行时支持等问题,探讨过程内的控制流分析、数据流分析、依赖关系分析和别名分析的各种方法,并介绍一系列的全局优化。接下来,讲述过程间的控制流分析、数据流分析和别名分析,以及程间优化和如何应用过程间信息来改善全局优化。然后,讨论有效利用层次存储系统的优化技术。最后,详细介绍4种商业化编译系统,以提供编译器结构、中间代码设计、优化策略和效果的专门例子。
本书适合作为高等院校计算机专业研究生和高年级本科生的教材,也适合需要了解高级编译器设计和构造有关问题的计算机专业人员参考。
l九度链接
http://t.jobdu.com/thread-1309-1-1.html


数据库篇
1.《数据库系统概论》
l推荐理由
从这本书开始真正入门数据库。是一本非常系统的书,看起来感觉很紧凑。对数据库领域的知识点都有讲到,也不愧是“概论”。
值得推荐的好书。
l九度链接
http://t.jobdu.com/thread-146-1-2.html
2.《数据库系统导论》
l推荐理由
本书是数据库技术方面的一本权威的著作,二十多年来一直是数据库领域中最受欢迎的书。书中对数据库系统进行了综合介绍,并对数据库技术的未来发展做出了展望。主要内容包括:基本概念、关系模型、数据库设计、事务管理、高级专题及对象和对象/关系模型。重点介绍了关系模型,关系模型不仅奠定了关系系统的理论基础,而且实际上还是数据库领域的理论基础。书中给出了大量的参考文献以及翔实的评注,不仅反映了该领域的研究状况,还提供了可贵的信息资源。
l九度链接
http://t.jobdu.com/thread-1283-1-1.html
3.《数据库系统基础教程》
l推荐理由
《数据库系统基础教程》显著特色:
通过使用人们普遍关注的、现实世界的例子提高可读性。
对SQL编程的许多方面展开了广泛而全面的讨论。
给出基于常见的E R模型的设计原则。
介绍了使用ODL标准的面向对象设计和SQL-99标准的对象-关系设计。 解释了SQL是如何通过JDBC(Java)和SQL CLI(ODBC)与现代宿主语言交互作用的。
涵盖对于数据库设计者和使用者十分重要的若干高级论题,包括完整性约束、触发器、事务、授权、SQL-99递归,等等。
l九度链接
http://t.jobdu.com/thread-1284-1-1.html
4.《数据挖掘--概念与技术》
l推荐理由
这本书系统地论述数据挖掘的基本概念、基本技术和最新进展。全书分10章,全面而深入地介绍数据库技术的发展和数据挖掘的应用,数据仓库和联机分析技术,数据预处理技术(数据清理、数据集成和转换、数据归约),数据挖掘技术(数据的分类、预测、关联和聚类),先进数据库系统中的数据挖掘方法,以及数据挖掘的应用和一些具有挑战性的问题。书中注重实效,在讨论概念与技术时辅以实例,并提供代表性算法。
l九度链接
http://t.jobdu.com/thread-1285-1-1.html
5.《数据库原理、编程与性能》
l推荐理由
本书既强调理论又强调应用,全书众多的定义、定理、详细的证明过程、丰富的应用实例使得本书翻之有望而生畏之感,读之又有畅快淋漓之觉。实在是一本不可多得的好书,值得大家认真去学。
本书是在波士顿马萨诸塞大学数据库入门和提高等一系列教材的基础上写成的,从理论和实际两方面详细介绍了数据库的设计和实现。本书把重点放在对象一关系模型上,介绍了ORACLE、DB2和INFORMIX系统中普遍采用的新概念,并在结合数据库的基本原理和主要的商业数据库产品的基础上介绍了SQL-99。本书涵盖了关系数据库理论、SQL语言、数据库设计以及数据库完整性、视图、安全性、索引、事务管理等各个方面的内容。
l九度链接
http://t.jobdu.com/thread-1288-1-1.html
6.《数据库系统实现》
l推荐理由
这本阐述了实现关系数据库系统各个层面的关键技术。从存储,Index,SQL compiler,optimizer, log,事务等关键技术一一讲到。而且讲解的方法非常令人称道,一直遵循提出问题,最直观的解决方法,更复杂,更有效的解决方法。一路讲来,令人豁然开朗。
l九度链接
http://t.jobdu.com/thread-1289-1-1.html
7.《数据库处理--基础、设计与实现》
l推荐理由
本书是专为高等院校教授数据库技术撰写的教科书。共分为七大部分,讨论了数据库处理基础、数据建模、执行关系数据库、在Web上发布数据库以及面向对象数据库处理。本书中提供了使用Internet技术发布数据库的最新信息,涉及的技术包括三层结构、Web服务器脚本、XML和OLE DB。本书介绍的最新数据库技术有助于读者设计及使用最新业务和商业应用程序。
l九度链接
http://t.jobdu.com/thread-1290-1-1.html
8.《SQL语言艺术》
l推荐理由
《SQL语言艺术》适合SQL数据库开发者、软件架构师,也适合DBA,尤其是数据库应用维护人员阅读
《SQL语言艺术》由资深 SQL 专家 Stéphane Faroult倾力打造、《软件架构设计》作者温昱最新译作。
《SQL语言艺术》巧妙借鉴《孙子兵法》的智慧结晶、传授25年的SQL性能与调校经验、并深入探讨九种常见查询方案及其性能。
l九度链接
http://t.jobdu.com/thread-145-1-2.html
9.《SQL必知必会》
l推荐理由
SQL 是目前使用最为广泛的数据库语言之一。本书没有涉及理论,而是从实践出发,由浅入深地讲解了广大读者所必需的SQL 知识,适用于各种主流数据库。实例丰富,便于查阅。本书涉及不同平台上数据的排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容,通过本书读者可以系统地学习到SQL 的知识和方法。
本书注重实用性,操作性很强,适合于SQL 的初学者学习和广大软件开发及管理人员参考。
l九度链接
http://t.jobdu.com/thread-144-1-2.html
回复 引用 报告 TOP
wangxuyang666
xuyang


九度论坛管理员


UID27824 帖子450 积分25652 九度威望304  九度贡献24744  目前职业学生 就职企业浙江大学 最后登录2013-5-21 
11楼
发表于 2011-1-4 21:48 | 只看该作者
网络篇
1.《UNIX网络编程》
l推荐理由
《UNIX网络编程》(第1卷)(套接口API第3版)第1版和第2版由已故UNIX网络专家W. Richard Stevens博士独自编写。《UNIX网络编程》(第1卷)(套接口API第3版)是3版,由世界著名网络专家Bill Fenner和Andrew M. Rudoff执笔,根据近几年网络技术的发展,对上一版进行全面修订,增添了IPv6的更新过的信息、SCTP协议和密钥管理套接口的内容,删除了 X/Open传输接口的内容。
  《UNIX网络编程》(第1卷)(套接口API第3版)内容详尽且具权威性,几乎每章都提供精选的习题,是计算机和网络专业高年级本科生和研究生的首选教材,《UNIX网络编程》(第1卷)(套接口API第3版)也可作为网络研究和开发人员的自学教材和参考书。
l九度链接
http://t.jobdu.com/thread-1276-1-1.html


2.《Unix网络编程(第二卷):进程间通信》
l推荐理由
《UNIX网络编程 卷2:进程间通信(英文版·第2版)》:两卷本的《UNIX网络编程》是已故著名技术作家W.Richard Stevens的传世之作。卷2着重讨论如何让应用程序与在其他机器上的应用程序进行对话。
   良好的进程间通信(IPC)机制是提高UNIX程序性能的关键。《UNIX网络编程 卷2:进程间通信(英文版·第2版)》全面深入地讲解了各种进程间通信形式,包括消息传递、同步、共享内存及远程调用(RPC)。书中包含了大量经过优化 的源代码,帮助读者加深理解。这些源代码可以从图灵网站《UNIX网络编程 卷2:进程间通信(英文版·第2版)》网页免费注册下载。
  《UNIX网络编程 卷2:进程间通信(英文版·第2版)》是网络研究和开发人员公认的权威参考书,深入理解《UNIX网络编程 卷2:进程间通信(英文版·第2版)》内容,方能设计出良好的UNIX软件。
l九度链接
http://t.jobdu.com/thread-1278-1-1.html


3.《C++网络编程 卷1:运用ACE和模式消除复杂性》
l推荐理由
本书讨论了网络计算系统中基础设施软件——中间件。本书提供了一种如何应用自适应通信环境ACE和能够运行多种硬件平台和操作系统的开发源框架,来开发和 优化复杂分布系统的实际解决方案,指导软件专业人员如何开发高效、可移植和灵活的并发网络应用系统程序。全书分为三部分,内容包括网络应用面临的挑战,面 向对象的中间件解决方案,自适应通信环境ACET具包,面向对象的网络编程技术,面向并发对象的网络编程等。本书对于想了解和掌握如何应用C++和面向对 象设计技术,从策略和技术上进行并发网络应用系统程序设计开发的软件工程师和研究生及高年级本科生具有很好的参考价值。
l九度链接
http://t.jobdu.com/thread-1282-1-1.html


4.《C++网络编程,卷2:基于ACE和框架的系统化复用》
l推荐理由
《C++网络编程》系列正是帮助我们进入一个更 好的网络化应用开发世界的台阶。在卷1中,两位作者,Douglas C. Schmidt与Stephen D.Huston,从对编写并发网络化应用所涉及的问题和工具进行综述开始,向我们介绍了开发灵活而高效的并发网络化应用所需的各种设计维度、模式和原 则。通过对卷1的学习,你将能够了解怎样在将C++和模式有效地应用于开发面向对象网络化应用的同时,增强自己的设计技能。而在卷2中,两位作者将向我们 描述ACE框架的设计原理,以及它们可以怎样帮助开发者在较低级的本地操作系统API和较高级的分布式对象计算中间件的局限之间“航行”;前者既不灵活也 不可移植,而后者对有着苛刻的QoS和可移植性需求的网络化应用来说,常常缺乏效率和灵活性。传统上,生成和使用网络化应用框架所需的技能被锁在专家开发 者的头脑中,或是深深地埋藏在散布于企业或是行业各处的众多项目的源代码中。这两种情况当然都不理想,因为要为每个新的应用或项目重新获取这些知识,既费 时又易出错。为解决这一问题,卷2阐释了在ACE框架的结构和功能之下的各种关键模式;这同时也将会帮助我们理解ACE自身的设计、实现,以及有效使用。
l九度链接
http://t.jobdu.com/thread-1280-1-1.html


5.《TCP/IP详解卷1:协议》
l推荐理由
《TCP/IP详解卷1:协议》是一本完整而详细的TCP/IP协议指南。 《TCP/IP详解卷1:协议》适合作为计算机专业学生学习网络的教材和教师参考书。也适用于研究网络的技术人员。
W. Richard Stevens 国际知名的UNIX和网络专家,备受赞誉的技术作家。他1951年2月5日出生于赞比亚,后随父母回到美国。中学时就读于弗吉尼亚菲什伯恩军事学 校,1973年获得密歇根大学航空和航天工程学士学位。1975年至1982年,他在亚利桑那州图森市的基特峰国家天文台从事计算机编程工作,业余时间喜 爱飞行运动,做过兼职飞行教练。这期间他分别在1978年和1982年获得亚利桑那大学系统工程硕士和博士学位。此后他去康涅狄格州纽黑文的健康系统国际 公司任主管计算机服务的副总裁。1990年他回到图森,从事专业技术写作和咨询工作。写下了多种经典的传世之作,包括《TCP/IP详解》(三卷)、 《UNIX环境高级编程》和《UNIX网络编程》(两卷)。Stevens于1999年9月1日去世,年仅48岁。2000年他被国际权威机构 USENIX追授“终身成就奖”。
l九度链接
http://t.jobdu.com/thread-1301-1-1.html


6.《TCP-IP详解卷二:实现》
l推荐理由
《TCP》针对任何希望理解TCP/IP协议是如何实现的读者设计;无论是编写网络应用的程序员,负责利用TCP/TP维护计算机系统和网络的系统管理员,还是任何有兴趣理解大块非凡代码的普通读者;本书都是一本优秀的教科书。
l九度链接
http://t.jobdu.com/thread-1302-1-1.html


7.《TCP-IP详解卷三:TCP事务协议,HTTP,NNTP和UNIX域协议》
l推荐理由
《CP.IP详解(卷3):CP事务协议.HP.P和UNIX域协议》同样采用了大量的实例和实现细节,并参考引用了卷2中的大量源程序。《CP.IP详解 (卷3):CP事务协议.HP.P和UIX域协议》适用于希望理解CP/IP如何工作的人,包括编写网络应用程序的程序员以及利用CP/IP维护计算机网 络的系统管理员。《CP.IP详解(卷3):CP事务协议.HP.P和UIX域协议》的特点是内容丰富,概念清楚且准确,讲解详细,例子很多。作者在书中 举出的所有例子均在作者安装的计算机网络上经过实际验证。在《CP.IP详解(卷3):CP事务协议.HP.P和UIX域协议》的最后,作者给出了许多经 典的参考文献,并一一写出评注。
l九度链接
http://t.jobdu.com/thread-1303-1-1.html

数学篇
1.《具体数学--计算机科学基础》
l推荐理由
如果从数学分支去概括,《具体数学》所涉及的内容基本上没有超出计数组合数学和分析组合数学的范围,间或涉及一点数论和离散概率内容,但对这些内容的取舍依然具有很强的组合数学趣味。
计算机科学的数学工具箱——这就是《具体数学》要扮演的角色。在这个角色上,它是独一无二的。
l九度链接
http://t.jobdu.com/thread-1294-1-1.html
2.《组合数学》
l推荐理由
《组合数学》是系统阐述组合数学基础、理论、方法和实例的优秀教材,出版近30年来多次改版,被MIT、哥伦比亚大学、UIUC、威斯康星大学等众多国外高校采用,对国内外组合数学教学产生了较大影n向,也是相关学科的主要参考文献之一。
l九度链接
http://t.jobdu.com/thread-1292-1-1.html
3.《离散数学》
l推荐理由
本书共分15章,包括离散数学的最基本内容,其中包括:集合、关系、函数与算法、逻辑、向量与矩阵、计数、概率、图论、有向图、二叉树、整数的性质、代数系统、形式语言与自动机、有序集与格及布尔代数的性质.本书的特点是叙述清楚、浅显易懂、简洁明快,内容多而不杂、占有材料量大,十分易于自学.章后配有问题和解答与补充题,几乎占全书的一半以上的篇幅,提供了大量练习和学习的机会.本书是一本优秀的参考书。
l九度链接
http://t.jobdu.com/thread-1293-1-1.html
4.《离散数学及其应用》
l推荐理由
用什么样的语言来形容其特色呢?两个字--"简单"。为什么说这本书简单呢?这里的简单又指的是哪个方面呢?要知道,进入本科层次后,数学就从来不是一门简单的课程。而离散数学又是一门涵盖集合论、图论、组合学、数理逻辑、抽象代数、线性代数、差分方程、离散概率论等学科,探讨离散对象,研究离散结构以建立客观事物应用模型的课程。要将她表述得足够简单似乎是一件不可能的事情。Rosen的这本书却做到了这一点,可见作者之功力。
l九度链接
http://t.jobdu.com/thread-1297-1-1.html
5.《概率与统计》
l推荐理由
本书共分两部分:概率和统计。共计10章。全书以简洁的形式介绍了概率与统计的基本知识和基本理论。内容通俗易懂,叙述简明扼要,重点和要点突出,尤其是书中760 道习题及解答对学生理解书中的内容大有益处。
l九度链接
http://t.jobdu.com/thread-1298-1-1.html
6.《数字原理》
l推荐理由
本书为“全美经典学习指导系列”之一。
本书为大学工科电子技术类基础课教学参考书。本书主要内容有数制与编码、逻辑门、逻辑电路的化简、TTL和CMOS集成电路、数码转换、二进制运算及其运算电路、触发器和多谐振荡器、计数器、移位寄存器、存储器以及其他器件和技术。本书结构合理,便于读者逐步掌握数制理论及设备器件等知识,并介绍解决实际相关问题的方法。
l九度链接
http://t.jobdu.com/thread-1299-1-1.html
7.《数论导引》
l推荐理由
本书是一本经典的数论名著,取材于作者在牛津大学、剑桥大学等大学授课的讲义。主要包括素数理论、无理数、费马定理、同余式理论、连分数、用有理数逼近无理数、不定方程、二次域、算术函数、数的分划等内容。每章章末都提供了相关的附注,书后还附有译者编写的相关内容的最新进展,便于读者进一步学习。
l九度链接
http://t.jobdu.com/thread-1300-1-1.html
回复 引用 报告 TOP
wangxuyang666
xuyang


其他篇
1.《Python语言入门》
l推荐理由
书中描述了Python程序的基本构件:类型、操作符、语句、函数、模块、类以及异常,此外还介绍了更多高级主题,包括复杂的实例,最后讲述了如何使用Python定制库来创建大型程序。
l九度链接
http://t.jobdu.com/thread-111-1-1.html


2.《计算机图形学的算法基础》
l推荐理由
本书从图形学最基础的光栅扫描、区域填充、画直线和圆弧等算法讲起,详细介绍了线裁剪和面裁剪、凸区域裁剪和凹区域裁剪的异同,景物空间消隐算法和图像空间消隐算法的差别,具体讲述了二叉空间剖分(BSP)、八叉树等图形学中常用的数据结构。新版本增加了图形用户界面、椭圆、图像压缩和线条反走样算法等,还增加了Liang-Barsky裁剪算法和Nicholl-Lee- Nicholl裁剪算法。新版本大大扩充了可见面光线跟踪算法。在绘制这一章中新增了基于物理的光照明模型,透明效果,阴影生成,纹理映射,以及锥光束、平面光束、笔形光束和随机光线跟踪算法;详细讨论了光辐射度基础,统一颜色空间,彩色图象量化和印刷介质上的颜色重现等新内容。本书列举了90个例子,具体描述了各类算法的执行细节。这对初学者体会算法的基本原理,比较各类算法执行时的细微差别大有禅益。具备大学数学基础和高级程序设计语言知识的人均可自学本书。
本书适合专业程序员、工程师及科研人员使用。非常适用于作为为高年级本科生和一年级研究生开设的重点讲授绘制技术的计算机图形学课程的教科书。
l九度链接
http://t.jobdu.com/thread-165-1-2.html


3.《OpenGL SuperBible》4th Edition
l推荐理由
OpenGL ® SuperBible, Fourth Edition, begins by illuminating the core techniques of “classic” OpenGL graphics programming, from drawing in space to geometric transformations, from lighting to texture mapping. The authors cover newer OpenGL capabilities, including OpenGL 2.1’s powerful programmable pipeline, vertex and fragment shaders, and advanced buffers. They also present thorough, up-to-date introductions to OpenGL implementations on multiple platforms, including Windows, Mac OS X, GNU/Linux, UNIX, and embedded systems.
  Coverage includes
  · An entirely new chapter on OpenGL ES programming for handhelds
  · Completely rewritten chapters on OpenGL for Mac OS X and GNU/Linux
  · Up-to-the-minute coverage of OpenGL on Windows Vista
  · New material on floating-point color buffers and off-screen rendering
  · In-depth introductions to 3D modeling and object composition
  · Expert techniques for utilizing OpenGL’s programmable shading language
  · Thorough coverage of curves, surfaces, interactive graphics, textures, shadows, and much more
  · A fully updated API reference, and an all-new section of full-color images
   You’ll rely on this book constantly–whether you’re learning OpenGL for the first time, deepening your graphics programming expertise, upgrading from older versions of OpenGL, or porting applications from other environments.
l九度链接
       http://t.jobdu.com/thread-147-1-2.html


4.《Perl语言编程》
l推荐理由
这不仅仅是一本关于Perl的书籍,更是一本独一无二的开发者自己介绍该语言及其文化的书籍。Larry Wall是Perl的开发者,他就这种语言的未来发展方向提出了自己的看法。Tom Christiansen是最早的几个拥护者之一,也是少数几个在错综复杂的中游刃有余的人之一。Jon Orwant是《Perl Journal》的主编,该杂志把Perl社区组合成了一个共同的论坛,以进行Perl新的开发。
l九度链接
http://t.jobdu.com/thread-103-1-2.html


5.《Perl编程金典》
l推荐理由
本书是国际知名编程语言专家精心撰写的一本综合性的编程教材,详尽地阐述使用Perl进行控制结构化编程的原理,解释了如何将Perl作为一种常规用途的编程语言使用,以及如何编写混合型的、客户机服务器的、支持数据库的因特网与万维网应用。 
本书还提供了数百个“活代码”示例程序和数百个良好编程习惯提示、常见编程错误、性能提示、可移植性等编程提示或技巧,引导读者关注程序开发、测试/调试以及性能可移植性等重要方面,有助于不同层次编程人员简便、快速地构建最出色的软件。 
本书的读者对象为计算机软件、系统和网络编程人员,大学计算机相关专业本科生和研究生。
因为公司正好有这本书就借来看了看。很明显这是本面向Perl初学者的书,准确的说是没有任何编程基础的读者,因为书中讲了大量篇幅的数据结构等基础知识。本书现在看来版本也比较陈旧了,因为书中大篇幅 网络编程的介绍在这几年突飞猛进发展中已经有了很大变化。实例代码也太长了,不够精简
l九度链接
http://t.jobdu.com/thread-105-1-2.html


6.《Perl语言入门》
l推荐理由
《Perl语言入门》也就是大家所称的“小骆驼 书”,是启发程序设计人员关于Perl的奥秘之道的一本书。本书由3位在Perl社区中极负盛名的人物共同执笔,他们都有数年教授Perl的经验而且足迹 遍布全世界。本书第四版纳入了Perl语言直到Perl5.8所做的最新变动。
  Perl是一个能让你把事情做好的程序语言。Perl最初是 Unix系统管理员的工具,平日用来处理无数繁琐的事务。时至今日,Perl已发展成一套功能齐备的程序语言,横跨所有的操作平台,其用途虽包括Web程 序设计、数据库操作、XML处理以及系统管理,却仍不失为日常用来处理繁琐事务的完美工具。许多人是迫于需要而使用Perl,却往往由于爱不释手而结下不 解之缘。
  在作者群多年教授Perl的经验之下,“小骆驼书”以新的面貌重生了,既能让初次接触Perl的读者容易理解,又保留了翔实的讨论、齐全的范例以及著名的巧思妙语。
  本书加入了许多新的习题与解答,让读者能够趁记忆犹新之际锻炼所学到的技巧。
  本书内容涵盖:
  ● Perl的变量类型
  ● 文字的处理
  ● 子例程
  ● 字符串与排序
  ● 文件的操作
  ● 进程的管理
  ● 正则表达式
  ● 模块的使用
  如果你问今日的Perl程序员,当初他们学习Perl的时候最值得信赖的参考书是哪一本,你会发现“小骆驼书”就是绝大多数的答案。原因不证自明,其他的书也许会教你如何写出Perl程序,但本书却能将你造就成真正的Perl程序员。
l九度链接
http://t.jobdu.com/thread-104-1-2.html


7.《深入学习Python程序开发》
l推荐理由
本书以翔实的内容和详尽信息资源并举的方式系统地介绍了自由、开源、跨平台的面向对象高层编程语言和网络服务器端脚本语言--Python。从 Python编程语言的发展、特征、支持源、安装步骤、语言基础、主要模块扩展、异常处理以及面向对象思想的介绍入手,讨论了扩展和嵌入Python、对 象接口和分布、数据库编程以及其他高级编程主题。探讨了使用Python程序实现基础网络思想、网络开发、脚本编程以及数据分析和处理等网络编程主题。同 时介绍了Python图形界面设计中的GUI选项、主要GUI开发环境和编程工具。最后重点介绍了Python的Java实现--JPython. 本书内容丰富、叙述清晰、循序渐进,是国内第一本专门介绍Python的译著,由于其中包括丰富的资源Web链接,因而也可以作为信息指南使用。本书适用 于各级别的计算机用户。
l九度链接
http://t.jobdu.com/thread-112-1-2.html


8.《Python技术参考大全》
l推荐理由
本书详细讲述了Python语言的各个方面,是一本极具参考价值的Python编程手册。在简单介绍了Python的基本原理和组成之后,本书给出大量示 例,循序渐进、深入浅出地讲述了Python的核心内容、应用开发及相关细节。本书由经验丰有的专家编写,作者由浅入深地阐述了Pyuthon语言。全书 共分为六个部分和两个附录,讲述了Python语言的基本原理、标准库、快速开发应用程序的方法、web开发方法、跨平台开发方法以及其内部机制,在附录 中还提供了Python的库指南和资源信息。同时,本书说明了使用Python作为快速应用程序开发工具的原因和方法,并阐述了如何阅读和编写优秀文档与 信息、如何利用C扩展和嵌入Python的方法。
l九度链接
http://t.jobdu.com/thread-110-1-2.html


9.《Python 编程指南》
l推荐理由
编辑推荐:本书是一本全面介绍Python语言的书籍,作者首先简明扼要地介绍了Python的语句、模块、数据类型、函数和模块等基础知识,然后通过大 量的示例程序,详细介绍了Python在Tkinter脚本、数据库、数学/科学函数、服务器、字符串和其他数据类型、系统操作、游戏和人工智能方面的应 用。并且作者将Python的FAQ放在本书的附录中,方便读者查阅。 本书适合Python初学者,对于有一定C语言。
l九度链接
http://t.jobdu.com/thread-109-1-2.html


10.《Python核心编程》
l推荐理由
本书是Python开发者的完全指南——针对 Python 2.5全面升级
  ·学习专业的Python风格、最佳实践和好的编程习惯;
  ·加强对Python对象、内存模型和Python面向对象特性的深入理解;
  ·构建更有效的Web、CGI、互联网、网络和其他客户端/服务器架构应用程序及软件;
  ·学习如何使用Python中的Tkinter和其他工具来开发自己的GUI应用程序及软件;
  ·通过用C等语言编写扩展来提升Python应用程序的性能,或者通过使用多线程增强I/0相关的应用程序的能力;
  ·学习Python中有关数据库的API,以及如何在Python中使用各种不同的数据库系统,包括MySQL、Postgres和 SQLite。
l九度链接
http://t.jobdu.com/thread-108-1-2.html


11.《C#程序员参考手册》
l推荐理由
本书非常适合于已了解C#的基本知识,但需要该语言和常用类库的简明参考的读者。虽然本书的目的不是作为指财,但它对以下读者也是很适合的:已了解一种与 C语法类似的语言的读者。希望通过简短的代码示例学习编程语言的读者。有一定C#编程经验,但最喜欢在编写代码时手边有一本参考书的读者。
在微软为.NET Framework推出的各种语言中,综合了Visual Basic的高效性和C/C++的强大功能的C#己成为最受青睐的语言。其现代、简单、完全面向对象和类型安全的特性使它成为下一代的分布式应用程序的主流开发语言。 
本书对C#的主要功能和核心类库提供了一个快速的参考。本书讲述了各种C#概念和特性,如类型系统、运算符、局部变量、数组、类、结构、枚举、字段、方 法、属性、委托、事件、属性标志、系统类、集合、反射和正则表达式等。全书章节段落结构清楚,内容简明,切中要点,反映了作者多年的编程经验。 
本书适合于需要C#语言和.NET Framework类库的快速参考的程序员和希望通过代码示例学习编程的程序员阅读。
l九度链接
http://t.jobdu.com/thread-68-1-3.html


12.《C#完全手册》
l推荐理由
C#在Microsoft.net初始版本中占中心位置,是Microsoft公司开发的一种最新的面向对象编程语言,它结合了C++的强大功能和 Visual Basic的易用性。本书分为三部分来帮助读者学习C#语言。第一部分提供了对C#语言的全面讨论, 描述了C#语言里定义的关键字、语句和特性。同时介绍了I/O、文件处理、映射和预处理程序。第二部分讨论了C#类库, 它也是.NET框架类库。 由于篇幅有。
l九度链接
http://t.jobdu.com/thread-66-1-3.html


13.《C# 精髓》
l推荐理由
本书将简明扼要地介绍C#(读如C Sharp)语言和.NET框架,使读者能够尽快掌握这项最新的开发技术。C#和.NET的序幕是在2000年7月佛罗里达州奥兰多市举行的 Microsoft专业开发人员大会(Professional Developers Conference,PDC)上揭开的。此后很快,.NET SDK(Software Development Kit)就在Internet上发布了。 本书是以Microsoft.NET SDK beta版为基础的。C#语言和.NET框架(Framework)将来还会继续发展。要跟上最新趋势,请经常访问“C#在线资源”一节中列出的网上资 源,以及O'Reilly网站中为本书设置的网页(参见“建议与评论”)。 本书读者虽然我们尽力使本书对所有要学习C#的人都有所裨益,但是本书的主要读者还是已经熟悉C++,Smalltalk,Java或Delphi(译注1)等面 向对象语言的开发人员。C#可以用于编写Web应用程序和服务,以及传统的独立程序或客户/服务器程序。具备这些领域的经验当然有助于更快地掌握C#语言 和.NET框架,但这不是必需的。
l九度链接
http://t.jobdu.com/thread-65-1-3.html


14.《C#入门经典》
l推荐理由
《C语言入门经典(第4版)》是编程语言先驱者Ivor Horton的经典之作,是C语言方面最畅销的图书品种之一。《C语言入门经典(第4版)》集综合性、实用性为一体,是学习C语言的优秀入门教材,在世界 范围内广受欢迎,口碑极佳。书中除了讲解C程序设计语言,还广泛介绍了作为一名C程序设计人员应该掌握的必要知识,并提供了大量的实用性很强的编程实例。
l九度链接
http://t.jobdu.com/thread-64-1-3.html


15.《游戏之旅-我的编程感悟》
l推荐理由
这是一本非常有特色的计算机编程学习书籍。其特色就在于它将作者十余年来对游戏编程的所思、所感、所悟与编程理论知识相结合,褪去了纯理论的教学理念,使读者在前人的学习过程中吸取学习经验和教训,将计算机基础知识和高级编程技术不知不觉地融入自己的头脑中。  
本书忠实地记录了作者十余年来对游戏编程的所思、所感、所悟。全书按照作者本人学习和实践的过程,带着读者从基础的计算机知识到高级的编程技术,从非常专业的汇编优化到非常实际的项目管理进行了一次游戏开发的全景探索。 
  本书不仅适合游戏开发者阅读,也会给所有的开发者和程序爱好者带来启示。
l九度链接
http://t.jobdu.com/thread-916-1-1.html


16.《GNU make中文手册v3.80》
l推荐理由
本书的所有的例子都可以在支持V3.8版本的GNU make的系统中正确执行。可以在以下主页看到所有的章节。其中包括了PDF文档和HTML文档的下载链接。
目前3.80版本的中文还在整理中,当前文档版本为v1.5,是在原来v1.3的基础上,根据关大网友和linuxer的反馈修正了其中一些错误的描述。后续将继续根据大家的意见反馈对此中文文档进行不断地更新。并将加入一些实际工程开发的应用实例。希望广大Linuxer爱好者一同携手,将它整理成为GNU 软件开发的一本工具书。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第1章 声明和初始化 基本类型 1.1 我该如何决定使用哪种整数类型? 1.2 为什么不精确定义标准类型的大小? 1.3 因为C语言没有精确定义类型的大小,所以我一般都用typedef定义int16和int32。然后根据实际的机器环境把它们定义为int、short、long等类型。这样看来,所有的问题都解决了,是吗? 1.4 新的64位机上的64位类型是什么样的? 指针声明 1.5 这样的声明有什么问题?char*p1,p2;我在使用p2的时候报错了。 1.6 我想声明一个指针,并为它分配一些空间,但却不行。这样的代码有什么问题?char*p;*p=malloc(10); 声明风格 1.7 怎样声明和定义全局变量和函数最好? 1.8 如何在C中实现不透明(抽象)数据类型? 1.9 如何生成“半全局变量”,就是那种只能被部分源文件中的部分函数访问的变量? 存储类型 1.10 同一个静态(static)函数或变量的所有声明都必需包含static存储类型吗? 1.11 extern在函数声明中是什么意思? 1.12 关键字auto到底有什么用途? 类型定义(typedef) 1.13 对于用户定义类型,typedef和#define有什么区别? 1.14 我似乎不能成功定义一个链表。我试过typedefstruct{char*item;NODEPTRnext;}*NODEPTR;但是编译器报了错误信息。难道在C语言中结构不能包含指向自己的指针吗? 1.15 如何定义一对相互引用的结构? 1.16 Struct{ }x1;和typedefstruct{ }x2;这两个声明有什么区别? 1.17 “typedefint(*funcptr)();”是什么意思? const限定词 1.18 我有这样一组声明:typedefchar*charp;constcharpp;为什么是p而不是它指向的字符为const? 1.19 为什么不能像下面这样在初始式和数组维度值中使用const值?constintn=5;inta[n]; 1.20 constchar*p、charconst*p和char*constp有什么区别? 复杂的声明 1.21 怎样建立和理解非常复杂的声明?例如定义一个包含N个指向返回指向字符的指针的函数的指针的数组? 1.22 如何声明返回指向同类型函数的指针的函数?我在设计一个状态机,用函数表示每种状态,每个函数都会返回一个指向下一个状态的函数的指针。可我找不到任何方法来声明这样的函数——感觉我需要一个返回指针的函数,返回的指针指向的又是返回指针的函数……,如此往复,以至无穷。 数组大小 1.23 能否声明和传入数组大小一致的局部数组,或者由其他参数指定大小的参数数组? 1.24 我在一个文件中定义了一个extern数组,然后在另一个文件中使用,为什么sizeof取不到数组的大小? 声明问题 1.25 函数只定义了一次,调用了一次,但编译器提示非法重声明了。 *1.26 main的正确定义是什么?voidmain正确吗? 1.27 我的编译器总在报函数原型不匹配的错误,可我觉得没什么问题。这是为什么? 1.28 文件中的第一个声明就报出奇怪的语法错误,可我看没什么问题。这是为什么? 1.29 为什么我的编译器不允许我定义大数组,如doublearray[256][256]? 命名空间 1.30如何判断哪些标识符可以使用,哪些被保留了? 初始化 1.31 对于没有显式初始化的变量的初始值可以作怎样的假定?如果一个全局变量初始值为“零”,它可否作为空指针或浮点零? 1.32 下面的代码为什么不能编译?intf(){chara[]="Hello,world!";} *1.33 下面的初始化有什么问题?编译器提示“invalidinitializers”或其他信息。char*p=malloc(10); 1.34 chara[]="stringliteral";和char*p="stringliteral";初始化有什么区别?当我向p[i]赋值的时候,我的程序崩溃了。 1.35 chara{[3]}="abc";是否合法? 1.36 我总算弄清楚函数指针的声明方法了,但怎样才能初始化呢? 1.37 能够初始化联合吗? 第2章 结构、联合和枚举 结构声明 2.1 structx1{ };和typedefstruct{ }x2;有什么不同? 2.2 这样的代码为什么不对?structx{ };xthestruct; 2.3 结构可以包含指向自己的指针吗? 2.4 在C语言中用什么方法实现抽象数据类型最好? *2.5 在C语言中是否有模拟继承等面向对象程序设计特性的好方法? 2.6 为什么声明externf(structx*p);给我报了一个晦涩难懂的警告信息? 2.7 我遇到这样声明结构的代码:structname{intnamelen;charnamestr[1];};然后又使用一些内存分配技巧使namestr数组用起来好像有多个元素,namelen记录了元素个数。它是怎样工作的?这样是合法的和可移植的吗? 2.8 我听说结构可以赋给变量也可以对函数传入和传出。为什么K&R1却明确说明不能这样做? 2.9 为什么不能用内建的==和!=操作符比较结构? 2.10结构传递和返回是如何实现的? 2.11 如何向接受结构参数的函数传入常量值?怎样创建无名的中间的常量结构值? 2.12 怎样从/向数据文件读/写结构? 结构填充 2.13 为什么我的编译器在结构中留下了空洞?这导致空间浪费而且无法与外部数据文件进行“二进制”读写。能否关掉填充,或者控制结构域的对齐方式? 2.14 为什么sizeof返回的值大于结构大小的期望值,是不是尾部有填充? 2.15 如何确定域在结构中的字节偏移量? 2.16 怎样在运行时用名字访问结构中的域? 2.17 C语言中有和Pascal的with等价的语句吗? 2.18 既然数组名可以用作数组的基地址,为什么对结构不能这样? 2.19 程序运行正确,但退出时却“coredump”(核心转储)了,怎么回事? 联合 2.20 结构和联合有什么区别? 2.21 有办法初始化联合吗? 2.22 有没有一种自动方法来跟踪联合的哪个域在使用? 枚举 2.23 枚举和一组预处理的#define有什么不同? 2.24 枚举可移植吗? 2.25 有什么显示枚举值符号的容易方法吗? 位域 2.26 一些结构声明中的这些冒号和数字是什么意思? 2.27 为什么人们那么喜欢用显式的掩码和位操作而不直接声明位域? 第3章 表达式 求值顺序 3.1 为什么这样的代码不行?a[i]=i++; 3.2 使用我的编译器,下面的代码inti=7;printf("%d\n",i++*i++);打印出49。不管按什么顺序计算,难道不该是56吗? 3.3 对于代码inti=3;i=i++;不同编译器给出不同的i值,有的为3,有的为4,哪个是正确的? *3.4 有这样一个巧妙的表达式:a^=b^=a^=b;它不需要临时变量就可以交换a和b的值。 3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副作用?就算括号不行,操作符优先级是否能够控制计算顺序呢? 3.6 可是&&和||操作符呢?我看到过类似while((c=getchar())!=EOF&&c!='\n')的代码…… 3.7 是否可以安全地认为,一旦&&和||左边的表达式已经决定了整个表达式的结果,则右边的表达式不会被求值? 3.8 为什么表达式printf("%d%d",f1(),f2());先调用了f2?我觉得逗号表达式应该确保从左到右的求值顺序。 3.9 怎样才能理解复杂表达式并避免写出未定义的表达式?“序列点”是什么? 3.10在a[i]=i++;中,如果不关心a[]的哪一个分量会被写入,这段代码就没有问题,i也的确会增加1,对吗? 3.11 人们总是说i=i++的行为是未定义的。可我刚刚在一个ANSI编译器上尝试过,其结果正如我所期望的。 3.12 我不想学习那些复杂的规则,怎样才能避免这些未定义的求值顺序问题呢? 其他的表达式问题 *3.13 ++i和i++有什么区别? 3.14 如果我不使用表达式的值,那我应该用i++还是++i来做自增呢? 3.15 我要检查一个数是不是在另外两个数之间,为什么if(abc)不行? 3.16 为什么如下的代码不对?inta=1000,b=1000;longintc=a*b; 3.17 为什么下面的代码总是给出0?doubledegC,degF;degC=5.0/9*(degF-32); 3.18 需要根据条件把一个复杂的表达式赋给两个变量中的一个。可以用下面这样的代码吗?((condition)?a:b)=complicated_expression; 3.19 我有些代码包含这样的表达式。a?b=c:d有些编译器可以接受,有些却不能。为什么? 保护规则 3.20 “semanticsof‘’changeinANSIC”的警告是什么意思? 3.21 “无符号保护”和“值保护”规则的区别在哪里? 第4章 指针 基本的指针应用 4.1 指针到底有什么好处? 4.2 我想声明一个指针并为它分配一些空间,但却不行。这些代码有什么问题呢?char*p;*p=malloc(10); 4.3 *p++自增p还是p所指向的变量? 指针操作 4.4 我用指针操作int数组的时候遇到了麻烦。 4.5 我有一个char*型指针碰巧指向一些int型变量,我想跳过它们。为什么((int*)p)++;这样的代码不行? 4.6 为什么不能对void*指针进行算术操作? 4.7 我有些解析外部结构的代码,但是它却崩溃了,显示出了“unalignedaccess”(未对齐的访问)的信息。这是什么意思? 作为函数参数的指针 4.8 我有个函数,它应该接受并初始化一个指针:voidf(int*ip){staticintdummy=5;ip=&dummy;}但是当我如下调用时:int*ip;f(ip);调用者的指针没有任何变化。 4.9 能否用void**通用指针作为参数,使函数模拟按引用传递参数? 4.10 我有一个函数externintf(int*);,它接受指向int型的指针。我怎样用引用方式传入一个常数?调用f(&5);似乎不行。 4.11 C语言可以“按引用传参”吗? 其他指针问题 4.12 我看到了用指针调用函数的不同语法形式。到底怎么回事? 4.13 通用指针类型是什么?当我把函数指针赋向void*类型的时候,编译通不过。 4.14 怎样在整型和指针之间进行转换?能否暂时把整数放入指针变量中,或者相反? *4.15 我怎样把一个int变量转换为char*型?我试了类型转换,但是不行。 第5章 空指针 空指针和空指针常量 5.1 臭名昭著的空指针到底是什么? 5.2 怎样在程序里获得一个空指针? 5.3 用缩写的指针比较“if(p)”检查空指针是否有效?如果空指针的内部表达不是0会怎样? NULL宏 5.4 NULL是什么,它是怎么定义的? 5.5 在使用非零位模式作为空指针的内部表示的机器上,NULL是如何定义的? 5.6 如果NULL定义成#defineNULL((char*)0),不就可以向函数传入不加转换的NULL了吗? 5.7 我的编译器提供的头文件中定义的NULL为0L。为什么? 5.8 NULL可以合法地用作函数指针吗? 5.9 如果NULL和0作为空指针常量是等价的,那我到底该用哪一个呢? 5.10但是如果NULL的值改变了,比如在使用非零内部空指针的机器上,用NULL(而不是0) 不是更好吗? 5.11 我曾经使用过一个编译器,不使用NULL就不能编译。 5.12 我用预处理宏#defineNullptr(type)(type*)0帮助创建正确类型的空指针。 回顾 59 5.13 这有点奇怪:NULL可以确保是0,但空(null)指针却不一定? 5.14 为什么有那么多关于空指针的疑惑?为什么这些问题如此频繁地出现? 5.15 有没有什么简单点儿的办法理解所有这些与空指针有关的东西呢? 5.16 考虑到有关空指针的所有这些困惑,要求它们的内部表示都必须为0不是更简单吗? 5.17 说真的,真有机器用非零空指针吗,或者不同类型用不同的表示? 地址0上到底有什么? 5.18 运行时的整数值0转换为指针以后一定是空指针吗? 5.19 如何访问位于机器地址0处的中断向量?如果我将指针值设为0,编译器可能会自动将它转换为非零的空指针内部表示。 5.20运行时的“nullpointerassignment”错误是什么意思?应该怎样捕捉它? 第6章 数组和指针 数组和指针的基本关系 6.1 我在一个源文件中定义了chara[6],在另一个源文件中声明了externchar*a。为什么不行? 6.2 可是我听说chara[]和char*a是等价的。是这样的吗? 6.3 那么,在C语言中“指针和数组等价”到底是什么意思? 6.4 既然它们这么不同,那为什么作为函数形参的数组和指针声明可以互换呢? 数组不能被赋值 6.5 为什么不能这样向数组赋值?externchar*getpass();charstr[10];str=getpass("Enterpassword:"); 6.6 既然不能向数组赋值,那这段代码为什么可以呢?intf(charstr[]){if(str[0]=='\0')str="none";…} 6.7 如果你不能给它赋值,那么数组如何能成为左值呢? 回顾 6.8 现实地讲,数组和指针的区别是什么? 6.9 有人跟我讲,数组不过是常指针。这样讲准确吗? 6.10 我还是很困惑。到底指针是一种数组,还是数组是一种指针? 6.11 我看到一些“搞笑”的代码,包含5["abcdef"]这样的“表达式”。这为什么是合法的C语言表达式呢? 数组的指针 6.12 既然数组引用会退化为指针,如果array是数组,那么array和&array又有什么区别呢? 6.13 如何声明一个数组的指针? 动态数组分配 6.14 如何在运行时设定数组的大小?怎样才能避免固定大小的数组? 6.15 我如何声明大小和传入的数组一样的局部数组? 6.16 如何动态分配多维数组? 6.17 有个很好的窍门,如果我这样写:intrealarray[10];int*array=&realarray[-1];我就可以把“array”当作下标从1 开始的数组。 函数和多维数组 6.18 当我向一个接受指针的指针的函数传入二维数组的时候,编译器报错了。 6.19 我怎样编写接受编译时宽度未知的二维数组的函数? 6.20 我怎样在函数参数传递时混用静态和动态多维数组? 数组的大小 6.21 当数组是函数的参数时,为什么sizeof不能正确报告数组的大小? 6.22 如何在一个文件中判断声明为extern的数组的大小(例如,数组定义和大小在另一个文件中)?sizeof操作符似乎不行。 6.23 sizeof返回的大小是以字节计算的,怎样才能判断数组中有多少个元素呢? 第7章 内存分配 基本的内存分配问题 7.1 为什么这段代码不行?char*answer;printf("Typesomething:\n");gets(answer);printf("Youtyped\"%s\"\n",answer); 7.2 我的strcat()不行。我试了下面的代码:char*s1="Hello,";char*s2="world!";char*s3=strcat(s1,s2);但是我得到了奇怪的结果。 7.3 但是strcat的文档说它接受两个char*型参数。我怎么知道(空间)分配的事情呢? *7.4 我刚才试了这样的代码:char*p;strcpy(p,"abc");它运行正常。怎么回事?为什么它没有出错? *7.5 一个指针变量分配多少内存? 7.6 我使用fgets将文件的所有行读入一个数组,为什么读入的每一行都是最后一行的内容呢? 7.7 我有个函数,本该返回一个字符串,但当它返回调用者的时候,返回的字符串却是垃圾信息。 为什么? *7.8 那么返回字符串或其他聚集的正确方法是什么呢? 调用malloc 7.9 为什么在调用malloc()时报出了“waring:assignmentofpointerfromintegerlacksacast”? 7.10为什么有些代码小心翼翼地把malloc返回的值转换为分配的指针类型? *7.11 在调用malloc()的时候,错误“不能把void*转换为int*”是什么意思? 7.12 我看到下面这样的代码:char*p=malloc(strlen(s)+1);strcpy(p,s);难道不应该是malloc((strlen(s)+1)*sizeof(char))吗? 7.13 我为malloc写了一个小小的封装函数。它为什么不行? 7.14 我想声明一个指针并向它分配一些内存,但是不行。这样的代码有什么问题?char*p;*p=malloc(10); 7.15 我如何动态分配数组? 7.16 怎样判断还有多少内存? 7.17 malloc(0)是返回空指针还是指向0个字节的指针? 7.18 我听说有的操作系统在程序使用的时候才真正分配malloc申请的内存。这合法吗? 有关malloc的问题 7.19 为什么malloc返回了离谱的指针值?我的确读过问题7.9,而且也在调用之前包含了externvoid*malloc();声明。 7.20 我用一行这样的代码分配一个巨大的数组,用于数值运算:double*array=malloc(256 *256 *sizeof(double));malloc()并没有返回空指针,但是程序运行得有些奇怪,好像改写了某些内存,或者malloc()并没有分配我申请的那么多内存。为什么? 7.21 我的PC机有8兆内存。为什么我只能分配640K左右的内存? 7.22 我的应用程序非常依赖数据结构的节点的动态分配,而malloc/free的代价成了瓶颈。我该怎么做? 7.23 我的程序总是崩溃,显然发生在malloc内部的某个地方。但是我看不出哪里有问题。是malloc有bug吗? 释放内存 7.24 动态分配的内存一旦释放之后就不能再使用,是吧? 7.25 为什么在调用free()之后指针没有变空?使用(赋值、比较)释放之后的指针有多么不安全? 7.26 当我调用malloc()为一个函数的局部指针分配内存时,我还需要用free()显式地释放吗? 7.27 我在分配一些结构,它们包含指向其他动态分配的对象的指针。我在释放结构的时候,还需要释放每一个下级指针吗? 7.28 我必须在程序退出之前释放分配的所有内存吗? 7.29 我有个程序分配了大量的内存,然后又释放了。但是从操作系统看,内存的占用率却并没有变回去。 分配内存块的大小 7.30 free()怎么知道有多少字节需要释放? 7.31 那么我能否查询malloc包,以查明可分配的最大块是多大? 7.32 为什么sizeof不能告诉我它所指的内存块的大小? 其他分配函数 7.33 (像问题6.14中那样)动态分配数组之后,还能改变它的大小吗? 7.34 向realloc()的第一个参数传入空指针合法吗?你为什么要这样做? 7.35 calloc()和malloc()有什么区别?应该用哪一个?利用calloc的零填充功能安全吗?free()可以释放calloc()分配的内存吗,还是需要一个cfree()? 7.36 alloca是什么?为什么不提倡使用它? 第8章 字符和字符串 8.1 为什么strcat(string,'!');不行? 8.2 我想检查一个字符串是否跟某个值匹配。为什么这样不行?if(string=="value") 8.3 如果我可以写chara[]="Hello,world!";那为什么不能写chara[14];a="Hello,world!"; 8.4 为什么我的strcat不行?我试了char*s1="Hello,";char*s2="world!";char*s3 =strcat(s1,s2);可得到的结果很奇怪。 8.5 chara[]="stringliteral";和char*p="stringliteral";初始化有什么区别?当我对p[i]赋值的时候,程序崩溃了。 8.6 我怎么得到与字符相对应的数字(即ASCII或其他字符集下的)值?反过来又该怎么做? 8.7 C语言有类似其他语言的"substr"(提取子串)这样的函数吗? 8.8 我将用户键入的字符串读入数组,然后再显示出来。当用户键入\n这样的序列时,为什么不能正确处理呢? 8.9 我注意到sizeof('a')是2而不是1(即不是sizeof(char)),是不是我的编译器有问题? 8.10 我正开始考虑多语言字符集的问题。是否有必要担心sizeof(char)会被定义为2,以便表达16位的字符集呢? 第9章 布尔表达式和变量 9.1 C语言中布尔值该用什么类型?为什么它不是一个标准类型?我应该用#define或enum定义真值和假值吗? 9.2 既然在C语言中所有的非零值都被看作“真”,那是不是把TRUE定义为1很危险?如果某个内建的函数或关系操作符“返回”不是1的其他值怎么办? 9.3 当p是指针时,if(p)是合法的条件表达式吗? 9.4 我该使用像TRUE和FALSE这样的符号名称还是直接用1和0来作布尔常量? 9.5 我准备使用的一个第三方头文件定义了自己的TRUE和FALSE,它们跟我已经开发的部分不兼容。我该怎么办? 第10章 C预处理器 宏定义 10.1 我想定义一些函数式的宏,例如:#definesquare(x)x*x但它们并不总是正确的。为什么? 10.2 这里有一些的预处理宏,使用它们,我可以写出更像Pascal的C代码。你觉得怎么样? 10.3 怎么写一个交换两个值的通用宏? 10.4 书写多语句宏的最好方法是什么? 10.5 用typdef和预处理宏生成用户定义类型有什么区别? 头文件 10.6 我第一次把一个程序分成多个源文件,我不知道该把什么放到.c文件,把什么放到.h文件。(“.h”到底是什么意思?) 10.7 可以在一个头文件中包含另一头文件吗? 10.8 完整的头文件搜索规则是怎样的? 10.9 我在文件的第一个声明就遇到奇怪的语法错误,但是看上去没什么问题。 10.10 我使用了来自两个不同的第三方库的头文件,它们都定义了相同的宏,如TRUE、FALSE、Min()和Max()等,但是它们的定义相互冲突,而且跟我在自己的头文件中的定义也有冲突。我该怎么办? 10.11 我在编译一个程序,看起来我好像缺少需要的一个或多个头文件。谁能发给我一份? 条件编译 10.12 怎样构造比较字符串的#if预处理表达式? 10.13 sizeof操作符可以用在#if预处理指令中吗? 10.14 我可以像这样在#define行里使用#ifdef来定义两个不同的东西吗? 10.15 对typedef的类型定义有没有类似#ifdef的东西? 10.16 我如何用#if表达式来判断机器是高字节在前还是低字节在前? 10.17 为什么在我用#ifdef关掉的代码行中报出了奇怪的语法错误? 10.18 我拿到了一些代码,里边有太多的#ifdef。我不想使用预处理器把所有的#include和#ifdef都扩展开,有什么办法只保留一种条件的代码呢? 10.19 如何列出所有的预定义宏? 奇异的处理 10.20 我有些旧代码,试图用这样的宏来构造标识符:#definePaste(a,b)a/**/b但是不行了。为什么? 10.21 我有一个旧宏:#defineCTRL(c)('c'&037)不能用了。为什么? 10.22 为什么宏#defineTRACE(n)printf("TRACE:\%d\n",n)报出警告“macroreplacementwithinastringliteral”?它似乎把TRACE(count);扩展成了printf("TRACE:\%d\count",count); 10.23 如何在宏扩展的字符串字面量中使用宏参数? 10.24 我想用ANSI的“字符串化”预处理操作符#将符号常量的值放入消息中,但它总是对宏名称而不是它的值进行字符串化。这是什么原因? 10.25 我想用预处理器做某件事情,但却不知道如何下手。 可变参数列表的宏 10.26 怎样写可变参数宏?如何用预处理器“关掉”具有可变参数的函数调用? 10.27 如何在通用的调试宏中包含__FILE__和__LINE__宏? 第11章 ANSI/ISO标准C 标准 11.1 什么是“ANSIC标准”? 11.2 如何得到一份标准的副本? *11.3 我在哪里可以找到标准的更新? 函数原型 11.4 为什么我的ANSI编译器对用float声明的参数会警告类型不匹配? 11.5 能否混用旧式的和新型的函数语法? *11.6 为什么下述声明报出了一个奇怪的警告信息“StructXdeclaredinsideparameterlist”?externintf(structx*p); 11.7 有个问题一直困扰着我,它是由这一行printf("%d",n);导致的,因为n是个longint型。难道ANSI的函数原型不能检查这种函数的参数不匹配问题吗? 11.8 我听说必须在调用printf之前包含stdio.h。为什么? const限定词 11.9 为什么不能在初始化和数组维度中使用const值?例如constintn=5;inta[n]; 11.10“constchar*p”、“charconst*p”和“char*constp”有何区别? 11.11 为什么不能向接受constchar**的函数传入char**? 11.12 我这样声明:typedefchar*charp;constcharpp;为什么是p而不是它所指向的字符为const? main()函数的使用 11.13 能否通过将main声明为void来关掉“main没有返回值”的警告? 11.14 main()的第3个参数envp是怎么回事? 11.15 我觉得把main()声明为void也不会失败,因为我调用了exit()而不是return,况且我的操作系统也忽略了程序的退出/返回状态。 *11.16 那么到底会出什么问题?真的有什么系统不支持voidmain()吗? 11.17 为什么以前流行的那些C语言书总是使用voidmain()? 11.18 在main()中调用exit(status)和返回同样的status真的等价吗? 预处理功能 11.19 我试图用ANSI“字符串化”预处理操作符'#'向信息中插入符号常量的值,但它字符串化的总是宏的名字而不是它的值。为什么? 11.20 警告信息“warning:macroreplacementwithinastringliteral”是什么意思? 11.21 为什么在我用#ifdef去掉的代码里出现了奇怪的语法错误? 11.22 #pragma是什么,有什么用? 11.23 “#pragmaonce”什么意思?我在一些头文件中看到了它。 其他的ANSIC问题 11.24 chara[3]="abc";合法吗?它是什么意思? 11.25 既然对数组的引用会退化为指针,那么,如果array是数组,array和&array之间有什么区别呢? 11.26 为什么我不能对void*指针进行算术运算? 11.27 memcpy()和memmove()有什么区别? 11.28 malloc(0)有什么用?返回一个空指针还是指向0字节的指针? 11.29 为什么ANSI标准规定了外部标识符的长度和大小写限制? 11.30 noalias是怎么回事?在它身上发生了什么? 老的或非标准的编译器 11.31 为什么我的编译器对最简单的测试程序都报出了一大堆的语法错误?对这段代码的第一行就报错了:main(intargc.char**argv){return0;} 11.32 为什么有些ASNI/ISO标准库函数未定义?我明明使用的就是ANSI编译器。 11.33 谁有可以在旧的C程序和ANSIC之间相互转换的工具,或者自动生成原型的工具? 11.34 为什么声称兼容ANSI的编译器不能编译这些代码?我知道这些代码是ANSI的,因为gcc可以编译。 兼容性 11.35 人们好像有些在意实现定义的(implementation-defined)、不确定的(unspecified)和未定义的(undefined)行为的区别。它们的区别到底在哪里? *11.36 一个程序“合法(legal)”、“有效(valid)”或“符合标准的”(conforming)到底是什么意思? 11.37 我很吃惊,ANSI标准竟然有那么多未定义的东西。标准的唯一任务不就是让这些东西标准化吗? 11.38 有人说i=i++的行为是未定义的,但是我刚在一个兼容ANSI的编译器上测试,得到了我希望的结果。它真的是未定义的吗? 第12章 标准输入输出库 基本输入输出 12.1 这样的代码有什么问题?charc;while((c=getchar())!=EOF) 12.2 我有个读取直到EOF的简单程序,但是我如何才能在键盘上输入那个“\EOF”呢?我看stdio.h中定义的EOF是-1,是不是说我该输入-1? 12.3 为什么这些代码把最后一行复制了两遍?while(!feof(infp)){fgets(buf,MAXLINE,infp);fputs(buf,outfp);} 12.4 我用fgets将文件的每行内容读入指针数组。为什么结果所有的行都是最后一行的内容呢? 12.5 我的程序的屏幕提示和中间输出有时没有在屏幕上显示,尤其是当我用管道通过另一个程序输出的时候。为什么? 12.6 我怎样才能不等待回车键而一次输入一个字符? printf格式 12.7 如何在printf的格式串中输出一个'%'字符?我试过\%,但是不行。 12.8 为什么这么写不对?longintn=123456;printf("%d\n",n); 12.9 有人告诉我不能在printf中使用%lf。为什么printf()用%f输出double型,而scanf却用%lf呢? *12.10 对于size_t那样的类型定义,当我不知道它到底是long还是其他类型的时候,我应该使用什么样的printf格式呢? 12.11 如何用printf实现可变的域宽度?就是说,我想在运行时确定宽度而不是使用%8d? 12.12 如何输出在千位上用逗号隔开的数字?货币格式的数字呢? 12.13 为什么scanf("%d",i)调用不行? *12.14 为什么chars[30];scamf("%s",s);不用&也可以?我原以为传给scanf的每个变量都要带&。 12.15 为什么这些代码不行?doubled;scanf("%f",&d); 12.16 为什么这段代码不行?shortints;scanf("%d",&s); 12.17 怎样在scanf格式串中指定可变的宽度? 12.18 怎样从特定格式的数据文件中读取数据?怎样读入10个float而不用使用包含10次%f的奇怪格式?如何将一行的任意多个域读入一个数组中? scanf问题 12.19 我像这样用"%d\n"调用scanf从键盘读取数字:intn;scanf("%d\n",&n);printf("youtyped%d\n",n);好像要多输入一行才返回。为什么? 12.20 我用scanf和%d读取一个数字,然后再用gets()读取字符串,但是编译器好像跳过了gets()调用! 12.21 我发现如果坚持检查返回值以确保用户输入的是我期待的数值,则scanf的使用会安全很多。但有的时候好像会陷入无限循环。为什么? 12.22 为什么大家都说不要使用scanf?那我该用什么来代替呢? 其他stdio函数 12.23 我怎样才知道对于任意的sprintf调用需要多大的目标缓冲区?怎样才能避免sprintf目标缓冲区溢出? 12.24 sprintf的返回值是什么?是int还是char*? 12.25 为什么大家都说不要使用gets? 12.26 我觉得我应该在一长串的printf调用之后检查errno,以确定是否有失败的调用。为什么当我将输出重定向到文件的时候会输出奇怪的“printffailed:Notatypewriter”信息? 12.27 fgetops/fsetops和ftell/fseek之间有什么区别?fgetops和fsetops到底有什么用处? 12.28 如何清除用户的多余输入,以防止在下一个提示符下读入?用fflush(stdin)可以吗? 打开和操作文件 12.29 我写了一个函数用来打开文件:myfopen(char*filename,FILE*fp){fp=fopen(filename,"r");}可我这样调用的时候:FILE*infp;myfopen("filename.dat",infp);,infp指针并没有正确设置。为什么? 12.30 连一个最简单的fopen调用都不成功!这个调用有什么问题?FILE*fp=fopen(filename,'r'); 12.31 为什么我不能用完整路径名打开一个文件?这个调用总是失败:fopen("c:\newdir\file.dat","r"); 12.32 我想用fopen模式"r+"打开一个文件,读出一个字符串,修改之后再写入,从而就地更新一个文件。可是这样不行。为什么? 12.33 如何在文件中间插入或删除一行(一条记录)? 12.34 怎样从打开的流中恢复文件名? 重定向stdin和stdout 12.35 怎样在程序里把stdin或stdout重定向到文件? 12.36 一旦使用freopen之后,怎样才能恢复原来的stdout(或stdin)? 12.37 如何判断标准输入或输出是否经过了重定向,即是否在命令行上使用了“”或“”? 12.38 我想写个像"more"那样的程序。怎样才能在stdin被重定向之后再回到交互键盘? *12.39 怎样同时向两个地方输出,如同时输出到屏幕和文件? “二进制”输入输出 12.40 我希望按字节在内存和文件之间直接读写数字,而不像fprintf和fscanf进行格式化。我该怎么办? 12.41 怎样正确地读取二进制文件?有时看到0x0a和0x0d容易混淆,而且如果数据中包含0x1a的话,我好像会提前遇到EOF。 12.42 我在写一个二进制文件的“过滤器”,但是stdin和stdout却被作为文本流打开了。怎样才能把它们的模式改为二进制? 12.43 文本和二进制输入输出有什么区别? 12.44 如何在数据文件中读写结构? 12.45 怎样编写符合旧的二进制数据格式的代码? 第13章 库函数 字符串函数 13.1 怎样把数字转为字符串(与atoi相反)?有itoa函数吗? 13.2 为什么strncpy不能总在目标串放上终止符'\0'? 13.3 C语言有类似于其他语言中的“substr”(取出子串)的例程吗? 13.4 怎样把一个字符串中所有字符转换成大写或小写? 13.5 为什么有些版本的toupper对大写字符会有奇怪的反应?为什么有的代码在调用toupper前先调用islower? 13.6 怎样将字符串分割成用空白分隔的字段?怎样实现类似main处理argc和argv的过程? 13.7 哪里可以找到处理正则表达式或通配符匹配的代码? 排序 13.8 我想用strcmp作为比较函数,调用qsort对一个字符串数组排序,但是不行。为什么? 13.9 我想用qsort()对一个结构数组排序。我的比较函数接受结构指针,但是编译器认为这个函数不是qsort需要的类型。我要怎样转换这个函数指针才能避免这样的警告? 13.10 怎样对一个链表排序? 13.11 怎样对大于内存容量的数据排序? 日期和时间 13.12 怎样在C程序中取得当前日期或时间? 13.13 我知道库函数localtime可以把time_t转换成结构structtm,而ctime可以把time_t转换成为可打印的字符串。怎样才能进行反向操作,把structtm或一个字符串转换成time_t? 13.14 怎样在日期上加n天?怎样取得两个日期的时间间隔? 随机数 13.15 怎么生成一个随机数? 13.16 怎样获得某一范围内的随机整数? 13.17 每次执行程序,rand都返回相同的数字序列。为什么? 13.18 我需要随机的真/假值,所以我就直接用rand()%2,可是我得到交替的0,1,0,1,0…。为什么? 164 13.19 如何获取根本不重复的随机数? 13.20 怎样产生正态分布或高斯分布的随机数? 13.21 我在移植一个程序,里边调用了一个函数drand48 ,而我的库又没有这个。这是个什么函数? 其他库函数 13.22 exit(status)是否真的跟从main函数返回status等价? 13.23 memcpy和memmove有什么区别? 13.24 我想移植这个旧程序。为什么报出这些“undefinedexternal”错误:index?、rindex?、bcopy?、bcmp?、bzero?? 13.25 我不断得到库函数未定义错误,但是我已经包含了所有用到的头文件了。 13.26 虽然我在连接时明确地指定了正确的函数库,我还是得到库函数未定义错误。 13.27 一个最简单的程序,不过在一个窗口里打印出“Hello,World”,为什么会编译出巨大的可执行代码(数百K)?我该少包含一些头文件吗? 13.28 连接器报告_end未定义代表什么意思? *13.29 我的编译器提示printf未定义!这怎么可能? 第14章 浮点运算 14.1 一个float变量赋值为3.1时,为什么printf输出的值为3.0999999? 14.2 我想计算一些平方根,我把程序简化成这样:main(){printf("%f\h",sqrt(144.));可得到的结果却是疯狂的数字。为什么? 14.3 我想做一些简单的三角函数运算,也包含了math.h,但连接器总是提示sin、cos这样的函数未定义。为什么? 14.4 我的浮点数计算程序表现得很奇怪,在不同的机器上给出了不同的结果。为什么? 14.5 有什么好的方法来检查浮点数在“足够接近”情况下的相等? 14.6 怎样取整? 14.7 为什么C语言不提供乘幂的操作符? 14.8 为什么我机器上的math.h没有预定义常量M_PI? 14.9 怎样将变量置为IEEENaN(“NotaNumber”)或检测变量是否为NaN及其他特殊值? 14.10 如何简洁地处理浮点异常? 14.11 在C语言中如何很好地实现复数? 14.12 我要寻找一些实现以下功能的程序源代码:快速傅立叶变换(FFT)、矩阵算术(乘法、求逆等函数)、复数算术。 14.13 TurboC的程序崩溃,显示错误为“floatingpointformatsnotlinked”(浮点格式未连接)。我还缺点儿什么呢? 第15章 可变参数列表 调用变参函数 15.1 为什么调用printf前必须要包含stdio.h? 15.2 为什么%f可以在printf参数中同时表示float和double?它们难道不是不同类型吗? 15.3 我遇到了一个令人十分受挫的问题,后来发现是这行代码造成的:printf("%d",n);原来n是longint型。难道ANSI的函数原型不就是用来防止这类的参数类型不匹配吗? 15.4 怎样写一个接受可变参数的函数? 15.5 怎样写一个函数,像printf那样接受一个格式串和可变参数,然后再把参数传给printf去完成大部分工作? 15.6 怎样写类似scanf的函数,再把参数传给scanf去完成大部分工作? 15.7 我用的是ANSI前的编译器,没有stdarg.h文件。我该怎么办? 提取可变参数 15.8 怎样知道实际上有多少个参数传入函数? 15.9 为什么编译器不允许我定义一个没有固定参数项的可变参数函数? 15.10 我有个接受float型的变参函数,为什么va_arg(argp,float)却不行? 15.11 为什么va_arg不能得到类型为函数指针的参数? 困难的问题 15.12 怎样实现一个可变参数函数,它把参数再传给另一个可变参数函数? 15.13 怎样调用一个在运行时才构建参数列表的函数? 第16 章奇怪的问题 16.1 为什么这个循环只执行了一次?for(i=start;iend;i++);{printf("%d\n",i);} *16.2 遇到不可理解的不合理语法错误,似乎大段的程序没有编译。 *16.3 为什么过程调用不起作用?编译器似乎直接跳过去了。 16.4 程序在执行之前就崩溃了!(用调试器单步跟踪,在main函数的第一个语句之前就死了。)为什么? 16.5 程序执行正确,但退出时在main函数的最后一个语句之后崩溃了。为什么会这样? 16.6 程序在一台机器上运行完美,但在另一台上却得到怪异的结果。更奇怪的是,增加或去除调试的打印语句,就改变了症状…… 16.7 为什么下面的代码会崩溃?char*p="hello,world!";p[0]='H'; 16.8 我有些代码是用来解析外部结构的,但它却崩溃了,报了“unalignedaccess”(未对齐的访问)错误。这是什么意思? 16.9 “Segmentationviolation”、“Buserror”和“Generalprotectionfault”是什么意思? 第17章 风格 17.1 什么是C最好的代码布局风格? 17.2 如何在源文件中合理分配函数? 17.3 用if(!strcmp(s1,s2))比较两个字符串是否相等是个好风格吗? 17.4 为什么有的人用if(0==x)而不是if(x==0)? 17.5 为什么有些代码在每次调用printf前增加了类型转换(void)? 17.6 既然NULL和0都是空指针常量,我到底该用哪一个? 17.7 是该用TRUE和FALSE这样的符号名称还是直接用1和0来作布尔常量? 17.8 什么是“匈牙利表示法”(HungarianNotation)?是否值得一试? 17.9 哪里可以找到“IndianHillStyleGuide”及其他编码标准? 17.10 有人说goto是邪恶的,永远都不该用它。这是否太极端了? 17.11 人们总是说良好的风格很重要,但当他们使用良好的风格写出清晰易读的程序后,又发现程序的效率似乎降低了。既然效率那么重要,是否可以为了效率牺牲一些风格和可读性呢? 第18章 工具和资源 18.1 能否列一个常用工具列表? 18.2 怎样捕获棘手的malloc问题? 18.3 有什么免费或便宜的编译器可以使用? lint 18.4 刚刚输入完一个程序,但它表现得很奇怪。你能发现有什么错误的地方吗? 18.5 如何关掉lint对每个malloc调用报出的“warning:possiblepointeralignmentproblem”警告消息? 18.6 哪里可以找到兼容ANSI的lint? 18.7 难道ANSI函数原型说明没有使lint过时吗? 资源 18.8 网上有哪些C语言的教程或其他资源? *18.9 哪里可以找到好的源代码实例,以供研究和学习? 18.10 有什么好的学习C语言的书?有哪些高级的书和参考? 18.11 哪里能找到K&R的练习答案? 18.12 哪里能找到NumericalRecipesinC、Plauger的TheStandardCLibrary或Kernighan和Pike的TheUNIXProgrammingEnviroment等书里的源码? 18.13 哪里可以找到标准C函数库的源代码? 18.14 是否有一个在线的C参考指南? 18.15 我需要分析和评估表达式的代码。从哪里可以找到? 18.16 哪里可以找到C的BNF或YACC语法? *18.17 谁有C编译器的测试套件? *18.18 哪里有一些有用的源代码片段和例子的收集? *18.19 我需要执行多精度算术的代码。 18.20 在哪里和怎样取得这些可自由发布的程序? 第19章 系统依赖 键盘和屏幕I/O 19.1 怎样从键盘直接读入字符而不用等回车键?怎样防止字符输入时的回显? 19.2 怎样知道有未读的字符(如果有,有多少)?另外,如何在没有字符的时候不阻塞读入? 19.3 怎样显示一个在原地更新自己的百分比或“旋转棒”的进度指示器? 19.4 怎样清屏?怎样反色输出?怎样把光标移动到指定的x,y位置? 19.5 怎样读入方向键、功能键? 其他I/O 19.6 怎样读入鼠标输入? 19.7 怎样做串口(“comm”)的输入输出? 19.8 怎样直接输出到打印机? 19.9 怎样发送转义字符序列控制终端或其他设备? 19.10 怎样做图形? *19.11 怎样显示GIF和JPEG图像? 文件和目录 19.12 怎样检验一个文件是否存在?如果请求的输入文件不存在,我希望向用户提出警告。 19.13 怎样在读入文件前,知道文件大小? *19.14 怎样得到文件的修改日期和时间? 19.15 怎样原地缩短一个文件而不用清除或重写? 19.16 怎样在文件中插入或删除一行(或一条记录)? 19.17 怎样从一个打开的流或文件描述符得到文件名? 19.18 怎样删除一个文件? *19.19 怎样复制文件? 19.20 为什么用了详尽的路径还不能打开文件?下面的代码会返回错误。Fopen("c:\newdir\file.dat","r") *19.21 fopen不让我打开文件"$HOME/.profile"和"~~/.myrcfile"。 *19.22 怎样制止MS-DOS下令人恐怖的“Abort,Retry,Ignore?”信息? 19.23 遇到“Toomanyopenfiles(打开文件太多)”的错误,怎样增加同时打开文件的允许数目? 19.24 如何得到磁盘的可用空间大小? 19.25 怎样在C语言中读入目录? 19.26 如何创建目录?如何删除目录(及其内容)? 访问原始内存 19.27 怎样找出系统还有多少内存可用? 19.28 怎样分配大于64K的数组或结构? 19.29 错误信息“DGROUPdataallocationexceeds64K(DGROUP数据分配内存超过64K)”什么意思?我应该怎么做?我以为使用了大内存模型,就可以使用大于64K的数据! 19.30 怎样访问位于某特定地址的内存(内存映射的设备或图形显示内存)? 19.31 如何访问机器地址0处的中断向量?如果将指针设为0,编译器可能把它转成一个非零的内部空指针值。 “系统”命令 19.32 怎样在一个C程序中调用另一个程序(独立可执行的程序或系统命令)? 19.33 如果运行时才知道要执行的命令的参数(文件名等),应该如何调用system? 19.34 在MS-DOS上如何得到system返回的准确错误状态? 19.35 怎样调用另一个程序或命令,然后获取它的输出? 进程环境 19.36 怎样才能发现程序自己的执行文件的全路径? 19.37 怎样找出和执行文件在同一目录的配置文件? 19.38 进程如何改变它的调用者的环境变量? 19.39 如何打开命令行给出的文件并解析选项? 19.40 exit(status)是否真的和从main函数返回同样的status等价? 19.41 怎样读入一个对象文件并跳跃到其中的函数? 其他系统相关的操作 19.42 怎样以小于1秒的精度延时或计算用户响应时间? 19.43 怎样捕获或忽略control-C这样的键盘中断? 19.44 怎样简洁地处理浮点异常? 19.45 怎样使用socket?如何联网?如何写客户/服务器程序? *19.46 怎样调用BIOS函数?如何写ISR?如何创建TSR? *19.47 什么是“near”和“far”指针? 回顾 19.48 我不能使用这些非标准、依赖系统的函数,程序需要兼容ANSI! 19.49 为什么这些内容没有在C语言中进行标准化?任何现实程序都会用到这些东西。 第20章 杂项 20.1 怎样从函数返回多个值? 20.2 用什么数据结构存储文本行最好?我开始用固定大小的char型数组的数组,但是有很多局限。 20.3 怎样打开命令行提到的文件并处理参数? 20.4 如何正确地使用errno? 20.5 怎样写数据文件,使之可以在不同字大小、字节顺序或浮点格式的机器上读入? 20.6 怎样用char*指针指向的函数名调用函数? 位和字节 20.7 如何操作各个位? 20.8 怎样实现位数组或集合? 234 20.9 怎样判断机器的字节顺序是高字节在前还是低字节在前? *20.10 怎样调换字节? 20.11 怎样将整数转换到二进制或十六进制? 20.12 可以使用二进制常数(类似0b101010这样的东西)吗?printf有二进制的格式说明符吗? 效率 20.13 用什么方法计算整数中为1的位的个数最高效? 20.14 怎样提高程序的效率? 20.15 指针真的比数组快吗?函数调用会拖慢程序多少?++i比i=i+1快吗? 20.16 用移位操作符替换乘法和除法是否有价值? *20.17 人们说编译器优化得很好,我们不再需要为速度而写汇编了,但我的编译器连用移位代替i/=2都做不到。 *20.18 怎样不用临时变量而交换两个值? switch语句 20.19 switch语句和if/else链哪个更高效? 20.20 是否有根据字符串进行条件切换的方法? 20.21 是否有使用非常量case行标的方法(如范围或任意的表达式)? 各种语言功能 20.22 return语句外层的括号是否真的可选择? 20.23 为什么C语言的注释不能嵌套?怎样注释掉含有注释的代码?引号包含的字符串内的注释是否合法? 20.24 为什么C语言的操作符不设计得更全面一些?好像还缺了一些^^、&&=和-=这样的操作符。 *20.25 C语言有循环移位操作符吗? *20.26 C是个伟大的语言还是别的什么东西?哪个其他语言可以写出像a+++++b这样的代码? 20.27 如果赋值操作符是:=,是不是就不容易意外地写出if(a=b)了? 20.28 C语言有和Pascal的with等价的语句吗? 20.29 为什么C语言没有嵌套函数? *20.30 assert是什么?如何使用? 其他语言 20.31 怎样从C中调用FORTRAN(C++、BASIC、Pascal、Ada、LISP)的函数?反之如何? 20.32 有什么程序可以将Pascal或FORTRAN(或LISP、Ada、awk、“老”C)程序转化为C程序? 20.33 C++是C的超集吗?可以用C++编译器来编译C代码吗? 20.34 我需要用到“近似”的strcmp例程,比较两个字符串的近似度,并不需要完全一样。有什么好办法? 20.35 什么是散列法? 20.36 如何生成正态或高斯分布的随机数? 20.37 如何知道某个日期是星期几? 20.38 (year%4==0)是否足以判断闰年?2000年是闰年吗? 20.39 为什么tm结构中的tm_sec的范围是0到61,暗示一分钟有62秒? 琐事 20.40 一个难题:怎样写一个输出自己源代码的程序? 20.41 什么是“达夫设备”(Duff’sDevice)? 20.42 下届国际C语言混乱代码竞赛(InternationalObfuscatedCCodeContest,IOCCC)什么时候进行?哪里可以找到当前和以前的获胜代码? 20.43 K&R1提到的关键字entry是什么? 20.44 C的名字从何而来? 20.45 “char”如何发音? *20.46 “lvalue”和“rvalue”代表什么意思? 20.47 哪里可以获得本书的在线版? 术语表 参考文献
最新的第三版,无水印版本 Everything you need to know to succeed in the programming interview and get the job you want Whether you are a veteran programmer seeking a new position or a whiz kid starting your career, interviewing for a programming job requires special preparation. The interview is likely to consist of an hour-long interactive oral exam in computers, programming, and logic. This helpful guide will give you the tools necessary to breeze through the test and make a lasting impression that will get you a top-dollar offer! Mongan and Suojanen take you step-by-step through the same problems that they were asked on technical interviews. These veterans use their experience with the technical interview process to prepare you for any situation. With their help, you’ll gain critical interviewing skills such as how to ask effective questions, how to best approach a problem, and what to do when you get stuck. Integrated throughout the book are problems taken from real interviews at top computer companies, followed by an in-depth analysis and explanation of the thought process leading to solutions. By focusing on techniques and not just answers, you’ll be able to apply what you learn to the wide variety of problems you will face during an interview. The problems included in this book will challenge your programming skills and help you ace the programming interview! Problem types include: <UL> <LI>Programming problems with emphasis on data structures and recursion <LI>Logic puzzles, counting and measuring problems, and spatial reasoning <LI>Knowledge-based problems that cover today’s most important technologies </UL>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值