踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(2)...

编程入门 行业动态 更新时间:2024-10-09 02:30:40

踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门<a href=https://www.elefans.com/category/jswz/34/1755451.html style=很简单》想到的(2)..."/>

踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(2)...

前文链接:踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(1)

目录

  只凭前言评价一本书,想必难以服人。

  因此,讲完前言中的“作者”的奥秘,下面再从技术角度来讲一下这本书的目录。

  目录是一本书的骨架,基本能确定一本书的好坏。目录好,书一般怎么也不会写得太差,差也是细节的问题;目录差,一本书无论如何也写不好。这就跟盖房子的道理一样,你搭了一个猪圈的架子,永远不可能建起一座别墅。

  《C语言入门很简单》这本书的目录如下:

第1篇 一切从基础开始第1章 概述1.1 c语言简介1.1.1 c语言的位置1.1.2 c语言的优缺点1.1.3 c适合什么开发1.2 c语言的开发环境1.2.1 编辑器、编译器和链接器1.2.2 集成开发环境1.3 visual studio使用简介1.3.1 visual studio版本1.3.2 visual studio的安装1.3.3 新建项目1.3.4 编写代码1.3.5 编译链接1.3.6 运行可执行程序1.4 如何学好c语言1.5 小结1.6 习题第2章 开始c语言之旅2.1 为什么要写代码2.1.1 为什么要写程序2.1.2 从本书开始学编程2.1.3 从一个现实的例子开始2.2 编程的核心——数据2.2.1 数据从哪里来2.2.2 数据的表示2.2.3 数据类型面面观——精度和范围2.2.4 c语言基本数据类型2.2.5 数据的变与不变——变量、常量2.3 使用变量和常量2.3.1 变量的使用2.3.2 命名的方式2.3.3 关键字2.3.4 常量的使用2.4 小结2.5 习题
第2篇 简单程序的构建第3章 简单数学运算3.1 什么是赋值3.1.1 赋值的作用——把数据存起来3.1.2 赋值运算的形式3.1.3 赋值表达式3.1.4 机动灵活的赋值——scanf()3.1.5 看看我们的劳动成果——printf()3.1.6 赋值的重要性3.2 开始赋值——整型赋值3.2.1 整数在计算机中的表示——二进制3.2.2 更先进的表示方法——八进制和十六进制3.2.3 进制之间的转化——以二进制为桥梁3.2.4 给整型赋值3.3 浮点型赋值3.3.1 小数在计算机的表示3.3.2 给浮点型赋值3.4 字符型赋值3.4.1 字符在计算机中的表示——ascii3.4.2 给字符赋值3.5 类型转化3.5.1 什么是类型转换3.5.2 类型转换的利弊3.5.3 隐式类型转化和显示类型转换3.5.4 赋值中的类型转换3.6 基本数学运算3.6.1 数学运算和数学表达式3.6.2 商与余数3.6.3 位运算3.6.4 优先级的奥秘3.6.5 数学运算中的类型转换3.7 复合赋值运算3.7.1 复合赋值运算3.7.2 自增自减运算——特殊的复合赋值3.7.3 自增自减的使用3.8 小结3.9 习题第4章 程序结构4.1 语句和语句块4.1.1 简单语句4.1.2 语句块4.2 变量的作用域4.2.1 局部变量的声明定义位置规则4.2.2 局部变量的作用域规则4.2.3 嵌套语句块的同名变量作用域规则4.3 最常见的语句执行顺序——顺序结构4.4 判断结构4.4.1 判断的基础——逻辑真假4.4.2 基础的判断——关系运算4.4.3 复杂的判断——逻辑运算4.5 if判断结构4.5.1 基本if结构4.5.2 if…else…结构4.5.3 另类的条件判断——?运算符的使用4.5.4 if…else if…else结构4.5.5 嵌套的if结构4.6 switch判断结构4.6.1 switch基本结构4.6.2 果断结束——break的使用4.7 循环结构4.7.1 while循环结构4.7.2 for循环结构4.7.3 goto语句4.7.4 循环嵌套4.7.5 break和continue4.8 真正的程序——三种结构的揉和4.9 小结4.10 习题
第3篇 复杂数据的表示第5章 数组5.1 数组简介5.1.1 数组的用途5.1.2 数组变量的定义5.2 数组变量初始化和赋值5.2.1 数组的初始化5.2.2 数组的下标5.2.3 给数组赋值5.2.4 数组元素的引用5.3 二维数组5.3.1 数组的维5.3.2 二维数组表示和含义5.3.3 二维数组的初始化5.3.4 二维数组的赋值5.3.5 二维数组的引用5.4 多维数组5.4 小结5.5 习题第6章 字符的数组——字符串6.1 字符数组6.1.1 字符数组的表示6.1.2 字符数组的初始化6.1.3 字符数组的赋值和引用6.2 字符串6.2.1 字符串的c语言表示6.2.2 使用字符串为字符数组初始化6.2.3 字符串的保存形式6.3 字符串的输入输出——scanf和printf字符串6.3.1 输入输出字符串的c语言表示6.3.2 scanf()函数对字符串的特殊处理6.4 小结6.5 习题第7章 指针7.1 地址的概念7.1.1 地址的含义7.1.2 为什么要用地址7.1.3 地址的表示与取址运算7.2 指针和指针变量7.2.1 指针的含义和用途7.2.2 指针类型7.2.3 指针变量的定义和使用7.2.4 void指针7.3 指针运算7.3.1 取指针元素7.3.2 指针的自加自减7.3.3 指针的类型转换7.4 数组和指针7.4.1 数组名也是指针7.4.2 数组名是指针常量7.4.3 使用数组名访问数组元素7.4.4 三种访问数组元素的方法7.4.5 数组指针和指针数组7.5 多重指针和多维数组7.5.1 多重指针7.5.2 取多重指针元素运算7.5.3 多维数组名和各维元素7.5.4 使用指针访问多维数组7.6 字符串和指针7.6.1 字符指针7.6.2 字符指针和字符串7.6.3 scanf()、printf()函数和字符指针7.7 小结7.8 习题第8章 结构体8.1 结构体的含义8.2 结构体类型的表示8.2.1 结构体类型的一般格式8.2.2 结构体的成员变量8.2.3 复杂的结构体8.3 结构体变量8.3.1 结构体变量的声明定义8.3.2 结构体变量初始化8.3.3 取结构体成员运算8.4 结构体数组8.5 结构体指针8.5.1 一重结构体指针8.5.2 使用结构体指针取结构体数据8.5.3 结构体指针例子8.6 回到问题8.7 小结8.8 习题第9章 共同体类型9.1 共同体的含义与表示9.1.1 共同体的用途9.1.2 共同体的表示9.1.3 复杂的共同体9.2 共同体变量9.2.1 共同体变量9.2.2 共同体成员变量的相互覆盖9.2.3 使用共同体变量9.3 共同体数组9.4 共同体的指针9.4.1 一重共同体指针类型9.4.2 共同体指针变量9.4.3 完整的例子9.5 小结9.6 习题第10章 枚举类型10.1 枚举类型的含义与表示10.1.1 枚举类型的含义10.1.2 枚举类型的表示10.2 枚举常量和枚举变量10.2.1 枚举常量10.2.2 枚举变量的定义10.2.3 枚举变量的使用10.3 枚举数组和指针10.3.1 枚举数组10.3.2 枚举指针10.3.3 用枚举指针来访问枚举数组10.4 typedef类型定义符10.5 小结10.6 习题
第4篇 复杂功能的实现第11章 函数11.1 函数的意义11.2 函数的形式11.2.1 函数的一般形式11.2.2 函数的参数列表11.2.3 函数的返回值类型11.3 函数声明和定义11.3.1 函数的声明11.3.2 函数的定义形式11.3.3 函数的形参11.3.4 return返回值语句11.4 自己动手写一个函数——加法函数11.4.1 确定加法函数的样子11.4.2 实现加法函数体11.4.3 完整的加法函数定义11.5 函数调用11.5.1 函数的调用作用11.5.2 函数调用表达式11.5.3 函数的实参11.5.4 简单函数的调用11.6 复杂参数11.6.1 数组参数11.6.2 指针参数11.6.3 结构体、共同体和枚举参数11.7 小结11.8 习题第12章 特殊的函数——main()函数12.1 main()函数的作用12.2 main()函数的声明定义12.2.1 main()函数的声明形式12.2.2 main()函数的参数12.2.3 main()函数的返回值12.3 小结12.4 习题第13章 局部变量和全局变量13.1 变量的作用域和生命周期13.2 函数内的局部变量13.2.1 局部变量的作用域13.2.2 局部变量的生命周期13.2.3 局部变量的覆盖作用13.3 函数外的全局变量13.3.1 全局变量的作用域13.3.2 全局变量的生命周期13.3.3 局部变量对全局变量的覆盖作用13.4 变量修饰符13.4.1 使用修饰符改变变量的作用域和生命周期13.4.2 c语言中常用变量修饰符的作用13.5 小结13.6 习题
第5篇 c语言的高级内容第14章 预处理命令、文件包含14.1 预处理命令的作用14.1.1 程序预处理14.1.2 预处理命令14.1.3 c语言的几类预处理命令14.2 c语言中的宏定义14.2.1 c语言的宏定义形式14.2.2 不带参宏定义14.2.3 带参数的宏定义14.3 预编译控制14.3.1 c语言预编译控制14.3.2 三种预编译控制组合形式14.3.3 一个简单的例子14.4 文件包含14.4.1 头文件和源文件的文件名14.4.2 头文件和源文件的内容14.5 include包含头文件14.5.1 自定义头文件和系统头文件14.5.2 文件包含的两种形式14.5.3 完整的circle例子14.5.4 c语言中的标准头文件14.6 小结14.7 习题第15章 文件操作15.1 文件15.1.1 重新认识文件15.1.2 计算机眼里的文件15.1.3 开发人员能对文件干些什么15.2 文件的打开关闭15.2.1 文件指针15.2.2 文件打开函数15.2.3 文件关闭函数15.3 文件读写15.3.1 读写一个字符15.3.2 读写一个字符串15.3.3 读写一个数据块15.4 文件的其他操作15.4.1 随机读写文件15.4.2 出错检验15.5 小结15.6 习题
《C语言入门很简单》目录

  这个目录安排得如此的海立云垂、奇诡无比,绝对算得上是C语言书籍中荒诞派的代表作。其荒谬绝伦的程度令人惨不忍睹,有屎以来,前无来者。读过之后,顿感虎躯一震,三观俱覆。

  最奇葩之处就在于它在接近全书结束的第4篇的第11章才开始讲“函数”,而在此之前却在第8章已经早早地把结构体讲完了。

  初学者不可能知道这样有什么不妥,但是任何一个懂得程序设计(不一定是C语言)的人看到这些立刻就会明白,这个作者绝对是一个外行,这样写给初学者的书绝对是在坑爹。

  为什么呢?因为这不符合C语言的基本特点,也违背了程序设计的基本原则。你见过小学数学先讲小数再讲整数的吗?你见过没学过代数直接上微积分的吗?《C语言入门很简单》就是这种荒唐透顶的本末倒置的C语言版。谭浩强的书都不敢这么写。

  为什么不能把函数放在结构体后面讲呢?因为在C语言中,如果不懂得函数的基本理论并能熟练构造、使用函数,结构体这种东西根本就没用!你一定要用,那就跟在炕上用挠炕席的方法学游泳一样。只有谭浩强那样的“大师”才会在程序中只写一个main()函数,同时又使用结构体。(参见 用驴子拖宝马——怎样滥用结构体 )仅此一点,就足以说明《C语言入门很简单》作者的编程水平连学得比较好的大一学生都不如,搞不好他的C编程就是跟老谭学出来的。

  函数一定要放在结构体前面讲,而且应该尽可能地早讲。原因是它非常重要。它是实现结构化程序设计思想最重要的手段,是组织代码最重要的利器(对不起,不是指针,指针是用来组织数据的)。

  Dijkstra当年说过,“一个有过 BASIC 编程经历的人是很难学会好的编程习惯的。作为一个潜在的程序员,他们已经被脑残并且无法修复。”(It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.)

  Dijkstra为什么要这样说?就是因为BASIC(当时的)根本就没有像样的现代意义的函数,函数调用是通过滥用全局变量实现的,整个程序是用一种傻逼精神完成的。Dijkstra实在看不下去这帮脑残的代码了,不得不跳出来大声疾呼。自此,人们才开始懂得什么叫做结构化程序设计。

  但是,由清华大学出版社在90年代初出版且至今仍在出版发行的的谭浩强的《C程序设计》及《习题解答》中,那种傻逼风格的代码却比比皆是。在谭浩强的书里即使在函数讲完之后,也到处都是一main()到底(参见 将main()进行到底  )或使用不合格的残疾函数的代码(参见 半身不遂和粗中有细 )。使这种傻逼风格如同中世纪的僵尸一样在天朝的教科书中满血复活,用一种“巨擘”和“大师”的装逼姿态,炫耀着呆逼的智商。原因很简单,谭浩强根本不懂编程,他只会玩他那套BASIC垃圾写法(谭最早出名是他的BASIC书)。所为我曾说过,谭浩强的C根本不是ANSI-C而是BASI-C。

  让我惊奇万分的是这本《C语言入门很简单》竟然能将这种傻逼风格的代码弄出了一个新的高潮——这货居然把函数放在了几乎是最后才讲。真是长江后浪推前浪,一代更比一代翔啊!

  来看看正经人是如何写C语言书的。这里我用手边常常翻用的几本C语言书为例:

  先来看大师的经典——Brian W. KernighanDennis M. Ritchie《The C Programming Language》

