《C语言编程之道》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:刘彬彬,孙秀梅,李鑫编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2011
  • ISBN:9787115245465
  • 页数:376 页
图书介绍:本书是一本集编程感悟、技巧、陷阱、谬误和算法为一体的编程书籍,全面介绍了学习和应用C语言进行程序开发的各种陷阱与谬误、技术细节与经验技巧、常用的算法。其涉及到的技术主要包括C语言关键技术、指针、数组、数据结构、数学应用、算法等相关技术细节、技巧。

第1篇 编程经验与感悟——站在前人臂膀上前行 2

第1章 步入编程殿堂 2

感悟01 编程我也行 2

感悟02 如何选择编程语言 2

感悟03 培养对编程的兴趣 4

感悟04 学习编程要打好基本功 6

感悟05 多与别人交流 7

感悟06 锻炼开放性思维 7

感悟07 思维方式要灵活 9

感悟08 不断温习学过的知识 9

感悟09 坚持比激情更重要 9

第2章 编程高手具有的基本素质和能力 11

经验01 善于总结编程经验 11

经验02 创造或寻找方法 11

经验03 重视程序中的小错误 12

经验04 在调试与改错中成长 12

经验05 养成良好的编程风格 13

经验06 要重视实践练习 14

经验07 善于利用丰富的网络资源 15

经验08 学习与培训的必要性 15

经验09 多向他人学习 15

经验10 写程序之前要分析 16

经验11 写程序之后要总结 17

经验12 软件需求规格说明书 18

经验13 逐步培养个人的编程思想 18

经验14 面试经验谈 19

第3章 畅谈编程 21

感悟01 程序员的成长之路 21

感悟02 程序员的生存法则 22

感悟03 程序员的生涯规划 23

感悟04 项目开发经验谈 24

感悟05 信息技术改变我们的生活 26

第2篇 陷阱与谬误——汲取前人的教训 30

第4章 开发人员不可忽略的22个技术陷阱 30

陷阱01 忽略了大小写的区别 30

陷阱02 “{}”与“()”使用不当造成错误 31

陷阱03 多加分号导致出错 32

陷阱04 使用循环语句不慎产生死循环 33

陷阱05 忽视do...while循环次数产生的错误 34

陷阱06 数据溢出产生的陷阱 35

陷阱07 整数的除法导致结果的偏差 36

陷阱08 变量未定义 37

陷阱09 输入数据时忘记添加&符号 38

陷阱10 使用scanf函数输入格式不符 39

陷阱11 输入的数据类型不符的陷阱 41

陷阱12 switch语句中忘记使用break 42

陷阱13 指针没被初始化 43

陷阱14 操作超出动态分配的内存 44

陷阱15 使用内存后未释放 45

陷阱16 内存释放了继续使用 46

陷阱17 没有说明函数的头文件 47

陷阱18 忽略了字符串结束符 48

陷阱19 数组长度使用变量 49

陷阱20 数组下标“越界” 51

陷阱21 子函数未定义产生的陷阱 52

陷阱22 子函数在说明和定义时类型不一致 53

第5章 36个开发人员意识中的常见谬误 55

谬误01 Main大写错误 55

谬误02 “=”与“==” 55

谬误03 scanf()错误 56

谬误04 循环错误 57

谬误05 在定义数组时,将定义的“元素个数”误认为是可使用的最大下标值 57

谬误06 混淆了字符与字符串常量 57

谬误07 使用==比较字符串 58

谬误08 没有使用零字符结束字符串 58

谬误09 不正确的使用fgetc()等函数 58

谬误10 a和&a的区别 59

谬误11 gets()函数的使用 60

谬误12 忽略了变量的类型,进行了不合法的运算 60

谬误13 忘记加分号 60

谬误14 路径名错误 61

谬误15 #include<stdio.h>和#include“stdio.h”的区别 61

谬误16 函数调用的错误 61

谬误17 空指针并非空字符串 62

谬误18 枚举类型容易出错的几个问题 62

谬误19 &、|、~与&&、‖、!的谬误 63

谬误20 system()和clrscr()的区别 63

谬误21 使用getchar()函数的误区 63

谬误22 使用errno检测错误 64

谬误23 宏定义中不可忽视的空格 65

谬误24*p++是自增p还是p做指向的变量 65

谬误25 char a[]和char*a是一样的 65

谬误26 指针变量与零值的比较 66

谬误27 const和#define是一样的 66

谬误28 浮点变量与零值的比较 66

谬误29 宏定义中的常见谬误 67

谬误30 a[i]=i++;代码正确吗 68

谬误31 数组和指针等价吗 68

