第1章 C语言概述 1
1.1 C语言简介 1
1.1.1 C语言的发展史 1
1.1.2 C语言的特点 2
1.2 C语言程序结构 2
1.3 C语言程序的执行 4
1.3.1 C语言程序调试的基本步骤 4
1.3.2 使用Visual C++调试C语言程序 4
1.4 VC++运行C程序说明 7
1.4.1 编辑程序 7
1.4.2 编译、运行程序 8
1.4.3 调试程序 9
习题1 12
第2章 数据类型、运算符和表达式 13
2.1 数据类型 13
2.2 常量和变量 14
2.2.1 常量 14
2.2.2 变量 15
2.3 整型数据 16
2.3.1 整型常量 16
2.3.2 整型变量 16
2.4 实型数据 19
2.4.1 实型常量 19
2.4.2 实型变量 19
2.5 字符型数据 20
2.5.1 字符型常量 20
2.5.2 字符型变量 21
2.5.3 字符串常量 22
2.6 数据的基本运算 23
2.6.1 算术运算符和算术表达式 24
2.6.2 赋值运算符和赋值表达式 26
2.6.3 关系运算符和关系表达式 28
2.6.4 逻辑运算符和逻辑表达式 28
2.6.5 逗号运算符 30
2.7 混合运算 30
2.7.1 系统自动转换 31
2.7.2 强制类型转换 31
习题2 32
第3章 顺序结构程序设计 36
3.1 格式化输出——printf() 36
3.1.1 printf的一般格式 36
3.1.2 格式字符 37
3.2 格式化输入——scanf() 42
3.2.1 scanf的一般格式 42
3.2.2 scanf的用法 42
3.3 字符的输入输出——getchar()和putchar() 45
3.3.1 getchar函数 46
3.3.2 putchar函数 46
3.4 顺序结构程序设计举例 47
习题3 49
第4章 选择结构程序设计 52
4.1 if语句 52
4.1.1 复合语句 52
4.1.2 单分支if语句 53
4.1.3 双分支if语句 55
4.1.4 多分支if语句 57
4.1.5 条件运算符?: 59
4.2 switch语句 59
4.2.1 switch语句 59
4.2.2 switch和if-else 62
4.3 选择结构程序设计举例 62
习题4 66
第5章 循环结构程序设计 69
5.1 for语句 69
5.1.1 for语句的格式 69
5.1.2 for语句的执行过程 69
5.1.3 for语句的用法 71
5.2 while语句 72
5.2.1 while语句的格式 72
5.2.2 while语句的执行过程 73
5.2.3 while语句的用法 74
5.3 do-while语句 76
5.3.1 do-while语句的格式 76
5.3.2 do-while语句的执行过程 77
5.3.3 do-while语句的用法 77
5.3.4 三种循环语句比较 78
5.4 break和continue语句 79
5.4.1 break语句 79
5.4.2 continue语句 80
5.5 多重循环 80
5.5.1 多重循环的格式 81
5.5.2 多重循环的执行过程 81
5.5.3 多重循环的使用 82
5.6 循环结构程序设计举例 83
习题5 86
第6章 数组 89
6.1 数组的概念 89
6.1.1 数组解决的问题 89
6.1.2 数组的基本概念 90
6.2 一维数组 90
6.2.1 一维数组的定义 90
6.2.2 一维数组的使用 92
6.2.3 程序设计实例 94
6.3 二维数组 99
6.3.1 二维数组的定义 99
6.3.2 二维数组的使用 101
6.3.3 二维数组程序设计实例 103
6.4 字符数组 105
6.4.1 字符数组的定义 106
6.4.2 字符数组的使用 107
6.4.3 字符数组的程序设计 109
习题6 109
第7章 函数 114
7.1 函数概述 114
7.1.1 函数的概念 114
7.1.2 函数的分类 115
7.2 函数的定义与调用 116
7.2.1 函数的定义 116
7.2.2 函数调用 117
7.3 函数的嵌套和递归 121
7.3.1 函数的嵌套调用 121
7.3.2 函数的递归调用 122
7.4 局部变量和全局变量 125
7.4.1 局部变量 125
7.4.2 全局变量 127
7.5 变量的存储类型 129
7.5.1 存储空间的划分 129
7.5.2 局部变量的存储类型 129
7.5.3 全局变量的存储类型 131
7.6 内部函数和外部函数 132
7.6.1 内部函数 133
7.6.2 外部函数 133
7.6.3 程序的分割编译 134
7.7 函数程序设计举例 136
习题7 139
第8章 指针 142
8.1 指针概述 142
8.1.1 指针的概念 142
8.1.2 指针变量 143
8.1.3 指针运算 145
8.2 指针作为函数的参数 147
8.2.1 指针变量作为函数参数传递数据 147
8.2.2 改变调用函数中变量的值 148
8.3 指针与数组 149
8.3.1 一维数组和指针 149
8.3.2 二维数组和指针 153
8.3.3 字符串和指针 156
8.4 指针数组与多级指针 159
8.4.1 指针数组 159
8.4.2 多级指针 161
习题8 162
第9章 结构体、共用体和枚举类型 164
9.1 结构体 164
9.1.1 结构体类型的定义 164
9.1.2 结构体变量的定义与使用 165
9.1.3 结构体数组的定义与使用 168
9.1.4 结构体指针的定义与使用 171
9.2 链表 173
9.2.1 单链表的结构 173
9.2.2 链表的动态存储 174
9.2.3 单链表的建立与输出 174
9.2.4 单链表的插入与删除 176
9.3 共用体 177
9.3.1 共用体类型和共用体变量的定义 177
9.3.2 共用体变量的引用 178
9.4 枚举类型 181
9.4.1 枚举类型的定义 181
9.4.2 枚举变量的使用 182
9.5 类型定义符typedef 184
习题9 185
第10章 编译预处理与位运算 188
10.1 编译预处理 188
10.1.1 编译预处理的作用及基本特点 188
10.1.2 文件包含 188
10.1.3 宏定义 190
10.1.4 条件编译 193
10.2 位运算 195
10.2.1 位运算的概念 195
10.2.2 位运算符 196
10.2.3 位段 199
10.2.4 位运算程序设计实例 201
习题10 202
第11章 文件 204
11.1 文件概述 204
11.1.1 文件及其分类 204
11.1.2 文件程序解决的问题 205
11.2 文件处理 205
11.2.1 缓冲文件系统 206
11.2.2 文件的处理过程 207
11.2.3 文件处理采用的函数 208
11.3 文件程序设计举例 210
11.3.1 文件的建立 210
11.3.2 文件的读取 212
11.3.3 文件的修改 214
11.3.4 文件的复制 215
习题11 216
第12章 建构法程序设计 218
12.1 一个简单的C语言程序 218
12.1.1 已知半径求圆的面积 218
12.1.2 求5个圆的面积 219
12.1.3 求n个圆的面积 222
12.2 一个复杂的C语言程序 226
12.2.1 把接受n个半径写成函数 226
12.2.2 把接受的n个半径保存成文件 228
习题12 232
附录1 常用字符与ASCII码对照表 234
附录2 ANSI C关键字 235
附录3 运算符的优先级与结合性 237
附录4 C的库函数 239
附录5 部分习题参考答案 243