《计算机程序设计基础 第2版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:乔林编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2008
  • ISBN:9787040224849
  • 页数:346 页
图书介绍:计算机程序设计基础课程是高等学校计算机基础课程中的核心课程,具有大学基础课的性质。本书以C语言程序设计为基础,注重讲解程序设计与软件开发的概念、方法和思路,培养读者的基本编程能力、逻辑思维与抽象思维能力。本书内容包括:程序设计的基本概念、C语言的基本语法元素、程序控制结构、函数、算法、结构化与模块化程序设计的基本概念、程序组织与库的设计、数组、字符串、结构体与指针等复合数据类型、文件与数据存储、程序抽象等。希望通过强调那些在程序设计与软件开发过程中起重要作用的思想与技术,使读者体会并初步掌握较大型或实用程序的编写与设计能力。本书行文严谨流畅,语言风趣幽默,示例丰富生动,习题难度适中。本书可供高等院校计算机及理工类各专业、成人教育院校作为程序设计课程的教材,也可供计算机应用开发人员及相关人员自学。

第0章 C语言概述 1

0.1 C语言简介 2

0.1.1 C语言简史 2

0.1.2 C语言特点 2

0.2 程序设计的基本概念 3

0.2.1 程序 3

0.2.2 程序设计与程序设计语言 3

0.2.3 算法 4

0.2.4 数据与数据结构 5

0.3 简单C程序介绍 5

0.3.1 C程序实例 5

0.3.2 程序设计思维 10

0.3.3 C程序结构特点 10

0.4 程序设计的基本流程 11

0.4.1 源文件和头文件的编辑 11

0.4.2 源文件和头文件的编译 12

0.4.3 目标文件的链接 12

0.4.4 测试执行 12

本章小结 12

习题 13

第1章 C语言基本语法元素 15

1.1 数据类型 16

1.1.1 整数类型 16

1.1.2 浮点数类型 16

1.1.3 字符串类型 18

1.2 量与表达式 19

1.2.1 表达式 19

1.2.2 变量 20

1.2.3 文字与常量 21

1.2.4 赋值与初始化 23

1.2.5 操作符与操作数 26

1.2.6 混合运算与类型转换 28

1.3 语句 32

1.3.1 简单语句 32

1.3.2 复合语句 33

1.3.3 空语句 33

1.4 基本输入输出函数 33

1.4.1 格式化输出函数 34

1.4.2 格式化输入函数 39

1.5 程序设计风格 41

1.5.1 注释 41

1.5.2 命名规范 42

1.5.3 宏与常量 43

1.5.4 赋值语句的简写形式 44

1.5.5 源程序排版 45

本章小结 46

习题 47

第2章 程序流程控制 51

2.1 结构化程序设计基础 52

2.1.1 基本控制结构 52

2.1.2 顺序结构示例 53

2.2 布尔数据 55

2.2.1 枚举类型 55

2.2.2 用户自定义数据类型 56

2.2.3 关系表达式 57

2.2.4 逻辑表达式 57

2.2.5 逻辑表达式的求值 58

2.3 if分支结构 60

2.3.1 简单if语句 60

2.3.2 if-else语句 62

2.3.3 if-else if-else语句 62

2.4 switch分支结构 65

2.4.1 switch语句 65

2.4.2 分支结构的嵌套 67

2.5 while循环结构 69

2.5.1 while语句 70

2.5.2 循环控制 71

2.6 for循环结构 73

2.6.1 递增递减表达式 73

2.6.2 for语句 74

2.6.3 for vs.while 75

2.6.4 循环嵌套 76

2.7 问题求解与结构化程序设计 78

2.7.1 问题规模与程序结构化 78

2.7.2 程序框架结构 79

2.7.3 程序范型 79

2.7.4 自顶向下逐步求精 81

本章小结 82

习题 83

第3章 函数 87

3.1 函数声明与调用 88

3.1.1 函数调用 88

3.1.2 函数原型 89

3.2 函数定义 90

3.2.1 函数实现 91

3.2.2 函数返回值 92

3.2.3 谓词函数 92

3.3 函数调用规范 93

3.3.1 函数调用实例 94

3.3.2 参数传递机制 97

3.3.3 函数调用栈框架 98

3.3.4 函数嵌套调用 106

3.4 程序的结构化与模块化 107

3.4.1 结构化与函数抽象 107

3.4.2 模块化与函数抽象 108

3.5 程序测试与代码优化 109

3.5.1 程序测试 109

3.5.2 程序效率与代码优化 112

本章小结 113

习题 114

第4章 算法 117

4.1 算法概念与特征 118

4.1.1 算法基本概念 118

4.1.2 算法基本特征 119

4.2 算法描述 120

4.2.1 伪代码 120

4.2.2 流程图 121

4.3 算法设计与实现 124

4.3.1 素性判定问题 124

4.3.2 最大公约数问题 130

4.4 递归算法 131

4.4.1 递归问题的引入 131

4.4.2 典型递归函数实例 132

4.4.3 递归函数调用的栈框架 134

4.4.4 递归信任 137

4.5 容错 143

4.5.1 数据有效性检查 143

4.5.2 程序流程的提前终止 144

4.5.3 断言与不变量 146

4.6 算法复杂度 148

4.6.1 引入复杂度的意义与目的 148