谬误32 指针和数组的区别 68

谬误33 指针比数组执行快 69

谬误34 ++i比i=i+1执行快 69

第3篇 技术细节——修炼编程内功心法 72

第6章 26个C语言基础知识技术细节 72

细节01 标识符的使用 72

细节02 限定词const 73

细节03 限定词volatile 73

细节04 变量的存储 74

细节05 字符数据类型 74

细节06 说明变量和定义变量 75

细节07 typedef应用的技术要点 76

细节08 使用static关键字声明静态变量 77

细节09 如何区分“,”是运算符还是分隔符 78

细节10 基本的算术运算 79

细节11 自增、自减操作符的使用 81

细节12 C语言中的特殊表达式 82

细节13 特殊表达式e1?e2:e3 83

细节14 使用printf函数输出% 83

细节15 %lf与%f差异 84

细节16 scanf与gets 85

细节17 什么时候用switch 86

细节18 if语句的多个判断问题 88

细节19 break在switch语句中的使用 89

细节20 while与do...while的异同 90

细节21 while、do...while、for循环相互转换 91

细节22 循环不能交叉 92

细节23 goto语句使用规则 93

细节24 合理使用return语句 93

细节25 合理使用空格使代码更规范 94

细节26 C语言如何解释a<b<c 94

第7章 19个C语言重点知识技术细节 96

细节01 判断数组中元素的个数 96

细节02 向函数传递二维数组 97

细节03 字符数组的结束标志 97

细节04 extern声明数组 98

细节05 数组下标从0开始 101

细节06 数组名作函数参数与数组元素做函数参数的不同之处 101

细节07 ‘\0’和“\0”的区别 102

细节08 静态全局变量与全局变量 102

细节09 访问寄存器变量地址 102

细节10 参数校验 103

细节11 什么是空指针 103

细节12 if(p)检查指针是否为空 104

细节13 指针变量赋值相关 104

细节14 const定义指针变量 105

细节15 char a[]与char*a 106

细节16 指针应用 107

细节17 指针类型和指针所指向的类型 108

细节18 指针运算与取地址运算符的联系 109

细节19 函数型指针 109

第8章 18个C语言高级技术细节 111

细节01 定义结构体对结构体成员的类型限制 111

细节02 成员运算符(.)和(->)的差异 111

细节03 结构体和联合体的区别和联系 111

细节04 enum的好处 112

细节05 .h文件 113

细节06 宏定义问题 114

细节07 条件编译 115

细节08 文件打开 115

细节09 C语言中的预处理功能 117

细节10 使用宏时需要注意些什么 117

细节11 文件包含的嵌套 117

细节12 malloc()与calloc()的区别 118

细节13 什么是“内存泄露” 119

细节14 内存耗尽了怎么办 119

细节15 常见的内存管理错误有哪些 120

细节16 标准文件和一般文件有什么区别 120

细节17 C语言的常用库文件包含哪些 120

细节18 为什么文件打开以后要及时关闭 122

第4篇 编程技巧——程序员的神兵利器 124

第9章 C语言开发人员必知必会的基本技能开发技巧 124

技巧01 十进制数转换为十六进制 124

技巧02 N进制转换为十进制 125

技巧03 IP地址形式输出 126

技巧04 数字由小到大排序 127

技巧05 阶梯问题 129

技巧06 判断闰年 130

技巧07 对调数问题 131

技巧08 评定成绩等级 133

技巧09 打印乘法口诀表 134

技巧10 打印杨辉三角 135

技巧11 特殊等式 137

技巧12 统计各种字符个数 138

技巧13 猴子吃桃 139

技巧14 删除字符串中连续字符 140

技巧15 求学生的平均身高 141

技巧16 灯塔数量 143

技巧17 老师分糖果 144

技巧18 小球下落问题 145

技巧19 彩球问题 146

第10章 指针开发技巧 148

技巧01 使用指针实现整数排序 148

技巧02 使用指针实现数据交换 149

技巧03 指向结构体变量的指针 151

技巧04 使用指针输出数组元素 152

技巧05 用指针实现逆序存放数组元素值 153

技巧06 使用指针查找数列中最大值/最小值 154

技巧07 使用指针实现字符串复制 156

技巧08 使用指针实现字符串的连接 158

技巧09 使用指针实现字符串插入 159

技巧10 使用指针实现字符串的匹配 160

技巧11 用指向函数的指针比较大小 162

技巧12 使用返回指针的函数查找最大值 163

技巧13 用指针函数实现求学生成绩 164

技巧14 寻找指定元素的指针 165

