《C语言入门经典 第5版 货》PDF下载

  • 购买积分:17 如何计算积分?
  • 作  者:(美)霍尔顿(Horton,I·)著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302343417
  • 页数:584 页
图书介绍:本书教授读者如何使用得到广泛应用的C语言进行编程。首先是了解基本原理,然后通过详细的范例不断进展,最后成为称职的C语言程序员。

第1章 C语言编程 1

1.1 C语言 1

1.2标准库 2

1.3学习C 2

1.4创建C程序 2

1.4.1编辑 2

1.4.2编译 3

1.4.3链接 4

1.4.4执行 4

1.5创建第一个程序 5

1.6编辑第一个程序 5

1.7处理错误 6

1.8剖析一个简单的程序 7

1.8.1注释 7

1.8.2预处理指令 8

1.8.3定义main()函数 9

1.8.4关键字 10

1.8.5函数体 10

1.8.6输出信息 11

1.8.7参数 11

1.8.8控制符 11

1.8.9三字母序列 13

1.9预处理器 14

1.10用C语言开发程序 14

1.10.1了解问题 14

1.10.2详细设计 15

1.10.3实施 15

1.10.4测试 15

1.11函数及模块化编程 16

1.12常见错误 19

1.13要点 19

1.14小结 20

1.15习题 20

第2章 编程初步 21

2.1计算机的内存 21

2.2什么是变量 23

2.3存储整数的变量 24

2.3.1变量的使用 28

2.3.2变量的初始化 29

2.4变量与内存 36

2.4.1带符号的整数类型 36

2.4.2无符号的整数类型 37

2.4.3指定整数常量 37

2.5使用浮点数 39

2.6浮点数变量 41

2.6.1使用浮点数完成除法运算 42

2.6.2控制输出中的小数位数 43

2.6.3控制输出的字段宽度 43

2.7较复杂的表达式 44

2.8定义命名常量 46

2.8.1极限值 49

2.8.2 sizeof运算符 51

2.9选择正确的类型 52

2.10强制类型转换 55

2.10.1自动转换类型 56

2.10.2隐式类型转换的规则 56

2.10.3赋值语句中的隐式类型转换 57

2.11再谈数值数据类型 58

2.11.1字符类型 58

2.11.2字符的输入输出 59

2.11.3枚举 62

2.11.4存储布尔值的变量 64

2.12赋值操作的op=形式 65

2.13数学函数 66

2.14设计一个程序 67

2.14.1问题 68

2.14.2分析 68

2.14.3解决方案 70

2.15小结 73

2.16练习 74

第3章 条件判断 75

3.1判断过程 75

3.1.1算术比较 75

3.1.2基本的if语句 76

3.1.3扩展if语句:if-else 79

3.1.4在if语句中使用代码块 82

3.1.5嵌套的if语句 83

3.1.6测试字符 85

3.1.7逻辑运算符 88

3.1.8条件运算符 91

3.1.9运算符的优先级 94

3.2多项选择问题 98

3.2.1给多项选择使用else-if语句 98

3.2.2 switch语句 99

3.2.3 goto语句 107

3.3按位运算符 108

3.3.1按位运算符的op=用法 110

3.3.2使用按位运算符 111

3.4设计程序 114

3.4.1问题 114

3.4.2分析 114

3.4.3解决方案 114

3.5小结 118

3.6练习 118

第4章 循环 119

4.1循环 119

4.2递增和递减运算符 120

4.3 for循环 120

4.4 for循环的一般语法 124

4.5再谈递增和递减运算符 125

4.5.1递增运算符 125

4.5.2递增运算符的前置和后置形式 125

4.5.3递减运算符 126

4.6再论for循环 127

4.6.1修改for循环变量 129

4.6.2没有参数的for循环 129

4.6.3循环内的break语句 130

4.6.4使用for循环限制输入 132

4.6.5生成伪随机整数 135

4.6.6再谈循环控制选项 137

4.6.7浮点类型的循环控制变量 137

4.7 while循环 138

4.8嵌套循环 140

4.9嵌套循环和goto语句 146

4.10 do-while循环 147

4.11 continue语句 149

4.12设计程序 150

4.12.1问题 150

4.12.2分析 150

4.12.3解决方案 151

4.13小结 162

4.14习题 163

第5章 数组 165

5.1数组简介 165

5.1.1不用数组的程序 165

5.1.2什么是数组 167

5.1.3使用数组 168

