《C语言从入门到精通 第2版》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:龙马高新教育策划;国家863中部软件孵化器编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115375285
  • 页数:562 页
图书介绍:本书面向C语言的零基础读者,介绍基础入门知识和实际操作技巧。全书紧贴软件开发的实际需求,首先向读者展示语言的背景知识和应用范围,之后通过实例和自测,系统讲解相关知识点,同时兼顾实际开发项目经验。为了增强实用性,光盘中还特别赠送了精选的考试认证、求职面试等题库,供读者研究学习。最后,为帮助初入职场的从业者顺利进入角色,还在光盘中赠送了职业规划建议及相关开发文档。

第0章 学习攻略 1

0.1 C语言的来源 2

0.2 C语言的特点 3

0.3 C语言无处不在 4

0.4 C语言的学习经验 4

0.5 C语言的学习路线 5

第1篇 基础知识 8

第1章 步入C的世界——Hello C 8

1.1 C语言的开发环境 9

1.1.1 C常用开发环境 9

1.1.2 VC++开发环境的安装 9

1.1.3 TurboC2.0开发环境的安装 12

1.2 认识常用开发环境 14

1.2.1 认识VC++开发环境 14

1.2.2 认识Turbo开发环境 16

1.3 开始C编程——我的第1个C程序 17

1.3.1 程序编写及运行流程 17

1.3.2 在VisualC++6.0中开发C程序 17

1.3.3 在TurboC中开发C程序 20

1.4 高手点拨 22

1.5 实战练习 22

第2章 C程序的组成 23

2.1 简单例子 24

2.2 声明区 25

2.2.1 头文件 25

2.2.2 函数声明 25

2.2.3 变量声明 26

2.3 主函数 28

2.4 函数定义区 29

2.5 注释 30

2.6 代码的规矩 30

2.7 高手点拨 31

2.8 实战练习 32

第3章 C语言的基本构成元素——字符集、标识符和关键字 33

3.1 标识符和关键字 34

3.1.1 标识符 34

3.1.2 关键字 34

3.2 常量 35

3.2.1 什么是常量 35

3.2.2 常量的声明 36

3.3 常量的类别 36

3.3.1 数值常量 36

3.3.2 字符常量 38

3.3.3 字符串常量 39

3.3.4 符号常量 40

3.4 综合应用——常量指针与指针常量 41

3.5 高手点拨 42

3.6 实战练习 43

第4章 变量 45

4.1 变量 46

4.1.1 什么是变量 46

4.1.2 变量的定义与声明 47

4.2 变量的类别 47

4.2.1 局部变量 48

4.2.2 形式参数 49

4.2.3 全局变量 50

4.3 变量的存储类型 52

4.3.1 自动变量 52

4.3.2 静态变量 52

4.3.3 外部变量 54

4.3.4 寄存器变量 55

4.4 变量的赋值和初始化 57

4.5 综合应用——根据变量的不同决定运行的结果 58

4.6 高手点拨 61

4.7 实战练习 62

第5章 计算机如何识数——数制 63

5.1 二进制 64

5.2 八进制 65

5.3 十进制 65

5.4 十六进制 66

5.5 数制间的转换 66

5.6 综合应用——数制转换 68

5.7 高手点拨 69

5.8 实战练习 70

第6章 数据的种类——数据类型 71

6.1 数据类型的分类 72

6.1.1 基本数据类型 72

6.1.2 构造数据类型 72

6.1.3 指针数据类型 73

6.1.4 空类型 73

6.2 整型 73

6.3 字符型 75

6.4 浮点型 78

6.5 类型转换 80

6.5.1 隐式转换 81

6.5.2 显式转换 83

6.6 综合应用——类型转换 83

6.7 高手点拨 85

6.8 实战练习 86

第7章 C世界中的加减乘除——运算符和表达式 87

7.1 C中的运算符和表达式 88

7.1.1 运算符 88

7.1.2 表达式 89

7.2 算术运算符和表达式 89

7.2.1 算术运算符 89

7.2.2 算术表达式 89

7.2.3 应用举例 90

7.3 关系运算符和表达式 92

7.3.1 关系运算符 92

7.3.2 关系表达式 92

7.3.3 应用举例 92

7.4 逻辑运算符和表达式 93

7.4.1 逻辑运算符 94

7.4.2 逻辑表达式 94

7.4.3 应用举例 94

7.5 条件运算符和表达式 97

7.6 赋值运算符和表达式 98

7.6.1 赋值运算符 98

7.6.2 赋值表达式 98

7.6.3 应用举例 99

7.7 自增、自减运算符 101

7.8 逗号运算符和表达式 102

