第1章 绪论 1
1.1 程序设计语言的分类 1
1.1.1 低级语言 1
1.1.2 高级语言 1
1.2 C语言的发展简史与特点 2
1.2.1 C语言发展简史 2
1.2.2 C语言的特点 3
1.3 算法基础 3
1.3.1 算法概述 3
1.3.2 算法的结构化描述 4
1.4 结构化程序设计 5
1.4.1 程序设计 5
1.4.2 结构化程序设计概述 5
1.5 程序设计风格 6
习题 7
第2章 C语言程序的开发过程 8
2.1 概述 8
2.2 C语言程序的集成开发环境 9
2.3 C语言程序的结构和语法规则 13
习题 15
第3章 基本数据类型 16
3.1 标识符 16
3.1.1 标识符的命名规则 16
3.1.2 标识符的分类 16
3.1.3 使用标识符的注意事项 17
3.2 C语言的数据类型 17
3.3 常量 17
3.3.1 整型常量 18
3.3.2 实型常量 18
3.3.3 字符常量 19
3.3.4 字符串常量 20
3.3.5 符号常量 20
3.4 变量 20
3.4.1 整型变量与赋值 21
3.4.2 实型变量 22
3.4.3 字符变量 23
习题 24
第4章 算术运算符与算术表达式 26
4.1 算术运算符及优先级 26
4.1.1 算术运算符 26
4.1.2 算术运算符的优先级 27
4.2 算术表达式 27
4.2.1 表达式 27
4.2.2 数学问题的表达式描述 28
4.2.3 标准数学函数的使用 29
4.3 类型转换 29
4.3.1 自动转换 29
4.3.2 强制类型转换 31
习题 32
第5章 C语言程序的输出与输入 34
5.1 C语言语句 34
5.1.1 控制语句 34
5.1.2 函数调用语句 34
5.1.3 表达式语句 35
5.1.4 空语句 35
5.1.5 复合语句 35
5.2 格式化输出 36
5.3 格式化输入 39
5.4 单个字符的输出和输入 42
5.5 顺序结构程序设计举例 44
习题 45
第6章 选择结构程序设计 49
6.1 关系运算符与关系表达式 49
6.2 逻辑运算符与逻辑表达式 50
6.3 选择控制语句 52
6.3.1 if语句 52
6.3.2 switch语句与break语句 54
6.3.3 选择结构的嵌套 56
6.4 选择结构程序设计举例 59
习题 61
第7章 循环结构程序设计 65
7.1 循环控制语句 65
7.1.1 while语句 65
7.1.2 do…while语句 66
7.1.3 for语句 67
7.1.4 循环的嵌套 69
7.2 辅助控制语句 70
7.2.1 continue语句 70
7.2.2 break语句 71
7.2.3 goto语句 72
7.3 循环结构程序设计举例 73
习题 77
第8章 函数 82
8.1 函数的定义 82
8.2 函数的值 83
8.3 函数的调用 85
8.3.1 有参函数的调用 85
8.3.2 无参函数的调用 86
8.3.3 函数调用的方式 87
8.3.4 函数的声明与函数的原型 88
习题 89
第9章 数组 93
9.1 一维数组 93
9.1.1 一维数组的定义 93
9.1.2 一维数组元素的引用 95
9.1.3 一维数组在内存中的存储 97
9.1.4 一维字符数组的说明 97
9.2 二维数组 99
9.2.1 二维数组的定义 99
9.2.2 二维数组元素的引用 100
9.2.3 二维数组在内存中的存储 101
9.3 数组作为函数参数 101
9.4 数组应用举例 105
习题 110
第10章 结构体与共用体 114
10.1 结构体类型的定义 114
10.2 结构体变量的定义与引用 116
10.2.1 结构体变量的定义 116
10.2.2 结构体变量的引用 118
10.3 结构体数组 120
10.4 共用体 123
习题 125
第11章 指针 129
11.1 指针与指针变量 129
11.2 指针变量的定义与引用 130
11.2.1 指针变量的定义 130
11.2.2 指针变量的引用 131
11.3 指针变量应用举例 135
习题 137
第12章 文件 140
12.1 文件概述 140
12.2 文件的打开与关闭 141
12.3 文件的读/写操作 144
习题 153
第13章 其他运算符与表达式 154
13.1 运算符与表达式概述 154
13.2 赋值运算符与赋值表达式 156
13.3 逗号运算符与逗号表达式 158
13.4 条件运算符与条件表达式 160
13.5 自增自减运算符 162
13.6 位运算 165
13.7 表达式应用举例 168
习题 170
第14章 变量的存储 174
14.1 变量的内存单元 174
14.1.1 整型变量在内存中的存储 174
14.1.2 字符型变量在内存中的存储 176
14.1.3 实型变量在内存中的存储 176
14.2 变量的作用域 177
14.2.1 内部变量 177
14.2.2 外部变量 179
14.3 变量的生存期 181
习题 185
第15章 再论指针 189
15.1 指针与数组 189
15.1.1 一维数组与一维数组指针 189
15.1.2 二维数组指针及数组元素的访问 192
15.1.3 字符指针 195
15.2 指针数组 197
15.3 函数指针 201
15.4 结构体指针 203
15.4.1 指向结构体的指针 203
15.4.2 指向结构体数组的指针 205
15.5 存储管理函数 206
15.6 链表 208
15.6.1 链表的概念 208
15.6.2 单链表的基本操作 210
习题 214
第16章 再论函数 218
16.1 函数的活动与存储空间的布局 218
16.2 参数的传递机制 222
16.2.1 C语言参数传递 222
16.2.2 指针参数 222
16.2.3 数组参数 225
16.3 递归函数的应用 228
16.3.1 递归函数 228
16.3.2 直接递归与间接递归 231
16.3.3 递归函数的调用过程 232
16.3.4 递归和效率 234
习题 235
第17章 预处理命令 240
17.1 宏定义 240
17.1.1 无参宏定义 240
17.1.2 带参宏定义 242
17.1.3 宏的作用域 243
17.1.4 带参宏与函数的区别 243
17.2 文件包含 244
17.3 条件编译 245
习题 247
附录A 控制及图形字符与ASCII代码对照表 252
附录B 常用库函数 253
参考文献 257