5.2寻址运算符 171

5.3数组和地址 173

5.4数组的初始化 174

5.5确定数组的大小 175

5.6多维数组 176

5.7多维数组的初始化 178

5.8变长数组 184

5.9设计一个程序 186

5.9.1问题 186

5.9.2分析 186

5.9.3解决方案 187

5.10小结 193

5.11习题 193

第6章 字符串和文本的应用 195

6.1什么是字符串 195

6.2存储字符串的变量 197

6.3字符串操作 202

6.3.1检查对C11的支持 202

6.3.2确定字符串的长度 203

6.3.3复制字符串 204

6.3.4连接字符串 204

6.3.5比较字符串 208

6.3.6搜索字符串 211

6.3.7单元化字符串 215

6.3.8将换行符读入字符串 219

6.4分析和转换字符串 221

6.4.1转换字符的大小写形式 223

6.4.2将字符串转换成数值 225

6.5设计一个程序 227

6.5.1问题 227

6.5.2分析 227

6.5.3解决方案 228

6.6小结 233

6.7习题 233

第7章 指针 235

7.1指针初探 235

7.1.1声明指针 236

7.1.2通过指针访问值 237

7.1.3使用指针 240

7.1.4指向常量的指针 244

7.1.5常量指针 244

7.1.6指针的命名 245

7.2数组和指针 245

7.3多维数组 248

7.3.1多维数组和指针 252

7.3.2访问数组元素 253

7.4内存的使用 256

7.4.1动态内存分配:malloc()函数 256

7.4.2释放动态分配的内存 257

7.4.3用calloc()函数分配内存 261

7.4.4扩展动态分配的内存 262

7.5使用指针处理字符串 265

7.5.1使用指针数组 266

7.5.2指针和数组记号 272

7.6设计程序 276

7.6.1问题 276

7.6.2分析 277

7.6.3解决方案 277

7.7小结 284

7.8习题 285

第8章 编程的结构 287

8.1程序的结构 287

8.1.1变量的作用域和生存期 288

8.1.2变量的作用域和函数 291

8.2函数 291

8.2.1定义函数 291

8.2.2 return语句 294

8.3按值传递机制 299

8.4函数原型 300

8.5指针用作参数和返回值 301

8.5.1常量参数 302

8.5.2返回指针的风险 307

8.6小结 310

8.7习题 310

第9章 函数再探 313

9.1函数指针 313

9.1.1声明函数指针 313

9.1.2通过函数指针调用函数 314

9.1.3函数指针的数组 316

9.1.4作为变元的函数指针 319

9.2函数中的变量 321

9.2.1静态变量:函数内部的追踪 321

9.2.2在函数之间共享变量 323

9.3调用自己的函数:递归 325

9.4变元个数可变的函数 328

9.4.1复制va list 331

9.4.2长度可变的变元列表的基本规则 331

9.5 main()函数 332

9.6结束程序 333

9.6.1 abort()函数 333

9.6.2 exit()和atexit()函数 333

9.6.3 Exit()函数 334

9.6.4 quick_exit()和at_quick_exit()函数 334

9.7提高性能 335

9.7.1内联声明函数 335

9.7.2使用restrict关键字 335

9.7.3 Noretum函数限定符 336

9.8设计程序 336

9.8.1问题 336

9.8.2分析 337

9.8.3解决方案 338

9.9小结 351

9.10习题 352

第10章 基本输入和输出操作 353

10.1输入和输出流 353

10.2标准流 354

10.3键盘输入 354

10.3.1格式化键盘输入 355

10.3.2输入格式控制字符串 355

10.3.3输入格式字符串中的字符 360

10.3.4输入浮点数的各种变化 362

10.3.5读取十六进制和八进制值 363

10.3.6用scanf_s()读取字符 364

10.3.7从键盘上输入字符串 366

10.3.8单个字符的键盘输入 367

10.4屏幕输出 372

10.4.1使用printf_s()的格式化输出 372

10.4.2转义序列 375

10.4.3整数输出 375

10.4.4输出浮点数 378

10.4.5字符输出 379

10.5其他输出函数 380

10.5.1屏幕的非格式化输出 381

10.5.2数组的格式化输出 381

10.5.3数组的格式化输入 382

10.6小结 382

10.7习题 383

第11章 结构化数据 385

11.1数据结构:使用struct 385

11.1.1定义结构类型和结构变量 387