7.9 位运算符 103

7.9.1 按位与运算符 104

7.9.2 按位或运算符 104

7.9.3 按位异或运算符 105

7.9.4 按位取反运算符 106

7.9.5 左移运算符 106

7.9.6 右移运算符 107

7.9.7 位运算赋值运算符 108

7.9.8 位运算应用 108

7.10 优先级与结合性 111

7.10.1 算术运算符的优先级和结合性 111

7.10.2 关系运算符的优先级和结合性 111

7.10.3 逻辑运算符的优先级和结合性 111

7.10.4 赋值运算符的优先级与结合性 112

7.11 综合应用——根据输入值计算结果 112

7.12 高手点拨 113

7.13 实战练习 114

第8章 顺序结构与选择结构 115

8.1 程序流程概述 116

8.2 语句 116

8.2.1 基本赋值语句 116

8.2.2 表达式语句 117

8.2.3 基本输入/输出语句 117

8.2.4 控制语句 120

8.2.5 空语句和复合语句 120

8.3 顺序结构与语句 121

8.4 选择结构 123

8.4.1 选择结构 123

8.4.2 单分支选择结构——if语句 123

8.4.3 双分支选择结构——if-else语句 126

8.4.4 多分支选择结构——if-else的嵌套形式 127

8.4.5 多分支选择结构——switch语句 132

8.5 综合应用——根据不同的利润计算资金 134

8.6 高手点拨 136

8.7 实战练习 137

第9章 C程序的流程——循环结构与转向语句 139

9.1 循环结构与语句 140

9.1.1 循环结构 140

9.1.2 当型循环语——for语句 141

9.1.3 当型循环语——while语句 145

9.1.4 直到型循环语句——do-while语句 146

9.1.5 循环的嵌套 148

9.2 转向语句 152

9.2.1 goto语句 152

9.2.2 break语句 154

9.2.3 continue语句 156

9.3 综合应用——简单计算器 157

9.4 高手点拨 159

9.5 实战练习 159

第10章 用户与计算机的交互——输入和输出 161

10.1 标准输入/输出 162

10.2 格式化输入/输出 162

10.2.1 格式化输出函数——printf() 162

10.2.2 格式控制字符 164

10.2.3 格式化输入函数——scanf() 169

10.3 字符输入/输出 171

10.3.1 字符输出函数——putchar() 171

10.3.2 字符输入函数——getchar() 173

10.4 字符串输入/输出 174

10.4.1 字符串输出函数——puts() 174

10.4.2 字符串输入函数——gets() 174

10.5 高手点拨 175

10.6 实战练习 176

第11章 数组 179

11.1 数组概述 180

11.2 一维数组 180

11.2.1 一维数组的定义 180

11.2.2 一维数组的初始化 183

11.2.3 一维数组元素的操作 185

11.2.4 数组作为参数传递 187

11.2.5 一维数组的应用举例 190

11.3 二维数组 192

11.3.1 二维数组的定义 192

11.3.2 二维数组的初始化 193

11.3.3 二维数组元素的操作 194

11.3.4 二维数组的应用举例 194

11.4 多维数组 196

11.5 综合应用——杨辉三角 197

11.6 高手点拨 199

11.7 实战练习 200

第12章 字符数组 201

12.1 字符数组概述 202

12.2 字符数组 202

12.2.1 字符数组的初始化 202

12.2.2 字符数组的引用 202

12.2.3 字符数组的输入与输出 203

12.3 字符串 205

12.3.1 字符串和字符数组 205

12.3.2 字符串的输入/输出 207

12.3.3 字符串应用举例 208

12.4 综合应用——自动分类字符 210

12.5 高手点拨 212

12.6 实战练习 213

第13章 程序的灵魂——算法与流程图 215

13.1 算法基础 216

13.1.1 算法的概念 216

13.1.2 算法的特性 217

13.1.3 简单算法举例——解方程 217

13.2 流程图的基础 218

13.2.1 流程图中的元素及含义 219

13.2.2 流程图的绘制 220

13.3 如何表示一个算法 222

13.3.1 用自然语言表示算法 222

13.3.2 用流程图表示算法 225

13.3.3 用传统流程图表示3种基本结构 227

13.3.4 用N-S图表示算法 228

13.3.5 用伪代码表示算法 229

13.3.6 用计算机语言表示算法 230

13.4 结构化程序设计方法 231

13.5 综合应用——求解一元二次方程 231

13.6 高手点拨 234

13.7 实战练习 234

第2篇 核心技术 236

第14章 函数 236

14.1 函数概述 237

14.1.1 什么是函数 237

14.1.2 函数的分类 238

14.2 函数的定义 239

