基础知识篇 2
第1章 C语言概述 2
学习目标 2
1.1 C语言的发展 2
1.2 C语言的特点 3
1.3 第一个C语言程序 4
1.3.1 最简单的C语言程序结构 4
1.3.2 C语言程序的格式特点 6
1.4 C程序的开发步骤 7
1.5 开发环境 9
1.5.1 Viisual C++6.0 9
1.5.2 Dev-C++ 15
1.6 常见错误分析 20
本章小结 22
思考与练习 23
第2章 算法 25
学习目标 25
2.1 算法的概念 25
2.2 算法的特点 26
2.3 算法的表示 26
2.3.1 自然语言 27
2.3.2 流程图 27
2.3.3 N-S流程图 30
2.4 应用举例 32
2.4.1 判断是否闰年 32
2.4.2 斐波那契数列 33
本章小结 35
思考与练习 36
第3章 C程序设计基础 37
学习目标 37
3.1 C程序组成元素 37
3.1.1 关键字 38
3.1.2 变量与常量 38
3.1.3 标识符 38
3.1.4 数据类型 39
3.2 常量 39
3.2.1 整型常量 39
3.2.2 实型常量 40
3.2.3 字符型常量 40
3.2.4 符号常量 41
3.3 变量 42
3.3.1 整型变量 43
3.3.2 实型变量 45
3.3.3 字符型变量 47
3.4 运算符和表达式 48
3.4.1 算术运算符与算术表达式 49
3.4.2 赋值运算符与赋值表达式 51
3.4.3 逗号运算符和逗号表达式 53
3.4.4 位运算符与位运算 53
3.5 数据类型转换 55
3.5.1 隐式类型转换 55
3.5.2 强制类型转换 56
3.6 常见错误分析 57
本章小结 60
思考与练习 60
第4章 顺序结构程序设计 63
学习目标 63
4.1 C语句概述 63
4.2 格式输入输出 65
4.2.1 格式输出——printf函数 65
4.2.2 格式输入——scanf函数 68
4.3 字符输入输出 71
4.3.1 字符输出——putchar函数 71
4.3.2 字符输入——getchar函数 72
4.4 应用举例 73
4.4.1 输出字符表情 73
4.4.2 大小写字母转换 74
4.4.3 求三角形的面积 75
4.5 常见错误分析 76
本章小结 78
思考与练习 78
第5章 选择结构程序设计 81
学习目标 81
5.1 关系运算符和关系表达式 81
5.1.1 关系运算符 81
5.1.2 关系表达式 82
5.2 逻辑运算符和逻辑表达式 83
5.2.1 逻辑运算符 83
5.2.2 逻辑表达式 84
5.3 if语句的基本形式 85
5.3.1 if语句形式 85
5.3.2 if-else语句形式 86
5.3.3 if-else-if语句形式 88
5.4 嵌套的if语句 90
5.5 条件运算符和条件表达式 92
5.6 switch语句 92
5.7 应用举例 96
5.7.1 判断是否闰年 96
5.7.2 加油站加油问题 97
5.7.3 求解一元二次方程 99
5.8 常见错误分析 100
本章小结 104
思考与练习 104
第6章 循环结构程序设计 107
学习目标 107
6.1 while循环语句 107
6.2 do-while循环语句 109
6.3 for循环语句 113
6.3.1 for语句的一般形式 113
6.3.2 for语句的说明 114
6.4 三种循环语句的比较 118
6.5 循环嵌套 119
6.6 转移语句 122
6.6.1 break语句 122
6.6.2 continue语句 123
6.6.3 goto语句和标号 125
6.7 应用举例 126
6.7.1 斐波那契数列 126
6.7.2 四方定理 127
6.7.3 百钱买百鸡问题 128
6.8 常见错误分析 129
本章小结 131
思考与练习 131
核心技术篇 136
第7章 数组 136
学习目标 136
7.1 一维数组 136
7.1.1 一维数组的定义 136
7.1.2 一维数组的引用 138
7.1.3 一维数组的初始化 139
7.1.4 一维数组应用举例 139
7.2 二维数组 142
7.2.1 二维数组的定义 142
7.2.2 二维数组的引用 142
7.2.3 二维数组的初始化 143
7.2.4 二维数组应用举例 143
7.3 字符数组和字符串 145
7.3.1 字符数组的定义和引用 145
7.3.2 字符数组的初始化 146
7.3.3 字符串 147
7.3.4 字符数组的输入输出 147
7.3.5 字符串处理函数 150
7.3.6 字符数组应用举例 153
7.4 常见错误分析 155
本章小结 157
思考与练习 158
第8章 函数 160
学习目标 160
8.1 函数概述 160
8.1.1 库函数 161
8.1.2 用户自定义函数 162
8.2 函数定义 163
8.3 函数的调用 164
8.3.1 函数的调用形式 164
8.3.2 函数声明 166
8.3.3 函数的参数传递 168
8.3.4 返回语句和函数返回值 169
8.4 函数的嵌套调用 170
8.5 函数的递归调用 172
8.6 数组作为函数的参数 173
8.6.1 数组元素作为函数参数 173
8.6.2 数组名作为函数参数 174
8.7 局部变量和全局变量 176
8.7.1 局部变量 176
8.7.2 全局变量 178
8.8 变量的存储类别 180
8.8.1 局部变量的存储类别 180
8.8.2 全局变量的存储类别 182
8.8.3 存储类别小结 184
8.9 内部函数和外部函数 185
8.9.1 内部函数 185
8.9.2 外部函数 185
8.10 应用举例 185
8.10.1 哥德巴赫猜想 186
8.10.2 快速排序 187
8.11 常见错误分析 189
本章小结 192
思考与练习 192
第9章 指针 195
学习目标 195
9.1 指针的概念 195
9.2 指针变量 196
9.2.1 指针变量定义 196
9.2.2 指针变量初始化 197
9.2.3 指针变量引用 197
9.2.4 空指针与void指针 199
9.3 指针与数组 200
9.3.1 指针与一维数组 200
9.3.2 指针与二维数组 203
9.3.3 指针与字符串 209
9.4 指针与函数 210
9.4.1 指针变量作为函数参数 211
9.4.2 指针作为函数的返回值 214
9.4.3 函数的指针 215
9.5 指针数组和指向指针的指针 216
9.5.1 指针数组 216
9.5.2 指向指针的指针 218
9.5.3 指针数组作为main函数的形参 220
9.6 应用举例 221
9.6.1 删除有序数组中重复元素 221
9.6.2 卡布列克常数 223
9.7 常见错误分析 224
本章小结 228
思考与练习 228
高级应用篇 234
第10章 预处理命令 234
学习目标 234
10.1 宏定义 234
10.1.1 不带参数的宏定义 234
10.1.2 带参数的宏定义 235
10.1.3 撤销宏定义命令 238
10.2 文件包含命令 238
10.3 条件编译命令 240
10.4 常见错误分析 242
本章小结 243
思考与练习 243
第11章 用户自定义数据类型 246
学习目标 246
11.1 结构体 246
11.1.1 结构体类型声明 247
11.1.2 结构体变量定义 248
11.1.3 结构体变量初始化 250
11.1.4 结构体变量引用 251
11.2 结构体数组 253
11.2.1 结构体数组定义 253
11.2.2 结构体数组初始化 254
11.2.3 结构体数组应用举例 254
11.3 结构体指针 255
11.3.1 指向结构体变量的指针 255
11.3.2 指向结构体数组的指针 256
11.3.3 结构体作为函数参数 258
11.3.4 结构体指针的应用举例 259
11.4 链表 261
11.4.1 链表概述 261
11.4.2 处理动态链表的函数 263
11.4.3 建立动态链表 264
11.5 共用体 267
11.6 枚举类型 268
11.7 用typedef声明新类型名 270
11.8 常见错误分析 271
本章小结 273
思考与练习 273
第12章 文件 277
学习目标 277
12.1 文件概述 277
12.2 文件基本操作 278
12.2.1 文件类型指针 278
12.2.2 文件打开——fopen函数 279
12.2.3 文件关闭——fclose函数 281
12.3 文件读写 281
12.3.1 字符读写——fgetc和fputc函数 281
12.3.2 字符串读写——fgets和fputs函数 284
12.3.3 格式化读写——fscanf和fprintf函数 285
12.3.4 数据块读写——fread和fwrite函数 287
12.4 文件定位 289
12.5 应用举例 291
12.5.1 文件内容复制 291
12.5.2 将计算结果保存到文件 292
12.6 常见错误分析 294
本章小结 294
思考与练习 295
附录 297
附录1 常用字符与ASCII代码对照表 297
附录2 运算符的优先级和结合性表 297
附录3 常用标准库函数 298
参考文献 304