编号

页码和行数

更正前

更正后

1

325

正数第6

printf("%d", *(p)++);

printf("%d", (*p)++);

 

2

325

11.2的程序

#include <stdio.h>

int main()

{

    int  a[] = {1,2,3,4,5};

    int  *p = a; 

printf("%d,",*(++p));

printf("%d,", *(p)++);

printf("%d,",*p);

printf("%d,",*p);

printf("%d,",*p--);

printf("%d,",--(*p));

printf("%d\n",*p);

    return 0;

}

#include <stdio.h>

int main()

{

    int  a[] = {1,2,3,4,5};

    int  *p = a; 

printf("%d,",*p);

printf("%d,",*(++p));

printf("%d,",(*p)++);

printf("%d,",*p);

printf("%d,",*p--);

printf("%d,",--(*p));

printf("%d\n",*p);

    return 0;

}

原第8行语句调整到第6行语句之前

3

343页图12-6

(a)多数计算机系统中结构体变量s在内存中的存储形式

(b) 少数计算机系统中结构体变量s在内存中的存储形式

(a)结构体变量s的第二个成员为4字节int型时在内存中的存储形式

(b) 结构体变量s的第二个成员为2字节short型时在内存中的存储形式

 

4

附录C

 

 

表格第一行“含义”所在列在“引用结构体成员”后面,添加两个运算符:后缀增1、后缀减1

“运算符”所在列的圆点下面,添加:

++(后缀)、--(后缀)

表格第二行的“++--”修改为“++(前缀)、--(前缀)”

5

218 8.6节的表格,倒数第二行表格

“为了在函数内改变实参的值,必须采用传调用的方法”

“为了在函数内改变实参的值,必须采用传地址调用的方法”

“向函数传递一维数组和二维数组”一行;“备注”一列

 

6

384页第61行代码

sum = sum + stu.score;

sum = sum + stu[i].score[j];

 

7

387页程序第44

fscanf(fp, "% c", &stu[i].studentSex);

fscanf(fp, " %c", &stu[i].studentSex);

 

8

附录E406页倒数第4行的表格

int isalnum(ich)

int isalnum(ch)

 

9

附录E412页正数第1行表格

void(char) *calloc(n,size)

unsigned n;unsign size;

void(char) *calloc(n,size)

unsigned int n; unsigned int size;

 

10

附录E412页正数第1行表格

分配n个数据项的内存连续空间,每项大小为size字节。

分配n个数据项的内存连续空间,每项大小为size字节,与malloc()不同的是calloc()能自动将分配的内存初始化为0

 

11

176页程序第16

ret = scanf("%d, &guess);

ret = scanf("%d", &guess);

 

12

190页程序第7

"Input the scores of ten students:\n"

"Input the scores of five students:\n"

 

13

384页程序第59-63

for (j=0; j<m; j++)

{

     sum = sum + stu.score;

}

stu.aver = (float)sum/m;

 

for (j=0; j<m; j++)

{

     sum = sum + stu[i].score[j];

}

stu[i].aver = (float)sum/m;

 

 

36页图3-6改成:

 

3-6  表达式中的自动类型转换规则

36页倒数第7行:

例如,一个int型操作数与一个float型操作数进行算术运算,则在对其进行运算之前要先将int型操作数转换成float型(注意,无需经过int型先转换为unsigned,再转换成long型,再转换为float型的过程)。

改成:

例如,一个int型操作数与一个float型操作数进行算术运算,则在对其进行运算之前要先将float型自动转换为double型,并将int型操作数转换成double型(注意,无需经过int型先转换为unsigned int,再转换成long型,再转换成unsigned long再转换为double型的过程)。

 

附录C修改如下:

附录C  C运算符的优先级与结合性

   

   

   

1

()

[ ]

->

.

++  --

圆括号、函数参数表

数组元素下标

指向结构体成员

引用结构体成员

后缀增1、后缀减1

 

自左向右

2

!

~

++  --

-

*

&

(类型标识符)

sizeof

逻辑非

按位取反

前缀增1、前缀减1

求负

间接寻址运算符

取地址运算符

强制类型转换运算符

计算字节数运算符

单目运算

自右向左

3

*  /  %

乘、除、整数求余

双目算术运算

自左向右

4

+ -

加、减

双目算术运算

自左向右

5

<<  >>

左移、右移

位运算

自左向右

6

<  <=

>  >=

小于、小于等于

大于、大于等于

关系运算

自左向右

7

==  !=

等于、不等于

关系运算

自左向右

8

&

按位与

位运算

自左向右

9

^

按位异或

位运算

自左向右

10

|

按位或

位运算

自左向右

11

&&

逻辑与

逻辑运算

自左向右

12

||

逻辑或

逻辑运算

自左向右

13

? :

条件运算符

三目运算

自右向左

14

=

+=  -=  *=  /=   %=  &=  ^=

|=  <<=  >>=

赋值运算符

复合的赋值运算符

双目运算

自右向左

15

,

逗号运算符

顺序求值运算

自左向右