14.3 函数的返回值及类型 242

14.3.1 函数的返回值 242

14.3.2 函数的类型 244

14.4 函数的参数及传递方式 247

14.4.1 函数的参数 247

14.4.2 函数参数的传递方式 249

14.5 函数的调用 251

14.5.1 函数调用方式 251

14.5.2 函数的声明 253

14.5.3 函数的嵌套调用 255

14.5.4 函数的递归调用 256

14.6 内部函数和外部函数 262

14.6.1 内部函数 262

14.6.2 外部函数 262

14.7 main()函数 264

14.8 综合应用——用截弦法求方程的根 266

14.9 高手点拨 267

14.10 实战练习 269

第15章 函数中的变量 271

15.1 局部变量与全局变量 272

15.1.1 局部变量 272

15.1.2 全局变量 273

15.2 变量的存储类别 276

15.2.1 自动类型(auto) 276

15.2.2 寄存器类型(register) 277

15.2.3 静态类型(static) 278

15.2.4 外部类型(extem) 280

15.3 综合应用——日期判断 282

15.4 高手点拨 283

15.5 实战练习 284

第16章 文件 285

16.1 文件概述 286

16.1.1 文件类型 286

16.1.2 C如何操作文件——文件指针 286

16.1.3 文件缓冲区 287

16.2 文件的打开和关闭 287

16.2.1 文件的打开——fopen()函数 287

16.2.2 文件的关闭——fclose()函数 289

16.2.3 文件结束检测——feof()函数 289

16.3 文件的顺序读写 290

16.3.1 文本文件中字符的输入/输出 290

16.3.2 文本文件中字符串的输入/输出 292

16.3.3 格式化输入/输出 295

16.3.4 二进制文件的输入/输出——数据块读写 296

16.4 文件的随机读写 298

16.5 综合应用——文件操作 300

16.6 高手点拨 301

16.7 实战练习 302

第17章 C语言如何被计算机识别——编译与预处理指令 303

17.1 什么是预处理指令 304

17.2 宏定义 304

17.2.1 变量式宏定义 305

17.2.2 宏定义嵌套 310

17.2.3 宏定义范围 312

17.2.4 函数式宏定义 313

17.2.5 多行宏定义 316

17.3 文件包含 317

17.3.1 什么是文件包含 317

17.3.2 使用文件包含 317

17.3.3 文件包含说明 319

17.4 条件编译 319

17.4.1 条件编译形式 320

17.4.2 调试中使用条件编译 323

17.4.3 文件嵌套包含和条件编译 324

17.5 assert()宏 325

17.6 综合应用——编译与预处理指令 325

17.7 高手点拨 328

17.8 实战练习 329

第18章 库函数 331

18.1 标准C库函数 332

18.2 数学函数 332

18.2.1 绝对值函数 333

18.2.2 幂函数和开平方函数 334

18.2.3 指数函数和对数函数 335

18.2.4 三角函数 335

18.2.5 取整函数和取余函数 335

18.3 字符串处理函数 337

18.3.1 字符串长度函数 337

18.3.2 字符串连接函数 337

18.3.3 字符串复制函数 338

18.3.4 字符串比较函数 339

18.3.5 字符串查找函数 341

18.3.6 字符串填充函数 342

18.4 字符处理函数 343

18.4.1 字符类型判断函数 343

18.4.2 字符大小写转换函数 344

18.5 转换和存储管理函数 345

18.5.1 转换函数 345

18.5.2 存储管理函数 346

18.6 随机函数 348

18.6.1 初识随机函数 348

18.6.2 使用随机函数 348

18.7 日期和时间处理函数 350

18.8 诊断函数 351

18.9 命令行参数 353

18.10 其他函数 354

18.10.1 exit()函数 354

18.10.2 qsort()函数 355

18.11 综合应用——猜数字游戏 356

18.12 高手点拨 358

18.13 实战练习 360

第19章 合理利用内存——位运算 361

19.1 二进制数 362

19.1.1 二进制 362

19.1.2 无符号数和有符号数 362

19.2 位运算符 363

19.2.1 按位与运算符 363

19.2.2 按位或运算符 364

19.2.3 按位异或运算符 364

19.2.4 按位取反运算符 365

19.2.5 左移运算符 365

19.2.6 右移运算符 366

19.2.7 位运算赋值运算符 367

19.2.8 位运算应用 367

19.3 位域 370

19.4 综合应用——数制转换 372

19.5 高手点拨 373

19.6 实战练习 374

第20章 结构体和联合体 375

20.1 结构体 376

20.1.1 结构体类型 376

20.1.2 定义结构体变量 377

