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

  • 购买积分:12 如何计算积分?
  • 作  者:乔林编著
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2018
  • ISBN:9787040477665
  • 页数:303 页
图书介绍:计算机程序设计基础课程是高等学校计算机基础课程中的核心课程,具有大学基础课的性质。本书以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 数据与数据结构 4

0.3 简单C程序介绍 5

0.3.1 C程序实例 5

0.3.2 程序设计思维 8

0.3.3 C程序结构特点 9

0.4 程序设计的基本流程 9

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

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

0.4.3 目标文件的连接 11

0.4.4 测试运行 11

本章小结 11

习题0 11

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

1.1 数据类型 14

1.1.1 整数类型 14

1.1.2 浮点数类型 14

1.1.3 字符串类型 16

1.2 量与表达式 17

1.2.1 表达式 17

1.2.2 变量 18

1.2.3 文字 19

1.2.4 常量 20

1.2.5 赋值与初始化 21

1.2.6 操作符与操作数 23

1.2.7 混合运算与类型转换 25

1.3 语句 27

1.3.1 简单语句 27

1.3.2 复合语句 28

1.3.3 空语句 29

1.4 基本输入输出函数 29

1.4.1 格式化输出函数 29

1.4.2 格式化输入函数 34

1.5 程序设计风格 35

1.5.1 注释 35

1.5.2 命名规范 37

1.5.3 宏与常量 38

1.5.4 赋值语句的简写形式 38

1.5.5 源程序排版 39

本章小结 40

习题1 40

第2章 程序流程控制 45

2.1 结构化程序设计基础 46

2.1.1 基本控制结构 46

2.1.2 顺序结构示例 47

2.2 布尔数据 48

2.2.1 枚举类型 48

2.2.2 用户自定义数据类型 50

2.2.3 关系表达式 50

2.2.4 逻辑表达式 51

2.2.5 逻辑表达式的求值 52

2.3 if分支结构 53

2.3.1 简单if语句 53

2.3.2 if-else语句 54

2.3.3 if-else if-else语句 55

2.4 switch分支结构 58

2.4.1 switch语句 58

2.4.2 分支结构的嵌套 61

2.5 while循环结构 63

2.5.1 while语句 63

2.5.2 循环控制 64

2.6 for循环结构 66

2.6.1 递增递减表达式 66

2.6.2 for语句 67

2.6.3 for与while的比较 68

2.6.4 循环嵌套 69

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

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

2.7.2 程序框架结构 71

2.7.3 程序范型 72

2.7.4 自顶向下逐步求精 73

本章小结 74

习题2 75

第3章 函数 79

3.1 函数声明与调用 80

3.1.1 函数调用 80

3.1.2 函数原型 81

3.2 函数定义 82

3.2.1 函数实现 82

3.2.2 函数返回值 83

3.2.3 谓词函数 84

3.3 函数调用规范 84

3.3.1 函数调用实例 85

3.3.2 参数传递机制 87

3.3.3 函数调用栈帧 88

3.3.4 函数嵌套调用 95

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

3.4.1 结构化与函数抽象 96

3.4.2 模块化与函数抽象 97

3.5 程序测试与代码优化 98

3.5.1 程序测试 98

3.5.2 程序效率与代码优化 100

本章小结 101

习题3 101

第4章 算法 105

4.1 算法概念与特征 106

4.1.1 算法基本概念 106

4.1.2 算法基本特征 107

4.2 算法描述 108

4.2.1 伪代码 108

4.2.2 流程图 109

4.3 算法设计与实现 113

4.3.1 素性判定问题 113

4.3.2 最大公约数问题 117

4.4 递归算法 118

4.4.1 递归问题的引入 119

4.4.2 典型递归函数实例 119

4.4.3 递归函数调用的栈帧 121

4.4.4 递归信任 124

4.5 容错 128

4.5.1 数据有效性检查 129

4.5.2 程序流程的提前终止 130

4.5.3 断言与不变量 132

4.6 算法复杂度 133

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

4.6.2 大O表达式 134

4.6.3 复杂度估计 135

本章小结 136

习题4 137

第5章 程序组织与软件工程 141

5.1 库与接口 142

5.1.1 库与程序文件 142

