《C语言编程实战宝典》PDF下载

  • 购买积分:18 如何计算积分?
  • 作  者:贾蓓,姜薇,镇明敏等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2015
  • ISBN:9787302395362
  • 页数:622 页
图书介绍:本书结合实例,全面、系统地介绍了C语言编程的各方面知识,讲解时将程序设计方法和技巧融入基本知识的讲解中,更利于读者循序渐进的学习和掌握。本书共26章,分为三篇。第1篇为C语言编程基础知识;第2篇为C语言常用宏及函数库(C89);第3篇为C语言编程实践。附录部分给出了C语言的关键字和标准函数库。

第1篇 C语言基础知识 2

第1章 C语言概述 2

1.1 关于程序设计 2

1.1.1 了解程序设计 2

1.1.2 了解计算机语言 3

1.1.3 计算机语言的分类 3

1.2 C语言概述 5

1.2.1 C语言的历史发展 5

1.2.2 C语言的基本特点 6

1.3 C语言的开发环境 7

1.3.1 编辑器、编译器和链接器 7

1.3.2 集成开发环境 7

1.4 Turbo C的使用 7

1.5 Microsoft Visual C++6.0的使用 11

1.6 Hello World程序 16

1.7 A+B程序 17

1.8 程序错误和调试 18

1.9 小结 20

1.10 习题 20

第2章 C语言与算法 22

2.1 算法的基本概念 22

2.1.1 算法基础 22

2.1.2 算法特性 23

2.1.3 算法的使用举例 23

2.2 算法描述 25

2.2.1 自然语言 25

2.2.2 流程图 25

2.2.3 3种基本结构 26

2.2.4 N-S流程图 28

2.2.5 伪代码 29

2.3 小结 30

2.4 习题 30

第3章 C语言的构成——函数 31

3.1 函数概述 31

3.1.1 库函数 31

3.1.2 自定义函数 32

3.2 函数的定义和调用 34

3.2.1 简单函数的定义 35

3.2.2 简单函数的调用 37

3.3 函数的参数 40

3.3.1 带参数的函数定义 40

3.3.2 带参数的函数调用 40

3.3.3 形式参数与实际参数 44

3.4 函数的返回值 46

3.4.1 带返回值的函数定义 46

3.4.2 带返回值的函数调用 48

3.5 开发实践 49

3.6 小结 52

3.7 习题 52

第4章 常量、基本数据类型、运算符和表达式 58

4.1 常量与变量 58

4.1.1 常量与符号常量 59

4.1.2 变量 60

4.2 数据类型 61

4.2.1 整型数据 61

4.2.2 实型数据 69

4.2.3 字符型数据 73

4.2.4 枚举型数据 80

4.2.5 基本类型数据的输入和输出函数(scanf()/printf()) 83

4.3 运算符和表达式 91

4.3.1 算数运算符和表达式 92

4.3.2 赋值运算符和表达式 94

4.3.3 关系运算符和表达式 97

4.3.4 逻辑运算符和表达式 98

4.3.5 条件运算符和表达式 99

4.3.6 逗号运算符和表达式 100

4.4 数据类型转换 101

4.4.1 隐式类型转换 101

4.4.2 强制类型转换 104

4.5 小结 104

4.6 习题 105

第5章 变量 113

5.1 变量的定义与使用 113

5.1.1 变量的定义和赋值 113

5.1.2 变量的命名规范 115

5.2 变量的作用范围 115

5.2.1 局部变量 116

5.2.2 全局变量 116

5.3 变量的存储类型 118

5.3.1 变量的3个属性 119

5.3.2 自动变量 123

5.3.3 寄存器变量 124

5.3.4 具有代码块作用域的静态变量 125

5.3.5 具有外部链接的静态变量 126

5.3.6 具有内部链接的静态变量 130

5.3.7 存储类型说明符 131

5.4 开发实践 131

5.5 小结 133

5.6 习题 133

第6章 流程控制 135

6.1 C语句概述 135

6.2 顺序结构程序 137

6.3 选择结构程序 138

6.3.1 单分支if语句 138

6.3.2 双分支if语句 140

6.3.3 多分支else-if语句 141

6.3.4 if语句的嵌套使用 143

6.3.5 switch语句的使用 144

6.4 循环结构程序 147

6.4.1 while语句的使用 147

6.4.2 do…while语句的使用 150

6.4.3 for语句的使用 152

6.4.4 三种循环语句对比 156

6.4.5 嵌套循环 157

6.4.6 continue语句和break语句 158

6.5 开发实践 161

6.6 小结 163

6.7 习题 163

第7章 数组 174

7.1 数组的概述 174

7.2 一维数组 174

7.2.1 一维数组的定义 175

7.2.2 数组元素的访问 175

7.2.3 一维数组的初始化 177

7.2.4 关于“下标越界”问题 179