4.6.2 大O表达式 149

4.6.3 复杂度估计 150

本章小结 151

习题 152

第5章 程序组织与软件开发方法 157

5.1 库与接口 158

5.1.1 库与程序文件 158

5.1.2 标准库 159

5.1.3 头文件的包含策略 162

5.2 随机数库 162

5.2.1 生成随机数 163

5.2.2 接口设计原则 164

5.2.3 随机数库接口 165

5.2.4 随机数库实现 166

5.2.5 库测试 167

5.3 作用域与生存期 167

5.3.1 量的作用域与可见性 167

5.3.2 量的存储类与生存期 170

5.3.3 函数的作用域与生存期 171

5.3.4 声明与定义 172

5.4 宏 173

5.4.1 宏替换 173

5.4.2 含参宏 175

5.4.3 含参宏与函数的差异 177

5.4.4 宏的特殊用法 178

5.5 条件编译 180

5.5.1 #ifndef与#ifdef命令 180

5.5.2 #if命令 181

5.6 典型软件开发流程 182

5.6.1 软件工程概要 182

5.6.2 需求分析 183

5.6.3 概要设计 184

5.6.4 详细设计 186

5.6.5 编码实现 192

5.6.6 系统测试 195

5.6.7 经验总结 196

本章小结 196

习题 197

第6章 复合数据类型 201

6.1 字符 202

6.1.1 字符类型、文字与量 202

6.1.2 字符量的数学运算 203

6.1.3 标准字符特征库 204

6.2 字符串 205

6.2.1 字符串的抽象表示 205

6.2.2 字符串的复制、合并与比较 206

6.2.3 字符串的长度与内容 207

6.2.4 字符串类型与其他数据类型的转换 207

6.2.5 字符串的查找 208

6.3 数组 210

6.3.1 数组的意义与性质 210

6.3.2 数组的存储表示 211

6.3.3 数组元素的访问 212

6.3.4 数组与函数 215

6.3.5 多维数组 220

6.4 结构体 222

6.4.1 结构体的意义与性质 222

6.4.2 结构体的存储表示 224

6.4.3 结构体数据对象的访问 225

6.4.4 结构体与函数 227

6.5 数据集 229

6.5.1 查找 230

6.5.2 排序 231

本章小结 233

习题 234

第7章 指针 239

7.1 指针数据类型 240

7.1.1 数据对象的地址与值 240

7.1.2 指针的定义与使用 241

7.1.3 指针的意义与作用 247

7.2 指针与函数 247

7.2.1 数据交换函数 247

7.2.2 常量指针与指针常量 250

7.2.3 指针与函数返回值 252

7.3 指针与复合数据类型 252

7.3.1 指针与数组 252

7.3.2 指针与结构体 258

7.4 再论字符串 260

7.4.1 字符串的表示 260

7.4.2 字符数组与字符指针的差异 263

7.4.3 标准字符串库 265

7.5 动态存储管理 266

7.5.1 内存分配 266

7.5.2 标准库的动态存储管理函数 268

7.5.3 zylib库的动态存储管理宏 271

7.5.4 关于动态存储管理若干注意事项的说明 272

7.5.5 动态数组 274

本章小结 278

习题 279

第8章 文件与数据存储 283

8.1 文件的基本概念 284

8.1.1 什么是文件 284

8.1.2 文件类型 284

8.1.3 文件指针 285

8.2 文件的基本操作 285

8.2.1 文件打开操作 285

8.2.2 文件关闭操作 287

8.2.3 文件结束检测操作 287

8.2.4 文件错误检测操作 288

8.2.5 文件缓冲区与流刷新操作 288

8.2.6 文件指针定位操作 289

8.2.7 文件指针位置查询操作 289

8.2.8 文件指针重定位操作 289

8.3 文件的读写 290

8.3.1 面向字符的文件读写操作 290

8.3.2 面向文本行的文件读写操作 291

8.3.3 面向格式化输入输出的文件读写操作 292

8.3.4 面向信息块的文件读写操作 297

8.4 数据存储 299

8.4.1 什么是数据持久化 299

8.4.2 动态数组的持久化 300

8.4.3 应用程序的数据持久化策略 303

本章小结 305

习题 306

第9章 程序抽象 309

9.1 数据抽象 310

9.1.1 数据抽象的目的与意义 310

9.1.2 结构化数据类型的性质 311

9.1.3 数据封装 312

9.1.4 信息隐藏 314

9.1.5 抽象数据类型 314

9.2 链表 316

9.2.1 数据的链式表示 317

9.2.2 链表构造与销毁 319

9.2.3 结点追加与插入 321

9.2.4 结点删除 323

9.2.5 链表遍历 325

9.2.6 数据查找 325

9.2.7 总结与思考 326

9.3 函数指针 327

9.3.1 函数指针的目的与意义 327

9.3.2 函数指针的定义 329

9.3.3 函数指针的使用 331

9.3.4 函数指针类型 334

9.4 抽象链表 335

9.4.1 回调函数 335

9.4.2 回调函数参数 335

9.4.3 数据对象的存储与删除 337

本章小结 340

习题 340

参考文献与深入读物 343

一、程序设计语言与编译原理 343

二、软件工程 343

三、数据结构 344

四、C/C++程序设计 344

五、其他 346