5.1.2 标准库 143

5.1.3 头文件的包含策略 144

5.2 随机数库 145

5.2.1 随机数生成 145

5.2.2 接口设计原则 146

5.2.3 随机数库接口 147

5.2.4 随机数库实现 148

5.2.5 库测试 148

5.3 作用域与生存期 149

5.3.1 量的作用域与可见性 149

5.3.2 量的存储类与生存期 151

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

5.3.4 声明与定义 153

5.4 宏 153

5.4.1 宏替换 154

5.4.2 含参宏 156

5.4.3 含参宏与函数的差异 157

5.4.4 宏的特殊用法 157

5.5 条件编译 159

5.5.1 #ifndef与#ifdef命令 159

5.5.2 #if命令 160

5.6 典型软件开发流程 161

5.6.1 软件工程概要 162

5.6.2 需求分析 162

5.6.3 概要设计 163

5.6.4 详细设计 165

5.6.5 编码实现 170

5.6.6 系统测试 173

5.6.7 经验总结 174

本章小结 174

习题5 175

第6章 复合数据类型 177

6.1 字符 178

6.1.1 字符类型、文字与量 178

6.1.2 字符量的数学运算 179

6.1.3 标准字符特征库 180

6.2 字符串 180

6.2.1 字符串的抽象表示 180

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

6.2.3 字符串的长度与内容 182

6.2.4 字符串类型与其他数据类型的变换 182

6.2.5 字符串的查找 183

6.3 数组 184

6.3.1 数组的意义与性质 184

6.3.2 数组的存储表示 185

6.3.3 数组元素的访问 186

6.3.4 数组与函数 188

6.3.5 多维数组 192

6.4 结构体 194

6.4.1 结构体的意义与性质 195

6.4.2 结构体的存储表示 197

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

6.4.4 结构体与函数 199

6.5 数据集 202

6.5.1 查找 202

6.5.2 排序 203

本章小结 205

习题6 206

第7章 指针 209

7.1 指针数据类型 210

7.1.1 数据对象的地址与值 210

7.1.2 指针的定义与使用 210

7.1.3 指针的意义与作用 215

7.2 指针与函数 216

7.2.1 数据交换函数 216

7.2.2 常量指针与指针常量 219

7.2.3 指针与函数返回值 220

7.3 指针与复合数据类型 220

7.3.1 指针与数组 220

7.3.2 指针与结构体 225

7.4 再论字符串 227

7.4.1 字符串的表示 227

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

7.4.3 标准字符串库 231

7.5 动态存储管理 232

7.5.1 内存分配 232

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

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

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

7.5.5 动态数组 238

本章小结 243

习题7 244

第8章 文件与数据存储 247

8.1 文件的基本概念 248

8.1.1 什么是文件 248

8.1.2 文件类型 248

8.1.3 文件指针 249

8.2 文件的基本操作 249

8.2.1 文件打开操作 249

8.2.2 文件关闭操作 250

8.2.3 文件结束检测操作 251

8.2.4 文件错误检测操作 251

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

8.2.6 文件位置指针定位操作 252

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

8.2.8 文件位置指针重定位操作 252

8.3 文件的读写 253

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

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

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

8.3.4 面向数据块的文件读写操作 259

8.4 数据存储 260

8.4.1 什么是数据持久化 260

8.4.2 动态数组的持久化 261

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

本章小结 266

习题8 266

第9章 程序抽象 269

9.1 数据抽象 270

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

9.1.2 结构化数据的性质 271

9.1.3 数据封装 271

9.1.4 信息隐藏 272

9.1.5 抽象数据类型 273

9.2 链表 275

9.2.1 数据的链式表示 276

9.2.2 链表构造与销毁 278

9.2.3 结点追加与插入 280

9.2.4 结点删除 282

9.2.5 链表遍历 283

9.2.6 数据查找 284

9.2.7 总结与思考 285

9.3 函数指针 286

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

9.3.2 函数指针的定义 287

9.3.3 函数指针的使用 288

9.3.4 函数指针类型 291

9.4 抽象链表 291

9.4.1 回调函数 292

9.4.2 回调函数参数 292

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

本章小结 296

习题9 297

参考文献与深入读物 299