Chapter 1. A Tutorial Introduction 1.1 Getting Started 1.2 Variables and Arithmetic Expressions 1.3 The For Statement 1.4 Symbolic Constants 1.5 Character Input and Output 1.6 Arrays 1.7 Functions 1.8 Arguments--Call by Value 1.9 Character Arrays 1.10 External Variables and Scope
Chapter 2. Types, Operators, and Expressions 2.1 Variable Names 2.2 Data Types and Sizes 2.3 Constants 2.4 Declarations 2.5 Arithmetic Operators 2.6 Relational and Logical Operators 2.7 Type Conversions 2.8 Increment and Decrement Operators 2.9 Bitwise Operators 2.10 Assignment Operators and Expressions 2.11 Conditional Expressions 2.12 Precedence and Order of Evaluation 
Chapter 3. Control Flow 3.1 Statements and Blocks 3.2 If-Else 3.3 Else-If 3.4 Switch 3.5 Loops--While and For 3.6 Loops-Do-while 3.7 Break and Continue 3.8 Goto and LabelsChapter 
4. Functions and Program Structure 4.1 Basics of Functions 4.2 Functions Returning Non-integers 4.3 External Variables 4.4 Scope Rules 4.5 Header Files 4.6 Static Variables 4.7 Register Variables 4.8 Block Structure 4.9 Initialization 4.10 Recursion 4.11 The C PreprocessorChapter 
5. Pointers and Arrays 5.1 Pointers and Addresses 5.2 Pointers and Function Arguments 5.3 Pointers and Arrays 5.4 Address Arithmetic 5.5 Character Pointers and Functions 5.6 Pointer Arrays; Pointers to Pointers 5.7 Multi-dimensional Arrays 5.8 Initialization of Pointer Arrays 5.9 Pointers vs. Multi-dimensional Arrays 5.10 Command-line Arguments 5.11 Pointers to Functions 5.12 Complicated DeclarationsChapter 
6. Structures 6.1 Basics of Structures 6.2 Structures and Functions 6.3 Arrays of Structures 6.4 Pointers to Structures 6.5 Self-referential Structures 6.6 Table Lookup 6.7 Typedef 6.8 Unions 6.9 Bit-fieldsChapter 
7. Input and Output 7.1 Standard Input and Output 7.2 Formatted Output--Printf 7.3 Variable-length Argument Lists 7.4 Formatted Input-Scanf 7.5 File Access 7.6 Error Handling--Stderr and Exit 7.7 Line Input and Output 7.8 Miscellaneous FunctionsChapter 
8. The UNIX System Interface 8.1 File Descriptors 8.2 Low Level I/O-Read and Write 8.3 Open, Creat, Close, Unlink 8.4 Random Access--Lscek 8.5 Example--An Implementation of Fopen and Getc 8.6 Example--Listing Directories 8.7 Example--A Storage Allocator
Appendix A. Reference Marital B. Standard Library 
《The C Programming Language》目录

  第一章就简略地提到了Functions,在讲完“Types, Operators, and Expressions”和“Control Flow”之后,立刻就开始在第4章详细讲解“Functions”并且同时开始讲“Program Structure”。Structures是在后面的第6章才讲到。

  再看K. N. King《C Programming: A Modern Approach 》

