C语言程序设计勘误表
说明:红色为修改后的字符。
1、 p16
原文:
大写字母O的二进制编码依次是:0x1f,0x24,0x42, 0x42, 0x42, 0x42, 0x24, 0x1f。中国的“中”字的二进制编码的按照从上到下,从左到右顺序依次进行二进制编码,共需要32个字节。前8个字节的二进制编码是:0x01,0xf0,0x01,0xf0, 0xff,0xff,0xc0,0xf3,其余部分读者可以作为练习将其写出来。
修改为:
大写字母O的二进制编码依次是:0x18,0x24,0x42, 0x42, 0x42, 0x42, 0x24, 0x18。中国的“中”字的二进制编码按照从上到下,从左到右顺序依次进行二进制编码,共需要32个字节。前8个字节的二进制编码的十六进制表示是:0x01,0x80,0x01,0x80, 0xff,0xff,0xc1,0x83,其余部分读者可以作为练习将其写出来。
2.ASCII码下数5行
原文:从0x20到0x7f共95个编码
修改为:从0x20到0x7e共95个编码
2、 p17
原文:因此它的国标码是0x5050,而它的区位码是0x3030。
修改为:因此它的国标码是0x5056,而它的区位码是0x3036。
3、 p25
原文:1.9 求十进制数157和-153的8位、16位原码和8位、16位补码。
修改为:1.9 求十进制数157和-153的16位原码和16位补码。
4、 p36
例2.4后自然段的第3行
原文: 't'、'\11'、'\011'、'\x9'和'\x09'均表示水平制表符。
修改为:'\t'、'\11'、'\011'、'\x9'和'\x09'均表示水平制表符。
5、 p43 例2.9
原文: !(year%4) && year%400 || !(year%400)
上式等价于
(!(year%4) && year%100 ) || !(year%400)
修改为:!(year%4) && year%400 || !(year%400)
上式等价于
(!(year%4) && year%100 ) || !(year%400
6、 p76 例3.16
原文: scanf(“%s%1s”, &c1, &c2);
修改为:scanf(“%s%1s”, c1, &c2);
7、 p81例3.27
原文: printf("%f/t", atof(” 123.456asdf”));
printf("%f/t", atof(”\n-qwer”));
printf("%f/t", atof(”\n+qwer”));
printf("%f/n", atof(”3COM”));
修改为:printf("%d\t", atoi(” 123.456asdf”));
printf("%d\t", atoi(” 123456.789”));
printf("%d\t", atoi(”\n-qwer”));
printf("%d\t", atoi(”\n+qwer”));
printf("%d\n", atoi(”3COM”));
例3.28
原文:printf("%d/t", atoi(” 123.456asdf”));
printf("%d/t", atoi(” 123456.789”));
printf("%d/t", atoi(”\n-qwer”));
printf("%d/t", atoi(”\n+qwer”));
printf("%d/n", atoi(”3COM”));
修改为:
printf("%d\t", atoi(” 123.456asdf”));
printf("%d\t", atoi(” 123456.789”));
printf("%d\t", atoi(”\n-qwer”));
printf("%d\t", atoi(”\n+qwer”));
printf("%d\n", atoi(”3COM”));
p82 例3.28
原文: printf("%ld/t", atol(” 123.456asdf”));
printf("%ld/t", atol(” 123456.789”));
printf("%ld/t", atol(”\n-qwer”));
printf("%ld/t", atol(”\n+qwer”));
printf("%ld/n", atol(”3COM”));
修改为:printf("%ld/t", atol(” 123.456asdf”));
printf("%ld\t", atol(” 123456.789”));
printf("%ld\t", atol(”\n-qwer”));
printf("%ld\t", atol(”\n+qwer”));
printf("%ld\n", atol(”3COM”));
8、 p86 例3.33
原文: printf(”input a character:\n”)
c = getchar();
c >= ’0’&& c <= ’9’? (d = ~(c – ’0’) & 0xff, printf(”0x%x\n”, d)) :
printf(”%c”, c);
修改为:
printf(”input a character:\n”);
c = getchar();
c >= ’0’&& c <= ’9’? (d = ~(c – ’0’), printf(”0x%x\n”, d&0xff)) :
printf(”%c”, c);
9、 p104 例4.15
原文: Char c;
修改为:char c;
10、 p110 例4.22
修改为:计算,
11、 p112 倒数第6行
原文: d=-(((3*x-4)*x)-5)*x+13/((9*x-8)*x-5)
修改为:d=-( (((3*x-4)*x)-5)*x+13)/((9*x-8)*x-5)
12、 p113 第1行
原文: d=-(((3*x-4)*x)-5)*x+13/((9*x-8)*x-5)
修改为:d=-( (((3*x-4)*x)-5)*x+13)/((9*x-8)*x-5)
13、 p129
原文:
修改为:
14、 p151 例5.11
原文: if (n==0||==1) return 1;
修改为:if (n==0||n==1) return 1;
15、 p166 第5.11题
原文: (2) 若ni是奇数,则ni+1=3ni+2
修改为:(2) 若ni是奇数,则ni+1=3ni+1
16、 p186 例7.1
原文: initgraph( gdriver,gmode, "d:\\tc\\bgi");
修改为:initgraph( &gdriver,&gmode, "d:\\tc\\bgi");
17、 p194
原文:
修改为:
18、 p222 倒数第8行开始
原文: cout
修改为:while(current->data!=n && current != NULL)
26、 p369 第2行
原文: while(current->data!=n)
修改为:while(current->data!=n && current != NULL)
27、 p371 10.26
原文: t=p1->next;
prior2->next=p1;
修改为:prior2->next=p1;
t=p1->next;
28、 p402 倒数第6行
原文: fwide函数
修改为:fwind函数
29、 p405 最后1行
原文: fclose函数返回0,否则返回NULL。
修改为:fclose函数返回0,否则返回非0。
30、 p412 例11.7
原文: while(c != '\n' && --n > 0 && (c = getc(stream)) != EOF)
修改为:while(c != '\n' && n-- > 0 && (c = getc(stream)) != EOF)
31、 p413 例11.8
原文: while(--len && (fputc(*p,stream) != EOF))
修改为:while(len-- && (fputc(*p,stream) != EOF))
32、 p424 倒数第4行
原文: int n;
修改为:long n;
展开阅读全文