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

  • 购买积分:16 如何计算积分?
  • 作  者:国家863中部软件孵化器编著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2010
  • ISBN:9787115231048
  • 页数:534 页
图书介绍:本书以零基础讲解为铺垫,用实例引导读者学习,采用【基础知识→核心技术→应用开发→项目实战→王牌资源】的讲解模式,将C的各项技术及实战技能一一道来。

如何学习C语言 1

第1篇 基础知识 2

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

1.1 了解C语言 3

1.1.1 C的历史 3

1.1.2 C的特点 4

1.1.3 为什么要用C 5

1.2 C编程前的准备——C常用开发环境 5

1.2.1 认识Visual C++ 6.0 6

1.2.2 认识Turbo C 2.0 7

1.3 开始C编程——第1个C程序 8

1.3.1 程序编写及运行流程 8

1.3.2 在Visual C++ 6.0中开发C程序 9

1.3.3 在Turbo C中开发C程序 11

1.4 C程序的组成 13

1.4.1 完整的C程序 13

1.4.2 #include的秘密 14

1.4.3 程序的入口——main函数 14

1.4.4 数据集装箱——常量和变量 15

1.4.5 何以输出程序结果——输出函数 16

1.4.6 注释 16

1.4.7 代码的规矩 17

1.5 练一练 18

1.6 跟我上机 19

第2章 不变的和变的箱子——常量与变量 20

2.1 标识符和关键字 21

2.1.1 标识符 21

2.1.2 关键字 21

2.2 常量 22

2.2.1 什么是常量 22

2.2.2 数值常量 23

2.2.3 字符常量 24

2.2.4 字符串常量 25

2.2.5 符号常量 26

2.3 变量 27

2.3.1 什么是变量 27

2.3.2 变量的声明 29

2.3.3 变量的定义 30

2.3.4 变量的赋值和初始化 31

2.4 综合应用——计算学生平均成绩 32

2.5 练一练 35

2.6 跟我上机 36

第3章 数据的种类——数据类型 37

3.1 计算机如何识数——数制 38

3.1.1 二进制 38

3.1.2 八进制 39

3.1.3 十六进制 39

3.1.4 数制间的转换 40

3.2 整型 41

3.3 字符型 43

3.4 浮点型 45

3.5 类型转换 47

3.5.1 隐式转换 48

3.5.2 显式转换 49

3.6 综合应用——类型转换 50

3.7 练一练 51

3.8 跟我上机 52

第4章 C世界中的加、减、乘、除——运算符和表达式 53

4.1 C中的运算符和表达式 54

4.1.1 运算符 54

4.1.2 表达式 55

4.1.3 优先级与结合性 55

4.2 算术运算符和表达式 55

4.2.1 算术运算符 55

4.2.2 算术表达式 56

4.2.3 算术运算符的优先级和结合性 56

4.2.4 应用举例 57

4.3 关系运算符和表达式 59

4.3.1 关系运算符 59

4.3.2 关系表达式 59

4.3.3 关系运算符的优先级和结合性 60

4.3.4 应用举例 60

4.4 逻辑运算符和表达式 61

4.4.1 逻辑运算符 61

4.4.2 逻辑表达式 61

4.4.3 逻辑运算符的优先级和结合性 62

4.4.4 应用举例 62

4.5 条件运算符和表达式 64

4.6 赋值运算符和表达式 65

4.6.1 赋值运算符 65

4.6.2 赋值表达式 66

4.6.3 赋值运算符的优先级与结合性 67

4.6.4 应用举例 67

4.7 自增、自减运算符 69

4.8 逗号运算符和表达式 70

4.9 运算符的优先级 71

4.10 综合应用——计算函数的结果 72

4.11 练一练 73

4.12 跟我上机 74

第5章 C程序的流程——程序控制结构和语句 75

5.1 程序流程概述 76

5.2 语句 76

5.2.1 基本赋值语句 76

5.2.2 表达式语句 77