《C Programming: A Modern Approach 》目录
1 INTRODUCING C 1
2 C Fundamentals 9 
3 Formatted Input/Output 37 
4 Expressions 53 
5 Selection Statements 73 
6 Loops 99 
7 Basic Types 125 
8 Arrays 161 
9 Functions 183 
10 Program Organization 219 
Advanced Features of C 
11 Pointers 241 
12 Pointers and Arrays 257 
13 Strings 277 
14 The Preprocessor 315 
15 Writing Large Programs 349 
16 Structures, Unions, and Enumerations 377 
17 Advanced Uses of Pointers 413 
18 Declarations 457 
19 Program Design 483 
20 Low-Level Programming 509 The Standard C Library 
21 The Standard Library 529 
22 Input/Output 539 
23 Library Support for Numbers and Character Data 589 
24 Error Handling 627 
25 International Features 641 
26 Miscellaneous Library Functions 677 
27 Additional C99 Support for Mathematics 705

  刚讲完Arrays就在第9章开始介绍Functions。而Structures是在后面的第16章才讲到。

  Kenneth A.Reek 《Pointers on C》  

 1 A Quick Start. 
 2 Basic Concepts. 
 3 Data. 
 4 Statements. 
 5 Operators and Expressions. 
 6 Pointers. 
 7 Function. 
 8 Arrays. 
 9 Strings, Characters, and Bytes. 