20.1.3 初始化结构体变量 379

20.1.4 结构体变量的引用 379

20.2 结构体数组 381

20.2.1 定义结构体数组 381

20.2.2 初始化结构体数组 383

20.2.3 结构体数组元素的引用 384

20.3 结构体与函数 385

20.3.1 结构体作为函数的参数 385

20.3.2 结构体作为函数的返回值 388

20.4 联合体 389

20.4.1 联合体类型 389

20.4.2 联合体变量的定义 390

20.4.3 联合体变量的初始化 392

20.4.4 联合体变量的引用 394

20.5 结构体和联合体的区别与联系 395

20.6 综合应用——计算学生成绩 396

20.7 高手点拨 397

20.8 实战练习 399

第21章 数据管理者——数据结构 401

21.1 数据结构概述 402

21.2 线性表 403

21.2.1 顺序表 403

21.2.2 单链表 407

21.3 栈 414

21.3.1 栈的基本运算 415

21.3.2 顺序栈的类型定义 415

21.3.3 链式栈的类型定义 415

21.4 队列 416

21.4.1 队列的基本运算 416

21.4.2 顺序队列类型定义 416

21.4.3 链队列类型定义 417

21.5 二叉树 417

21.6 查找 418

21.6.1 顺序查找 419

21.6.2 折半查找 421

21.7 排序 423

21.7.1 冒泡排序法 423

21.7.2 选择排序法 425

21.7.3 插入排序法 426

21.8 综合应用——链表的反转 428

21.9 高手点拨 430

21.10 实战练习 442

第3篇 高级应用 446

第22章 内存的快捷方式——指针 446

22.1 指针概述 447

22.1.1 指针的类型 447

22.1.2 指针所指向的类型 447

22.1.3 指针的值 447

22.1.4 指针所占内存 448

22.2 指针的算术运算 448

22.2.1 指针与整数的运算 448

22.2.2 指针与指针的运算 450

22.3 运算符&和* 450

22.4 指针表达式 452

22.5 综合应用——使用指针进行排序 453

22.6 高手点拨 454

22.7 实战练习 454

第23章 指针与数组 455

23.1 数组指针 456

23.2 数组指针作为函数参数 456

23.3 指针与字符数组 458

23.4 指针数组与指针的指针 458

23.5 综合应用——报数游戏 460

23.6 高手点拨 462

23.7 实战练习 462

第24章 指针与函数 463

24.1 函数指针 464

24.1.1 函数指针的定义 464

24.1.2 函数指针的赋值 465

24.1.3 通过函数指针调用函数 465

24.2 指针函数 467

24.3 指向函数的指针作为函数参数 468

24.4 综合应用——日期的输出 470

24.5 高手点拨 472

24.6 实战练习 472

第25章 指针与字符串 473

25.1 字符串指针 474

25.1.1 创建字符串 474

25.1.2 处理字符串 475

25.1.3 输出字符串 478

25.2 字符串指针作为函数参数 479

25.3 字符指针变量与字符数组的区别 480

25.4 综合应用——“回文”问题 481

25.5 实战练习 482

第26章 指针与结构体 483

26.1 结构体指针 484

26.1.1 定义结构体指针 484

26.1.2 初始化结构体指针 484

26.1.3 使用指针访问成员 484

26.1.4 给结构体指针赋值 486

26.2 指向结构体变量的指针 486

26.3 指向结构体数组的指针 488

26.4 综合应用——创建简单链表 490

26.5 高手点拨 491

26.6 实战练习 492

第27章 指针的高级应用与技巧 493

27.1 指向指针的指针 494

27.2 void操作 495

27.3 内存操作 497

27.4 指针的传递 500

27.5 综合应用——数值的降序排列 500

27.6 高手点拨 502

27.7 实战练习 502

第4篇 项目实战 504

第28章 项目实战前的几点忠告——项目规划 504

28.1 项目开发流程 505

28.1.1 策划阶段 506

28.1.2 需求分析阶段 506

28.1.3 开发阶段 506

28.1.4 编码阶段 506

28.1.5 系统测试阶段 507

28.1.6 系统验收阶段 507

28.1.7 系统维护阶段 507

28.2 项目开发团队 507

28.2.1 项目团队组成 507

28.2.2 项目团队要求 508

28.3 项目的实际运作 508

28.4 项目规划常见问题及解决 509

28.4.1 如何满足客户需求 509

28.4.2 如何控制项目进度 509

28.4.3 如何控制项目预算 510

第29章 Linux下的C语言开发 511

29.1 开发背景 512

29.2 Linux系统的安装 512

29.2.1 安装虚拟机 512

29.2.2 安装Linux系统 514