5.2.3 基本输入/输出语句 77

5.2.4 控制语句 80

5.2.5 空语句和复合语句 80

5.3 顺序结构与语句 81

5.4 选择结构与语句 82

5.4.1 选择结构 83

5.4.2 单分支选择结构——if语句 83

5.4.3 双分支选择结构——if-else语句 85

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

5.4.5 多分支选择结构——switch语句 91

5.5 循环结构与语句 94

5.5.1 循环结构 94

5.5.2 当型循环语句——for语句 95

5.5.3 当型循环语句——while语句 100

5.5.4 直到型循环语句——do-while语句 102

5.5.5 循环的嵌套 104

5.6 转向语句 108

5.6.1 goto语句 108

5.6.2 break语句 110

5.6.3 continue语句 112

5.7 综合应用——简单计算器 114

5.8 练一练 116

5.9 跟我上机 117

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

6.1 标准输入输出 119

6.2 格式化输入输出 119

6.2.1 格式化输出函数——printf() 120

6.2.2 格式控制字符 121

6.2.3 格式化输入函数——scanf() 126

6.3 字符输入输出 128

6.3.1 字符输出函数——putchar() 129

6.3.2 字符输入函数——getchar() 130

6.4 字符串输入输出 131

6.4.1 字符串输出函数——puts() 131

6.4.2 字符串输入函数——gets() 131

6.5 练一练 132

6.6 跟我上机 133

第7章 数组与字符串 134

7.1 数组概述 135

7.2 一维数组 135

7.2.1 一维数组的定义 135

7.2.2 一维数组的初始化 138

7.2.3 一维数组元素的操作 139

7.2.4 数组作为参数传递 142

7.2.5 一维数组的应用举例 145

7.3 二维数组 147

7.3.1 二维数组的定义 147

7.3.2 二维数组的初始化 148

7.3.3 二维数组元素的操作 149

7.3.4 二维数组的应用举例 149

7.4 多维数组 151

7.5 字符串 152

7.5.1 字符串和字符数组 153

7.5.2 字符串的输入输出 154

7.5.3 字符串应用举例 155

7.6 综合应用——杨辉三角 157

7.7 练一练 159

7.8 跟我上机 159

第8章 程序的灵魂——算法与流程图 160

8.1 算法基础 161

8.1.1 算法的概念 161

8.1.2 算法的特性 162

8.1.3 简单算法举例——解方程 162

8.2 流程图的基础 164

8.2.1 流程图中的元素及含义 165

8.2.2 流程图的绘制 166

8.3 如何表示一个算法 168

8.3.1 用自然语言表示算法 168

8.3.2 用流程图表示算法 170

8.3.3 用传统流程图表示3种基本结构 173

8.3.4 用N-S图表示算法 174

8.3.5 用伪代码表示算法 177

8.3.6 用计算机语言表示算法 177

8.4 结构化程序设计方法 178

8.5 综合应用——求一元二次方程的根 179

8.6 练一练 182

8.7 跟我上机 182

第2篇 核心技术 184

第9章 函数 184

9.1 函数的概述 185

9.1.1 什么是函数 185

9.1.2 函数的分类 186

9.2 函数的定义 187

9.3 函数的返回值及类型 190

9.3.1 函数的返回值 190

9.3.2 函数的类型 192

9.4 函数的参数及传递方式 195

9.4.1 函数的参数 195

9.4.2 函数参数的传递方式 196

9.5 函数的调用 198

9.5.1 函数调用方式 199

9.5.2 函数的声明 201

9.5.3 函数的嵌套调用 202

9.5.4 函数的递归调用 204

9.6 内部函数和外部函数 209

9.6.1 内部函数 209

9.6.2 外部函数 210

9.7 Main函数 212

9.8 综合应用——用截弦法求方程的根 213

9.9 练一练 215

9.10 跟我上机 216

第10章 函数中的变量 217

10.1 局部变量与全局变量 218

10.1.1 局部变量 218

10.1.2 全局变量 220