7.2.5 一维数组程序举例 180

7.3 二维数组 183

7.3.1 二维数组的定义及初始化 184

7.3.2 二维数组元素的访问 184

7.3.3 二维数组的初始化 186

7.3.4 二维数组程序举例 187

7.4 开发实践 188

7.5 小结 191

7.6 习题 191

第8章 指针 201

8.1 指针概述 201

8.2 指针与变量 201

8.2.1 指针变量的定义 204

8.2.2 取地址运算符(&) 204

8.2.3 取值运算符(*) 205

8.2.4 指针变量赋值 207

8.3 指针与函数 210

8.3.1 指针作为函数参数 210

8.3.2 指针作为返回值 213

8.3.3 指向函数的指针 214

8.3.4 指向函数的指针作函数参数 216

8.4 指针与数组 219

8.4.1 指向数组元素的指针 219

8.4.2 指针的算术运算与数组运算 220

8.4.3 使用指针处理数组元素 224

8.4.4 数组名作为指针 228

8.4.5 指针数组 228

8.4.6 指向指针数据的指针 232

8.5 指针与多维数组 233

8.5.1 处理多维数组的元素 233

8.5.2 处理多维数组的行 236

8.5.3 命令行参数 237

8.6 开发实践 239

8.7 小结 243

8.8 习题 244

第9章 构造数据类型 260

9.1 结构体 260

9.1.1 建立结构体类型 261

9.1.2 结构体变量的定义及初始化 262

9.1.3 访问结构体成员 265

9.1.4 结构体数组 267

9.1.5 指向结构体变量的指针 271

9.1.6 指向结构体数组的指针 273

9.1.7 结构体作为函数的参数 276

9.1.8 结构体数组作为参数 280

9.2 共用体 281

9.3 类型定义符typedef 283

9.4 开发实践 284

9.5 小结 290

9.6 习题 290

第10章 预处理命令 300

10.1 预处理器的工作方式 300

10.2 预处理指令 302

10.3 宏定义 303

10.3.1 不带参数的宏 303

10.3.2 带参数的宏 306

10.3.3 #运算符 309

10.3.4 ##运算符 309

10.3.5 取消宏定义 310

10.3.6 宏和函数 311

