《C程序设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:张长海,陈娟编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2004
  • ISBN:7040151162
  • 页数:441 页
图书介绍:本书以国际标准ISO/IEC 9899:1999和国家标准GB/T 15272-94定义的 C 语言为背景,阐述基本的程序设计方法,并对C 语言进行了较严格的介绍。用BNF表示C的语法;引进PAD图表示程序逻辑。全书共分十四章,主要内容包括: BNF 、PAD图、程序设计方法、程序开发和结构化程序设计,以及C的各种词法单位、类型、语句、函数。每章都包含大量例题,并附有大量习题,以利于读者学习掌握语言概念、提高编程能力。本书整体结构良好,图文并茂,知识体系新颖完整,概念准确;注重对读者进行程序设计方法及算法的训练,力求体现“结构化程序设计”思想,注意培养和训练学生的程序设计风格。本书可作为高等院校计算机系各专业“高级语言程序设计”课程的教材和参考书,也可供其他专业学生以及从事计算机工作的有关人员阅读参考。

第一章 基本知识 1

1.1 程序设计语言 1

1.1.1 机器语言 1

1.1.2 汇编语言 2

1.1.3 高级语言 2

1.1.4 程序的执行 3

1.2 C语言简况 3

1.3 程序设计语言的形式描述 5

1.3.1 语法、语义 5

1.3.2 BNF 5

1.3.3 文法的其他表示法 8

1.4 C程序结构 10

1.5 算法及其描述工具PAD图 11

1.5.1 算法 11

1.5.2 PAD图 12

1.5.3 PAD实例 16

本章小结 18

习题一 18

第二章 数据信息 23

2.1 基本符号 23

2.1.1 字符集 23

2.1.2 标识符 24

2.1.3 保留字 25

2.1.4 分隔符 25

2.1.5 运算符 25

2.1.6 常量 26

2.1.7 间隔符 29

2.1.8 注释 29

2.2 数据 30

2.2.1 浮点类型 31

2.2.2 整数类型 32

2.2.5 枚举类型 33

2.2.3 字符类型 33

2.2.4 布尔类型 33

2.3 混合运算 35

2.4 关系运算 36

本章小结 36

习题二 37

第三章 简单程序 39

3.1 常量及常量定义 39

3.2 变量及变量声明 39

3.2.1 变量 39

3.2.2 变量声明 40

3.2.3 变量形态 41

3.2.4 变量地址 42

3.2.5 变量初始化 42

3.3 表达式 43

3.3.1 表达式的结构 43

3.3.2 表达式的计算 45

3.4 语句 46

3.5 表达式语句 47

3.6 赋值 47

3.7 类型转换 51

3.8 输入/输出 54

3.8.1 字符输入 54

3.8.2 字符输出 55

3.8.3 格式输入 55

3.8.4 格式输出 56

本章小结 59

习题三 59

第四章 函数 63

4.1 带子程序的C程序 63

4.2 函数 66

4.2.1 函数调用 66

4.2.2 函数定义 67

4.2.3 函数原型 71

4.3 程序设计实例 72

本章小结 78

习题四 78

第五章 流程控制 80

5.1 顺序结构 80

5.2 分支程序设计 80

5.2.1 逻辑值控制的分支程序设计 81

5.2.2 算术值控制的多分支程序设计 85

5.3 循环程序设计 88

5.3.1 先判断条件的循环程序设计 89

5.3.2 后判断条件的循环程序设计 91

5.3.3 for语句 95

5.4 程序设计实例 99

本章小结 110

习题五 111

第六章 数组 120

6.1 结构型数据类型 120

6.2 数组类型 120

6.2.1 数组声明 120

6.2.2 下标表达式 122

6.2.3 应注意的问题 122

6.3 多维数组 123

6.4 程序设计实例——数组在程序设计中的应用 124

6.5 数组初值 142

6.6 字符数组 144

6.7 类型定义 145

本章小结 147

习题六 147

第七章 指针 157

7.1 基本概念 157

7.1.1 指针类型和指针变量 158

7.1.2 指针所指变量 160

7.1.4 通用指针 162

7.1.3 空指针与无效指针 162

7.2 指针运算 164

7.3 指针与数组 166

7.3.1 用指针标识数组 167

7.3.2 多维数组与指针 171

7.3.3 指针数组 176

7.3.4 指针与数组总结 180

7.4 指针与字符串 181

7.5 指向指针的指针 185

7.6 命令行参数 187

本章小结 189

习题七 189

8.1 参数 192

8.1.1 C参数传递规则 192

第八章 再论函数 192

8.1.2 指针作参数 194

8.1.3 数组作参数 200

8.1.4 其他程序设计语言的参数类别 204

8.2 返回指针的函数 207

8.3 作用域 210

8.3.1 作用域 210

8.3.2 生存期 212

8.3.3 局部量和全局量 213

8.4 递归 215

8.4.1 递归程序 215

