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

  • 购买积分:14 如何计算积分?
  • 作  者:王行言主编;乔林,黄维通,孟威,刘宝林,郑莉编
  • 出 版 社:北京:高等教育出版社
  • 出版年份:2004
  • ISBN:704014610X
  • 页数:445 页
图书介绍:本书为普通高等教育“十五”国家级规划教材。计算机程序设计课程是高等学校计算机基础课程中的核心课程,具有大学基础课的性质。本书以C语言程序设计为基础,注重讲解程序设计的概念、方法和思路,培养同学的基本编程能力、以及逻辑思维和抽象能力。主要内容包括两部分:第一部分主要讨论C语言程序设计的基本概念与基础知识,如基本数据类型、程序控制结构等。这部分内容是读者在使用C语言进行程序设计时的基础。第二部分则主要研究使用C语言进行实际程序开发的方法。包括结构化程序设计的基本概念、函数与模块设计、库与接口设计、数据抽象与算法抽象等概念。希望通过强调那些在进行真正程序开发时起重要作用的思想与技术,使读者体会并初步掌握较大型复杂程序的设计与编写能力。本书语言表达严谨、流畅,示例丰富。书中例题都做了详细注释,方便自学。与本书配套的习题集也将由高等教育出版社出版。本书可供高等院校、计算机水平考试培训、各类成人教育院校作为开设程序设计课程的教材,也可供计算机爱好者自学。

第一篇 语言基础 3

第1章 C语言的基本概念 3

1.1 C语言的发展与特点 3

1.1.1 C语言的发展 3

1.1.2 C语言的特点 4

1.2 几个基本概念 5

1.3 C语言的基本标识符 6

1.3.1 字符集 6

1.3.2 标识符 7

1.4 C语言程序的几个简单实例 8

1.5 C语言程序的结构特点 10

1.6 C语言程序的编译和执行 11

本章小结 13

习题一 13

第2章 基本数据类型及其运算 15

2.1 C语言的数据类型 15

2.1.1 数据类型的一般概念 15

2.1.2 常量 16

2.2 数据类型及变量 20

2.2.1 基本数据类型 20

2.2.2 变量及变量的定义 21

2.2.3 变量的初始化 22

2.3 运算符和表达式 23

2.3.1 运算符和表达式概述 23

2.3.2 混合类型数据的运算 24

2.3.3 赋值语句及赋值表达式 25

2.3.4 算术运算符及算术表达式 27

2.3.5 关系运算符及关系表达式 29

2.3.6 逻辑运算符及逻辑表达式 30

2.3.7 位运算符 31

2.3.8 其他运算符及表达式 33

2.4 基本输入/输出函数 34

2.4.1 格式化输出函数 35

2.4.2 格式化输入函数 37

2.4.3 字符输入与输出函数 38

本章小结 40

习题二 40

第3章 程序控制结构 43

3.1 C语言结构化程序设计基础 43

3.1.1 基本控制结构 43

3.1.2 程序的结构化 44

3.2 顺序结构 45

3.2.1 语句和语句块 45

3.2.2 顺序结构示例 46

3.3 分支结构 47

3.3.1 if-else语句 48

3.3.2 if-else if-else多分支语句 49

3.3.3 条件分支的嵌套 50

3.3.4 switch分支 53

3.4 循环结构 56

3.4.1 while(当型循环) 56

3.4.2 do-while(直到型循环) 57

3.4.3 for循环语句 58

3.4.4 三种循环的比较 60

3.4.5 多重循环 61

3.4.6 循环中的控制转移 62

3.4.7 结构化程序设计注意事项 64

3.5 结构化程序设计应用举例 65

本章小结 70

习题三 71

第4章 复合数据结构基础 74

4.1 数组及其应用 74

4.1.1 一维数组 74

4.1.2 多维数组 78

4.1.3 字符型数组的应用 80

4.2 指针及其应用 82

4.2.1 指针的基本概念及定义方式 82

4.2.2 指针的初始化 84

4.2.3 指针的运算 85

4.2.4 用指针操作基本数据对象 87

4.2.5 用指针操作数组 87

4.3 结构体及其应用 89