29.3 Linux下的C语言开发环境 523

29.3.1 了解GCC编译器 523

29.3.2 GCC编译器的使用 524

29.4 编译小程序 525

第30章 通讯录 527

30.1 开发背景 528

30.2 需求及功能分析 528

30.2.1 总体功能分析 528

30.2.2 功能模块分析 529

30.3 系统功能的实现 529

30.3.1 系统选择菜单的实现 530

30.3.2 增加联系人功能的实现 530

30.3.3 删除联系人功能的实现 531

30.3.4 查找联系人模块的实现 532

30.3.5 插入联系人模块的实现 533

30.3.6 保存联系人文件模块的实现 533

30.3.7 从文件加载联系人信息模块的实现 534

30.3.8 显示所有联系人信息模块的实现 535

30.4 系统运行 535

30.5 开发过程常见问题及解决 536

第31章 图书管理系统 537

31.1 开发背景 538

31.2 需求及功能分析 538

31.2.1 总体功能分析 538

31.2.2 各模块功能分析 538

31.3 系统功能的实现 539

31.3.1 建立相关类及属性 539

31.3.2 系统选择菜单的实现 540

31.3.3 借书功能的实现 542

31.3.4 还书功能的实现 543

31.3.5 图书上架功能的实现 543

31.3.6 图书下架功能的实现 544

31.4 系统运行 546

31.5 开发过程常见问题及解决 547

第32章 信息管理系统 549

32.1 简易网络通信系统 550

32.1.1 系统分析 550

32.1.2 功能分析及实现 550

32.1.3 开发常见问题及解决 551

32.2 学生成绩管理系统 552

32.2.1 系统分析 552

32.2.2 功能分析及实现 552

32.2.3 开发常见问题及解决 557

32.3 酒店管理系统 557

32.3.1 系统分析 557

32.3.2 功能分析及实现 558

32.3.3 开发常见问题及解决 562

第5篇 趣昧题解 564

第33章 K-均值聚类算法 564

33.1 问题描述 565

33.2 问题分析及实现 565

33.2.1 问题分析 565

33.2.2 问题实现 565

33.2.3 程序运行 568

33.3 开发过程常见问题及解决 568

第34章 哥德巴赫猜想 569

34.1 问题描述 570

34.2 问题分析及实现 570

34.2.1 问题分析 570

34.2.2 问题实现 570

34.2.3 程序运行 572

34.3 开发过程常见问题及解决 572

第35章 猴子选大王游戏 573

35.1 问题描述 574

35.2 问题分析及实现 574

35.2.1 问题分析 574

35.2.2 问题实现 574

35.2.3 程序运行 576

35.3 开发过程常见问题及解决 576

第36章 迷宫求解 577

36.1 问题描述 578

36.2 问题分析及实现 578

36.2.1 问题分析 578

36.2.2 问题实现 578

36.2.3 程序运行 582

36.3 开发过程常见问题及解决 582

第37章 背包问题求解 583

37.1 问题描述 584

37.2 问题分析及实现 584

37.2.1 问题分析 584

37 2.2 问题实现 584

37.2.3 程序运行 586

37.3 开发过程常见问题及解决 586

第38章 火车车厢重排 587

38.1 问题描述 588

38.2 问题分析及实现 588

38.2.1 问题分析 588

38.2.2 问题实现 588

38.2.3 程序运行 591

38.3 开发过程常见问题及解决 592

第39章 哈夫曼编码的实现 593

39.1 问题描述 594

39.2 问题分析及实现 594

39.2.1 问题分析 594

39.2.2 问题实现 594

39.2.3 程序运行 596

39.3 开发过程常见问题及解决 596

第40章 八皇后问题的实现 597

40.1 问题描述 598

40.2 问题分析及实现 598

40.2.1 问题分析 598

40.2.2 问题实现 598

40.2.3 程序运行 600

40.3 开发过程常见问题及解决 600

第41章 商人过河游戏 601

41.1 问题描述 602

41.2 问题分析及实现 602

41.2.1 问题分析 602

41.2.2 问题实现 602

41.2.3 程序运行 605

41.3 开发过程常见问题及解决 606

第42章 K阶斐波那契序列的实现 607

42.1 问题描述 608

42.2 问题分析及实现 608

42.2.1 问题分析 608

42.2.2 问题实现 608

42.2.3 程序运行 610

42.3 开发过程常见问题及解决 610

第43章 最短路径的实现 611

43.1 问题描述 612

43.2 问题分析及实现 612

43.2.1 问题分析 612

43.2.2 问题实现 612

43.2.3 程序运行 614

43.3 开发过程常见问题及解决 614