10.2 变量的存储类别 223

10.2.1 自动类型(auto) 223

10.2.2 寄存器类型(register) 224

10.2.3 静态类型(static) 225

10.2.4 外部类型(extern) 227

10.3 综合应用——计算该日是该年的第几天 229

10.4 练一练 230

10.5 跟我上机 231

第11章 内存的快捷方式——指针 232

11.1 指针概述 233

11.1.1 内存地址 233

11.1.2 内存和指针 234

11.2 指针变量 235

11.2.1 初识指针变量 235

11.2.2 使用指针变量 238

11.2.3 指针的运算 243

11.3 指针与函数 245

11.3.1 指向函数的指针 245

11.3.2 返回指针的函数 246

11.4 void指针类型 248

11.5 综合应用——创建简单链表 249

11.6 练一练 251

11.7 跟我上机 252

第12章 指针的深入研究——指针进阶 253

12.1 指针与数组 254

12.1.1 指针与数组 254

12.1.2 数组名作为指针 256

12.1.3 指针与多维数组 259

12.1.4 指针与数组参数 262

12.2 指针与字符串 264

12.2.1 使用指针创建字符串 264

12.2.2 使用指针处理字符串 265

12.2.3 指针的指针 269

12.2.4 指针数组和数组指针 270

12.3 综合应用——报数游戏 271

12.4 练一练 272

12.5 跟我上机 274

第13章 文件 275

13.1 文件概述 276

13.1.1 文件类型 276

13.1.2 C如何操作文件——文件指针 276

13.1.3 文件缓冲区 277

13.2 文件的打开和关闭 277

13.2.1 文件的打开——fopen()函数 277

13.2.2 文件的关闭——fclose()函数 279

13.2.3 文件结束检测——feof()函数 279

13.3 文件的顺序读写 280

13.3.1 文本文件中字符的输入/输出 280

13.3.2 文本文件中字符串的输入/输出 283

13.3.3 格式化输入/输出 285

13.3.4 二进制文件的输入输出——数据块读写 287

13.4 文件的随机读写 289

13.5 综合应用——文件操作 290

13.6 练一练 292

13.7 跟我上机 293

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

14.1 什么是预处理指令 295

14.2 宏定义 295

14.2.1 变量式宏定义 296

14.2.2 宏定义嵌套 301

14.2.3 宏定义范围 302

14.2.4 函数式宏定义 303

14.2.5 多行宏定义 307

14.3 文件包含 308

14.3.1 什么是文件包含 308

14.3.2 使用文件包含 308

14.3.3 文件包含说明 310

14.4 条件编译 311

14.4.1 条件编译形式 311

14.4.2 调试中使用条件编译 315

14.4.3 文件嵌套包含和条件编译 316

14.5 assert()宏 316

14.6 综合应用——编译与预处理指令 317

14.7 练一练 319

14.8 跟我上机 320

第15章 库函数 321

15.1 标准C库函数 322

15.2 数学函数 322

15.2.1 绝对值函数 322

15.2.2 幂函数和开平方函数 323

15.2.3 指数函数和对数函数 324

15.2.4 三角函数 324

15.2.5 取整函数和取余函数 325

15.3 字符串处理函数 326

15.3.1 字符串长度函数 326

15.3.2 字符串连接函数 327

15.3.3 字符串复制函数 328

15.3.4 字符串比较函数 329

15.3.5 字符串查找函数 330

15.3.6 字符串填充函数 331

15.4 字符处理函数 332

15.4.1 字符类型判断函数 332

15.4.2 字符大小写转换函数 334

15.5 转换和存储管理函数 334

15.5.1 转换函数 334

15.5.2 存储管理函数 335

15.6 随机函数 337

15.6.1 初识随机函数 337

15.6.2 使用随机函数 338

15.7 日期和时间处理函数 339

15.8 诊断函数 341

15.9 命令行参数 342

15.10 其他函数 343

15.10.1 exit()函数 343

