____________________________________________________________________
第3页 第6行
通常我们所看到的计算机,一般都会有键盘、鼠标、显示器、机箱等几个部分。
应为
通常我们所看到的计算机,一般都会有键盘、鼠标、显示器、主机等几个部分。____________________________________________________________________
通常我们所看到的计算机,一般都会有键盘、鼠标、显示器、主机等几个部分。____________________________________________________________________
第6页 第1行
汇编语言用助记符(add ,move……)代替了操作码
应为
汇编语言用助记符(add ,mov……)代替了操作码
汇编语言用助记符(add ,mov……)代替了操作码
____________________________________________________________________
第7页 第11行
ANSI C本身也是在不断变化的,1987年87 ANSI C公布。1989年又公布了目前多数编
译系统所遵循的C89,这个标准被国际标准化组织(International Standardization Organization
ISO)在1990年采纳为国际标准(ISO/IEC 9899:1990 - Programming languages -- C),
所以也有时被称为C90。这个版本的C标准是目前事实上的现行C语言标准。我国目前的国家
标准(GB/T 15272-94 程序设计语言C)也是据此订立。
译系统所遵循的C89,这个标准被国际标准化组织(International Standardization Organization
ISO)在1990年采纳为国际标准(ISO/IEC 9899:1990 - Programming languages -- C),
所以也有时被称为C90。这个版本的C标准是目前事实上的现行C语言标准。我国目前的国家
标准(GB/T 15272-94 程序设计语言C)也是据此订立。
应为
1989年,ANSI正式批准了ANSI C为美国国家标准(X3.159-1989),这就是所谓的C89。
这个标准被国际标准化组织(International Organization for Standardization,ISO)做了少量编
辑性修改后在1990年采纳为国际标准(ISO/IEC 9899:1990 - Programming languages -- C),
所以也有时被称为C90。这个版本的C标准是目前多数编译系统所遵循的事实上的现行C语言
标准。我国目前的国家标准(GB/T 15272-94 程序设计语言C)也是据此订立。
这个标准被国际标准化组织(International Organization for Standardization,ISO)做了少量编
辑性修改后在1990年采纳为国际标准(ISO/IEC 9899:1990 - Programming languages -- C),
所以也有时被称为C90。这个版本的C标准是目前多数编译系统所遵循的事实上的现行C语言
标准。我国目前的国家标准(GB/T 15272-94 程序设计语言C)也是据此订立。
____________________________________________________________________
第8页 第1行
现代的编译器通常都搭配一个免费的编辑器,并且功能远超过两者之和。这种软件,目前流
行的名字叫IDE,本书的配套光盘提供了Dev C++这种IDE。当然也可以使用其他的IDE比如
Visual C++、Turbo c 2.0等来编辑、运行本书的大部分代码。
总之,学习C语言编程只需要准备以下几样东西:
1. 能够正常运行的计算机,
2. 任何一种IDE(用于编辑、编译、调试,本书配套光盘提供了Dev C++),
3. 本书。
本书及配套光盘只提供了后面两项,第一项所要求的设备尚请读者自备。
应为:
现代的编译器通常都搭配一个免费的编辑器,并且功能远超过两者之和。这种软件,目前流
行的名字叫IDE,本书的代码是在Dev C++这种IDE下完成的。当然也可以使用其他的IDE比如
Visual C++、Turbo c 2.0等来编辑、运行本书的大部分代码。
总之,学习C语言编程只需要准备以下几样东西:
1. 能够正常运行的计算机,
2. 任何一种IDE(用于编辑、编译、调试),
3. 本书。
____________________________________________________________________第9页 第5行
由于使用了一段事先写好的程序段(这是编译器提供的)
应为
由于使用了一段事先写好的程序段(这是随编译器一起提供的)____________________________________________________________________
由于使用了一段事先写好的程序段(这是随编译器一起提供的)____________________________________________________________________
第13页 第20行
printf()函数调用 “()”中的第一个字符串叫做格式控制字符串。其中的字符都原样输出,除
非出现“\”引导的字符序列或“%”引导的字符序列。
非出现“\”引导的字符序列或“%”引导的字符序列。
应为
printf()函数调用 “()”中的第一个字符串叫做格式控制字符串。其中的字符都原样输出,除
非出现“\”引导的字符序列或“%”引导的字符序列(如果使用三字符序列,“?”引导的字符序列
也可能不按照原样输出)。
printf()函数调用 “()”中的第一个字符串叫做格式控制字符串。其中的字符都原样输出,除
非出现“\”引导的字符序列或“%”引导的字符序列(如果使用三字符序列,“?”引导的字符序列
也可能不按照原样输出)。
____________________________________________________________________
第13页 第-4行
\"、\n、\a、\b、\t、\\、\"、\'
应为
\"、\'、\\、\n、\a、\b、\t、\r、\f、\?、\v
\"、\'、\\、\n、\a、\b、\t、\r、\f、\?、\v
____________________________________________________________________
第14页 第-1行(脚注)
目前好象还没有实现可以使用汉字的C语言编译器,VB、Java在这方面做的比较好。
应为
VS2008中文版等编译器支持中文字符作为标识符。____________________________________________________________________
VS2008中文版等编译器支持中文字符作为标识符。____________________________________________________________________
第16页 第19行
如表1-1所示,是C99新增的关键字。
应为
如表1-1所示,是C99的全部关键字。
如表1-1所示,是C99的全部关键字。
____________________________________________________________________
第20页 练习2-⑥
使用printf()函数应在代码开头的位置通过编译是编译器处理命令对函数的名称做相应的说明。
应为
使用printf()函数应在代码开头的位置通过编译预处理命令对函数的名称做相应的说明。____________________________________________________________________
使用printf()函数应在代码开头的位置通过编译预处理命令对函数的名称做相应的说明。____________________________________________________________________
第24页 第16行
称呼这种编号的专业术语有很多种,有的叫ASCII码,有的叫“内码”,有的叫Unicode编码等等
应为
称呼这种编号的专业术语有很多种,有的叫ASCII码,有的叫GB2312编码,有的叫Unicode编码等等
称呼这种编号的专业术语有很多种,有的叫ASCII码,有的叫GB2312编码,有的叫Unicode编码等等
____________________________________________________________________
第36页 第-11行
减去这个数直接得到
应为
减去这个数的绝对值直接得到
____________________________________________________________________减去这个数的绝对值直接得到
和前面几种整数类型不一样的是,C语言没有规定char类型究竟是signed char类型还
是unsigned char类型。编译器可以决定自己的char究竟是signed char类型还是unsigned
char类型。所以“signed是可以省写的”这一说法,如果不说是错误的,那么至少也是不严
谨的。
是unsigned char类型。编译器可以决定自己的char究竟是signed char类型还是unsigned
char类型。所以“signed是可以省写的”这一说法,如果不说是错误的,那么至少也是不严
谨的。
应为
和前面几种整数类型不一样的是,C语言没有规定char类型究竟是 signed 还
是 unsigned 。编译器可以决定自己的char究竟是 signed 还是 unsigned。所以
“signed是可以省写的”这一说法,如果不说是错误的,那么至少也是不严谨的。
是 unsigned 。编译器可以决定自己的char究竟是 signed 还是 unsigned。所以
“signed是可以省写的”这一说法,如果不说是错误的,那么至少也是不严谨的。
____________________________________________________________________
第48页 第15行
char类型的这种不确定性,使得对这种类型全面的讨论变得十分困难烦琐。所以在后面的
讨论中,均假定char类型为8bits,且char类型等价于signed char类型。但请特别注意这并不
是普遍的情形。
讨论中,均假定char类型为8bits,且char类型等价于signed char类型。但请特别注意这并不
是普遍的情形。
应为
char类型的这种不确定性,使得对这种类型全面的讨论变得十分困难烦琐。所以在后面的
讨论中,均假定char类型为8bits,且char类型为signed。但请特别注意这并不是普遍的情形。
char类型的这种不确定性,使得对这种类型全面的讨论变得十分困难烦琐。所以在后面的
讨论中,均假定char类型为8bits,且char类型为signed。但请特别注意这并不是普遍的情形。
____________________________________________________________________
第49页 第-20行 其中的八进制数和十六进制数就是字符编号。这种字符同样也可以写在字符串文字量中,只是不再需要两边的“'”。
应为
其中的八进制数(1到3位)和十六进制数(1到2位)就是字符编号。这种字符同样也可以写在字符串文字量中,只是不再需要两边的“'”。
其中的八进制数(1到3位)和十六进制数(1到2位)就是字符编号。这种字符同样也可以写在字符串文字量中,只是不再需要两边的“'”。
____________________________________________________________________
第60页 第-7行
如果希望输出为“02”,在%与2d之间应再写个0——%02d。
应为
如果希望输出为“01”,在%与2d之间应再写个0——%02d。
____________________________________________________________________如果希望输出为“01”,在%与2d之间应再写个0——%02d。
第62页 第15行
预处理命令 #definede
应为
预处理命令 #define
应为
预处理命令 #define
____________________________________________________________________
第65页 第8题8. 编程计算下面多项式的近似值
8. 编程计算下面多项式的近似值
x4+2x3 ++3x2+8x+7,x=3.47
应为8. 编程计算下面多项式的近似值
x4+2x3 +3x2+8x+7,x=3.47
____________________________________________________________________
第65页 第12题应为 94页第14题____________________________________________________________________
第73页 第-1行 (“-”表示从下面开始数)
利用续行的标志,从某种意义上说,单调也可以割裂。
应为
利用续行的标志,从某种意义上说,单词也可以割裂。
应为
利用续行的标志,从某种意义上说,单词也可以割裂。
____________________________________________________________________
第89页 第-4~-3行 (“-”表示从下面开始数)(感谢“木瓜”网友指出BUG)
ji_q = ji_q + ji_z / YQ ;
ji_z = ji_z % YQ + ji_h / YQ ;
应为
ji_q = ji_q + ( ji_z + ji_h / YQ ) / YQ ;
ji_z = ( ji_z + ji_h / YQ ) % YQ ;
ji_z = ji_z % YQ + ji_h / YQ ;
应为
ji_q = ji_q + ( ji_z + ji_h / YQ ) / YQ ;
ji_z = ( ji_z + ji_h / YQ ) % YQ ;
____________________________________________________________________
由于sizeof与(long)运算的优先级相同,且结合性从左到右。所以sizeof (long)-2的含义是后一种。
应为
如果把表达式中的"-"作为一元运算符,由于"sizeof"与一元"-"运算的优先级相同,且结合性从右向左,表达式的含义为 (sizeof (long) ) (-2) ,这将产生矛盾和错误,因此这里的"-"不可能是一元运算。亦即表达式中"sizeof"的优先级最高,所以sizeof (long)-2的含义只可能是后一种。____________________________________________________________________
第 93页 第-12行
应为
如果把表达式中的"-"作为一元运算符,由于"sizeof"与一元"-"运算的优先级相同,且结合性从右向左,表达式的含义为 (sizeof (long) ) (-2) ,这将产生矛盾和错误,因此这里的"-"不可能是一元运算。亦即表达式中"sizeof"的优先级最高,所以sizeof (long)-2的含义只可能是后一种。____________________________________________________________________
3. 一对小兔子在出生两个月后每个月都生出一对小兔子。如果所有兔都不死,那么半年以后可以繁殖多少对兔子?
应为
3. 一对小兔子在出生两个月后每个月都生出一对小兔子。如果所有兔都不死,那么半年以后可以繁殖成多少对兔子?
应为
3. 一对小兔子在出生两个月后每个月都生出一对小兔子。如果所有兔都不死,那么半年以后可以繁殖成多少对兔子?
__________________________________________________________________
第111页 第4行 #inlude
应为
#include
应为
#include
____________________________________________________________________
第118页 第-7行 (“-”表示从下面开始数) goto语句是与语句标记(lable)一起使用的。
应为
goto语句是与语句标记(label)一起使用的。
应为
goto语句是与语句标记(label)一起使用的。
____________________________________________________________________
第220页 第-13行 (“-”表示从下面开始数)
用0介绍的输入重定向的办法从文件输入。
应为
用7.4.7介绍的输入重定向的办法从文件输入。
应为
用7.4.7介绍的输入重定向的办法从文件输入。
____________________________________________________________________
第300页 第-21行 (“-”表示从下面开始数)
在图9-14中的两个形参
应为
在图9-31中的两个形参
应为
在图9-31中的两个形参
____________________________________________________________________
第360页 第-17行 (“-”表示从下面开始数) 在C99中,“DASHU”这样的数据还有另外一种描述方法:
应为
在某些对C语言进行了扩展的编译器中,“DASHU”这样的数据还有另外一种描述方法:
应为
在某些对C语言进行了扩展的编译器中,“DASHU”这样的数据还有另外一种描述方法:
____________________________________________________________________
第361页 第4行 但是C99中的写法更简洁更直观一些。
顺便说一句,说明柔性数组成员时,“[]”中的0也可以不写,即以一种不完全数据类型的方式描述。
应为
但是柔性数组成员的写法更简洁更直观一些。
____________________________________________________________________ 但是柔性数组成员的写法更简洁更直观一些。
此外,按照C99标准要求,在说明柔性数组成员时,“[]”中应该不写任何内容,即以一种不完全数据类型的方式描述。
第368页 第8行 (感谢耿阳读者)
绿色房子在白色房子的左边;
应为
绿色房子紧邻且在白色房子的左边;
应为
绿色房子紧邻且在白色房子的左边;
____________________________________________________________________
第474页
第474页
程序代码14-10
#include
#include
#include
int main( void )
{
struct tm birthday =
{ 0 , 20 , 17 , 13 , 6 - 1 , 2002 - 1900 , 4 , 163 , -1 };
puts( asctime ( & birthday ) );
system("PAUSE");
return 0;
}
#include
#include
int main( void )
{
struct tm birthday =
{ 0 , 20 , 17 , 13 , 6 - 1 , 2002 - 1900 , 4 , 163 , -1 };
puts( asctime ( & birthday ) );
system("PAUSE");
return 0;
}
应为
程序代码14-10
#include
#include
#include
int main( void )
{
struct tm birthday =
{ 0 , 3 , 23 , 27 , 3 - 1 , 2010 - 1900 , 6 , 82 , -1 };
char birthtext[80];
strftime ( birthtext , 80 , "%c", & birthday ) ;
puts(birthtext);
system("PAUSE");
return 0;
}
#include
#include
int main( void )
{
struct tm birthday =
{ 0 , 3 , 23 , 27 , 3 - 1 , 2010 - 1900 , 6 , 82 , -1 };
char birthtext[80];
strftime ( birthtext , 80 , "%c", & birthday ) ;
puts(birthtext);
system("PAUSE");
return 0;
}
____________________________________________________________________