10 Structures and Unions. 
11 Dynamic Memory Allocation. 
12 Using Structures and Pointers. 
13 Advanced Pointer Topics. 
14 The Preprocessor. 
15 Input/Output Functions. 
16 Standard Library. 
17 Classic Abstract Data Types. 
《Pointers on C》目录

   刚讲完Pointers就在第7章开始讲Function。而Structures是在后面的第10章才讲到。

  再来看两本国内作者写的书。

  键盘农夫《狂人C:程序员入门必备》 

第1篇 理解程序设计 1第1章 基础知识 21.1 什么是编程 31.2 怎样用C语言编程 71.3 printf()函数初步 131.4 C语言的“字母”和“单词” 14第2章 数据类型 232.1 什么是数据类型 242.2 让程序记住计算结果——变量 312.3 int类型——总结与补充 352.4 对数据类型的进一步讨论 392.5 莫名其妙的“整型” 452.6 浮点类型 512.7 数据类型与算法 572.8 算法的特性 61第3章 运算符、表达式及语句 663.1 C的“动词”及“动词”的“宾语” 673.2 表达式——C语言的“词组” 673.3 谁是谁的谁 713.4 右值的类型转换 743.5 语句的概念 813.6 例题 843.7 算法和数据结构初窥 883.8 在程序运行时提供数据 90第4章 选择语句 954.1 关系运算 964.2 if语句 974.3 判等运算 1044.4 表达复杂的条件 1064.5 if-else语句 1074.6 鸡肋——_Bool类型(C99) 1094.6 鸡肋——_B4.7判断三角形种类 1114.8 显得很有学问的运算符 1174.9 大师如是说goto 1184.10 给程序更多选项——switch语句 1194.11 程序开发的过程 124第5章 从循环到穷举 1305.1 造句:当……就…… 1315.2 do-while语句 1385.3 for语句 1405.4 不规则的循环及对循环的修整 1505.5 循环的嵌套与穷举法 151第2篇 结构化程序设计与简单的数据结构 161第6章 最复杂的运算符——“()” 1626.1 什么是函数 1636.2 步骤1:函数的声明 1636.3 步骤2:函数的定义 1656.4 步骤3:函数的调用 1676.5 程序的执行过程 1686.6 例题——为什么使用函数 1706.7 使用函数小结 1716.8 函数与结构化程序设计 1746.9 变量的作用域 1816.10 递归 1826.11 对局部变量的进一步修饰 1906.12 使用库函数 1936.13 inline关键字(C99) 195第7章 作为类型说明符和运算符的“[]” 1997.1 使用数组 2007.2 深入理解数组 2027.3 熟练应用一维数组 2057.4 数组名做实参 2097.5 多维数组 216第8章 结构体、共用体与位运算 2288.1 结构体 2298.2 C语言中复数类型的历史和现状 2378.3 共用体union 2408.4 位运算 2428.5 “小的变量”——位段 251第9章 指针 2589.1 指针是什么 2599.2 指向数据对象的指针 2609.3 指针的应用与误用 2669.4 指针与一维数组 2709.5 指针的应用(二) 2799.6 高维数组名 2819.7 变量长度数组——VLA(C99) 2879.8 数组类型的字面量(C99) 2919.9 指针与结构体 2929.10 指针与函数 2949.11 指向虚无的指针 2989.12 参数不确定的函数 299第10章 字符串、字符数组及指向字符的指针 30610.1 字符串文字量 30710.2 字符串的输入与存储 30910.3 例题 31010.4 形参说明符“[]”里的修饰符(C99) 31610.5 常用的字符串函数 31710.6 main()的参数 32010.7 体现代码优美的数据类型——枚举类型 323第3篇 复杂的数据结构、算法及其他话题 328第11章 复杂的数据类型与算法 32911.1 2 2 2 2 = 0 33011.2 复杂数据类型的构造和解读 33111.3 递归、穷举、回溯、排列 34411.4 更自由地使用内存 35611.5 typedef 364第12章 程序的输入与输出 36912.1 面向文件的输入与输出 37012.2 文卷、流、“FILE”及“FILE *” 38012.3 二进制文卷的读写 38412.4 定位问题 38812.5 制作素数表 389第13章 程序组织与编译预处理 39413.1 简介 39513.2 文件包含 39613.3 Tic-Tac-Toe游戏 39713.4 重新开始 40913.5 宏定义与宏替换 41613.6 使用外部变量 42313.7 走棋 42713.8 预处理命令的其他话题 439第14章 标准库简介 44614.1 使用标准库的一些常识 44714.2 对语言的补充 44914.3 stdio.h 45214.4 通用函数:stdlib.h 45414.5 inttypes.h(C99) 46014.6 string.h 46214.7 数值计算 46214.8 错误处理:errno.h 46614.9 断言与调试:assert.h 46814.10 非本地跳转setjmp.h 46814.11 信号处理signal.h 47014.12 time.h 47114.13 国际化问题 475
《狂人C:程序员入门必备》目录

   刚讲完语句在第二篇一开始的第6章马上就讲解函数,并且刻意地强调了()是一种运算符。结构体到第8章才讲。 

  裘宗燕《从问题到程序:程序设计与C语言引论》

