第1章 计算机程序设计导论 1
1.1 计算机程序设计语言概述 1
1.2 关于C语言 3
1.2.1 C语言的诞生和发展 3
1.2.2 C语言的特点 3
1.2.3 怎样学好用好本书 4
1.3 算法和程序 6
1.3.1 算法举例 6
1.3.2 算法的特性 12
1.3.3 算法的表示 13
1.4 结构化程序设计 14
1.4.1 程序设计的三种基本结构 14
1.4.2 结构化程序设计步骤 16
习题 16
第2章 认识C语言 18
2.1 一个最简单的C语言程序 18
2.2 对C语言程序的进一步了解 19
2.3 关键字和标识符 25
2.3.1 关键字 25
2.3.2 标识符 26
习题 26
第3章 数据类型、运算符与表达式 28
3.1 C语言的基本数据类型 28
3.2 常量 29
3.2.1 整型常量 29
3.2.2 实型常量 30
3.2.3 字符型常量 31
3.2.4 字符串常量 33
3.2.5 符号常量 33
3.3 变量 34
3.3.1 变量的定义 34
3.3.2 变量赋初值 36
3.4 C语言运算符 37
3.4.1 运算符和表达式简介 37
3.4.2 算术运算符和算术表达式 41
3.4.3 赋值运算符和赋值表达式 44
3.4.4 关系运算符和关系表达式 46
3.4.5 逻辑运算符和逻辑表达式 47
3.4.6 逗号运算符和逗号表达式 49
3.4.7 条件运算符 49
3.4.8 常用数学标准函数 51
习题 54
第4章 顺序结构程序设计 58
4.1 C语句介绍 58
4.2 基本输入输出功能的实现 59
4.2.1 字符输出函数putchar() 60
4.2.2 字符输入函数getchar() 61
4.2.3 字符输入函数getche()和getch() 63
4.2.4 标准格式输出函数printf() 64
4.2.5 格式输入函数scanf() 68
4.3 顺序结构程序设计举例 72
习题 76
第5章 选择结构程序设计 81
5.1 if语句 81
5.1.1 单分支if选择结构 81
5.1.2 双分支if选择结构 82
5.1.3 if语句的嵌套 89
5.1.4 多分支if选择结构 92
5.2 switch语句 93
5.3 选择结构程序举例 97
习题 100
第6章 循环结构程序设计 104
6.1 goto语句及goto循环 104
6.2 while语句 107
6.3 do-while语句 108
6.4 for语句 110
6.5 break语句 112
6.6 continue语句 113
6.7 循环结构的嵌套 114
6.8 循环结构程序举例 115
习题 127
第7章 数组 133
7.1 认识数组 133
7.2 一维数组 134
7.2.1 一维数组的定义 135
7.2.2 一维数组元素的引用 136
7.2.3 一维数组的初始化 136
7.2.4 一维数组程序举例 137
7.3 二维数组 139
7.3.1 二维数组的定义 139
7.3.2 二维数组元素的引用 139
7.3.3 二维数组元素的初始化 139
7.3.4 二维数组程序举例 140
7.4 字符数组 142
7.4.1 字符串及字符数组 142
7.4.2 字符数组的定义 142
7.4.3 字符数组的初始化 143
7.4.4 字符数组元素的输入 143
7.4.5 字符数组元素的输出 144
7.4.6 字符数组程序举例 144
7.4.7 字符串函数 148
习题 151
第8章 函数 156
8.1 认识函数 156
8.2 函数的定义和说明 158
8.3 函数的调用 162
8.3.1 函数调用的一般形式 162
8.3.2 函数调用的方式 164
8.3.3 return语句与函数的返回值 164
8.4 函数参数的传递方式 168
8.4.1 值传递方式 168
8.4.2 地址传递方式 169
8.5 数组作为函数的参数 170
8.5.1 数组元素作为函数参数 170
8.5.2 数组名作为函数参数 170
8.5.3 二维数组名作为函数参数 172
8.6 函数的嵌套调用 173
8.7 函数的递归调用 174
8.8 变量的作用域 178
8.8.1 局部变量 179
8.8.2 全局变量 180
8.9 变量的存储类型(生存期) 181
8.9.1 自动变量 182
8.9.2 静态变量 183
8.9.3 外部变量 185
8.9.4 寄存器变量 185
8.10 内部函数和外部函数 186
8.11 函数程序设计举例 187
习题 191
第9章 编译预处理 197
9.1 概述 197
9.2 宏定义 197
9.2.1 无参宏定义 197
9.2.2 带参宏定义 201
9.3 文件包含 204
9.4 条件编译 205
习题 207
第10章 指针 210
10.1 指针简介 210
10.2 指针变量的定义及使用 211
10.2.1 指针变量的定义 211
10.2.2 指针变量的赋值 211
10.2.3 指针运算符&和 212
10.2.4 指针变量的运算 213
10.3 指针与数组 217
10.3.1 指向一维数组的指针 217
10.3.2 指向二维数组的指针变量 219
10.3.3 指向字符串的指针 222
10.4 指针变量作函数参数 224
10.5 使用字符串指针变量与字符数组的区别 227
10.6 函数指针变量 227
10.7 指针型函数 229
10.8 指针数组 230
10.9 指向指针的指针变量 233
10.10 动态内存管理 234
10.11 小结 236
习题 237
第11章 结构体与共用体 243
11.1 结构体 243
11.1.1 结构体类型的定义 243
11.1.2 结构体类型变量的说明 244
11.1.3 结构体变量成员的引用 245
11.1.4 结构体变量的赋值 245
11.1.5 结构体变量的初始化 246
11.2 结构体数组 247
11.3 结构体指针变量 249
11.3.1 结构体指针变量的说明和使用 249
11.3.2 结构体数组指针变量 250
11.3.3 结构体指针变量作函数参数 251
11.4 共用体 252
11.4.1 共用体类型的定义和共用体变量的说明 253
11.4.2 共用体变量的说明 253
11.4.3 共用体变量的赋值和使用 254
11.5 小结 255
习题 255
第12章 文件 261
12.1 文件概述 261
12.2 文件指针 262
12.2.1 文件指针的定义 263
12.2.2 文件打开函数 263
12.2.3 文件关闭函数 265
12.2.4 标准设备文件的打开与关闭 266
12.3 文件的读写 267
12.3.1 文件尾测试函数 267
12.3.2 读/写字符函数 268
12.3.3 字符串读/写函数 272
12.3.4 格式化读写函数 275
12.3.5 数据块读写函数 277
12.4 文件的随机读写 279
12.5 文件操作出错检测函数 280
12.6 C语言库文件 281
习题 282
附录A ASCⅡ码 286
附录B 主函数的参数 287