第1章 引言 1
1.1 C语言的特点 1
1.2 简单的C语言程序介绍 2
1.3 C语言程序的结构 4
1.4 C程序设计语言的执行 4
1.4.1 源程序翻译 4
1.4.2 链接目标程序 5
1.4.3 集成开发环境 6
小结 6
习题一 7
第2章 程序的简单算法制定 8
2.1 结构化程序的算法制定 8
2.2 结构化程序的算法描述 8
2.2.1 流程图 9
2.2.2 N-S图 13
2.2.3 PAD图 14
2.3 算法制定范例 15
小结 18
习题二 18
3.2.1 标识符 20
3.2 几个基本概念 20
3.1 C语言的数据类型简介 20
第3章 基本程序语句 20
3.2.2 常量 21
3.2.3 变量 22
3.3 C语言的3种基本数据类型 23
3.3.1 整型数据 23
3.3.2 实型数据 25
3.3.3 字符型数据 25
3.4 基本运算符和表达式 26
3.4.1 C语言运算符简介 26
3.4.2 算术运算符和算术表达式 27
3.4.3 赋值运算符和赋值表达式 28
3.4.4 关系运算符和关系表达式 32
3.4.5 逻辑运算符和逻辑表达式 32
3.4.6 条件运算符和条件表达式 34
3.4.7 逗号运算符和逗号表达式 35
3.4.8 强制类型转换运算符 36
3.5 C基本语句 36
3.5.1 简单语句 36
3.5.2 复合语句 38
3.6 数据的输出 38
3.6.1 格式化输出函数 38
3.6.2 字符输出函数 43
3.7.1 格式化输入函数(scanf函数) 44
3.7 数据的输入 44
3.7.2 字符输入函数 46
3.8 简单程序设计举例 46
小结 48
习题三 48
第4章 选择结构 52
4.1 if语句 52
4.1.1 单分支if语句 52
4.1.2 双分支if语句 52
4.1.3 多分支if语句 53
4.2.1 switch语句简介 56
4.2 switch语句 56
4.2.2 break语句在switch结构中的运用 57
4.3 实例解析 59
小结 63
习题四 63
第5章 循环结构 68
5.1 goto语句构成循环 68
5.2 while循环结构 69
5.3 do...while循环结构 70
5.4 for循环结构 71
5.5 break语句和continue语句在循环结构中的运用 73
5.5.1 break语句 73
5.5.2 continue语句 74
5.6 实例解析 75
小结 78
习题五 79
第6章 函数与编译预处理命令 84
6.1 库函数 84
6.2 函数的定义和说明 85
6.2.1 函数的定义 85
6.2.2 函数的返回值 87
6.2.3 对被调用函数的说明和函数原型 88
6.3 函数的调用 90
6.3.1 函数调用的一般形式 90
6.4 函数的参数 91
6.3.2 函数调用的方式 91
6.5 函数的嵌套调用和递归调用 94
6.5.1 函数的嵌套调用 94
6.5.2 函数的递归调用 95
6.6 变量的存储类型 102
6.6.1 变量的作用域与生存期 102
6.6.2 变量的存储类型 102
6.6.3 局部变量 103
6.6.4 全局变量 105
6.7 内部函数、外部函数 108
6.7.1 内部函数 108
6.8 编译预处理命令 109
6.7.2 外部函数 109
6.8.1 宏替换 110
6.8.2 文件包含 112
6.8.3 条件编译 113
小结 116
习题六 116
第7章 数组 125
7.1 一维数组 125
7.1.1 一维数组的定义 125
7.1.2 一维数组元素的引用 126
7.1.3 一维数组的初始化 126
7.2.1 二维数组的定义和引用 129
7.2 二维数组 129
7.2.2 二维数组元素的初始化 130
7.3 多维数组 132
7.3.1 多维数组的定义、使用与存储 132
7.3.2 多维数组的初始化 133
7.4 字符串与字符数组 133
7.4.1 字符串与字符数组 133
7.4.2 字符数组的初始化 134
7.4.3 字符数组的输入/输出 135
7.4.4 字符串处理函数 139
7.5 字符串数组 140
7.6.2 地址量作为函数参数 141
7.6 数组作为函数参数 141
7.6.1 数组元素作为函数参数 141
小结 146
习题七 146
第8章 指针 154
8.1 指针简介 154
8.2 指针变量定义及引用 155
8.2.1 指针变量的定义 155
8.2.2 指针变量的引用 155
8.3 指针运算 158
8.3.1 赋值运算 158
8.3.3 关系运算 159
8.3.2 加减算术运算 159
8.4 指针与数组 160
8.4.1 指向数组的指针变量的定义 160
8.4.2 指向数组的指针变量的引用 161
8.4.3 指向数组的指针变量的加减 162
8.4.4 指针与字符串 164
8.5 多维数组的指针 167
8.6 指向指针的指针 170
8.7 指针与函数 170
8.7.1 函数指针变量 170
8.7.2 指针型函数 171
8.7.3 指针数组与函数 173
8.7.4 main函数的参数 176
小结 177
习题八 178
第9章 构造数据类型 187
9.1 结构体 187
9.1.1 结构类型定义和结构变量说明 187
9.1.2 结构体类型变量的引用 189
9.1.3 结构体数组 191
9.1.4 结构体与指针 193
9.1.5 结构体与链表 195
9.1.6 C语言的动态存储分配函数 202
9.2 共用体 204
9.3 枚举 206
9.4 自定义数据类型 207
小结 207
习题九 208
第10章 文件 212
10.1 文件、流和文件系统的概念 212
10.2 文件类型指针 213
10.3 缓冲文件系统 213
10.3.1 文件的打开、关闭和文件结束测试 214
10.3.2 文件的读/写 216
10.3.3 文件的定位 227
10.3.4 出错的处理 229
10.4 非缓冲文件系统 230
10.4.1 文件的打开、建立与关闭 230
10.4.2 文件的读/写 232
小结 234
习题十 234
第11章 位运算 235
11.1 位运算概述 235
11.1.1 计算机中数的表示 235
11.1.2 硬件接口寄存器位的读取与设置 236
11.2 位运算使用方法 237
11.2.1 按位与运算 237
11.2.2 按位或运算 238
11.2.3 按位异或运算 239
11.2.4 按位取反运算 239
11.2.5 左移运算 240
11.2.6 右移运算 242
11.3 位运算应用举例 243
11.3.1 各种位运算的运算顺序 243
11.3.2 综合举例 245
11.4 位域 248
小结 251
习题十一 252
参考文献 255