第1章 程序设计概述 1
1.1 计算机系统概述 2
1.1.1 硬件基础知识 2
1.1.2 软件基础知识 5
1.1.3 计算机中数据的表示 6
1.1.4 数据在存储器中的特性 12
1.2 程序设计语言 14
1.2.1 机器语言 14
1.2.2 汇编语言 15
1.2.3 高级语言 15
1.3 高级语言程序的创建和运行过程 16
1.4 算法与数据结构概述 17
1.4.1 算法的特性 18
1.4.2 算法的表示 19
1.4.3 算法示例 21
1.4.4 数据结构的基本概念 23
1.5 结构化程序设计 24
1.5.1 结构化程序设计思想 24
1.5.2 3种基本程序结构 25
1.5.3 结构化程序设计举例 26
1.6 习题 28
1.7 参考答案或解答提示 28
第2章 C语言概述 29
2.1 C语言的发展和特点 29
2.1.1 C语言的发展背景 29
2.1.2 ANSIC的特点 30
2.2 C语言的程序结构与基本词汇符号 31
2.2.1 C语言的程序结构 33
2.2.2 C语言的基本词汇符号 34
2.3 C语言的编写风格 36
2.4 运行C程序的步骤和方法 39
2.4.1 基本过程 39
2.4.2 错误处理 40
2.5 习题 41
2.6 参考答案或解答提示 42
第3章 数据类型、运算符和表达式 43
3.1 基本数据类型 43
3.1.1 void类型 45
3.1.2 字符类型 45
3.1.3 整数类型 46
3.1.4 实数类型 47
3.2 变量 47
3.2.1 变量声明与定义 47
3.2.2 变量初始化 48
3.3 常量 49
3.3.1 常量的表示 49
3.3.2 代码常量 52
3.4 运算符和表达式 54
3.4.1 赋值运算符和赋值表达式 55
3.4.2 算术运算符及表达式 57
3.4.3 逗号运算符及逗号表达式 58
3.4.4 关系运算符和逻辑运算符 59
3.4.5 条件运算符 61
3.4.6 常用标准函数的调用 61
3.4.7 位运算符 63
3.5 表达式求值 65
3.5.1 优先级 65
3.5.2 结合性 65
3.5.3 表达式求值中的类型转换 65
3.6 习题 67
3.7 参考答案或解答提示 69
第4章 顺序结构程序设计 72
4.1 C语言的语句 73
4.1.1 空语句 73
4.1.2 表达式语句 73
4.1.3 复合语句 74
4.1.4 控制语句 75
4.2 C语言中的输入输出 75
4.2.1 流 75
4.2.2 标准输入输出 76
4.3 字符输入输出 76
4.3.1 字符输出函数putchar() 76
4.3.2 字符输入函数getchar() 77
4.4 格式化输入输出 78
4.4.1 格式化输出函数printf() 78
4.4.2 格式化输入函数scanf() 86
4.5 顺序结构程序设计举例 92
4.6 习题 95
4.7 参考答案或解答提示 97
第5章 选择结构程序设计 99
5.1 if语句概述 99
5.2 if语句的使用 100
5.2.1 单分支if语句 100
5.2.2 双分支if语句 101
5.2.3 多分支if语句 103
5.2.4 if的嵌套 104
5.3 条件运算符与条件表达式 107
5.4 switch语句 108
5.5 习题 111
5.6 参考答案或解答提示 112
第6章 循环结构程序设计 115
6.1 while当型循环 115
6.2 do...wile型循环 118
6.3 for语句 120
6.4 循环嵌套及其使用 122
6.5 break和continue语句 129
6.5.1 break语句 129
6.5.2 continue语句 131
6.6 无条件跳转语句goto 132
6.7 习题 133
6.8 参考答案或解答提示 133
第7章 数组 136
7.1 数组的基本概念 136
7.2 一维数组 138
7.2.1 一维数组的定义 138
7.2.2 一维数组的初始化 141
7.2.3 一维数组的应用 144
7.3 二维数组 157
7.3.1 二维数组的定义 157
7.3.2 二维数组的初始化 159
7.3.3 二维数组的应用 160
7.4 字符数组与字符串 167
7.4.1 字符数组的定义 167
7.4.2 字符数组的初始化 170
7.4.3 字符数组与字符串 171
7.4.4 字符串处理函数 172
7.5 多维数组 175
7.6 数组小结 176
7.7 习题 176
7.8 参考答案或解答提示 177
第8章 函数 184
8.1 函数的概念与定义 184
8.1.1 函数的概念和分类 184
8.1.2 函数的定义 188
8.2 函数的参数与函数的返回值 190
8.2.1 函数的参数 190
8.2.2 函数参数的求值顺序 192
8.2.3 函数的返回值 192
8.3 函数的调用 193
8.3.1 函数调用的概念 193
8.3.2 函数调用的方式 194
8.3.3 函数的原型说明 194
8.3.4 函数的嵌套调用与递归调用 195
8.3.5 函数使用const形参 203
8.4 函数与数组 203
8.4.1 数组元素作为函数的实参 203
8.4.2 数组作为函数的参数 204
8.5 变量的类型 209
8.5.1 局部变量和全局变量 209
8.5.2 说明存储类型 212
8.6 全局函数和静态函数 216
8.6.1 全局函数 216
8.6.2 静态函数 218
8.7 参数类型与数量可变的函数 218
8.8 函数小结 218
8.9 习题 219
8.10 参考答案或解答提示 219
第9章 指针 224
9.1 指针的基本概念 224
9.1.1 指针变量的定义 226
9.1.2 与指针运算有关系的两个运算符 226
9.1.3 指针变量的引用 227
9.1.4 const指针 229
9.2 指针与数组 231
9.2.1 指向数组元素的指针变量的定义 231
9.2.2 通过指针变量使用数组元素 232
9.2.3 指针与二维数组 234
9.2.4 指针与数组作为函数的参数 236
9.2.5 指针数组 239
9.3 指针与字符串 242
9.3.1 指向符串的指针 242
9.3.2 字符串指针作为函数参数 243
9.4 指针与函数 244
9.4.1 指针作为函数的参数 244
9.4.2 返回指针值的函数 245
9.4.3 指向函数的指针 248
9.4.4 命令行参数 251
9.5 多级间址 252
9.6 void指针与动态内存分配 255
9.6.1 void指针 255
9.6.2 动态内存分配 257
9.7 指针小结 262
9.8 习题 262
9.9 参考答案或解答提示 263
第10章 编译预处理 265
10.1 C预处理程序 265
10.2 #define 266
10.3 #include 267
10.4 条件编译指令 268
10.4.1 #if、#else、#elif和#endif 268
10.4.2 #ifdef和#ifndef 269
10.5 #undef 270
10.6 小结 271
10.7 习题 271
10.8 参考答案或解答提示 273
第11章 结构体、共用体与枚举类型 275
11.1 结构体 275
11.1.1 结构体类型定义 275
11.1.2 结构体变量的定义、初始化及引用 276
11.1.3 结构体成员为结构体 278
11.1.4 结构体变量的初始化 278
11.1.5 结构体变量的引用 280
11.2 结构体数组 285
11.2.1 结构体数组的定义 286
11.2.2 结构体变量数组的初始化 287
11.2.3 结构体数组的引用 288
11.3 指向结构体类型的指针 289
11.4 链表 296
11.4.1 包含指针成员的结构变量 296
11.4.2 单向链表的简单操作 302
11.5 共用体 311
11.5.1 共用体类型定义 313
11.5.2 共用体变量的声明 314
11.5.3 共用体变量的引用 315
11.6 枚举类型 316
11.6.1 枚举类型变量的声明 317
11.6.2 枚举变量的引用 317
11.7 typedef定义类型 319
11.8 习题 321
11.9 参考答案或解答提示 322
第12章 文件 328
12.1 流和文件 328
12.1.1 流 328
12.1.2 文件 329
12.1.3 文件类型的指针 329
12.1.4 标准文件 330
12.2 缓冲型文件的打开、关闭与读写 330
12.2.1 fopen()函数 331
12.2.2 fclose()函数 331
12.2.3 fgetc()与fputc()函数 332
12.2.4 fread()与fwrite()函数 334
12.3 文件I/O 336
12.3.1 fprintf()与fscanf()函数 336
12.3.2 fgets()与fputs()函数 338
12.3.3 文件读写指针移动函数fseek()与rewind() 339
12.3.4 ftell()和feof()函数 339
12.4 习题 341
12.5 参考答案或解答提示 341
第13章 C的扩展简述 342
13.1 面向对象的程序设计语言C++ 342
13.1.1 程序设计方法的发展历程 342
13.1.2 面向对象的基本概念 343
13.1.3 面向对象的程序设计方法(OOP) 344
13.1.4 关于C与C++ 345
13.2 Linux下C编程简介 347
13.2.1 Linux简介 347
13.2.2 Linux下C编程环境概述 348
13.2.3 Linux程序设计的特点 350
13.3 C的其他应用简介 350
附录A ASCII表 353
附录B 标准C函数库 357
附录C 运算符的优先级与结合性 369
参考文献 371