4.3.1 结构体的声明 89

4.3.2 结构体变量的定义 90

4.3.3 结构体成员的引用 92

4.3.4 结构体变量的初始化 93

4.4 联合体及其应用 94

4.4.1 联合体的声明 94

4.4.2 联合体变量的定义 95

4.4.3 联合体成员的引用 96

4.4.4 定义联合体变量应注意的问题 97

4.5 枚举类型及其应用 99

4.5.1 枚举类型的声明 99

4.5.2 枚举类型变量的定义 99

4.5.3 枚举类型变量的应用 99

4.6 自定义类型 102

本章小结 103

习题四 104

第二篇 程序设计 109

第5章 结构化程序设计概论 109

5.1 数据的基本概念 109

5.1.1 数据与信息 109

5.1.2 数据与地址 110

5.1.3 数据类型 110

5.1.4 文字常量 111

5.1.5 变量 111

5.1.6 声明 112

5.2 代码的基本概念 113

5.2.1 表达式语义 113

5.2.2 赋值与初始化 115

5.2.3 代码与计算 116

5.2.4 控制流 116

5.2.5 断言与程序不变量 116

5.3 算法及其表示方法概要 117

5.3.1 算法的基本概念 117

5.3.2 代码与伪代码 118

5.4 结构化程序的组织 119

5.4.1 程序的结构化 119

5.4.2 程序的一般结构 120

5.4.3 结构化与函数抽象 121

5.4.4 程序范型 123

5.5 程序测试与代码优化 126

5.5.1 程序测试 126

5.5.2 程序效率与代码优化 130

本章小结 130

习题五 131

第6章 函数与模块设计 133

6.1 函数概述 133

6.2 函数的声明、定义与调用 135

6.2.1 函数声明 135

6.2.2 函数定义 136

6.2.3 函数调用 138

6.2.4 函数参数与返回值 140

6.2.5 函数的嵌套调用 144

6.3 函数调用栈框架 145

6.3.1 函数调用栈框架的基本概念 145

6.3.2 值传递与地址传递 149

6.4 作用域 153

6.4.1 变量的作用域 153

6.4.2 函数的作用域 154

6.5 变量的存储类别 155

6.5.1 auto变量 155

6.5.2 static变量 156

6.5.3 register变量 156

6.5.4 extern变量 157

6.6 模块化程序设计 157

6.6.1 模块的独立性原则 158

6.6.2 自顶向下、逐步求精 158

6.7 综合举例 165

本章小结 172

习题六 173

第7章 库与接口设计 176

7.1 用户、接口与库概述 176

7.2 标准库 177

7.2.1 标准I/O库 177

7.2.2 数学库接口 178

7.2.3 数字与字符特征库接口 179

7.2.4 字符串库接口 180

7.2.5 辅助函数库接口 186

7.3 图形库 188

7.3.1 图形系统初始化 188

7.3.2 基本绘图函数 189

7.3.3 图形库的应用及自定义接口 191

7.4 接口设计的原则 201

本章小结 202

习题七 202

第8章 复合数据类型——数组与字符串 206

8.1 数据类型与数据结构 206

8.1.1 数据与数据结构的关系 206

8.1.2 数据的逻辑结构 207

8.1.3 数据的物理结构 207

8.1.4 数据结构上的操作 207

8.1.5 同质复合数据类型 208

8.2 数组 209

8.2.1 数组的下标 209

8.2.2 数组的内部表示 210

8.2.3 有关元素下标越界的说明 210

8.2.4 数组的使用 211

8.2.5 多维数组 218

8.2.6 多维数组作为函数参数 221

8.3 字符串 222

8.3.1 字符串的内部表示 222

8.3.2 作为抽象数据的字符串 223

8.3.3 字符串变量 225

8.3.4 ANSI标准字符串库 227

8.3.5 字符串的应用 231

本章小结 236

习题八 236

第9章 复合数据类型——结构体与指针 240

9.1 结构体 240

9.1.1 结构体的意义 240

9.1.2 结构体的应用 241

9.1.3 结构体指针 245

9.2 指针 246

9.2.1 指针的意义和作用 246

