第1章 C语言概述 1
1.1 C语言概况 1
1.1.1 C语言的发展过程 1
1.1.2 C语言的特点 1
目录 1
1.2 简单的C程序 2
1.3 程序设计 5
1.4 模块化和结构化程序设计 5
1.4.1 模块化设计 5
1.4.2 结构化程序设计 6
1.4.3 C语言程序设计的基本结构 7
1.4.4 C语言函数的结构 8
1.4.5 C语句的介绍 9
习题1 10
2.1.1 字符集 11
2.1.2 C语言的关键字和特定字 11
第2章 数据类型、运算符与表达式 11
2.1 C语言常用符号 11
2.1.3 用户自定义字 12
2.2 数据类型 12
2.2.1 C语言的数据类型 12
2.3 常量与变量 13
2.3.1 常量和符号常量 14
2.3.2 变量 14
2.4 整型 15
2.4.1 整型常量 15
2.4.2 整型变量 16
2.5 实型数据 20
2.5.1 实型常量的表示方法 20
2.5.2 实型变量 21
2.6.1 字符常量 23
2.6.2 转义字符 23
2.6 字符型数据 23
2.6.3 字符变量 25
2.6.4 字符数据在内存中的存储形式及使用方法 25
2.6.5 字符串常量 26
2.7 变量赋初值 26
2.8 常用运算符与表达式 27
2.8.1 算术运算符 27
2.8.2 赋值运算符和赋值表达式 31
2.8.3 比较运算符 32
2.8.4 逻辑运算符 32
2.8.5 条件运算符和条件表达式 33
2.8.6 逗号运算符和逗号表达式 33
2.8.8 复合运算及优先级 34
2.8.7 其他运算符 34
2.8.9 类型转换运算 35
习题2 36
第3章 顺序结构程序设计 38
3.1 赋值语句 38
3.2 基本输入与输出操作 38
3.2.1 格式的输入和输出操作 38
3.2.2 标准字符的输入和输出操作 45
3.3 顺序结构程序设计 47
3.3.1 顺序结构程序设计 47
3.3.2 算法 47
3.3.3 程序举例 47
习题3 50
4.2.1 if形式 51
4.2 选择结构 51
第4章 选择结构程序设计 51
4.1 问题 51
4.2.2 程序实例 52
4.2.3 if…else形式 53
4.2.4 程序实例 53
4.2.5 else if形式 55
4.2.6 程序实例 56
4.2.7 switch语句及算法 57
4.3 选择结构的嵌套与综合运用 58
习题4 62
第5章 循环结构程序设计 63
5.1 问题 63
5.2 while语句 63
5.2.1 while语句 64
5.2.3 注意的问题 65
5.2.2 程序举例 65
5.3 do…while语句 66
5.3.1 do…while语句 66
5.3.2 程序举例 67
5.3.3 注意的问题 68
5.4 for语句 68
5.4.1 for语句 68
5.4.2 程序举例 71
5.4.3 注意的问题 71
5.5 break与continue语句 72
5.6 goto语句 74
5.7 循环结构的嵌套及综合应用举例 75
习题5 77
6.2.1 一维数组的定义 79
6.2 一维数组的定义和引用 79
6.1 问题的提出 79
第6章 数组 79
6.2.2 一位数组元素的引用 80
6.2.3 一维数组的初始化 81
6.2.4 程序举例 81
6.3 二维数组的定义和引用 84
6.3.1 二维数组的定义 84
6.3.2 二维数组的引用 84
6.3.3 二维数组的初始化 85
6.3.4 程序举例 85
6.4 字符数组 87
6.4.1 字符数组的定义 87
6.4.2 字符数组的初始化 87
6.4.4 字符数组的输入和输出 88
6.4.3 字符串和字符串结束标志 88
6.4.5 字符串常用函数 90
6.4.6 字符数组举例 92
习题6 92
第7章 函数 94
7.1 问题 94
7.2 函数概述 94
7.3 函数的定义 96
7.3.1 函数的定义形式 96
7.3.2 函数的参数 100
7.3.3 函数的调用及声明 103
7.3.4 函数的返回与返回值 105
7.4 函数的参数传递方式 107
7.5.1 函数的嵌套 110
7.5 函数的嵌套与递归 110
7.5.2 递归 112
7.5.3 递归问题求解方法 113
7.6 变量的作用域 118
7.6.1 局部变量 118
7.6.2 全局变量 119
7.6.3 自动变量 121
7.6.4 静态变量 121
7.6.5 外部变量 124
7.6.6 寄存器变量 126
7.7 内部函数和外部函数 127
7.7.1 内部函数 127
7.7.2 外部函数 127
习题7 129
8.1.1 带有参数的宏定义 132
第8章 编译预处理 132
8.1 宏定义 132
8.1.2 不带参数的宏定义 136
8.2 文件包含 138
8.3 条件编译 139
习题8 141
第9章 指针 143
9.1 指针的概念 143
9.2 变量的指针和指向变量的指针变量 144
9.2.1 定义一个指针变量 144
9.2.2 指针变量的引用 144
9.2.3 存储器申请与释放 147
9.3 指针和函数 148
9.3.1 指针变量作为函数参数 148
9.3.2 返回指针值的函数 152
9.3.3 指向函数的指针变量 153
9.4 指针与数组 155
9.4.1 指向数组元素的指针 155
9.4.2 通过指针引用数组元素 156
9.4.3 用数组名作函数参数 158
9.4.4 多维数组与指针 165
9.5 字符串与指针 168
9.5.1 字符串的表现形式 168
9.5.2 字符串指针作函数参数 171
9.5.3 使用字符串指针变量与字符数组的区别 172
9.6 指针数组和指向指针的指针 172
9.6.1 指针数组的概念 172
9.6.2 指针数组与二维数组指针变量的区别 174
9.6.3 指向指针的指针 174
习题9 176
第10章 结构体与共用体 177
10.1 结构体 177
10.1.1 结构体的定义 177
10.1.2 结构体变量 178
10.1.3 结构体变量的引用 179
10.1.4 结构体数组与结构指针 180
10.1.5 结构体变量作为函数的参数 183
10.2 链表 183
10.2.1 链表及其实现 183
10.2.2 内存分配函数和回收函数 184
10.2.3 用指针和结构体构成链表 185
10.2.4 对链表的删除操作 188
10.2.5 对链表的插入操作 190
10.3.1 共用体类型及共用体变量的定义 192
10.3 共用体 192
10.3.2 共用体变量的引用 193
10.3.3 共用体类型数据在内存中的存储 194
10.4 枚举类型 194
10.4.1 枚举类型的定义 195
10.4.2 枚举类型变量的定义和使用 195
10.5 typedef的应用 196
10.5.1 用typedef定义基本类型 196
10.5.2 用typedef定义构造类型 196
习题10 196
第11章 位运算 198
11.1 位运算的含义和应用 198
11.2 简单的位运算 199
习题11 204
12.1.2 文件的分类 205
12.1.3 文件类型指针 205
第12章 文件 205
12.1.1 文件的概念 205
12.1 文件概述 205
12.1.4 数据文件 206
12.1.5 缓冲文件系统 207
12.1.6 C语言的设备文件 207
12.2 文件的处理过程 208
12.3 文件的打开与关闭 208
12.3.1 文件的打开 208
12.3.2 文件的关闭 210
12.4 文件的读写操作 211
12.4.1 文件的字符输入/输出函数 211
12.4.2 文件的字符串输入/输出函数 212
12.4.3 文件的格式化输入输出函数 213
12.5 文件的定位与随机读写 214
12.5.1 文件指针定位函数 215
12.5.2 文件随机读写函数 217
12.6 文件状态检查函数 219
12.6.1 文件状态检测函数feoff() 219
12.6.2 报告文件操作错误状态函数ferror() 219
12.6.3 清除错误标志函数clearer() 220
习题12 221
第13章 C语言的发展现状 223
13.1 面向对象及可视化 223
13.1.1 面向对象的一些概念 223
13.2 C++、VC++ 224
13.2.1 几个C++的平台 224
13.1.2 可视化 224
13.2.2 VC++ 225
13.3 Java及C# 226
13.3.1 Java 226
13.3.2 C# 227
附录 228
附录1 ASCII码表 228
附录2 C语言中的关键字及用途 229
附录3 运算符、运算符优先级及结合性一览表 230
附录4 预处理命令的使用 231
附录5 C语言编译错误信息 235
附录6 Turbo C集成环境下调试C程序的方法 239
附录7 VC++集成环境下调试标准C程序的方法 247
附录8 常用库函数介绍 250
参考文献 256