8.4.2 递归程序设计 216

8.4.3 间接递归 221

8.4.4 递归程序执行过程 227

本章小结 238

习题八 238

9.1.2 goto语句 246

9.1.1 带标号的语句 246

9.1 goto和标号 246

第九章 程序开发和结构化程序设计 246

9.2 空语句 247

9.3 结构化程序设计原则 248

9.4 程序风格 249

9.4.1 良好的行文格式 250

9.4.2 用合适的助记名来命名标识符 252

9.4.3 注释 252

9.4.4 对程序说明的建议 253

9.5 程序的正确性 253

9.5.1 错误种类 253

9.5.2 程序测试和验证 254

9.5.3 测试方法 255

9.6 可移植性 255

9.7 文档 256

9.8.1 自顶向下、逐步求精 257

9.8 自顶向下逐步求精的程序设计技术 257

9.8.2 求精过程的表示 259

9.8.3 求精实例 260

9.9 受限排列组合——穷举法与试探法 269

本章小结 281

习题九 281

第十章 文件 288

10.1 文件概述 288

10.2 文件操作 290

10.2.1 打开、关闭文件 291

10.2.2 字符读/写 292

10.2.3 字符串读/写 293

10.2.4 数据块读/写 293

10.2.5 格式化读/写 294

10.2.6 文件定位 294

10.3 文件操作实例 296

习题十 301

本章小结 301

第十一章 结构体与共用体 305

11.1 结构体 305

11.1.1 结构体类型 305

11.1.2 结构体类型名 307

11.1.3 结构体变量 308

11.1.4 指向结构体变量的指针 309

11.1.5 结构体变量的成分 309

11.2 共用体 313

11.2.1 带共用体的结构体实例 313

11.2.2 共用体类型 314

11.2.3 限制 318

11.2.4 switch语句与共用体 318

11.3 结构体与函数 318

11.3.1 返回结构体值的函数 319

11.3.2 结构体作函数参数 320

11.4 程序设计实例 322

本章小结 327

习题十一 327

第十二章 动态数据结构 331

12.1 管理动态变量 332

12.2 动态数据结构 334

12.2.1 栈(stack) 334

12.2.2 队列(queue) 336

12.2.3 链表(linkage table) 337

12.2.4 树(tree) 340

12.3 程序设计实例 346

本章小结 361

习题十二 361

第十三章 三论函数——几个较深入的问题 367

13.1 函数指针 367

13.2 函数作参数 369

13.3 函数副作用 372

13.4 形式参数作实在参数 373

13.5 参数结合顺序 374

13.6 可变长度数组 376

13.6.1 可变长度数组 376

13.6.2 可变长度数组作参数 377

本章小结 378

习题十三 378

第十四章 C语言独有的特性 383

14.1 运算 383

14.1.1 sizeof 383

14.1.2 赋值运算 384

14.1.3 顺序表达式 384

14.1.4 条件表达式 384

14.1.5 位运算 385

14.2 位段 387

14.3 存储类别 388

14.3.1 数据在内存中的存储 389

14.3.2 自动存储类别 389

14.3.3 寄存器存储类别 390

14.3.4 变量的静态存储类别 391

14.3.5 变量的外部存储类别 393

14.3.6 函数的存储类别 394

14.3.7 类型定义符 395

14.4 const指针 395

14.4.1 指向常量的指针(常量指针) 396

14.4.2 指针常量 396

14.4.3 指向常量的指针常量(常量指针常量) 397

14.5 有关指针的总结 397

14.6 语句 399

14.6.1 break 399

14.6.2 continue 400

14.7.1 宏定义 401

14.7 编译预处理 401

14.6.3 for的延伸 401

14.7.2 文件包含 405

14.7.3 条件编译 405

本章小结 408

附录一 ACSII字符集 409

附录二 C语言语法 412

附录三 标准库头文件表 422

附录四 实验指导书 423

F4.1 使用Turbo C 423

F4.1.1 启动Turbo C 423

F4.1.2 选择工作目录 423

F4.1.3 建立工作环境 425

F4.1.4 编辑源文件 426

F4.1.5 编译、连接 426

F4.2.2 建立环境 427

F4.2.1 启动VC++ 427

F4.1.6 运行 427

F4.2 visual c++集成开发环境 427

F4.2.3 录入、编辑源程序 429

F4.2.4 编译 429

F4.2.5 连接 430

F4.2.6 运行 430

F4.3 实验 431

F4.3.1 实验一 C环境基本操作 431

F4.3.3 实验三 程序的流程控制 432

F4.3.2 实验二 模块化程序设计 432

F4.3.4 实验四 数组的概念和应用 433

F4.3.5 实验五 指针及其在程序设计中的应用 434

F4.3.6 实验六 递归程序设计 434

F4.3.7 实验七 数据组织 434

F4.3.8 实验八 文件及其应用 435

F4.4 课程设计 436

参考文献 441