9.2.2 指针的声明与使用 247

9.2.3 指针与其他数据结构的关系 249

9.2.4 动态存储分配 254

9.2.5 指针与函数 256

9.3 链表 259

9.3.1 链表的构造 259

9.3.2 链表元素的遍历 263

9.3.3 链表的插入操作 265

9.3.4 链表的删除操作 269

本章小结 270

习题九 271

第10章 文件与数据存储 275

10.1 文件的基本概念 275

10.1.1 什么是文件 275

10.1.2 文件结构体与文件指针 276

10.1.3 文件的类型 276

10.2 基本的文件操作 277

10.2.1 打开文件 278

10.2.2 关闭文件 280

10.2.3 读写文件 281

10.2.4 文件指针操作 288

10.3 文件应用实例 289

本章小结 292

习题十 293

第11章 算法设计与分析 296

11.1 算法的概念与特征 296

11.1.1 算法举例 296

11.1.2 算法的基本特征 298

11.2 算法的类型与结构 299

11.2.1 数值算法与非数值算法 299

11.2.2 算法的基本结构 299

11.3 算法的描述方法 300

11.3.1 流程图 301

11.3.2 N-S图 302

11.3.3 伪代码 303

11.4 算法的设计与实现 304

11.4.1 素数判断问题 304

11.4.2 最大公约数问题 309

11.5 算法分析与算法复杂度 311

11.5.1 排序算法分析 312

11.5.2 算法复杂度 316

11.5.3 归并排序 319

11.5.4 标准复杂度类型 325

11.6 常用算法设计与分析 327

11.6.1 快速排序算法的基本原理 327

11.6.2 快速排序算法的实现 330

11.6.3 快速排序算法的效率分析 332

本章小结 333

习题十一 333

第12章 递归程序设计 337

12.1 递归问题的引入 337

12.1.1 递归的简单例子 338

12.1.2 递归过程的跟踪 339

12.1.3 递归信任与递归范型 344

12.2 典型递归程序 345

12.2.1 Hanoi塔问题 345

12.2.2 分形问题 349

12.2.3 其他递归问题 353

12.3 递归与迭代 355

本章小结 356

习题十二 357

第13章 数据抽象 361

13.1 抽象数据类型 361

13.2 线性表类型 362

13.2.1 线性表类型定义 362

13.2.2 线性表的顺序表示及其实现 364

13.2.3 通用线性表类型 370

13.3 栈 372

13.3.1 抽象栈类型定义 372

13.3.2 抽象栈的实现 372

13.3.3 栈的应用 374

13.4 队列 377

13.4.1 抽象队列类型的定义 377

13.4.2 队列的实现 378

13.4.3 队列的应用 381

13.5 符号表 383

13.5.1 定义抽象的符号表 384

13.5.2 键与值类型的确定 386

13.5.3 无定义值的处理方法 387

13.5.4 抽象符号表的接口声明 388

13.6 哈希表 389

13.6.1 哈希表的基本概念 389

13.6.2 哈希函数 397

13.6.3 负载因子与桶的数目 397

13.7 抽象哈希表的应用 398

13.7.1 重集元素的计数 398

13.7.2 使用抽象符号表 402

13.7.3 抽象符号表的局限性 405

本章小结 408

习题十三 409

第14章 算法与程序抽象 412

14.1 基本函数设计原则 412

14.1.1 软件评判标准 412

14.1.2 内聚性 413

14.1.3 耦合度 416

14.2 数据封装与信息隐藏 417

14.2.1 客户函数与服务器函数 417

14.2.2 数据封装 419

14.2.3 信息隐藏 421

14.3 函数指针 422

14.3.1 函数指针的目的 423

14.3.2 函数指针声明 425

14.3.3 函数指针的使用 426

14.3.4 函数指针类型 430

14.4 回调函数 430

14.4.1 回调函数 431

14.4.2 遍历与回调 432

14.4.3 回调函数参数 433

14.4.4 值的存储与删除 434

14.5 再论抽象符号表 436

14.5.1 完整的抽象符号表接口 436

14.5.2 完整的抽象符号表实现 438

本章小结 443

习题十四 444

参考文献 445