10.3.7 宏定义(#define)和类型定义(typedef) 312

10.3.8 预定义宏 312

10.4 条件编译 313

10.4.1 #if...#endif指令 313

10.4.2 #if...#else...#endif指令 314

10.4.3 #if...#elif...#endif指令 315

10.4.4 #ifdef...#endif指令 315

10.4.5 #ifndef...#endif指令 316

10.4.6 条件编译的使用 317

10.5 文件包含 318

10.6 其他指令 319

10.6.1 #error指令 319

10.6.2 #line指令 319

10.6.3 #pragma指令 320

10.7 开发实践 320

10.8 小结 321

10.9 习题 322

第11章 再谈函数 330

11.1 函数的嵌套调用 330

11.2 函数的递归调用 332

11.2.1 使用递归 333

11.2.2 递归的基本原理 334

11.2.3 尾递归与循环 335

11.2.4 汉诺塔问题 337

11.2.5 递归的优缺点 341

11.3 数组做函数参数 341

11.3.1 数组元素做函数实参 342

11.3.2 数组名做函数参数 343

11.3.3 多维数组名做函数参数 346

11.4 内联函数 348

11.5 开发实践 348

11.6 小结 351

11.7 习题 352

第2篇 C语言进阶技巧 372

第12章 字符及字符串处理 372

12.1 字符串常量 372

12.1.1 字符串常量概述 372

12.1.2 存储字符串常量 373

12.1.3 字符串常量的表示 373

12.1.4 字符串常量与字符常量 374

12.2 字符串变量 375

12.2.1 字符数组的定义及初始化 375

12.2.2 字符数组与字符指针 377

12.2.3 指针与字符串 378

12.3 字符串的输入 379

12.3.1 创建存储空间 379

12.3.2 gets()函数 380

12.3.3 fgets()函数 381

12.3.4 scanf()函数 382

12.4 字符串的输出 383

12.4.1 puts()函数 383

12.4.2 fputs()函数 384

12.4.3 printf()函数 385

12.5 字符串处理函数 385

12.5.1 strlen()函数 385

12.5.2 strcat()函数 386

12.5.3 strcmp()函数 387

12.5.4 strcpy()函数 389

12.5.5 其他字符串处理函数 390

12.6 开发实践 391

12.7 小结 398

12.8 习题 398

第13章 内存处理 410

13.1 动态存储分配 410

13.1.1 内存分配函数 410

13.1.2 空指针 411

13.2 动态分配字符串 412

13.2.1 使用malloc()函数为字符串分配内存 412

13.2.2 在字符串函数中使用动态存储分配 413

13.3 动态分配数组 414

13.3.1 使用malloc()函数为数组分配内存 414

13.3.2 calloc()函数 417

13.3.3 realloc()函数 417

13.4 释放存储 418

13.4.1 free()函数 418

13.4.2 “无效指针”问题 419

13.5 链表 419

13.5.1 从数组到链表 421

13.5.2 声明结点类型 423

13.5.3 创建结点 423

13.5.4 →运算符 424

13.5.5 向链表中插入结点 424

13.5.6 搜索链表 426

13.5.7 删除链表结点 427

13.5.8 使用链表 429

13.6 开发实践 431

13.7 小结 437

13.8 习题 438

第14章 文件处理 442

14.1 流 442

14.1.1 文件指针 443

14.1.2 标准流与重定向 443

14.2 与文件通信 444

14.2.1 什么是文件 444

14.2.2 文本文件与二进制文件 444

14.3 文件操作 445

14.3.1 打开文件 446

14.3.2 关闭文件 447

14.3.3 为流附加文件 447

14.3.4 从命令行获取文件名 448

14.4 格式化的输入/输出 448

14.4.1 printf()函数与fprintf()函数 448

14.4.2 scanf()函数与fscanf()函数 449

14.5 字符的输入/输出 451

14.5.1 输出函数 451

14.5.2 输入函数 452

14.6 行的输入/输出 455

14.6.1 输入函数 455

14.6.2 输出函数 455

14.7 块的输入/输出 457

14.8 文件的定位 457

14.8.1 fseek()函数与ftell()函数 458

14.8.2 fgetpos()函数与fsetpos()函数 460

14.8.3 rewind()函数 461

14.9 字符串的输入/输出 462

14.10 其他标准I/O函数 462

14.10.1 ungetc()函数 463

14.10.2 fflush()函数 463

14.10.3 setvbuf()函数 464

14.10.4 feof()和ferror()函数 464

14.11 开发实践 464

14.12 小结 469

14.13 习题 469

第15章 底层程序设计 478

15.1 位运算符 478

15.1.1 位逻辑运算符 478

15.1.2 位逻辑运算符的用法 480

15.1.3 移位运算符 483

15.1.4 移位运算符的用法 484

15.2 位字段 486

15.3 开发实践 487

15.4 小结 491

15.5 习题 492

第16章 数学计算支持 495

16.1 浮点类型的特性 495

16.2 整数类型的大小 496

16.3 数学计算 497

16.3.1 三角函数 498

16.3.2 双曲函数 499

16.3.3 指数函数和对数函数 499

16.3.4 幂函数 501

16.3.5 就近取整函数、绝对值函数和取余函数 502

16.4 字符处理 503

16.4.1 字符测试函数 503

16.4.2 字符大小写转换函数 504

16.5 字符串处理 505

16.5.1 复制函数 505

16.5.2 拼接函数 506

16.5.3 比较函数 508

16.5.4 搜索函数 509

16.5.5 其他函数 511

16.6 开发实践 511

16.7 小结 516

16.8 习题 516

第17章 错误处理 520

17.1 诊断 520

17.2 错误 522

17.3 信号处理 523

17.3.1 信号宏 524

17.3.2 signal()函数 524

17.3.3 预定义的信号处理函数 525

17.3.4 raise()函数 525

17.4 非局部跳转 525

17.5 开发实践 526

17.6 小结 527

17.7 习题 528

第18章 国际化特性 529

18.1 本地化 529

18.1.1 类别 529

18.1.2 setlocale()函数 530

18.1.3 localeconv()函数 530

18.2 多字节字符和宽字符 532

18.3 开发实践 533

18.4 小结 534

18.5 习题 534

第3篇 C语言编程实战 538

第19章 五子棋游戏 538

19.1 五子棋游戏简介 538

19.2 需求分析 539

19.3 系统设计 539

19.4 主模块 540

19.5 棋盘模块 543

19.6 下棋模块 544

19.7 判断输赢模块 546

19.8 信息模块 550

19.9 系统界面 551

19.10 本章小结 553

19.11 习题 553

第20章 图书管理系统 562

20.1 需求分析 562

20.2 系统设计 563

20.3 主模块 564

20.4 录入数据模块 568

20.5 修改图书模块 570

20.6 查询图书模块 573

20.7 删除图书模块 578

20.8 文件模块 580

20.9 图书管理系统使用说明 582

20.10 本章小结 585

20.11 习题 585

第21章 制作通讯录 594

21.1 需求分析 594

21.2 系统设计 595

21.3 主模块 596

21.4 创建通讯录模块 598

21.5 排序模块 600

21.6 综合操作模块 602

21.7 保存通讯录模块 606

21.8 打开通讯录模块 607

21.9 删除模块 608

21.10 退出模块 609

21.11 通讯录系统使用说明 609

21.12 本章小结 613

21.13 习题 613