《标准C程序设计 第7版》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:(印)E.Balagurusamy著;李周芳译
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2017
  • ISBN:9787302471202
  • 页数:541 页
图书介绍:本书根据布鲁姆分类学的学习目标呈现主题,从基础知识讲起,循序渐进地全面介绍C语言编程,涵盖数组、字符串、函数、指针、数据结构等主题。书中保留了本系列畅销书的精髓,以简洁、清晰且合理有序的方式讲解C语言程序设计的概念,使用了范例程序、编程问题、项目和许多更有助于教学的方法来使读者能更好地理解C语言。

第1章 C语言概述 1

1.1 C语言的历史 1

1.2 C语言的主要特性 3

1.3 示例程序1:显示一条消息 3

1.4 示例程序2:两个数相加 6

1.5 示例程序3:利息计算 7

1.6 示例程序4:子例程的使用 9

1.7 示例程序5:数学函数的使用 10

1.8 C程序的基本结构 11

1.9 编程风格 12

1.10 运行C程序 13

1.11 在UNIX系统环境下 14

1.11.1 创建程序 14

1.11.2 编译与链接 15

1.11.3 运行程序 15

1.11.4 创建自己的可运行文件 15

1.11.5 多个源文件问题 16

1.12 在MS-DOS系统环境下 17

重要术语 17

谨记 17

复习题 18

调试练习 19

编程练习 20

第2章 常量、变量及数据类型 23

2.1 概述 23

2.2 字符集 23

2.3 C标记符 25

2.4 关键字与标识符 25

2.5 常量 26

2.5.1 整型常量 26

2.5.2 实数常量 28

2.5.3 单字符常量 29

2.5.4 字符串常量 29

2.5.5 反斜杠字符常量 29

2.6 变量 30

2.7 数据类型 31

2.7.1 整型 32

2.7.2 浮点型 33

2.7.3 void类型 34

2.7.4 字符类型 34

2.8 变量的声明 34

2.8.1 基本类型的声明 34

2.8.2 自定义类型的声明 36

2.9 存储类型的声明 37

2.10 变量的赋值 38

2.10.1 赋值语句 39

2.10.2 从键盘读取数据 41

2.11 符号常量的定义 43

2.11.1 可修改性 43

2.11.2 可理解性 43

2.12 将变量声明为常量 44

2.13 将变量声明为可变的 45

2.14 数据的上溢和下溢 45

重要术语 45

谨记 46

2.15 案例学习 46

2.15.1 平均数计算(中级难度) 46

2.15.2 温度转换问题(中级难度) 47

复习题 48

调试练习 50

编程练习 50

第3章 运算符与表达式 53

3.1 概述 53

3.2 算术运算符 54

3.2.1 整数算术运算 54

3.2.2 实数算术运算 55

3.2.3 混合算术运算 56

3.3 关系运算符 56

3.4 逻辑运算符 57

3.5 赋值运算符 58

3.6 递增和递减运算符 60

3.7 条件运算符 61

3.8 逐位运算符 61

3.9 特殊运算符 62

3.9.1 逗号运算符 62

3.9.2 sizeof运算符 63

3.10 算术表达式 64

3.11 表达式的计算 64

3.12 算术表达式的优先级 65

3.13 一些可计算性问题 67

3.14 表达式中的类型转换 68

3.14.1 隐式类型转换 68

3.14.2 显式类型转换 70

3.15 运算符的优先级及其关联性 71

3.16 数学函数 73

关键术语 74

谨记 74

3.17 案例学习 75

3.17.1 销售人员的工资(中等难度) 75

3.17.2 二次方程的求解(高级难度) 76

复习题 77

调试练习 80

编程练习 81

第4章 管理输入和输出操作 85

4.1 概述 85

4.2 读取一个字符 86

4.3 写一个字符 88

4.4 格式化输入 90

4.4.1 整数输入 90

4.4.2 输入实数 92

4.4.3 输入字符串 93

4.4.4 混合数据类型的读取 95

4.4.5 错误输入的检测 96

4.4.6 使用scanf函数时应记住的几个要点 98

4.5 格式化输出 98

4.5.1 整数的输出 99

4.5.2 实数的输出 100

4.5.3 单个字符的显示 102

4.5.4 字符串的显示 102

4.5.5 混合数据的输出 103

4.5.6 提高输出的可读性 104

关键术语 105

谨记 105

4.6 案例学习 106

4.6.1 库存报告(中级难度) 106

4.6.2 可靠性图形(高级难度) 107

复习题 109

调试练习 111

编程练习 112

第5章 判断与分支 115

5.1 概述 115

5.2 if判断语句 115

5.3 简单if语句 116

5.4 if...else语句 120

