《荡胸生层云 C语言开发修行实录》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:席国庆等编著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2011
  • ISBN:9787121130502
  • 页数:440 页
图书介绍:本书分为4篇共18章。其中第1~第8章是基础篇,讲解了C语言开发的基本知识,包括C语言地位、算法、流程语句、数组和字符串、函数、指针;第9~第12章是核心技术篇,包括结构体、共用体和枚举、链表、位运算、预编译;第13~第15章是提高篇,包括文件操作、错误调试、高级编程技术;第16~第18章是综合实战篇,分别通过3个综合实例的实现过程,讲解了C语言在综合项目中的使用流程。全书采用故事性、趣味性相结合的对话讲解方式,并穿插了学习技巧和职场生存法则,引领读者全面掌握C语言。

第一篇 基础篇 1

第1章 学C语言还有用吗 1

1.1 引出问题 1

1.2 漫漫发展历程 2

1.3 C语言特点 2

1.4 工欲善其事,必先利其器 3

1.4.1 先看Turbo C/C++3.0 4

1.4.2 再看DEV-C++5 10

1.5 我的第一次C语言程序开发 11

1.5.1 第一步:编辑源代码 12

1.5.2 第二步:编译 13

1.5.3 第三步:运行 13

1.6 疱丁解牛C程序 13

1.6.1 C程序组成部分 14

1.6.2 C程序的书写格式 16

1.7 解决问题——究竟C语言还有用吗 17

1.8 我的总结 18

第2章 看人生算法 19

2.1 引出问题 19

2.2 何谓算法 20

2.2.1 算法的概念 20

2.2.2 用流程图表示算法 21

2.2.3 用C语言表示算法 22

2.3 不同的数据类型,品百态人生 23

2.4 变量和常量,体会变和不变 23

2.4.1 不变的常量 24

2.4.2 可变的变量 25

2.5 整型数据 28

2.5.1 整型常量 28

2.5.2 整型变量 29

2.6 实实在在的实型数据 31

2.6.1 不变的实型常量 31

2.6.2 变化的实型变量 32

2.6.3 实型常量的类型 33

2.7 字符型数据,人生如符号 34

2.7.1 字符常量 34

2.7.2 字符串常量 36

2.7.3 字符变量 36

2.8 从初始化变量谈人生初始化 38

2.9 整型、实型、字符型数据间的运算 39

2.9.1 自动转换 39

2.9.2 强制转换 40

2.10 解决问题——规划你的人生算法,两弊相衡取其轻 41

2.11 我的总结 42

第3章 运算符和表达式,选择你的生活方式 43

3.1 引出问题 43

3.2 人生有多种选择 44

3.2.1 运算符的种类 44

3.2.2 运算符的优先级 46

3.3 算术运算符拨慢时钟的运转 47

3.3.1 最简单的单目运算符 47

3.3.2 双目运算符 48

3.4 赋值运算符和赋值表达式 49

3.4.1 基本赋值运算符 50

3.4.2 复合赋值运算符 52

3.4.3 赋值表达式 53

3.5 关系运算下的男女关系 54

3.6 逻辑人生下的逻辑运算符和逻辑表达式 56

3.7 人生需要停顿的逗号运算 58

3.8 花落知多少,求字节数运算 60

3.9 解决问题——程序员的7种生活方式 62

3.10 我的总结 63

第4章 进进出出的C语句 64

4.1 引出问题 64

4.2 语句——C程序的最重要组成 65

4.2.1 C语句简介 65

4.2.2 看空白对语句的作用 67

4.2.3 赋值语句给你一个值 67

4.3 输入和输出,是一个进进出出的过程 68

4.3.1 putchar函数(字符输出函数) 69

4.3.2 getchar函数(字符输入函数) 70

4.3.3 printf函数(格式输出函数) 72

4.3.4 scanf函数(格式输入函数)&. 74

4.3.5 puts函数(字符串输出函数) 77

4.3.6 gets函数(字符串输入函数) 78