技巧15 寻找相同元素的指针 167

技巧16 使用指针的指针输出字符串 168

技巧17 实现输入月份输出该月份英文名 170

技巧18 使用指向指针的指针对字符串排序 171

第11章 文件开发技巧 173

技巧01 读取磁盘文件 173

技巧02 将数据写入磁盘文件 175

技巧03 格式化读写文件 176

技巧04 成块读写操作 177

技巧05 随机读写文件 179

技巧06 复制文件内容到另一文件 181

技巧07 合并两个文件信息 182

技巧08 文件分割 183

技巧09 文件加密 185

技巧10 统计文件内容 186

技巧11 创建文件 188

技巧12 创建临时文件 189

技巧13 重命名文件 190

技巧14 删除文件 191

技巧15 删除文件中的记录 192

技巧16 查找文件 193

技巧17 显示目录内同类型文件 194

技巧18 关闭打开的所有文件 196

技巧19 错误处理 198

第12章 数学应用开发技巧 201

技巧01 求100~200之间的素数 201

技巧02 可逆素数 202

技巧03 回文素数 203

技巧04 特殊的完全平方数 204

技巧05 求1000以内的完数 205

技巧06 三重回文数 206

技巧07 亲密数 207

技巧08 自守数 208

技巧09 满足abcd=(ab+cd)2的数 209

技巧10 神奇的数字6174 210

技巧11 一数三平方 211

技巧12 求等差数列 213

技巧13 求整数的绝对值 214

技巧14 正弦、余弘、正切值 215

技巧15 自然对数的底e的计算 216

技巧16 最大公约数及最小公倍数 216

技巧17 求解二元一次不定方程 217

技巧18 二分法求解方程 219

技巧19 牛顿迭代法解方程的根 220

技巧20 打印特殊方阵 221

技巧21 求3×3矩阵对角元素之和 222

技巧22 矩阵的加法运算 223

技巧23 矩阵的乘法运算 224

技巧24 打印n阶螺旋方阵 225

技巧25 求车运行速度 226

技巧26 卖西瓜 228

技巧27 巧分苹果 228

第13章 C语言开发人员必知必会的数据结构开发应用技巧 230

技巧01 结构体简单应用 230

技巧02 找最高分 233

技巧03 平均成绩 235

技巧04 比较计数 235

技巧05 信息查询 237

技巧06 计算开机时间 238

技巧07 创建双向链表 240

技巧08 创建循环链表 244

技巧09 创建顺序表并插入元素 246

技巧10 向链表中插入节点 248

技巧11 从链表中删除节点 250

技巧12 合并两个链表 253

技巧13 应用栈实现进制转换 255

技巧14 括号匹配检测 258

技巧15 串的模式匹配 261

技巧16 简单的文本编辑器 262

第14章 C语言开发人员必知必会的高级开发技巧 267

技巧01 设置DOS系统时间 267

技巧02 设置DOS系统日期 268

技巧03 函数实现字符匹配 269

技巧04 查找位置信息 270

技巧05 建立目录 272

技巧06 复制当前目录 273

技巧07 删除目录 274

技巧08 访问系统temp中文件 276

技巧09 设置组合键 277

技巧10 获取当前日期与时间 278

技巧11 设置系统日期 279

技巧12 获取BIOS常规内存容量 281

技巧13 获取CMOS密码 282

技巧14 鼠标中断 284

技巧15 备份/恢复硬盘分区表 286

技巧16 获取系统配置信息 290

技巧17 恢复内存文本 292

技巧18 控制扬声器声音 295

第5篇 算法和效率——程序员的得力助手 298

第15章 常用的30个算法及应用 298

算法01 冒泡排序 298

算法02 选择排序 300

算法03 直接插入排序 301

算法04 归并排序 303

算法05 希尔排序 305

算法06 快速排序 307

算法07 顺序查找 309

算法08 二分查找 310

算法09 分块查找 312

算法10 哈希查找 314

算法11 斐波那契数列 317

算法12 角谷猜想 319

算法13 歌德巴赫猜想 320

算法14 四方定理 322

算法15 尼科彻斯定理 323

算法16 创建单向链表 325

算法17 约瑟夫环 328

算法18 双链表逆序输出 330

算法19 二叉树的遍历 332

算法20 用栈设置密码 334

算法21 链队列 338

算法22 SHA加密 342

算法23 MD5加密 349

算法24 RSA加密 359

算法25 DES加密 361

算法26 RC4加密 366

算法27 打渔晒网问题 369

算法28 水池注水问题 371

算法29 迪杰斯特拉算法 372

算法30 百钱买百鸡 374