第1篇 入门篇 4
第0章 学前指导——新的洗礼 4
0.1 C语言的重要性 4
0.2 程序员的成长之路 4
0.3 如何学好C语言 5
0.4 了解相关术语 5
0.5 C99标准 6
0.5.1 什么是C99 6
0.5.2 C99标准的新特性 6
0.6 Visual C++ 6.0安装 9
0.7 编程答疑 11
0.8 光盘使用指南 12
第1章 C语言概述——走进C语言的世界 12
1.1 程序语言的发展 14
1.2 C语言发展史 14
1.3 C语言的特点 15
1.4 C语言程序的格式 15
1.5 C语言程序的运行 16
1.5.1 编译程序和解释程序 16
1.5.2 在Turbo C 2.0中运行 17
1.5.3 在Visual C++ 6.0中运行 18
1.5.4 在Visual C++ 2008中运行 21
1.6 实践练习 23
第2章 Turbo C2.0集成开发环境——近距离接触开发环境 23
2.1 Turboc2.0简介 26
2.2 TC热键 26
2.3 菜单命令 28
2.3.1 文件(File)菜单 28
2.3.2 编辑(Edit)菜单 29
2.3.3 运行(Run)菜单 31
2.3.4 编译(Compile)菜单 32
2.3.5 项目(Project)菜单 33
2.3.6 选择项(Options)菜单 34
2.3.7 调试(Debug)菜单 38
2.3.8 断点及监视表达式(Break/watch)菜单 39
2.4 编译错误信息 40
2.5 实践练习 47
第3章 算法、数据类型——为学习打下坚实基础 47
3.1 程序的组成部分 50
3.2 算法 50
3.2.1 算法的概念 50
3.2.2 流程图 51
3.2.3 3种基本结构 52
3.2.4 N-S流程图 54
3.3 标识符与数据类型 54
3.3.1 标识符 54
3.3.2 数据类型 55
3.4 常量 55
3.4.1 整型常量 55
3.4.2 实型常量 57
3.4.3 字符型常量 57
3.4.4 字符串常量 58
3.5 变量 62
3.5.1 整型变量 63
3.5.2 实型变量 64
3.5.3 字符型变量 65
3.6 赋值与类型转换 66
3.6.1 变量赋初值 66
3.6.2 类型转换 66
3.7 运算符及表达式 68
3.7.1 赋值运算符和赋值表达式 68
3.7.2 算术运算符和算术表达式 70
3.7.3 关系运算符和关系表达式 72
3.7.4 逻辑运算符和逻辑表达式 73
3.7.5 逗号运算符和逗号表达式 74
3.7.6 运算符优先级 75
3.8 实践练习 76
第4章 顺序与选择结构程序设计——为编程引航 76
4.1 C语句及赋值语句 78
4.1.1 C语句概述 78
4.1.2 赋值语句 79
4.2 字符数据输入/输出 80
4.2.1 字符数据输出 80
4.2.2 字符数据输入 81
4.3 格式输入/输出函数 82
4.3.1 格式输出函数 82
4.3.2 格式输入函数 86
4.4 顺序程序设计举例 89
4.5 if语句 90
4.5.1 if语句的基本形式 90
4.5.2 if的嵌套形式 93
4.5.3 条件运算符 94
4.6 switch语句 95
4.7 选择结构程序举例 98
4.8 实践练习 100
第5章 循环控制——体验循环带来的变化 100
5.1 while及do-while语句 102
5.1.1 while语句 102
5.1.2 do-while语句 104
5.2 for语句 106
5.2.1 for循环的变体 106
5.2.2 循环嵌套 109
5.3 转移语句 110
5.3.1 goto语句 110
5.3.2 break语句 111
5.3.3 continue语句 112
5.4 循环控制应用举例 113
5.5 实践练习 116
第6章 编程加油站(一) 118
必知必会001 限定词const 118
必知必会002 限定词volatile 118
必知必会003 说明变量和定义变量 119
必知必会004 使用printf函数输出% 119
必知必会005 %1f与%f使用注意 119
必知必会006 scanf与gets 120
必知必会007 if语句的多个判断问题 121
必知必会008 什么时候用switch 121
必知必会009 break在switch语句中的使用 123
必知必会010 while、do-while、for循环相互转换 124
必知必会011 goto语句使用规则 125
第2篇 进阶篇 130
第7章 数组——同类数据的探究 130
7.1 一维数组 130
7.1.1 一维数组的定义和引用 130
7.1.2 一维数组的初始化 131
7.2 二维数组 132
7.2.1 二维数组的定义和引用 132
7.2.2 二维数组的初始化 133
7.3 字符数组 134
7.3.1 字符数组定义和引用 134
7.3.2 字符数组的初始化 135
7.3.3 字符数组的输入/输出 137
7.3.4 字符串处理函数 139
7.4 多维数组 145
7.5 数组应用举例 145
7.6 实践练习 151
第8章 函数——模块化的实现 151
8.1 函数的概述 154
8.2 函数定义的一般形式 156
8.3 返回语句 157
8.3.1 从函数返回 157
8.3.2 返回值 157
8.4 函数参数 158
8.4.1 形式参数和实际参数 158
8.4.2 数组作函数参数 160
8.5 函数的调用 163
8.5.1 函数声明 163
8.5.2 嵌套调用 166
8.5.3 递归调用 167
8.6 局部变量和全局变量 170
8.6.1 局部变量 170
8.6.2 全局变量 171
8.7 变量的存储类别 173
8.7.1 动态存储与静态存储 173
8.7.2 auto变量 174
8.7.3 static变量 176
8.7.4 register变量 177
8.7.5 extern变量 178
8.8 内部函数和外部函数 179
8.9 库函数 181
8.9.1 数学函数 181
8.9.2 字符和字符串函数 182
8.10 函数应用举例 183
8.11 实践练习 185
第9章 指针——C语言的灵魂 185
9.1 指针相关概念 188
9.1.1 地址与指针 188
9.1.2 指针变量 189
9.1.3 “&”和“*”运算符 191
9.1.4 指针的算术运算 192
9.2 一维数组与指针 193
9.2.1 指向数组元素的指针 193
9.2.2 使用指针访问数组 194
9.3 二维数组与指针 197
9.4 字符与指针 199
9.4.1 字符指针 199
9.4.2 字符串数组 201
9.5 指针作函数参数 202
9.5.1 指针变量作函数参数 202
9.5.2 数组指针作函数参数 205
9.6 指向指针的指针 209
9.7 函数型指针 210
9.8 main函数的参数 212
9.9 指针应用举例 214
9.10 实践练习 216
第10章 编程加油站(二) 218
必知必会001 判断数组中元素的个数 218
必知必会002 return 218
必知必会003 参数校验 218
必知必会004 向函数传递二维数组 219
必知必会005 静态全局变量与全局变量 219
必知必会006 extern声明数组 220
必知必会007 可不可以访问寄存器变量地址 222
必知必会008 if(p)检查指针是否为空 222
必知必会009 什么是空指针 222
必知必会010 指针变量赋值 223
必知必会011 const定义指针变量 223
必知必会012 char a?与char*a 223
必知必会013 指针应用 224
第3篇 提升篇 230
第11章 结构体和共用体——构造类型使程序更灵活 230
11.1 结构体 230
11.1.1 结构体类型的概念 230
11.1.2 结构体变量的定义和引用 230
11.1.3 结构变量的初始化 232
11.2 结构体数组 233
11.2.1 定义结构体数组 233
11.2.2 初始化结构体数组 234
11.3 结构体指针 236
11.3.1 结构体指针变量的声明 236
11.3.2 结构体指针应用 237
11.3.3 结构体数组指针 237
11.3.4 结构体变量作函数参数 238
11.3.5 结构体指针变量作函数参数 239
11.4 链表 239
11.4.1 链表概述 240
11.4.2 单链表的建立 241
11.4.3 链表相关操作 243
11.4.4 链表应用举例 250
11.5 共用体 252
11.5.1 共用体的概念 253
11.5.2 共用体变量的定义和引用 253
11.6 枚举类型 254
11.7 用typedef定义类型 256
11.8 实践练习 258
第12章 位运算——与汇编联系的纽带 258
12.1 位运算操作符 260
12.1.1 “或”运算符 260
12.1.2 “与”运算符 261
12.1.3 “取反”运算符 262
12.1.4 “异或”运算符 263
12.1.5 “左移”运算符 264
12.1.6 “右移”运算符 265
12.2 位段 266
12.3 位运算应用 268
12.4 实践练习 270
第13章 预处理——C语言的特别体验 270
13.1 宏定义 272
13.1.1 不带参数的宏定义 272
13.1.2 带参数的宏定义 273
13.2 “文件包含”处理 275
13.3 条件编译 278
13.3.1 #if等命令 278
13.3.2 #ifdef及#ifndef命令 280
13.3.3 #undef等命令 281
13.4 实践练习 282
第14章 文件——数据处理的中转站 282
14.1 文件概述 284
14.2 文件基本操作 284
14.2.1 文件的打开 284
14.2.2 文件关闭函数 286
14.3 文件的读写函数 286
14.3.1 字符形式读写文件 286
14.3.2 字符串形式读写文件 288
14.3.3 成块读写文件 289
14.3.4 格式化读写函数 290
14.3.5 随机读写文件 292
14.4 错误检测 294
14.5 文件操作举例 296
14.6 实践练习 299
第15章 图形图像——TC带来的色彩 299
15.1 字符屏幕函数 302
15.1.1 定义文本窗口函数 302
15.1.2 颜色设置函数 302
15.1.3 文本的输入和输出函数 303
15.1.4 屏幕操作函数 304
15.2 图形显示函数 307
15.2.1 图形模式初始化 307
15.2.2 屏幕颜色设置 310
15.2.3 基本图形函数 312
15.2.4 封闭图形的填充 320
15.3 图形屏幕 322
15.4 图形模式下文本输出 324
15.4.1 文本输出函数 324
15.4.2 文本属性设置 325
15.5 图形应用举例 327
15.6 实践练习 329
第16章 图书管理系统开发实例——让程序贴近生活 329
16.1 需求分析 332
16.2 系统设计 332
16.3 各模块功能实现 332
16.3.1 头文件及宏定义 333
16.3.2 结构体及全局变量定义 333
16.3.3 功能选择界面设计 334
16.3.4 图书信息添加 337
16.3.5 删除功能 339
16.3.6 查找功能 342
16.3.7 修改功能 343
16.3.8 会员信息添加 345
16.3.9 借书功能 348
16.3.10 还书功能 350
16.3.11 主函数 351
16.4 小结 353
第17章 编程加油站(三) 356
必知必会001 malloc()与calloc()的区别 356
必知必会002 使用enum的好处 356
必知必会003 .h文件 357
必知必会004 宏定义问题 357
必知必会005 条件编译 358
必知必会006 文件打开 358