谭浩强《C语言程序设计(第二版)》的前50页中的错误分析
谭书也算是一本奇书了,据说已经发行了300多万册。这本书真的那么好吗?师长早有教诲,因此本人从来没有好好读过谭书。近日遇周围人盛赞谭书,非辩论不可。虽本人不愿应战,但也不得已将谭书找来翻翻。随便翻了一段,就发现错误百出,在此将其中最前面的一些整理出来,提出与国内广大
行家和新入道者讨论,望行家们提出批评,供新入道者参考。
书中程序的不规范性、不良的格式和低劣的编程都不在这里深究了。实在是太多,要深究、分析和改
正起来,必须写一本数倍于谭书的大作,本人实在没这个时间和精力。水平高的人有的是,欢迎写几
个续篇。欢迎转载到其他BBS,以期引起讨论。对本人所言的不实之处欢迎批评。
注:下面将作者尊称为“谭先生”。负的行号表示一页里倒数的行数。
--------------------------------------------------------------
先看目录,是不是有个地放有:
"淡函数………………………………",什么东西,这算是排版错误,不理会!
P1行1:…,它适于作为系统描述语言,…
这开宗明义的第一句话就说明谭先生对于计算机科
学的术语不甚了了。什么叫“系统描述”,什么叫“系统程序设计”?人们都都说C是一种“系统程
序设计语言”,而“系统描述语言”则完全是另一种东西。想必谭先生对它们之间的差异和关系都不
清楚。在这种情况下就来下断言,一上马就露了怯。
P2表格:if (e) S
这个错误说明谭先生对C语句基本结构也不清楚。在C语言里,分号是普通语句的结束符号,是语句
的一部分。如果谭先生的S表示语句,那么后随的分号是必需的吗?如果谭先生的S表示语句中分号
前面的一部分,那么又如何理解可以放在这里的{ ... } 顺序结构呢?它算语句吗?可以放在这里
吗?要加分号吗?无论怎么看,谭先生都难以自圆其说!
P3行4:C语言是理想的结构化语言,…
不知谭先生的这个论断由何而来。C的创造者肯定不会说这句话,即使是C语言最狂热的崇拜者恐怕
也不敢这样说。幸亏谭先生生在中国,其书只在中国出版,否则恐怕他就不会好过了,不知有多少人
要找谭先生理论个究竟。
P3行7-8:例如整型量与字符型数据以及逻辑型数据可以通用。
此句子表现出的语文水平就不深究了。要问谭先生的简单问题是,“量”与“数据”是什么关系?再
一个问题是,C语言什么时候增加了“逻辑型数据”?
P3行14:C语言允许直接访问物理地址。
不知这个论断从何而来。至少无法从C语言参考手册中找到根据,看来是谭先生为C语言增加的特殊功能。
P4程序:This is a c program.
通观世界上所有有关C语言的重要著作,C语言的名字“C”都是用大写表示。这里好象谭先生表示了
对C的不肖,与前面大相径庭,不知何故。P5行9:注释可以出现在程序中的任何位置。
这里又修改了C语言的规则。这里给谭先生提个小问题:“请找出在C程序里不能出现注释的位置(
或说,加了注释就会改变程序意义的位置)。”请10秒钟内回答。
P5行12:“%d”表示“十进制整数类型”。
写程序有问题呀!怎么一遇到具体问题,写出的解释到处都是毛病。“%d”根本就不表示任何类型,
它只是对函数printf提出一个转换要求。如果一个初学者产生这种理解偏差还有情可言,像谭先生这
样的“大师”级人物也犯此等低级错误,实在是不可原谅。
P5行-8:scanf和printf都是C语言提供的标准输入输出函数…
按本人理解,C语言本身不提供任何有关输入输出的功能,也不提供任何标准函数。只是ANSI C建议
了一个标准函数库。至少C参考手册上是这么说的,在谭书中其他部分也这么说。概念不太清楚就容
易漏马脚。
P6行13:可以说C是函数式的语言。
太荒唐了,完全是望文生义。谭先生的计算机科学技术知识水平可见一斑。函数式语言是计算机科学
领域中有明确意义的术语。再者说,即使不理解,也应该尽量回避一下大家都知道的东西,这下不就
漏了底。说C是函数式语言,就像说谭先生是“错话大师”一样(毕竟他也说了许多对的话嘛!)。
看来谭先生需要补一补计算机科学的基础知识,听说谭先生是清华大学毕业,那里的计算机系也还不
错嘛。
一般来说,清华大学出版社的计算机书是最好的,主要有1.《C++语言基础教程(第2版)》
出版社:清华大学出版社
作者:吕凤翥
书中全面、系统地讲述了 C++语言的基本概念、基本语法和编程方法,较详尽地讲述了 C++语言面向对象的重要特征: 类和对象、继承和派生类、多态性、虚函数、函数模块和类模板等内容。本书具有丰富的例题,每章后面均备有相当数量的练习题和作业题。 全书通俗易懂,由浅入深,突出重点,偏重应用。本书不仅可作为高等学校 C++语言课程的教材,还可作为 C++语言的自学教材
2.《面向对象程序设计与C++语言(第二版)》
出版社:人民邮电出版社
作者:杨庚/王汝传/叶晓国
本书系统地介绍了面向对象技术及C++语言的相关知识。内容包括面向对象技术的概念和特征、C++语言基础、类和对象、派生与继承、虚函数与多态性、模板、运算符重载、输入/输出流库、异常处理等。 本书注重基本概念,从实际应用出发,突出重点,叙述清楚,深入浅出,论述详尽,使读者既能深刻领会面向对象程序设计的思想,了解面向对象程序设计的特征,又能掌握C++语言的...
3.《C++语言程序设计教程》
出版社:清华大学出版社
作者:杨进才/沈显君/刘蓉
C++语言是目前最为流行的程序设计语言,它既支持面向过程的结构化程序设计,也支持基于对象的面向对象程序设计。本书依据ANSI C++标准,从面向过程的编程到面向对象的编程方法展开,形成一条自然流畅的主线,同时两个部分又自成体系,以满足不同基础与需求的学习者。内容包括:C++编程简介、数据类型与表达式、控制结构、函数、构造数据类型、C++程序的结构、类与对象、继承
4.《C/C++程序设计教程》
出版社:机械工业出版社
作者:秦维佳/伞宏力/侯春光/孟艳红
本书是《C/C++程序设计教程》的配套学习辅导用书。. 全书共分12章,内容包括C/C++语言程序设计初步,C语言的数据类型及表达式,结构化程序设计,数组、函数与指针的概念和实例,结构体与共用体,位运算与文件的概念,面向对象程序设计,类的继承与多态,C++的I/O流。每章包括知识体系、学习要点、上机实训、习题和参考答案。.. 本书可供初学者学习C语言,也可供...
5.《C++程序设计基础导学》
出版社:科学出版社
作者:赵海廷/严运国
本书为是实践训练环节必不可少的辅助教材。本书按照《C++程序设计基础》的顺序组织编撰,由基本要求、内容小结、典型例题分析、习题、实验及习题参考答案组成。本书的目的是通过典型例题剖析、习题和实验环节来巩固所学的理论知识,提高学生的实践 *** 作水平。 本书适用高职高专的理工科学生,也适合于C++语言的初学者,还可供普通高校理...
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)