15.10.2 qsort()函数 344

15.11 综合应用——猜数字游戏 346

15.12 练一练 348

15.13 跟我上机 349

第16章 合理利用内存——位运算 350

16.1 二进制数 351

16.1.1 二进制 351

16.1.2 无符号数和有符号数 351

16.2 位运算符 352

16.2.1 按位与运算符 352

16.2.2 按位或运算符 353

16.2.3 按位异或运算符 353

16.2.4 按位取反运算符 354

16.2.5 左移运算符 354

16.2.6 右移运算符 355

16.2.7 位运算赋值运算符 356

16.2.8 位运算应用 357

16.3 位域 360

16.4 综合应用——数制转换 361

16.5 练一练 362

16.6 跟我上机 363

第17章 结构体和联合体 364

17.1 结构体 365

17.1.1 结构体类型 365

17.1.2 定义结构体变量 366

17.1.3 初始化结构体变量 368

17.1.4 结构体变量的引用 368

17.2 结构体数组 370

17.2.1 定义结构体数组 370

17.2.2 初始化结构体数组 372

17.2.3 结构体数组元素的引用 373

17.3 结构体指针 374

17.3.1 定义结构体指针 374

17.3.2 初始化结构体指针 375

17.3.3 使用指针访问成员 375

17.3.4 指向结构体数组的指针 377

17.4 结构体与函数 378

17.4.1 结构体作为函数的参数 378

17.4.2 结构体作为函数的返回值 381

17.5 联合体 382

17.5.1 联合体类型 382

17.5.2 联合体变量的定义 383

17.5.3 联合体变量的初始化 384

17.5.4 联合体变量的引用 386

17.6 结构体和联合体的区别与联系 388

17.7 综合应用——计算学生成绩 388

17.8 练一练 390

17.9 跟我上机 391

第18章 数据管理者——数据结构 392

18.1 数据结构概述 393

18.2 线性表 394

18.2.1 顺序表 394

18.2.2 单链表 398

18.3 栈 405

18.3.1 栈的基本运算 405

18.3.2 顺序栈的类型定义 406

18.3.3 链式栈的类型定义 406

18.4 队列 407

18.4.1 队列的基本运算 407

18.4.2 顺序队列类型定义 408

18.4.3 链队列类型定义 408

18.5 二叉树 408

18.6 查找 409

18.6.1 顺序查找 410

18.6.2 折半查找 412

18.7 排序 414

18.7.1 冒泡排序法 414

18.7.2 选择排序法 416

18.7.3 插入排序法 417

18.8 综合应用——反转链表 419

18.9 练一练 421

18.10 跟我上机 422

第3篇 趣味题解 424

第19章 哥德巴赫猜想 424

19.1 问题描述 425

19.2 问题分析及实现 425

19.2.1 问题分析 425

19.2.2 问题实现 425

19.2.3 程序运行 427

19.3 开发过程常见问题及解决 428

第20章 猴子选大王游戏 429

20.1 问题描述 430

20.2 问题分析及实现 430

20.2.1 问题分析 430

20.2.2 问题实现 430

20.2.3 程序运行 432

20.3 开发过程常见问题及解决 432

第21章 迷宫求解 433

21.1 问题描述 434

21.2 问题分析及实现 434

21.2.1 问题分析 434

21.2.2 问题实现 434

21.2.3 程序运行 438

21.3 开发过程常见问题及解决 438

第22章 背包问题求解 439

22.1 问题描述 440

22.2 问题分析及实现 440

22.2.1 问题分析 440

22.2.2 问题实现 440

22.2.3 程序运行 442

22.3 开发过程常见问题及解决 443

第23章 火车车厢重排 444

23.1 问题描述 445

23.2 问题分析及实现 445

23.2.1 问题分析 445

23.2.2 问题实现 445

23.2.3 程序运行 448

23.3 开发过程常见问题及解决 448

第24章 哈夫曼编码的实现 449

24.1 问题描述 450

24.2 问题分析及实现 450

