第一部分 基础知识 1
第1章 C语言简介 1
1.1 计算机语言的发展 1
1.1.1 机器语言 1
1.1.2 汇编语言 2
1.1.3 高级语言 2
1.1.4 计算机语言的概念 2
1.2 C语言的发展及其特点 2
1.2.1 C语言的发展 2
1.2.2 C语言的特点 3
1.3 C语言的程序格式和结构 4
1.3.1 最简单的C语言程序举例 4
1.3.2 C语言程序的结构 6
1.4 C语言程序的运行与调试 7
1.4.1 C语言程序的运行环境 7
1.4.2 C语言程序的几个概念 7
1.4.3 C语言程序的运行调试 7
1.5 C程序的设计开发流程 11
本章小结 12
习题 12
第2章 程序设计与算法 13
2.1 程序设计的基本概念 13
2.2 算法 14
2.2.1 算法的概念 14
2.2.2 简单算法举例 14
2.2.3 结构化算法的性质及结构 15
2.2.4 算法的表示方法 15
2.3 结构化程序设计方法 21
本章小结 22
习题 22
第3章 数据类型、运算符与表达式 23
3.1 计算机数据的存储与表示 23
3.1.1 整数的二进制表示 23
3.1.2 浮点型数据的二进制表示 24
3.2 C语言的数据类型与取值范围 24
3.2.1 数据类型 24
3.2.2 不同数据类型的取值范围 24
3.3 常量与变量 27
3.3.1 常量和符号常量 27
3.3.2 变量 30
3.3.3 变量类型的确定 31
3.4 C语言运算符 32
3.4.1 C语言运算符简介 32
3.4.2 算术运算符和算术表达式 32
3.4.3 赋值运算符和赋值表达式 34
3.4.4 复合赋值运算符 34
3.4.5 关系运算符和关系表达式 35
3.4.6 逻辑运算符和逻辑表达式 35
3.4.7 逗号运算符和逗号表达式 36
3.4.8 条件运算符和条件表达式 37
3.4.9 位运算符 37
3.4.10 数值类型数据间的混合运算 39
3.4.11 C语言运算符的运算顺序 40
本章小结 41
习题 42
第2部分 程序设计基本结构 47
第4章 顺序结构程序设计 47
4.1 顺序程序设计概述 47
4.2 C语句 47
4.2.1 C语句的分类 48
4.2.2 赋值语句 48
4.3 数据的格式输入/输出 49
4.3.1 printf格式输出函数 50
4.3.2 scanf格式输入函数 53
4.3.3 字符数据的输入/输出 55
4.4 顺序程序设计实例 56
本章小结 57
习题 58
第5章 选择结构程序设计 60
5.1 选择结构概述 60
5.2 用if语句实现选择结构 60
5.2.1 单分支if语句 60
5.2.2 双分支if-else语句 61
5.2.3 多分支 62
5.3 选择语句嵌套 63
5.4 switch语句 66
5.4.1 switch语句 66
5.4.2 break语句 67
5.5 综合实例 69
本章小结 71
习题 71
第6章 循环结构程序设计 76
6.1 while语句 76
6.2 do-while语句 79
6.3 for语句 81
6.4 循环嵌套与几何图案 84
6.4.1 循环嵌套 84
6.4.2 几何图案 84
6.5 循环状态控制 87
6.5.1 break语句 87
6.5.2 continue语句 87
6.6 综合应用实例 88
本章小结 92
习题 92
第3部分 程序设计方法和具体应用 99
第7章 数组 99
7.1 一维数组 99
7.1.1 一维数组的定义 99
7.1.2 一维数组的赋值 100
7.1.3 一维数组的引用 101
7.1.4 一维数组的应用 103
7.2 二维数组及多维数组 107
7.2.1 二维数组的定义 107
7.2.2 二维数组的存储与表示 108
7.2.3 二维数组的初始化 109
7.2.4 二维数组的引用 110
7.3 字符数组和字符串 111
7.3.1 字符数组 111
7.3.2 字符数组的初始化 112
7.3.3 字符数组的引用 113
7.3.4 字符串的存储与结束 113
7.3.5 字符数组的输入/输出 113
7.4 常用的字符串处理函数 114
7.4.1 字符串输出函数puts 115
7.4.2 字符串输入函数gets 115
7.4.3 字符串连接函数strcat 116
7.4.4 字符串拷贝函数strcpy和stmcpy 116
7.4.5 字符串比较函数strcmp 117
7.4.6 字符串长度测试函数strlen 118
7.4.7 其他字符串函数 118
7.5 综合实例 118
本章小结 121
习题 121
第8章 函数 126
8.1 函数的定义 126
8.1.1 无参函数的定义 126
8.1.2 有参函数的定义 127
8.2 函数的调用 128
8.3 函数的声明 129
8.4 函数的传值方式 130
8.5 函数的嵌套调用和递归调用 131
8.5.1 函数的嵌套调用 131
8.5.2 函数的递归调用 132
8.6 数组作为函数参数 133
8.6.1 数组元素作为函数实参 133
8.6.2 一维数组名作为函数参数 133
8.6.3 多维数组名作为函数参数 134
8.7 局部变量和全局变量 135
8.7.1 局部变量 135
8.7.2 全局变量 136
8.8 变量的存储类型 138
8.8.1 自动型变量 138
8.8.2 寄存器型变量 139
8.8.3 静态型变量 139
8.8.4 外部型变量 140
8.9 内部函数和外部函数 142
8.9.1 内部函数 142
8.9.2 外部函数 142
8.10 综合应用实例 143
本章小结 145
习题 145
第9章 预处理命令 151
9.1 宏定义 152
9.1.1 不带参数的宏定义 152
9.1.2 带参数的宏定义 153
9.2 文件包含 154
9.3 条件编译 154
9.3.1 #if的使用 155
9.3.2 #ifdef的使用 156
9.3.3 #ifndef的使用 156
本章小结 157
习题 157
第10章 指针 160
10.1 指针的概念 160
10.1.1 地址的概念 160
10.1.2 指针 161
10.2 指向变量的指针变量和变量的指针 161
10.2.1 定义指针变量 161
10.2.2 指针变量的引用 162
10.2.3 指针变量作为函数参数 163
10.3 指向数组的指针 167
10.3.1 指向数组元素的指针 167
10.3.2 通过指针引用数组元素 168
10.3.3 用数组名作为函数参数 169
10.3.4 多维数组与指针 173
10.4 指针与字符串 176
10.4.1 字符串的表达形式 176
10.4.2 字符指针作为函数参数 177
10.5 函数与指针 177
10.5.1 用函数指针变量调用函数 177
10.5.2 用指向函数的指针作为函数参数 178
10.6 返回指针值的函数 178
本章小结 179
习题 180
第11章 结构体与共用体 184
11.1 定义和使用结构体变量 185
11.1.1 定义结构体类型 185
11.1.2 定义结构体类型变量 186
11.1.3 结构体变量的初始化和引用 187
11.2 使用结构体数组 188
11.2.1 定义结构体数组 188
11.2.2 结构体数组的应用举例 189
11.3 结构体指针 190
11.3.1 指向结构体变量的指针 190
11.3.2 指向结构体数组的指针 192
11.3.3 用结构体变量和结构体变量的指针作为函数参数 193
11.4 用指针处理链表 194
11.4.1 链表的定义 194
11.4.2 建立简单的静态链表 195
11.4.3 建立动态链表 196
11.4.4 输出链表 198
11.4.5 对链表的删除操作 198
11.4.6 对链表的综合操作 199
11.5 共用体类型 200
11.5.1 共用体类型的定义 200
11.5.2 引用共用体变量的方式 201
11.5.3 共用体类型数据的特点 202
11.6 使用枚举类型 203
11.7 用typedef声明新类型名 204
11.8 综合实例 205
本章小结 208
习题 208
第12章 文件 212
12.1 C文件概述 212
12.2 文件类型指针 212
12.3 文件的打开与关闭 213
12.3.1 文件打开函数fopen 213
12.3.2 文件关闭函数fclose 214
12.4 文件的读写 215
12.4.1 字符读写函数fgetc和fputc 215
12.4.2 字符串读写函数fgets和fputs 217
12.4.3 格式化读写函数fscanf和fprintf 219
12.5 文件的定位和随机读写 220
12.5.1 文件定位 220
12.5.2 文件的随机读写 221
12.6 文件检测函数 222
12.7 文件程序设计实例 222
本章小结 224
习题 225
第4部分 调试 228
第13章 常见错误和程序调试 228
13.1 Microsoft Visual C++ 6.0集成开发环境 228
13.2 程序调试中的常见错误 230
13.3 程序调试技巧 240
附录A C语言的关键字 242
附录B ASCII码字符表 244
附录C常用的C语言库函数 247
附录D部分中英文关键词对照 251
参考文献 254