4.4 解决问题 79

4.5 我的总结 80

第5章 和人生一样的流程控制 82

5.1 引出问题 82

5.2 按部就班的顺序结构 83

5.3 人生可以选择 84

5.3.1 一个选择的单分支结构语句 85

5.3.2 有多个选择的双分支结构语句 86

5.3.3 复杂的多分支结构语句 88

5.3.4 条件运算符和条件表达式 89

5.4 人生是一个循环 91

5.4.1 for语句循环 92

5.4.2 while语句 94

5.4.3 do-while语句 96

5.4.4 循环语句的总结 97

5.4.5 goto语句 98

5.4.6 break语句 99

5.4.7 continue语句 100

5.4.8 死循环和退出程序 101

5.5 解决问题 103

5.6 我的总结 104

第6章 数组和字符串,心灵的港湾 105

6.1 引出问题 105

6.2 最简单的一维数组 106

6.2.1 定义一维数组 106

6.2.2 引用一维数组元素 107

6.2.3 初始化一维数组 108

6.3 纷乱思绪下的多维数组 110

6.3.1 二维数组 111

6.3.2 多维数组 114

6.4 功名利禄下的字符数组与字符串 117

6.4.1 字符数组 117

6.4.2 字符串与字符数组 118

6.4.3 字符数组的输入输出 119

6.5 净化心灵的字符串处理函数 121

6.5.1 测试字符串长度 121

6.5.2 字符串大小写转换 122

6.5.3 字符串复制 123

6.5.4 字符串比较 124

6.5.5 字符串连接 126

6.5.6 其他字符串函数 127

6.5.7 将字符串转换成数值的函数 127

6.6 豁然开朗的字符处理函数 128

6.6.1 字符检测函数 129

6.6.2 字符大小写转换函数 131

6.7 解决问题 132

6.8 我的总结 133

第7章 函数,最厉害的武器 134

7.1 引出问题 134

7.2 函数,一个个致命的武器 135

7.2.1 看函数的分类 135

7.2.2 函数的定义 137

7.3 第一步,函数的声明和函数原型 138

7.4 武器的零件——参数 140

7.4.1 形参和实参 140

7.4.2 数组名作为函数参数 142

7.4.3 数组作为函数参数 144

7.5 组装的结果——返回值 146

7.6 使用你的武器——调用函数 148

7.6.1 函数调用格式 149

7.6.2 调用函数的方式 149

7.6.3 对被调函数的召唤 150

7 6.4 调用函数方式的深入分析 151

7.7 函数嵌套和递归,组合你的武器 153

7.7.1 嵌套调用 153

7.7.2 递归调用 156

7.8 变量的作用域和生存期 157

7.8.1 变量作用域 158

7.8.2 静态存储变量和动态存储变量 160

7.9 内外兼修的内部函数和外部函数 167

7.9.1 内部函数 167

7.9.2 何谓外部函数 168

7.10 库函数我来了 169

7.10.1 C库函数介绍 169

7.10.2 C库函数分类 169

7.11 信心是最重要的武器 170

7.12 我的总结 173

第8章 一个萝卜一个坑的指针 174

8.1 引出问题 174

8.2 为需求而生的指针 175

8.3 变量的指针和指向变量的指针变量 175

8.3.1 声明 176

8.3.2 初始化 177

8.3.3 引用 178

8.3.4 最后几个说明 179

8.3.5 指针变量运算 180

8.3.6 指针变量作为函数参数 181

8.3.7 void类型的指针 184

8.4 双子星般的指针和数组 186

8.4.1 数组元素的指针 186

8.4.2 指向一维数组元素的指针变量 188

8.4.3 通过指针引用数组元素 189

8.4.4 使用指针变量应该注意的问题 192

8.4.5 数组名作函数参数 195

8.5 指针和多维数组 197

8.5.1 多维数组的地址 197

8.5.2 指向多维数组的指针变量 199

8.6 指针和字符串 201

8.6.1 指针访问字符串 202

