《C语言程序设计与实践》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:凌云,吴海燕,谢满德编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2010
  • ISBN:9787111310075
  • 页数:293 页
图书介绍:本书由浅入深地讲授了C语言程序设计的技术与技巧。首先,介绍了C语言的基础语法知识;其次,通过项目开发全过程的全方位指导,从需求分析、算法设计到程序编写和过程调试,以项目实训的形式引导和帮助学生解决实际问题,提高学生解决具体问题的能力,并对程序设计竞赛中的常见算法及其应用进行了介绍;最后,介绍了编程风格与程序调试方法。本书内容齐备、自成一体,可作为计算机及相关专业的本科或专科教材,也可以作为信息类或其他相关专业的辅助教材。

第1章 C语言与程序设计概述 1

1.1 初见C语言程序 1

1.2 计算机与程序设计 2

1.2.1 指令与程序 2

1.2.2 程序与程序设计 3

1.2.3 程序设计和程序设计语言 3

1.2.4 程序设计过程 4

1.3 C语言学习与自然语言学习的关系 5

1.4 C语言的发展历史、现状与特点 5

1.4.1 C语言的发展历史和现状 5

1.4.2 C语言的特点 6

习题 7

第2章 例子驱动的C语言语法元素概览 8

2.1 变量与表达式 8

2.2 分支语句 9

2.2.1 if语句 9

2.2.2 switch语句 11

2.3 循环语句 12

2.3.1 while循环语句 12

2.3.2 for循环语句 12

2.4 符号常量 13

2.5 输入输出 14

2.6 数组 14

2.7 函数 15

2.8 算法 16

2.8.1 算法的概念 16

2.8.2 流程图与算法描述 17

习题 18

第3章 基本数据类型和表达式 19

3.1 基本语法单位 19

3.1.1 基本符号 19

3.1.2 关键字 19

3.1.3 标识符 20

3.2 数据类型 20

3.3 常量与变量 21

3.3.1 常量 21

3.3.2 变量 24

3.3.3 变量的初始化 25

3.4 表达式和运算符 26

3.4.1 算术运算符 26

3.4.2 赋值运算符 28

3.4.3 关系运算符 29

3.4.4 逻辑运算符 30

3.4.5 位运算符 32

3.4.6 逗号运算符 35

3.4.7 条件运算符 36

3.5 各类数值型数据间的混合运算 36

习题 37

第4章 输入输出语句 38

4.1 putchar函数 38

4.2 printf函数 39

4.2.1 printf函数的格式 39

4.2.2 格式说明字符 40

4.3 getchar函数 45

4.4 scanf函数 46

4.4.1 一般形式 46

4.4.2 格式说明 46

4.4.3 scanf函数的执行中应注意的问题 47

4.5 程序举例 48

习题 49

第5章 C程序结构 51

5.1 C语句 51

5.2 程序设计基础 52

5.3 结构化程序设计的三种基本结构 53

5.3.1 顺序结构 53

5.3.2 选择结构 53

5.3.3 循环结构 54

5.4 if分支语句 55

5.4.1 第一种if语句形式 55

5.4.2 第二种if语句形式 55

5.4.3 第三种if语句形式 56

5.4.4 if语句的嵌套 58

5.4.5 程序举例 60

5.5 switch分支语句 61

5.6 while循环语句 63

5.7 do-while循环语句 64

5.8 for循环语句 66

5.9 break语句和continue语句 70

5.9.1 break语句 70

5.9.2 continue语句 71

5.10 多重循环的嵌套 72

5.11 程序举例 73

习题 75

第6章 数组 77

6.1 一维数组 77

6.1.1 一维数组的定义 77

6.1.2 一维数组元素的引用 78

6.1.3 一维数组元素的初始化 78

6.2 二维数组 84

6.2.1 双下标变量 84

6.2.2 二维数组及其定义 85

6.2.3 二维数组的初始化 86

6.2.4 二维数组应用举例 87

6.3 综合应用举例 88

6.4 字符数组 91

6.4.1 字符串和字符串结束标志 92

6.4.2 字符数组的输入输出 92

6.4.3 字符串函数 94

6.4.4 二维字符数组 96

6.4.5 字符数组应用举例 97

习题 102

第7章 函数 104

7.1 函数的定义 105

7.1.1 函数定义的格式 105

7.1.2 形式参数和实际参数 106

7.1.3 函数的返回值 109

7.2 函数的一般调用 110

7.2.1 函数调用的形式 110

7.2.2 函数调用的方式 111

7.2.3 主调函数和被调函数的相对位置关系 111

7.2.4 函数调用时值的单向传递性 113

7.2.5 函数调用示例 114

7.3 函数的嵌套调用 115

7.4 函数的递归调用 118

7.4.1 概述 118

7.4.2 函数的递归调用应用举例 119

7.5 数组作为函数的参数 123

7.5.1 数组元素作为函数的实参 123

7.5.2 数组名作为函数的参数 123

7.5.3 多维数组作为函数的参数 124

7.6 变量的作用域——局部变量和全局变量 125

7.6.1 局部变量 125

7.6.2 全局变量 126

7.7 变量的存储类别和生存期 128

7.7.1 变量的存储类别 128

7.7.2 动态变量 129

7.7.3 静态变量 132

7.7.4 外部变量 133

7.8 内部函数和外部函数 136

7.8.1 内部函数 136

7.8.2 外部函数 137

习题 138

第8章 编译预处理 141

8.1 宏定义 141

8.1.1 不带参数的宏定义 141

8.1.2 带参数的宏定义 143

8.2 文件包含 147

8.3 条件编译 149

8.3.1 条件编译语句1 149

