标题：C语言开发实战宝典
图书信息
出版社: 清华大学出版社; 第1版 (2011年1月1日)
平装: 592页
正文语种: 简体中文  
开本: 16
ISBN: 9787302242512, 7302242518
条形码: 9787302242512
尺寸: 26 x 21.2 x 3 cm
重量: 1.1 Kg
内容简介
《C语言开发实战宝典》从初学者的角度讲述了使用visual c++ 6.0（以及部分turbo c）进行程序开发应该掌握的各项技术，突出“基础”、“全面”、“深入”，同时就像书名所暗示的一样，强调“实战”效果（只掌握和理解技术，而没有实际应用，等于没有掌握技术）。《C语言开发实战宝典》分为3篇，共21章。在“基础知识篇”中，在介绍技术的同时，每一章均提供了相应的实例，同时在各章的结尾安排有实战，通过几个小型项目来综合应用本章所讲解的知识，做到理论联系实际。接着，在“范例演练篇”中，安排了几章的范例使读者巩固所学的知识。最后，在“项目实战篇”中提供了5个完 整的项目实例，讲述了从前期规划、设计流程图，到项目最终实施的整个实现过程。《C语言开发实战宝典》适合有志于从事软件开发的初学者、高校计算机相关专业学生和毕业生，也可作为软件开发人员的参考手册，或者高校的教学参考书。
目录
基础知识篇 
第1章 c语言开发环境 1 
1.1 本章知识体系 4 
1.2 程序员的成长之路 4 
1.3 c语言的重要性 5 
1.4 如何学好c语言 5 
1.5 c语言常用开发工具简介 6 
1.5.1 turbo c 7 
1.5.2 visual c++ 6.0 7 
1.5.3 c++ builder（bcb） 7 
1.5.4 cygwin 7 
1.5.5 dev-c++ 7 
1.5.6 source insight 8 
1.6 了解visual c++集成开发环境 8 
1.6.1 开发环境布局 8 
1.6.2 菜单 8 
1.6.3 工具栏 15 
1.6.4 工作区窗口 16 
1.6.5 代码编辑窗口 16 
1.6.6 输出窗口 16 
.1.7 如何在turbo c 2.0下运行c源程序 17 
1.8 了解gcc开发编译器 19 
1.9 dev-c++ 19 
1.9.1 dev-c++概述 19 
1.9.2 dev-c++的使用 19 
1.10 eclipse for c/c++ 21 
1.10.1 eclipse概述 21 
1.10.2 eclipse的使用 22 
1.11 实战 24 
1.11.1 猴子吃桃 24 
1.11.2 阳阳买苹果 25 
1.12 疑难解惑 26 
1.12.1 为什么说c语言可移植性好 26 
1.12.2 c语言的应用领域有哪些 26 
1.12.3 如何提高c语言的编程效率 27 
1.13 小结 27 
第2章 c语言开发基础 29 
2.1 本章知识体系 30 
2.2 编码规范要记牢 30 
2.2.1 注释的合理使用 30 
2.2.2 程序中的{}要对齐 31 
2.2.3 合理使用空格使代码更规范 32 
2.2.4 换行使代码更清晰 32 
2.3 语言要素 33 
2.3.1 关键字 33 
2.3.2 标识符 33 
2.4 常量 34 
2.4.1 整型常量 34 
2.4.2 实型常量 36 
2.4.3 字符型常量 36 
2.4.4 字符串常量 37 
2.5 变量 38 
2.5.1 什么是变量 38 
2.5.2 变量的声明 39 
2.6 数据类型 39 
2.6.1 什么是数据类型 39 
2.6.2 整型 40 
2.6.3 实型 42 
2.6.4 字符型 42 
2.6.5 枚举类型 44 
2.7 使用typedef定义类型 45 
2.8 变量的存储类型 47 
2.8.1 了解变量的存储类型 47 
2.8.2 使用auto关键字声明自动变量 48 
2.8.3 使用static关键字声明静态变量 48 
2.8.4 使用register关键字声明寄存器变量 51 
2.8.5 使用extern关键字声明外部变量 52 
2.8.6 使用static关键字声明静态外部变量 55 
2.9 混合运算 55 
2.10 实战 57 
2.10.1 十进制转换为二进制 57 
2.10.2 求100～200之间的素数 58 
2.11 疑难解惑 60 
2.11.1 声明变量和定义变量 60 
2.11.2 限定词const 60 
2.11.3 字符串常量为什么用“\0”作为结束符 61 
2.12 小结 61 
第3章 运算符与表达式 63 
3.1 本章知识体系 64 
3.2 运算符与表达式 64 
3.2.1 赋值运算符与表达式 64 
3.2.2 加减乘除新认识 67 
3.2.3 关系源自比较 68 
3.2.4 逻辑出真假 69 
3.2.5 逗号运算符与表达式 71 
3.2.6 运算符的优先级 72 
3.3 自增、自减操作符 73 
3.3.1 认识自增、自减操作符 73 
3.3.2 自增、自减操作符的副作用 74 
3.4 位运算 74 
3.4.1 “或”运算符 74 
3.4.2 “与”运算符 76 
3.4.3 “取反”运算符 77 
3.4.4 “异或”运算符 78 
3.4.5 “左移”运算符 79 
3.4.6 “右移”运算符 80 
3.5 实战 81 
3.5.1 最大公约数及最小公倍数 81 
3.5.2 循环移位 82 
3.6 疑难解惑 84 
3.6.1 表达式“a=b”和“a= =b”一样吗？ 84 
3.6.2 如何区分“，”是运算符还是分隔符 84 
3.6.3 c语言中有哪些简化的运算表达式 86 
3.7 小结 86 
第4章 语句 87 
4.1 本章知识体系 88 
4.2 语句的构成 88 
4.2.1 表达式语句 89 
4.2.2 函数调用语句 89 
4.2.3 控制语句 90 
4.2.4 复合语句 91 
4.2.5 空语句 91 
4.3 如何实现字符数据输入/输出 91 
4.3.1 字符数据输出 91 
4.3.2 字符数据输入 92 
4.4 格式输入/输出 93 
4.4.1 格式输出函数 93 
4.4.2 格式输入函数 98 
4.5 程序的控制结构 101 
4.5.1 顺序结构 101 
4.5.2 分支结构 101 
4.5.3 循环结构 102 
4.6 if语句 103 
4.6.1 if语句的介绍 103 
4.6.2 if语句的嵌套 107 
4.7 条件运算符 108 
4.8 switch语句 109 
4.8.1 switch语句的基本形式 109 
4.8.2 剖析if和switch语句 112 
4.9 while与do-while语句 113 
4.9.1 当型循环语句while 113 
4.9.2 直到型循环语句do-while 116 
4.9.3 while与do-while的异同 118 
4.10 for语句 119 
4.10.1 初识for语句 119 
4.10.2 for语句的变体 121 
4.10.3 for语句的嵌套 123 
4.11 跳转语句 125 
4.11.1 continue语句跳出本次循环 125 
4.11.2 break语句跳出循环 126 
4.11.3 用于返回数据的return语句 127 
4.11.4 goto语句 128 
4.12 实战 129 
4.12.1 整数加减法练习 129 
4.12.2 一元钱兑换方案 130 
4.13 疑难解惑 132 
4.13.1 c语言提供的跳转语句各有什么特点 132 
4.13.2 循环嵌套时应该注意什么 132 
4.13.3 如何提高循环语句的执行效率 132 
4.14 小结 133 
第5章 数组 135 
5.1 本章知识体系 136 
5.2 一维数组 136 
5.2.1 如何定义和引用一维数组 136 
5.2.2 一维数组初始化 137 
5.2.3 一维数组应用 139 
5.3 二维数组 140 
5.3.1 如何定义和引用二维数组 140 
5.3.2 二维数组初始化 141 
5.3.3 二维数组应用 143 
5.4 多维数组 144 
5.5 字符数组 144 
5.5.1 如何定义和使用字符数组 144 
5.5.2 字符数组初始化 145 
5.5.3 字符数组的结束标志 147 
5.5.4 字符数组的输入和输出 148 
5.5.5 字符数组应用 151 
5.6 实战 152 
5.6.1 逆序存放数据 152 
5.6.2 相邻元素之和 154 
5.7 疑难解惑 155 
5.7.1 数组下标必须从0开始吗 155 
5.7.2 数组名作函数参数与数组元素作函数参数有什么不同之处 155 
5.7.3 '\0'和"\0"有什么区别 155 
5.8 小结 156 
第6章 函数 157 
6.1 本章知识体系 158 
6.2 函数概述 158 
6.3 函数的定义 160 
6.3.1 无参函数 160 
6.3.2 有参函数 161 
6.3.3 空函数 161 
6.4 返回语句 162 
6.4.1 从函数返回 162 
6.4.2 返回值 162 
6.5 函数参数 163 
6.5.1 形式参数与实际参数 163 
6.5.2 数组作函数参数 165 
6.5.3 main参数 170 
6.6 函数的调用 171 
6.6.1 函数调用方式 171 
6.6.2 嵌套调用 172 
6.6.3 递归调用 174 
6.7 内部函数和外部函数 177 
6.7.1 内部函数 177 
6.7.2 外部函数 177 
6.8 局部变量和全局变量 179 
6.8.1 局部变量 179 
6.8.2 全局变量 180 
6.9 实战 182 
6.9.1 求字符串中字符的个数 182 
6.9.2 打渔晒网问题 183 
6.10 疑难解惑 185 
6.10.1 在调用时不使用函数的返回值会产生什么现象 185 
6.10.2 c语言中函数的调用方式有哪几种 186 
6.10.3 函数定义时容易犯哪些错误 186 
6.11 小结 187 
第7章 指针 189 
7.1 本章知识体系 190 
7.2 指针相关概念 190 
7.2.1 地址与指针 190 
7.2.2 指针变量 191 
7.2.3 指针的赋值 192 
7.2.4 指针的引用 193 
7.3 指针运算 194 
7.4 一维数组与指针 196 
7.5 指针访问二维数组 200 
7.6 字符和指针 203 
7.6.1 使用字符指针 203 
7.6.2 字符指针数组 205 
7.7 指向指针的指针 206 
7.8 函数型指针 208 
7.9 实战 210 
7.9.1 用指针实现数据交换 210 
7.9.2 使用指针实现整数排序 212 
7.10 疑难解惑 213 
7.10.1 指针类型和指针所指向的类型是一样的吗 213 
7.10.2 指针运算与取地址运算符有何联系 214 
7.10.3 空指针有何意义 214 
7.11 小结 214 
第8章 结构体和共用体 215 
8.1 本章知识体系 216 
8.2 结构体 216 
8.2.1 结构体类型的概念 216 
8.2.2 结构体变量的定义 217 
8.2.3 结构体类型的几点说明 219 
8.2.4 结构体变量的引用 220 
8.2.5 结构体变量的初始化 220 
8.3 结构体数组 221 
8.3.1 定义结构体数组 221 
8.3.2 初始化结构体数组 222 
8.4 结构体指针 224 
8.4.1 指向结构体变量的指针 224 
8.4.2 指向结构体数组的指针 225 
8.4.3 结构体作函数参数 226 
8.5 包含结构的结构 229 
8.6 链表 230 
8.6.1 什么是链表 230 
8.6.2 创建动态链表 232 
8.6.3 链表相关操作 234 
8.7 共用体 240 
8.7.1 什么是共用体 240 
8.7.2 共用体变量的定义和引用 240 
8.7.3 共用体类型的初始化 241 
8.8 实战 242 
8.8.1 约瑟夫环 242 
8.8.2 计算开机时间 244 
8.9 疑难解惑 246 
8.9.1 定义结构体对结构体成员的类型是否有限制 246 
8.9.2 成员运算符（.）和指向结构体成员的运算符（-]）有何区别 246 
8.9.3 结构体和联合体有什么区别和联系 246 
8.10 小结 247 
第9章 文件 249 
9.1 本章知识体系 250 
9.2 文件概述 250 
9.3 文件基本操作 251 
9.3.1 文件的打开 251 
9.3.2 文件的关闭 252 
9.4 文件的读写 253 
9.4.1 fputc函数 253 
9.4.2 fgetc函数 254 
9.4.3 fread函数和fwrite函数 255 
9.5 文件的定位 257 
9.5.1 rewind函数 257 
9.5.2 ftell函数 259 
9.5.3 fseek函数 259 
9.6 出错检测 261 
9.6.1 ferror函数 261 
9.6.2 clearerr函数 263 
9.7 实战 264 
9.7.1 读取磁盘文件 264 
9.7.2 将数据写入磁盘文件 265 
9.8 疑难解惑 266 
9.8.1 标准文件和一般文件有什么区别 266 
9.8.2 c语言的常用库文件包含哪些 266 
9.8.3 为什么文件打开以后要及时关闭 268 
9.9 小结 268 
第10章 预处理 269 
10.1 本章知识体系 270 
10.2 不带参数的宏定义 270 
10.3 带参数的宏定义 272 
10.4 #include命令 273 
10.5 条件编译 276 
10.5.1 #if命令 276 
10.5.2 #ifdef及#ifndef命令 279 
10.5.3 #undef命令 280 
10.5.4 #line命令 280 
10.5.5 #pragma命令 281 
10.6 实战 282 
10.6.1 利用宏计算两个数的乘积 282 
10.6.2 利用宏求3个数中的最小数 282 
10.7 疑难解惑 283 
10.7.1 c语言中包括哪些预处理功能 283 
10.7.2 使用宏时需要注意些什么 284 
10.7.3 文件包含可以嵌套吗 284 
10.8 小结 284 
第11章 存储管理 285 
11.1 本章知识体系 286 
11.2 内存组织方式 286 
11.2.1 内存组织方式 286 
11.2.2 堆与栈 286 
11.3 分配内存函数（malloc和calloc） 289 
11.3.1 malloc函数 289 
11.3.2 calloc函数 290 
11.4 修改已分配内存（relloc函数） 291 
11.5 释放内存——free函数 292 
11.6 谁偷了我的内存 293 
11.7 实战 294 
11.7.1 为具有3个元素的数组分配内存 294 
11.7.2 为二维数组动态分配内存并释放 294 
11.8 疑难解惑 296 
11.8.1 什么是“内存泄露” 296 
11.8.2 内存耗尽了怎么办 296 
11.8.3 常见的内存管理错误有哪些 296 
11.9 小结 297 
范例演练篇 
第12章 排序 301 
12.1 选择排序 302 
12.1.1 范例功能演示 302 
12.1.2 开发思路指引 302 
12.1.3 专家难点解析 303 
12.1.4 设计过程详解 304 
12.1.5 范例开发手记 305 
12.1.6 进阶与提高 305 
12.2 冒泡排序 306 
12.2.1 范例功能演示 306 
12.2.2 开发思路指引 306 
12.2.3 专家难点解析 307 
12.2.4 设计过程详解 308 
12.2.5 范例开发手记 309 
12.2.6 进阶与提高 309 
12.3 插入排序 310 
12.3.1 范例功能演示 310 
12.3.2 开发思路指引 310 
12.3.3 专家难点解析 311 
12.3.4 设计过程详解 312 
12.3.5 范例开发手记 313 
12.3.6 进阶与提高 313 
12.4 希尔排序 314 
12.4.1 范例功能演示 314 
12.4.2 开发思路指引 315 
12.4.3 专家难点解析 315 
12.4.4 设计过程详解 316 
12.4.5 范例开发手记 317 
12.4.6 进阶与提高 318 
12.5 快速排序 319 
12.5.1 范例功能演示 319 
12.5.2 开发思路指引 319 
12.5.3 专家难点解析 320 
12.5.4 设计过程详解 321 
12.5.5 范例开发手记 322 
12.5.6 进阶与提高 323 
第13章 查找 325 
13.1 顺序查找 326 
13.1.1 范例功能演示 326 
13.1.2 开发思路指引 326 
13.1.3 专家难点解析 326 
13.1.4 设计过程详解 327 
13.1.5 范例开发手记 328 
13.1.6 进阶与提高 328 
13.2 折半查找 329 
13.2.1 范例功能演示 330 
13.2.2 开发思路指引 330 
13.2.3 专家难点解析 330 
13.2.4 设计过程详解 331 
13.2.5 范例开发手记 332 
13.2.6 进阶与提高 332 
13.3 分块查找 334 
13.3.1 范例功能演示 334 
13.3.2 开发思路指引 334 
13.3.3 专家难点解析 335 
13.3.4 设计过程详解 336 
13.3.5 范例开发手记 337 
13.3.6 进阶与提高 338 
13.4 哈希查找 339 
13.4.1 范例功能演示 339 
13.4.2 开发思路指引 340 
13.4.3 专家难点解析 340 
13.4.4 设计过程详解 342 
13.4.5 范例开发手记 344 
13.4.6 进阶与提高 344 
第14章 数据压缩 349 
14.1 rle算法实现数据压缩 350 
14.1.1 范例功能演示 350 
14.1.2 开发思路指引 350 
14.1.3 专家难点解析 351 
14.1.4 设计过程详解 351 
14.1.5 范例开发手记 353 
14.1.6 进阶与提高 353 
14.2 lzw算法实现数据压缩 355 
14.2.1 范例功能演示 355 
14.2.2 开发思路指引 355 
14.2.3 专家难点解析 355 
14.2.4 设计过程详解 356 
14.2.5 范例开发手记 359 
14.2.6 进阶与提高 359 
第15章 图形编程 363 
15.1 绘制折线图 364 
15.1.1 范例功能演示 364 
15.1.2 开发思路指引 364 
15.1.3 专家难点解析 364 
15.1.4 设计过程详解 366 
15.1.5 范例开发手记 367 
15.1.6 进阶与提高 368 
15.2 饼状图 370 
15.2.1 范例功能演示 370 
15.2.2 开发思路指引 370 
15.2.3 专家难点解析 370 
15.2.4 设计过程详解 372 
15.2.5 范例开发手记 373 
15.2.6 进阶与提高 373 
15.3 条形图 375 
15.3.1 范例功能演示 375 
15.3.2 开发思路指引 375 
15.3.3 专家难点解析 375 
15.3.4 设计过程详解 377 
15.3.5 范例开发手记 379 
15.3.6 进阶与提高 379 
15.4 画玫瑰花 381 
15.4.1 范例功能演示 381 
15.4.2 开发思路指引 381 
15.4.3 专家难点解析 381 
15.4.4 设计过程详解 382 
15.4.5 范例开发手记 387 
15.4.6 进阶与提高 387 
15.5 菜单界面设计 388 
15.5.1 范例功能演示 389 
15.5.2 开发思路指引 389 
15.5.3 专家难点解析 389 
15.5.4 设计过程详解 390 
15.5.5 范例开发手记 396 
15.5.6 进阶与提高 396 
第16章 文件的高级应用 399 
16.1 创建文件 400 
16.1.1 范例功能演示 400 
16.1.2 开发思路指引 400 
16.1.3 专家难点解析 400 
16.1.4 设计过程详解 401 
16.1.5 范例开发手记 402 
16.1.6 进阶与提高 402 
16.2 文件的复制 403 
16.2.1 范例功能演示 403 
16.2.2 开发思路指引 403 
16.2.3 专家难点解析 403 
16.2.4 设计过程详解 404 
16.2.5 范例开发手记 405 
16.2.6 进阶与提高 405 
16.3 删除文件 406 
16.3.1 范例功能演示 407 
16.3.2 开发思路指引 407 
16.3.3 专家难点解析 407 
16.3.4 设计过程详解 408 
16.3.5 范例开发手记 409 
16.3.6 进阶与提高 409 
16.4 重命名文件 412 
16.4.1 范例功能演示 412 
16.4.2 开发思路指引 412 
16.4.3 专家难点解析 412 
16.4.4 设计过程详解 413 
16.4.5 范例开发手记 413 
16.4.6 进阶与提高 414 
16.5 文件加密 415 
16.5.1 范例功能演示 415 
16.5.2 开发思路指引 416 
16.5.3 专家难点解析 416 
16.5.4 设计过程详解 417 
16.5.5 范例开发手记 418 
16.5.6 进阶与提高 418 
项目实战篇 
第17章 五子棋游戏开发 423 
17.1 概述 424 
17.2 需求分析 424 
17.3 系统设计 424 
17.3.1 设计目标 424 
17.3.2 开发及运行环境 424 
17.4 程序预览 424 
17.5 graphics.h文件 425 
17.6 设计思路 429 
17.7 预处理 429 
17.7.1 文件引用 429 
17.7.2 宏定义 429 
17.8 声明变量 430 
17.9 函数声明 430 
17.10 主要功能实现 430 
17.10.1 主函数 430 
17.10.2 开始游戏 432 
17.10.3 绘制棋盘 433 
17.10.4 绘制棋子 433 
17.10.5 清除棋子 434 
17.10.6 游戏过程 434 
17.10.7 判断胜负结果 440 
17.11 开发总结 442 
第18章 商品信息管理系统（txt） 443 
18.1 概述 444 
18.1.1 需求分析 444 
18.1.2 功能结构图 444 
18.2 预处理 444 
18.2.1 文件引用 444 
18.2.2 宏定义 445 
18.3 声明结构体 445 
18.4 函数声明 445 
18.5 功能选择界面 446 
18.5.1 功能概述 446 
18.5.2 主函数 446 
18.5.3 自定义菜单功能函数 447 
18.6 录入商品信息 448 
18.7 查询商品信息 452 
18.8 删除商品信息 454 
18.9 修改商品信息 456 
18.10 插入商品信息 458 
18.11 统计商品数 461 
18.12 开发总结 462 
第19章 网络通信编程 463 
19.1 网络通信系统概述 464 
19.1.1 开发背景 464 
19.1.2 需求分析 464 
19.1.3 功能结构图 464 
19.2 技术攻关 465 
19.2.1 tcp/ip协议 465 
19.2.2 ip地址 466 
19.2.3 数据包格式 467 
19.2.4 建立连接 469 
19.2.5 套接字库函数 470 
19.3 网络通信系统主程序 473 
19.4 点对点通信 477 
19.5 服务器中转通信 484 
19.6 程序调试与错误处理 491 
19.7 开发总结 494 
第20章 联系人管理系统（嵌入式） 497 
20.1 联系人管理系统概述 498 
20.1.1 系统分析 498 
20.1.2 总体设计 498 
20.2 技术攻关 499 
20.2.1 嵌入式 499 
20.2.2 超级终端通信 500 
20.2.3 烧写与编译 504 
20.3 联系人管理系统主程序 511 
20.4 添加联系人模块 516 
20.5 查找联系人模块 518 
20.6 删除联系人模块 521 
20.7 浏览联系人模块 523 
20.8 联系人详情 527 
20.9 程序调试与错误处理 529 
20.10 开发总结 533 
第21章 图书管理系统（mysql） 535 
21.1 概述 536 
21.1.1 需求分析 536 
21.1.2 开发工具选择 536 
21.2 系统设计 536 
21.2.1 系统目标 536 
21.2.2 系统功能结构 537 
21.2.3 系统预览 537 
21.2.4 开发及运行环境 540 
21.3 数据库设计 540 
21.3.1 安装mysql数据库 540 
21.3.2 启动mysql数据库 547 
21.3.3 创建数据库 548 
21.3.4 数据表结构 549 
21.4 c语言开发数据库程序的流程 549 
21.5 c语言操作mysql数据库 552 
21.5.1 mysql常用数据库操作函数 552 
21.5.2 连接mysql数据 554 
21.5.3 查询图书表记录 555 
21.5.4 插入图书表记录 557 
21.5.5 修改图书表记录 558 
21.5.6 删除图书表记录 560 
21.6 文件引用 560 
21.7 变量和函数定义 561 
21.8 主要功能模块设计 562 
21.8.1 显示主菜单信息 562 
21.8.2 显示所有图书信息 564 
21.8.3 添加图书信息 567 
21.8.4 修改图书信息 574 
21.8.5 删除图书信息 581 
21.8.6 查询图书信息 587 
21.9 程序调试及错误处理 590 
21.9.1 解决创建数据表为一个文件的问题 590 
21.9.2 在创建数据表时，最后一句结尾没有标点 591 
21.9.3 无法启动mysql服务 592 
21.10 项目开发总结 592