《程序设计基础教程用――C语言编程》之勘误

勘误0(P38 L2) [1]

“(若希望同时实现延时,需借助于空语句)”

应为:“(若希望同时实现延时,可以关闭编译器的优化功能)”

勘误1(P39 1-9a)

中间一列三个向下箭头

应为:三个向箭头

勘误2(P45  L-6)[2]

1.8的修改代码最后的输出“printf("%d \n", n1 + k);

应为:“printf("%d \n", n2 + k);

勘误3(P46  L-6)

[训练题1.26]上方的文字“也就是说,把求和操作的结果即第i项的值暂存在fib_1变量中这样fib_1fib_2之差就是第i-1项的值。”

应为:“也就是说,把求和操作的结果即第i项的值暂存在fib_2变量中这样fib_2fib_1之差就是第i-1项的值。”

勘误4(P58  L-4)

[训练题2.7*]将训练题1.281.29改为用多个函数实现。并对1.28添加用按键增减月份、日历自动更新的功能。

应为:

[训练题2.7*]将训练题1.281.29改为用多个函数实现。并对1.29添加用按键增减月份、日历自动更新的功能。

勘误5(P69  L141620)

2.4.1 文件包含”中的 #include <temp.h>

应为:#include "temp.h"

勘误6(P116  L14)

4.4.3 强制类型转换的作用 2)转换数值”中的伪随机数生成代码注释“任意指定了两个常数

应为:“两个常数是素数的乘积,以免产生的随机数相同或分布不均

勘误7(P123  L4)

5.2.2  二维数组的定义”中的“又例如,可以将b看作长度为6的一维数组,b[0]+2*i+j(等价于b[i][j])表示自b[0]开始的第2*i+j+1个元素。”

应为:“又例如,可以将b看作长度为6的一维数组,b[0][2*i+j](等价于b[i][j])表示自b[0]开始的第2×i+j+1个元素。”

勘误8(P175  L91831)

8.6* 用结构类型实现”中的Pop函数

bool Pop(Stack *s, int &i)

{

    if (s -> top == -1)

    {

printf("Stack is empty.\n");

return false;

    }

    else

    {

i = s -> buffer[s -> top];

s -> top--;

return true;

    }

}                 //

以及之后的main函数

int main()

{

    Stack st;             //定义数据

    Init(&st);            //初始化

    Push(&st,12);            //

    int x;

    Pop(&st, x);                //

    printf("x: %d\n", x);

    return 0;

}

 

应分别为:

bool Pop(Stack *s, int *i)

{

    if (s -> top == -1)

    {

printf("Stack is empty.\n");

return false;

    }

    else

    {

*i = s -> buffer[s -> top];

s -> top--;

return true;

    }

}                 //

 

int main()

{

    Stack st;             //定义数据

    Init(&st);            //初始化

    Push(&st,12);            //

    int x;

    Pop(&st, &x);            //

    printf("x: %d\n", x);

    return 0;

}

勘误9(P182  L-3)

return *head”应去掉

 



[1] 表示第38页第2

[2] 表示第45页倒数第6