8.6.2 字符串指针作函数参数 203

8.6.3 使用字符串指针变量与字符数组的区别 204

8.7 指针数组和多级指针 205

8.7.1 指针数组 206

8.7.2 多级指针的定义和应用 207

8.7.3 指向指针的指针 209

8.7.4 main函数的参数 209

8.8 指针函数和函数指针 210

8.9 解决问题 214

8.10 我的总结 214

第二篇 核心技术篇 216

第9章 结构体、共用体和枚举 216

9.1 引出问题 216

9.2 先谈结构体 216

9.2.1 定义结构体类型 217

9.2.2 结构体类型变量的定义 217

9.2.3 结构体变量的引用 220

9.2.4 结构体变量的初始化 221

9.3 结构体数组 223

9.3.1 结构体数组定义 223

9.3.2 结构体数组的初始化 225

9.3.3 结构体数组的引用 226

9.4 结构体指针 227

9.4.1 结构体指针变量的定义 228

9.4.2 结构体指针变量的初始化 228

9.4.3 结构体指针变量的引用 229

9.4.4 指向结构体变量的指针 229

9.4.5 指向结构体数组的指针 231

9.5 结构体和函数 231

9.5.1 结构体变量和结构体指针作为函数参数 232

9.5.2 返回结构体类型值的函数 233

9.6 朋友,共用体(联合) 234

9.6.1 共用体和共用体变量的定义 235

9.6.2 共用体变量的引用与初始化 236

9.6.3 结构体和共用体的区别 238

9.7 枚举 239

9.7.1 定义枚举类型 239

9.7.2 定义枚举变量 240

9.7.3 枚举变量的引用 241

9.8 用typedef定义类型 241

9.9 解决问题 243

9.10 我的总结 245

第10章 收放自如的链表 246

10.1 引出问题 246

10.2 动态内存分配 246

10.3 链表 249

10.3.1 侃侃链表 249

10.3.2 单向链表 251

10.3.3 创建链表 253

10.3.4 删除整个链表 253

10.3.5 在链表中插入结点 253

10.3.6 在链表中删除结点 253

10.3.7 双向链表 254

10.3.8 循环链表 257

10.4 解决问题 257

10.5 我的总结 258

第11章 更精细的位运算 259

11.1 引出问题 259

11.2 看6种位运算符和位运算 260

11.2.1 按位与运算 260

11.2.2 按位或运算 261

11.2.3 按位异或运算 262

11.2.4 取反运算 263

11.2.5 左移运算 264

11.2.6 右移运算 264

11.3 人生范围般的位域 265

11.4 解决问题 267

11.5 我的总结 268

第12章 预编译是一种准备活动 269

12.1 引出问题 269

12.2 三种预编译指令 270

12.3 何谓宏定义 270

12.3.1 不带参数的宏定义 271

12.3.2 带参数的宏定义 273

12.3.3 字符串化运算符 274

12.3.4 并接运算符 274

12.4 文件包含 275

12.5 条件编译 275

12.5.1 #ifdef...#else...#endif命令 276

12.5.2 #ifdefined...#else...#endif 277

12.5.3 #ifndef...#else...#endif 277

12.5.4 #if!defined...#else...#endif 278

12.5.5 #ifdef...#elif...#elif...#else...#endif 278

12.6 解决问题 280

12.7 我的总结 282

第三篇 提高篇 283

第13章 文件操作很重要 283

13.1 引出问题 283

13.2 说说文件 283

13.2.1 文本文件 284

13.2.2 文件分类 284

13.3 文件指针 285

13.4 文件打开与关闭 285

13.4.1 打开文件 286

13.4.2 关闭文件 288

13.5 文件读写操作 290

13.5.1 字符读写函数 290

13.5.2 字符串读写函数 292

13.5.3 格式化读写函数 294

13.5.4 读写数据块函数 295

13.5.5 其他读写函数 297

13.6 文件的随机读写 298

13.6.1 fseek函数 299

13.6.2 rewind函数 300