11.1.2访问结构成员 388

11.1.3未命名的结构 390

11.1.4结构数组 391

11.1.5表达式中的结构成员 393

11.1.6结构指针 393

11.1.7为结构动态分配内存 394

11.2再探结构成员 397

11.2.1将一个结构作为另一个结构的成员 397

11.2.2声明结构中的结构 398

11.2.3将结构指针用作结构成员 399

11.2.4双向链表 403

11.2.5结构中的位字段 406

11.3结构与函数 407

11.3.1结构作为函数的变元 407

11.3.2结构指针作为函数变元 408

11.3.3作为函数返回值的结构 409

11.3.4二叉树 414

11.4共享内存 421

11.5设计程序 425

11.5.1问题 425

11.5.2分析 426

11.5.3解决方案 426

11.6小结 438

11.7习题 438

第12章 处理文件 441

12.1文件的概念 441

12.1.1文件中的位置 442

12.1.2文件流 442

12.2文件访问 442

12.2.1打开文件 443

12.2.2缓存文件操作 445

12.2.3文件重命名 446

12.2.4关闭文件 447

12.2.5删除文件 447

12.3写入文本文件 448

12.4读取文本文件 449

12.5在文本文件中读写字符串 452

12.6格式化文件的输入输出 456

12.6.1格式化文件输出 456

12.6.2格式化文件输入 457

12.7错误处理 459

12.8再探文本文件操作模式 460

12.9 freopen_s()函数 461

12.10二进制文件的输入输出 462

12.10.1以二进制模式打开文件 462

12.10.2写入二进制文件 463

12.10.3读取二进制文件 464

12.11在文件中移动 469

12.11.1文件定位操作 469

12.11.2找出我们在文件中的位置 470

12.11.3在文件中设定位置 471

12.12使用临时文件 477

12.12.1创建临时文件 477

12.12.2创建唯一的文件名 478

12.13更新二进制文件 479

12.13.1修改文件的内容 484

12.13.2从键盘输入创建记录 485

12.13.3将记录写入文件 486

12.13.4从文件中读取记录 486

12.13.5写入文件 487

12.13.6列出文件内容 488

12.13.7更新已有的文件内容 489

12.14文件打开模式小结 495

12.15设计程序 496

12.15.1问题 496

12.15.2分析 496

12.15.3解决方案 496

12.16小结 501

12.17习题 501

第13章 支持功能 503

13.1预处理 503

13.1.1在程序中包含头文件 503

13.1.2定义自己的头文件 504

13.1.3管理多个源文件 504

13.1.4外部变量 505

13.1.5静态函数 505

13.1.6替换程序源代码 506

13.2宏 507

13.2.1看起来像函数的宏 507

13.2.2字符串作为宏参数 509

13.2.3在宏展开式中结合两个变元 510

13.3多行上的预处理器指令 510

13.3.1预处理器逻辑指令 511

13.3.2条件编译 511

13.3.3测试多个条件 512

13.3.4取消定义的标识符 512

13.3.5测试标识符的指定值的指令 512

13.3.6多项选择 513

13.3.7标准预处理宏 514

13.4调试方法 515

13.4.1集成的调试器 515

13.4.2调试阶段的预处理器 515

13.4.3断言 519

13.5日期和时间函数 521

13.5.1获取时间值 522

13.5.2获取日期 525

13.5.3确定某一天是星期几 529

13.6小结 531

13.7习题 531

第14章 高级专用主题 533

14.1使用国际字符集 533

14.1.1理解Unicode 533

14.1.2设置区域 534

14.1.3宽字符类型wchar_t 535

14.1.4宽字符串的操作 537

14.1.5宽字符的文件流操作 540

14.1.6存储Unicode字符的固定大小类型 541

14.2用于可移植性的专用整数类型 545

14.2.1固定宽度的整型 545

14.2.2最小宽度的整型 545

14.2.3最大宽度的整型 546

14.3复数类型 546

14.3.1复数基础 546

14.3.2复数类型和操作 547

14.4用线程编程 550

14.4.1创建线程 550

14.4.2退出线程 551

14.4.3把一个线程连接到另一个线程上 552

14.4.4挂起线程 555

14.4.5管理线程对数据的访问 555

14.5小结 561

附录A 计算机中的数学知识 563

附录B ASCII字符代码定义 571

附录C C语言中的保留字 575

附录D 输入输出格式说明符 577

附录E 标准库头文件 583