第一章,程序设计与C 语言。介绍程序与程序语言的概念,C 语言的发展及其特点。用
一个小例子介绍C 程序形式,其加工和执行。最后介绍程序设计与开发过程。第二章,数据对象与计算。讨论程序语言的许多最基本概念,包括:字符集、标识符和
关键字,数据与类型,数据表示,运算符、表达式与计算过程,数学函数库的使用等。第三章,变量、函数和控制结构。讨论程序设计的一些基本问题,包括语句与复合结构,
变量及其使用,简单函数定义,逻辑条件的描述与使用等。最后介绍了几种基本控制结构。第四章,基本程序设计技术。首先分析循环程序设计的基本问题,通过一系列程序实例
分析了循环的构造过程。此后介绍了C 语言其他控制结构及其使用。第五章,C 语言程序结构。讨论C 语言许多具有一般性的重要问题,主要是C 程序结
构,函数概念及有关的问题,预处理命令和预处理过程,递归的概念等。第六章,数据对象的顺序组合:数组。介绍数组概念、定义和使用,数组与函数的关系,
两维和多维数组等。第七章,指针。指针概念和指针变量的使用,C 语言中指针与数组的关系,多维数组作
为参数的通用函数。而后讨论了动态存储管理,类型定义,指向函数的指针等一系列问题。第八章,输入输出与文件。讨论了文件概念,与输入输出有关的各种问题,标准库的输
入输出功能,以及输入输出的程序设计问题。第九章,结构及其他数据机制。介绍结构(struct)、联合(union)、枚举(enum)等数
据定义机制的意义及在程序中的使用。随后简单介绍了链接结构的概念。第十章,程序开发。讨论程序设计和开发中的许多一般性问题和技术。包括C 程序的
分块开发问题等。第十一章,标准库函数。介绍标准库提供的各方面功能及其相关知识。
最后有几个附录和一个比较详细的索引。
《从问题到程序:程序设计与C语言引论》目录

  为了尽早讲解函数,特意把函数部分拆成了两部分,能讲的部分,早早地在第三章刚介绍完变量就开讲了,其余部分放在了后面第五章讲。第九章才讲结构。

  什么叫境界?什么叫水平?什么叫懂得C语言?什么叫懂得编程?什么叫懂得写书?

  这些作者们,他们知道编程中最重要的是什么,知道C语言是什么,知道什么叫循序渐进。他们在用有形的文字、无声的语言,在告诉你,在熏陶你,在启发你,在引导你渐渐地懂得C语言的精髓和编程的真谛。他们让你懂得,饭碗是用来盛饭的,便盆是用来小便的。

  可是《C语言入门很简单》这本书或老谭那本书呢?纯粹是教人用便盆当饭碗!这会教出很多二逼,你若告诉他这样写不对,他会振振有词:

  作为一名第一次接触C语言的小白,我很感谢这本书在很短的时间内让我对C语言产生了兴趣并且能做简单的应用。这本书即使有这样那样的纰漏,但是作为“领进门的师傅”,已经很尽责了~特别是书配套的视频,对初学者帮助真的很大!!!函数调到后面我觉得也很合理,让我们这些怕语言的小白很好接受!

  这特么跟坚持“便盆也能盛饭,饭碗也能小便”有什么区别?!

  不怕不识货,就怕货比货。不过写到这里,我突然感到一阵疚惭,把《The C Programming Language》、《C Programming: A Modern Approach 》、《Pointers on C》、《狂人C:程序员入门必备》、《从问题到程序:程序设计与C语言引论》这几本书和《C语言入门很简单》写在同一篇博文里实在是一种亵渎。我真的感觉对不住前面那些书的作者们。在此我向Brian W. Kernighan、Dennis M. Ritchie、K. N. King、Kenneth A.Reek、键盘农夫、裘宗燕等几位作者鞠躬致歉。对不起,万般无奈,势不得已,实在是箭在弦上,想收都收不住了。

  从以上种种,我们不难看出,《C语言入门很简单》作者的C语言和编程水平其渣无比。这同样证明了这本书的责任编辑根本不称职,要么无知,水平与作者同样其渣无比,要么无良。对于一名编辑来说,即使你不得懂编程,可你连作者是个门外汉都看不出来,你有什么资格当编辑?

  作者们炮制这样的书不是坑人又是什么?!不是像老谭一样误人子弟又是什么?!不是谋财害命又是什么?!清华大学出版社出版这种垃圾,不是玷污文化污染技术又是什么?!不是生产技术地沟油又是什么?!不是浪费森林污染环境又是什么?!不是误人子弟谋财害命的帮凶或同谋又是什么?!你们对得起辛辛苦苦长了好几百年才长成的森林吗?你们有资格抱怨帝都的雾霾吗?

  为此我强烈建议人大修改刑法将这种炮制劣书误人子弟的行为入罪并课以无期徒刑!

  孩子喊我陪他看电影了,今天就只能写到这里了。

续文链接:踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(3)

转载于:.html

更多推荐

踢爆IT劣书出版黑幕——由清华大学出版社之《C语言入门很简单》想到的(2)...

本文发布于:2024-02-14 01:38:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1761213.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:很简单   黑幕   清华大学出版社   入门   踢爆

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!