5.5 嵌套if...else语句 122

5.6 阶梯式else if语句 125

5.7 switch语句 128

5.8 ?:运算符 132

5.9 goto语句 136

关键术语 138

谨记 139

5.10 案例学习 139

5.10.1 数值的分布范围(中级难度) 139

5.10.2 账单计算(中级难度) 141

练习题 143

调试练习 147

编程练习 148

第6章 判断与循环 153

6.1 概述 153

6.2 while语句 155

6.3 do语句 157

6.4 for语句 159

6.4.1 简单的for循环 159

6.4.2 for循环的其他特性 163

6.4.3 for循环的嵌套 165

6.5 循环中的跳转 168

6.5.1 跳出循环 168

6.5.2 跳过循环的一部分 171

6.5.3 避免使用goto语句 173

6.5.4 跳出程序 174

6.6 简洁的测试表达式 174

关键术语 175

谨记 175

6.7 案例学习 176

6.7.1 二项式系数表(中级难度) 176

6.7.2 柱状图(中级难度) 177

6.7.3 最小成本(中级难度) 179

6.7.4 描绘两函数的曲线图(高级难度) 180

复习题 182

调试练习 184

编程练习 185

第7章 数组 189

7.1 概述 189

7.2 一维数组 191

7.3 一维数组的声明 192

7.4 一维数组的初始化 194

7.4.1 编译时初始化 194

7.4.2 运行时初始化 195

7.5 二维数组 199

7.6 二维数组的初始化 203

7.7 多维数组 210

7.8 动态数组 211

7.9 与数组相关的其他内容 211

关键术语 212

谨记 212

7.10 案例学习 213

7.10.1 数列的中值问题(中级难度) 213

7.10.2 标准差的计算(中级难度) 215

7.10.3 测试评分(高级难度) 217

7.10.4 产品与销售分析(高级难度) 219

复习题 224

调试练习 225

编程练习 227

第8章 字符数组与字符串 231

8.1 概述 231

8.2 字符串变量的声明与初始化 232

8.3 从终端读取字符串 233

8.3.1 使用scanf函数 233

8.3.2 读取文本行 235

8.3.3 使用getchar和gets函数 235

8.4 在屏幕上显示字符串 239

8.4.1 使用printf函数 239

8.4.2 使用putchar和puts函数 242

8.5 字符的算术运算 243

8.6 将字符串组合在一起 245

8.7 两个字符串的比较 246

8.8 字符串处理函数 246

8.8.1 strcat函数 247

8.8.2 strcmp函数 248

8.8.3 strcpy函数 248

8.8.4 strlen函数 249

8.8.5 其他字符串函数 251

8.9 字符串表 253

8.10 字符串的其他特性 254

关键术语 255

谨记 255

8.11 案例学习 255

8.11.1 计算文本中的单词数(中级难度) 255

8.11.2 客户列表的处理(中级难度) 257

复习题 259

调试练习 261

编程练习 262

第9章 用户自定义函数 265

9.1 概述 265

9.2 为什么需要自定义函数 265

9.3 多函数程序 266

9.4 自定义函数的元素 269

9.5 函数定义 269

9.5.1 函数头 270

9.5.2 函数体 271

9.6 返回值及其类型 271

9.7 函数调用 273

9.8 函数声明 274

9.9 函数的类型 276

9.10 无参数、无返回值的函数 276

9.11 有参数、无返回值的函数 278

9.12 有参数、有返回值的函数 281

9.13 无参数但有一个返回值的函数 285

9.14 返回多个值的函数 285

9.15 函数的嵌套 287

9.16 函数的递归 288

9.17 将数组传递给函数 289

9.17.1 一维数组 289

9.17.2 二维数组 292

9.18 将字符串传递给函数 293

9.19 变量的作用域、可见性和生存期 294

9.19.1 自动变量 294

9.19.2 外部变量 296

9.19.3 外部声明 298

9.19.4 静态变量 300

9.19.5 寄存器变量 301

9.19.6 嵌套代码块 302

9.20 多文件程序 303

关键术语 304

谨记 305

9.21 案例学习 306

复习题 308

调试练习 311

编程练习 312

第10章 结构体与共用体 315

10.1 概述 315

10.2 结构体的定义 316

10.3 声明结构体变量 317

10.4 访问结构体成员 319

10.5 结构体的初始化 320

10.6 结构体变量的复制与比较 322

10.7 单个成员的运算 323

10.8 结构体数组 324

10.9 结构体中的数组 326

10.10 结构体中的结构体 328

10.11 结构体与函数 330

10.12 共用体 332

10.13 结构体的大小 333

10.14 位域 334

关键术语 336

谨记 336

10.15 案例学习 337

复习题 340

调试练习 343