24.2.1 问题分析 450

24.2.2 问题实现 450

24.2.3 程序运行 452

24.3 开发过程常见问题及解决 453

第25章 八皇后问题的实现 454

25.1 问题描述 455

25.2 问题分析及实现 455

25.2.1 问题分析 455

25.2.2 问题实现 455

25.2.3 程序运行 457

25.3 开发过程常见问题及解决 458

第26章 商人过河游戏 459

26.1 问题描述 460

26.2 问题分析及实现 460

26.2.1 问题分析 460

26.2.2 问题实现 460

26.2.3 程序运行 464

26.3 开发过程常见问题及解决 464

第27章 K阶斐波那契序列的实现 465

27.1 问题描述 466

27.2 问题分析及实现 466

27.2.1 问题分析 466

27.2.2 问题实现 466

27.2.3 程序运行 468

27.3 开发过程常见问题及解决 468

第28章 最短路径的实现 469

28.1 问题描述 470

28.2 问题分析及实现 470

28.2.1 问题分析 470

28.2.2 问题实现 470

28.2.3 程序运行 472

28.3 开发过程常见问题及解决 472

第4篇 项目实战 474

第29章 项目实战前的几点忠告——项目规划 474

29.1 项目开发流程 475

29.1.1 策划阶段 475

29.1.2 需求分析阶段 476

29.1.3 开发阶段 476

29.1.4 编码阶段 476

29.1.5 系统测试阶段 477

29.1.6 系统验收阶段 477

29.1.7 系统维护阶段 477

29.2 项目开发团队 477

29.2.1 项目团队组成 477

29.2.2 项目团队要求 478

29.3 项目的实际运作 478

29.4 项目规划常见问题及解决 479

29.4.1 如何满足客户需求 479

29.4.2 如何控制项目进度 479

29.4.3 如何控制项目预算 479

第30章 通讯录 480

30.1 开发背景 481

30.2 需求及功能分析 481

30.2.1 总体功能分析 481

30.2.2 功能模块分析 482

30.3 系统功能的实现 482

30.3.1 系统选择菜单的实现 482

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

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

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

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

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

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

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

30.4 系统运行 488

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

第31章 图书管理系统 490

31.1 开发背景 491

31.2 需求及功能分析 491

31.2.1 总体功能分析 491

31.2.2 各模块功能分析 491

31.3 系统功能的实现 492

31.3.1 建立相关类及属性 492

31.3.2 系统选择菜单的实现 493

31.3.3 借书功能的实现 495

31.3.4 还书功能的实现 496

31.3.5 图书上架功能的实现 498

31.3.6 图书下架功能的实现 500

31.4 系统运行 502

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

第32章 信息管理系统 504

32.1 简易网络通信系统 505

32.1.1 系统分析 505

32.1.2 功能分析及实现 505

32.1.3 开发常见问题及解决 509

32.2 学生成绩管理系统 509

32.2.1 系统分析 509

32.2.2 功能分析及实现 510

32.2.3 开发常见问题及解决 519

32.3 酒店管理系统 519

32.3.1 系统分析 520

32.3.2 功能分析及实现 520

32.3.3 开发常见问题及解决 526

第5篇 王牌资源 527

王牌资源一览 527

王牌1 C语言标准库函数查询手册(光盘中) 535

索引 536

A 544

abort 544

abs 544

absread 545

abswrite 545

acos 545

asctime 546

asin 546

assert 547

atan 547

atexit 547

atof 548

atoi 548

atol 549

B 550

bcd 550

biosdisk 550

biosprint 551

bsearch 551

C 552

calloc 552

ceil 552

cgets 553

chdir 553

_chmod 553

chmod 554

clearer 554

clock 554

close 555

closegraph 555

cos 555

ctime 556

ctrlbrk 556

D 557

delay 557

disable 557

difftime 557

div 558

E 559

enable 559

exit 559

exp 559

F 561

fabs 561

farcalloc 561

farfree 562

