第1篇 理解程序设计 1
第1章 基础知识 2
1.1 什么是编程 3
1.2 怎样用C语言编程 7
1.3 printf()函数初步 13
1.4 C语言的“字母”和“单词” 14
第2章 数据类型 23
2.1 什么是数据类型 24
2.2 让程序记住计算结果——变量 31
2.3 int类型——总结与补充 35
2.4 对数据类型的进一步讨论 39
2.5 莫名其妙的“整型” 45
2.6 浮点类型 51
2.7 数据类型与算法 57
2.8 算法的特性 61
第3章 运算符、表达式及语句 66
3.1 C的“动词”及“动词”的“宾语” 67
3.2 表达式——C语言的“词组” 67
3.3 谁是谁的谁 71
3.4 右值的类型转换 74
3.5 语句的概念 81
3.6 例题 84
3.7 算法和数据结构初窥 88
3.8 在程序运行时提供数据 90
第4章 选择语句 95
4.1 关系运算 96
4.2 if语句 97
4.3 判等运算 104
4.4 表达复杂的条件 106
4.5 if-else语句 107
4.6 鸡肋——_Bool类型(C99) 109
4.6 鸡肋——_B4.7判断三角形种类 111
4.8 显得很有学问的运算符 117
4.9 大师如是说goto 118
4.10 给程序更多选项——switch语句 119
4.11 程序开发的过程 124
第5章 从循环到穷举 130
5.1 造句:当……就…… 131
5.2 do-while语句 138
5.3 for语句 140
5.4 不规则的循环及对循环的修整 150
5.5 循环的嵌套与穷举法 151
第2篇 结构化程序设计与简单的数据结构 161
第6章 最复杂的运算符——“()” 162
6.1 什么是函数 163
6.2 步骤1:函数的声明 163
6.3 步骤2:函数的定义 165
6.4 步骤3:函数的调用 167
6.5 程序的执行过程 168
6.6 例题——为什么使用函数 170
6.7 使用函数小结 171
6.8 函数与结构化程序设计 174
6.9 变量的作用域 181
6.10 递归 182
6.11 对局部变量的进一步修饰 190
6.12 使用库函数 193
6.13 inline关键字(C99) 195
第7章 作为类型说明符和运算符的“[]” 199
7.1 使用数组 200
7.2 深入理解数组 202
7.3 熟练应用一维数组 205
7.4 数组名做实参 209
7.5 多维数组 216
第8章 结构体、共用体与位运算 228
8.1 结构体 229
8.2 C语言中复数类型的历史和现状 237
8.3 共用体union 240
8.4 位运算 242
8.5 “小的变量”——位段 251
第9章 指针 258
9.1 指针是什么 259
9.2 指向数据对象的指针 260
9.3 指针的应用与误用 266
9.4 指针与一维数组 270
9.5 指针的应用(二) 279
9.6 高维数组名 281
9.7 变量长度数组——VLA(C99) 287
9.8 数组类型的字面量(C99) 291
9.9 指针与结构体 292
9.10 指针与函数 294
9.11 指向虚无的指针 298
9.12 参数不确定的函数 299
第10章 字符串、字符数组及指向字符的指针 306
10.1 字符串文字量 307
10.2 字符串的输入与存储 309
10.3 例题 310
10.4 形参说明符“[]”里的修饰符(C99) 316
10.5 常用的字符串函数 317
10.6 main()的参数 320
10.7 体现代码优美的数据类型——枚举类型 323
第3篇 复杂的数据结构、算法及其他话题 328
第11章 复杂的数据类型与算法 329
11.1 2 2 2 2 = 0 330
11.2 复杂数据类型的构造和解读 331
11.3 递归、穷举、回溯、排列 344
11.4 更自由地使用内存 356
11.5 typedef 364
第12章 程序的输入与输出 369
12.1 面向文件的输入与输出 370
12.2 文卷、流、“FILE”及“FILE *” 380
12.3 二进制文卷的读写 384
12.4 定位问题 388
12.5 制作素数表 389
第13章 程序组织与编译预处理 394
13.1 简介 395
13.2 文件包含 396
13.3 Tic-Tac-Toe游戏 397
13.4 重新开始 409
13.5 宏定义与宏替换 416
13.6 使用外部变量 423
13.7 走棋 427
13.8 预处理命令的其他话题 439
第14章 标准库简介 446
14.1 使用标准库的一些常识 447
14.2 对语言的补充 449
14.3 stdio.h 452
14.4 通用函数:stdlib.h 454
14.5 inttypes.h(C99) 460
14.6 string.h 462
14.7 数值计算 462
14.8 错误处理:errno.h 466
14.9 断言与调试:assert.h 468
14.10 非本地跳转setjmp.h 468
14.11 信号处理signal.h 470
14.12 time.h 471
14.13 国际化问题 475
附录 477
附录A C语言的关键字 478
附录B C语言的数据类型 479
附录C ASCII表 480
附录D C语言运算符 481
参考文献 482
· · · · · · (
收起)
评分
☆☆☆☆☆
读这本书是在大一的时候,之前读过很多c语言书籍(那时学校图书馆没有找到《c程序设计语言》),但是一直感觉没有完全理解c语言,直到读过这本书后,有一种顿悟的感觉,作者将c语言语法和语法设计的思想以及自己的经验和理解融为一体,没有任何思维的跳跃,初学者几乎所有可能的...
评分
☆☆☆☆☆
读这本书是在大一的时候,之前读过很多c语言书籍(那时学校图书馆没有找到《c程序设计语言》),但是一直感觉没有完全理解c语言,直到读过这本书后,有一种顿悟的感觉,作者将c语言语法和语法设计的思想以及自己的经验和理解融为一体,没有任何思维的跳跃,初学者几乎所有可能的...
评分
☆☆☆☆☆
2014年计算机图书伪劣作者打假第一案!踢爆伪C大师garbageMan(薛非)的真实嘴脸。这一切的背后,到底是利益的驱动还是智商的无奈! 一段技术引子: 针对伪C大师garbageMan(薛非)的这篇文章的驳斥如下: 这个问题的解法本身谈不上什么...
评分
☆☆☆☆☆
2014年计算机图书伪劣作者打假第一案!踢爆伪C大师garbageMan(薛非)的真实嘴脸。这一切的背后,到底是利益的驱动还是智商的无奈! 一段技术引子: 针对伪C大师garbageMan(薛非)的这篇文章的驳斥如下: 这个问题的解法本身谈不上什么...
评分
☆☆☆☆☆
读这本书是在大一的时候,之前读过很多c语言书籍(那时学校图书馆没有找到《c程序设计语言》),但是一直感觉没有完全理解c语言,直到读过这本书后,有一种顿悟的感觉,作者将c语言语法和语法设计的思想以及自己的经验和理解融为一体,没有任何思维的跳跃,初学者几乎所有可能的...