编程练习 344

第11章 指针 347

11.1 概述 347

11.2 理解指针 348

11.3 访问变量的地址 350

11.4 指针变量的声明 351

11.5 指针变量的初始化 352

11.6 通过指针访问变量 353

11.7 指针链 355

11.8 指针表达式 356

11.9 指针的递增与比例因子 357

11.10 指针与数组 358

11.11 指针与字符串 361

11.12 指针数组 363

11.13 将指针作为函数的参数 364

11.14 函数返回指针 367

11.15 指向函数的指针 368

11.16 指针与结构体 370

11.17 指针存在的问题 373

关键术语 374

谨记 374

11.18 案例学习 375

11.18.1 考试成绩处理程序(高级难度) 375

11.18.2 库存更新程序(中级难度) 378

复习题 379

调试练习 381

编程练习 382

第12章 文件管理 385

12.1 概述 385

12.2 定义并打开文件 386

12.3 关闭文件 387

12.4 文件的输入/输出操作 388

12.4.1 getc与putc函数 388

12.4.2 getw和putw函数 389

12.4.3 fprintf与fscanf函数 391

12.5 I/O操作的错误处理 393

12.6 随机访问文件 396

12.7 命令行参数 401

关键术语 403

谨记 404

复习题 404

调试练习 405

编程练习 406

第13章 动态内存分配与链表 407

13.1 概述 407

13.2 动态内存分配 407

13.3 用malloc函数分配一块内存 408

13.4 用calloc函数分配多个内存块 410

13.5 用free函数释放已用的空间 411

13.6 用realloc函数改变内存块的大小 411

13.7 链表的概念 413

13.8 链表的优点 416

13.9 链表的种类 417

13.10 再论指针 417

13.11 创建链表 419

13.12 插入一个数据项 422

13.13 删除数据项 425

13.14 链表的应用 427

关键术语 428

谨记 428

13.15 案例学习 429

13.15.1 在已排序链表中插入数据(中级难度) 429

13.15.2 构建已排序的链表(高级难度) 432

复习题 434

调试练习 436

编程练习 437

第14章 预处理器 439

14.1 概述 439

14.2 宏替换指令 440

14.2.1 简单宏替换 440

14.2.2 带参数的宏 442

14.2.3 宏嵌套 443

14.2.4 取消宏定义 444

14.3 文件包含 444

14.4 编译器控制指令 445

14.4.1 情形1 445

14.4.2 情形2 446

14.4.3 情形3 447

14.4.4 情形4 447

14.5 ANSIC的其他预处理指令 448

14.5.1 #elif指令 448

14.5.2 #pragma指令 449

14.5.3 #error指令 449

14.5.4 字符串化运算符# 450

14.5.5 标记符粘贴运算符## 450

关键术语 451

谨记 451

复习题 451

调试练习 452

编程练习 452

第15章 C程序开发的一些指导原则 455

15.1 概述 455

15.2 程序设计 455

15.2.1 问题分析 456

15.2.2 勾勒出程序的结构 456

15.2.3 算法开发 456

15.2.4 控制结构的选择 457

15.3 程序编码 457

15.3.1 自身文档化 457

15.3.2 语句的构造 458

15.3.3 输入/输出格式 459

15.3.4 程序的通用性 459

15.4 常见的程序错误 459

15.4.1 丢失分号 459

15.4.2 误用分号 460

15.4.3 丢失括号 460

15.4.4 丢失引号 461

15.4.5 误用引号 461

15.4.6 使用不正确的注释字符 461

15.4.7 未声明变量 462

15.4.8 忽视了运算符的优先级 462

15.4.9 忽视了递增/递减运算符的计算顺序 463

15.4.10 忽视了函数参数的说明 463

15.4.11 在函数调用中实参和形参类型不匹配 463

15.4.12 函数未声明 464

15.4.13 在scanf函数的参数中丢失了&运算符 464

15.4.14 超出了数组的边界 464

15.4.15 忘记了给字符串的空字符留出空间 465

15.4.16 使用未初始化的指针 465

15.4.17 丢失了间接运算符和地址运算符 465

15.4.18 在指针表达式中丢失括号 466

15.4.19 宏定义语句中的参数遗漏了括号 466

15.5 程序测试与调试 467

15.5.1 错误的类型 467

15.5.2 程序测试 468

15.5.3 程序调试 468

15.6 程序的效率 469

15.6.1 运行时间 469

15.6.2 内存需求 469

关键术语 469

谨记 470

复习题 470

附录A 位级程序设计 473

附录B 字符的ASCII值 479

附录C ANSI C语言的库函数 481

附录D 项目设计 485

附录E C99/C11的特性 527

附录F 使用C语言进行图形编程 535