farmalloc 562

farrealloc 562

fclose 563

fcloseall 563

feof 563

fgetc 564

fgets 564

fgetpos 565

fflush 565

floodfill 565

floor 566

fnmerge 566

fnsplit 566

fopen 567

fp_off 567

fprintf 568

fputc 568

fputs 568

fp_seg 569

free 569

freopen 570

frexp 570

fscanf 570

fseek 571

fsetpos 571

ftell 571

fwrite 572

G 573

gcvt 573

getc 573

getchar 573

getcurdir 574

getcwd 574

getdate 575

getdfree 575

getdisk 575

getenv 576

getimage 576

getmaxx 576

getmaxy 577

getpixel 577

getpsp 577

gettime 578

getvect 578

getx 579

gety 579

gmtime 579

I 581

imagesize 581

initgraph 581

inport 581

inportb 582

int86 582

int86x 583

intdos 583

intdosx 583

intr 584

isainum 584

isalpha 584

iscntrl 585

isdigit 585

isgraph 586

islower 586

isupper 586

itoa 587

K 588

kbhit 588

keep 588

L 589

labs 589

ldexp 589

ldiv 590

localtime 590

log 590

log10 591

longjmp 591

_lrotl 591

_lrotr 592

lseek 592

ltoa 593

M 594

malloc 594

mkdir 594

mblen 595

memchr 595

memcmp 595

memcpy 596

memmove 596

memset 597

mktemp 597

mk_fp 597

modf 598

movedata 598

O 599

_open 599

open 599

outport 600

outtextxy 600

P 601

peek 601

perror 601

pow 601

printf 602

putch 602

putchar 602

putenv 603

putimage 603

putpixel 604

puts 604

Q 604

qsort 604

R 606

_read 606

read 606

realloc 607

rectangle 607

remove 607

rename 608

restorecrtmode 608

rewind 609

rmdir 609

_rotl 609

_rotr 610

S 611

scanf 611

searchpath 611

setactivepage 612

setbuf 612

setcolor 612

setdisk 613

setgraphmode 613

setjmp 613

setlinestyle 614

setlocale 614

setvbuf 615

setvisualpage 615

signal 615

sin 616

sinh 616

sprintf 616

sqrt 617

srand 617

sscanf 617

strcmp 618

strcpy 618

strcspn 619

strerror 619

strlen 620

strncat 620

strncmp 620

strncpy 621

strrchr 621

strstr 622

strtok 622

strtoul 622

system 623

T 624

tan 624

time 624

tmpnam 625

tolower 625

toupper 625

U 627

ungetc 627

V 628

vfprintf 628

vprinff 628

vsprinff 629

W 630

wcstombs 630

wctomb 630

_write 631

write 631

王牌2 C语言常用查询手册(光盘中) 632

索引 633

头文件查询 634

#include<stdio.h> 634

#include<ctype.h> 635

#include<math.h> 636

#include<time.h> 637

#include<local.h> 637

#include<signal.h> 637

#include<stdarg.h> 638

#include<stdlib.h> 638

#include<string.h> 638

关键字查询 640

常用字符ASCII码查询 644

王牌3 C源码大放送(光盘中)源码01 文件加密解密源码02 人机猜数字源码03 青蛙交换源码04 大小写数字转换器源码05 仿真计算器源码06 推箱子游戏源码07 俄罗斯方块游戏源码08 贪吃蛇游戏源码09 扫雷游戏源码10 五子棋游戏王牌4 学习成果检测——本书【练一练】答案(光盘中) 648

王牌5 C程序员职业规划(光盘中) 665

王牌6 全国计算机等级考试二级C考试大纲及应试技巧(光盘中) 667

王牌7 C程序员面试技巧(光盘中) 675

王牌8 C常见面试题(光盘中) 677

王牌9 扫雷英雄榜——C常见错误及解决方案(光盘中) 693

王牌10 优秀程序员之路——C开发经验及技巧大汇总(光盘中) 707