13.6.3 ftell函数 301

13.7 文件管理函数 302

13.7.1 删除文件 303

13.7.2 重命名文件 303

13.7.3 复制文件 304

13.8 检测你的状态 306

13.8.1 feof函数 306

13.8.2 ferror函数 306

13.8.3 clearerr函数 307

13.9 解决问题 308

13.10 我的总结 309

第14章 人孰能无错 310

14.1 引出问题 310

14.2 常见错误分析 310

14.3 今天你错了吗 316

14.4 知错就改 318

14.5 我的总结 321

第15章 C语言高级编程技术 323

15.1 引出问题 323

15.2 看C语言的高级编程技术 323

15.3 文本的屏幕输出和键盘输入 324

15.3.1 文本的屏幕输出 324

15.3.2 用键盘输入 330

15.3.3 应用实例 331

15.4 图形显示方式和鼠标输入 333

15.4.1 图形模式的初始化 334

15.4.2 清屏和恢复显示方式的函数 337

15.4.3 独立图形运行程序的建立 337

15.4.4 基本绘图函数 338

15.4.5 画线的线性函数 341

15.4.6 颜色控制函数 342

15.4.7 封闭图形的填色函数及有关画图函数 345

15.4.8 图形窗口函数 347

15.4.9 图形方式下的文本输出函数 348

15.5 不得不说的菜单 350

15.5.1 实现下拉式菜单 350

15.5.2 实现弹出式菜单 350

15.6 网络编程是全新的境界 356

15.6.1 常用协议报头 356

15.6.2 Winsock基础 360

15.7 解决问题 363

15.8 我的总结 364

第四篇 综合实战篇 365

第16章 俄罗斯方块游戏 365

16.1 老师的作业 365

16.2 游戏总体设计 366

16.2.1 规划设计 366

16.2.2 数据结构设计 368

16.3 构成函数介绍 370

16.4 游戏具体实现 371

16.4.1 预处理 371

16.4.2 主函数 375

16.4.3 初始化界面处理 377

16.4.4 时钟中断处理 378

16.4.5 成绩、速度和帮助处理 379

16.4.6 满行处理 380

16.4.7 方块显示和消除处理 382

16.4.8 游戏方块操作判断处理 385

16.5 我的总结 388

第17章 我的论文——UDP传输系统 389

17.1 我的毕业论文 389

17.2 实现流程 391

17.3 项目规划分析 391

17.3.1 功能描述 392

17.3.2 功能模块设计 392

17.4 设计数据结构 394

17.5 规划系统函数 395

17.6 写代码 397

17.6.1 预处理 397

17.6.2 初始化模块处理 398

17.6.3 获取参数 399

17.6.4 用户帮助模块 401

17.6.5 广播信息发送模块 402

17.6.6 广播消息接收模块 404

17.6.7 多播功能控制模块 405

17.6.8 多播消息发送模块 407

17.6.9 多播消息接收模块 408

17.6.10 主函数 409

17.7 项目调试 410

17.7.1 系统调试 411

17.7.2 验收 411

17.8 我的总结 411

第18章 学生成绩管理系统 412

18.1 求职路上 412

18.2 系统规划 414

18.2.1 项目的意义 414

18.2.2 功能描述 415

18.3 系统总体设计 416

18.3.1 功能模块设计 416

18.3.2 数据结构设计 418

18.3.3 构成函数介绍 419

18.4 具体实现 420

18.4.1 预处理 421

18.4.2 主函数main 421

18.4.3 系统主菜单函数 423

18.4.4 表格显示信息 424

18.4.5 信息查找定位 425

18.4.6 格式化输入数据 426

18.4.7 增加学生记录 426

18.4.8 查询学生记录 428

18.4.9 删除学生记录 429

18.4.10 修改学生记录 431

18.4.11 插入学生记录 432

18.4.12 统计学生记录 434

18.4.13 排序处理 435

18.4.14 存储学生信息 436

18.5 项目调试 437

18.6 我的总结 439