8.3.2 条件编译语句2 150

8.3.3 条件编译语句3 150

习题 152

第9章 指针 156

9.1 地址和指针的概念 156

9.2 指针变量和地址运算符 157

9.2.1 指针变量的定义 157

9.2.2 指针变量的使用 157

9.3 指针和数组 158

9.3.1 通过指针存取数组元素 159

9.3.2 字符串和指针 160

9.4 指针和函数 161

9.4.1 指针作为函数的参数 161

9.4.2 指针作为函数的返回值 163

9.4.3 指向函数的指针 164

9.5 多级指针 166

9.5.1 多级指针的概念和使用 166

9.5.2 多级指针和多维数组 167

9.5.3 命令行参数 170

9.6 指针和动态存储管理 171

9.6.1 概述 171

9.6.2 malloc函数和free函数 172

9.6.3 动态存储管理的应用 172

9.7 指针和指针运算小结 174

习题 175

第10章 结构与联合 177

10.1 结构体类型变量的定义和引用 177

10.1.1 结构体类型变量的定义 178

10.1.2 结构体类型变量的引用 179

10.1.3 结构体类型变量的初始化 179

10.2 结构体数组的定义和引用 180

10.3 结构体指针的定义和引用 181

10.3.1 指向结构体类型变量的指针的使用 181

10.3.2 指向结构体类型数组的指针的使用 182

10.4 链表的定义和操作 184

10.4.1 概述 184

10.4.2 链表的建立 185

10.4.3 输出链表元素 187

10.4.4 删除链表元素 187

10.4.5 插入链表元素 188

10.4.6 查询链表元素 188

10.5 联合 189

10.5.1 联合的定义 189

10.5.2 联合成员的使用 191

10.5.3 应用举例 192

10.5.4 数组、结构和联合三种数据类型的比较 192

10.6 枚举类型 193

10.7 用typedef定义类型名 194

习题 196

第11章 文件操作 198

11.1 文件的基本概念 198

11.1.1 概述 198

11.1.2 文件分类 198

11.1.3 缓冲文件系统和非缓冲文件系统 199

11.1.4 流式文件 199

11.2 标准文件 199

11.3 文件类型指针 200

11.4 文件的打开与关闭 200

11.4.1 文件的打开 200

11.4.2 文件的关闭 201

11.5 文件的顺序读写 202

11.6 常用文件顺序读写函数 202

11.7 文件顺序读写的应用举例 207

11.8 文件的随机读写 208

11.8.1 文件的定位 209

11.8.2 文件操作的出错检测 211

11.9 非缓冲文件系统 211

习题 214

第12章 综合实训 215

12.1 综合实训一:24点程序 215

12.1.1 问题描述 215

12.1.2 问题分析 215

12.1.3 数据结构分析 216

12.1.4 程序执行流程和设计分析 217

12.1.5 程序运行和测试 217

12.2 综合实训二:五子棋游戏 218

12.2.1 问题描述 218

12.2.2 问题分析 218

12.2.3 数据结构分析 218

12.2.4 程序执行流程和设计分析 219

12.2.5 程序运行和测试 221

12.3 综合实训三:通用的管理信息系统 221

12.3.1 问题描述 221

12.3.2 问题分析 222

12.3.3 数据结构分析 222

12.3.4 程序执行流程和设计分析 223

12.3.5 程序运行和测试 223

12.4 综合实训四:BASIC程序解释器 224

12.4.1 问题描述 224

12.4.2 问题分析 224

12.4.3 数据结构和程序设计分析 228

12.4.4 程序运行和测试 238

12.4.5 讨论 239

第13章 初涉ACM/ICPC 242

13.1 ACM/ICPC概述 242

13.2 小数近似值问题与枚举算法 243

13.2.1 问题描述 243

13.2.2 问题分析与求解 243

13.2.3 问题小结 244

13.3 迷宫问题与深度优先搜索 244

13.3.1 问题描述 244

13.3.2 问题分析与求解 244

13.3.3 问题小结 245

13.4 经典01背包问题与动态规划算法 245

13.4.1 问题描述 245

13.4.2 问题分析与求解 245

13.4.3 问题小结 247

13.5 经典部分背包问题与贪心算法 247

13.5.1 问题描述 247

13.5.2 问题分析与求解 247

13.5.3 问题小结 249

13.6 关系序列问题与图的拓扑排序 249

13.6.1 问题描述 249

13.6.2 问题分析与求解 249

13.6.3 问题小结 252

13.7 公路建设图与最小生成树 252

13.7.1 问题描述 252

13.7.2 问题分析与求解 252

13.7.3 问题小结 254

13.8 青蛙跳石头与图的单源最短路径 254

13.8.1 问题描述 254

13.8.2 问题分析与求解 254

13.8.3 问题小结 255

13.9 青蛙约会之解与模线性方程 255

13.9.1 问题描述 255

13.9.2 问题分析与求解 256

13.9.3 问题小结 257

13.10 练习参考网址 257

第14章 程序设计风格与程序调试 258

14.1 程序设计风格和程序设计方法 258

14.2 C语言程序设计风格 259

14.2.1 标识符的命名 259

14.2.2 注释 260

14.2.3 清晰简洁的表达 263

14.2.4 书写格式 264

14.3 结构化程序设计 268

14.3.1 自顶向下的程序设计方法 268

14.3.2 程序的模块化 270

14.4 健全程序的风格标准 271

14.5 程序错误类型和调试 274

14.5.1 程序错误类型 274

14.5.2 程序错误分析方法 275

14.6 程序调试方法 276

14.7 常见错误分析 283

14.8 帮助的使用 289

习题 289

附录 ASCII码表 291

参考文献 293