《程序设计基础(C语言)》PDF下载

  • 购买积分:11 如何计算积分?
  • 作  者:田爱奎等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2011
  • ISBN:9787302259862
  • 页数:299 页
图书介绍:本书系统、全面地讲授了C语言程序设计的基本思想、方法和解决实际问题的技巧。

第1章 程序设计引论 1

1.1 计算机程序与计算机语言 1

1.1.1 计算机程序 1

1.1.2 计算机语言 1

1.2 C语言的发展 3

1.3 简单的C程序构成 4

1.3.1 最简单的C语言程序举例 5

1.3.2 C语言程序的结构 8

1.4 C程序的运行与调试 9

1.4.1 C程序的运行步骤 9

1.4.2 Visual C++6.0下程序文件的创建、编译与运行 11

第2章 算法设计基础 16

2.1 什么是算法 16

2.1.1 日常生活中的算法 16

2.1.2 计算机算法的分类 17

2.1.3 简单算法举例 17

2.2 算法的特征 19

2.3 算法的表示方法 19

2.3.1 自然语言表示算法 19

2.3.2 传统流程图表示算法 20

2.3.3 三种基本结构 21

2.3.4 用N-S流程图表示算法 22

2.3.5 其他表示算法的方法 23

2.4 程序设计中常用算法 23

2.4.1 迭代法 24

2.4.2 穷举搜索法 24

2.4.3 递推法 25

2.4.4 递归 26

2.4.5 回溯法 26

2.4.6 贪心法 27

2.4.7 分治法 27

2.4.8 动态规划法 29

第3章 数据类型基础 31

3.1 程序设计中数据的地位与作用 31

3.2 常量与变量 32

3.2.1 常量 32

3.2.2 变量 36

3.3 基本数据类型 38

3.3.1 整型 38

3.3.2 实型 40

3.3.3 字符型 41

3.4 数据的输入、输出 42

3.4.1 输入输出的概念及其在C语言中的实现 42

3.4.2 字符数据的输入输出 43

3.4.3 格式输出 44

3.4.4 格式输入 47

3.5 运算符与表达式 50

3.5.1 C语言运算符简介 50

3.5.2 算术运算符和算术表达式 51

3.5.3 赋值运算符和赋值表达式 53

3.5.4 逗号运算符和逗号表达式 55

3.5.5 sizeof运算符 56

3.6 不同类型数据之间的转换 56

3.6.1 隐式转换 56

3.6.2 强制类型转换 57

3.7 本章小结 58

第4章 基本控制结构 59

4.1 顺序结构 59

4.1.1 程序语句 59

4.1.2 顺序结构举例 60

4.2 选择结构 63

4.2.1 关系运算和逻辑运算 64

4.2.2 if语句 67

4.2.3 if语句的嵌套 73

4.2.4 switch语句 74

4.3 循环结构 77

4.3.1 while循环 78

4.3.2 do…while循环 81

4.3.3 for循环 83

4.3.4 循环嵌套 88

4.3.5 break和continue语句 91

4.4 C语言控制结构应用举例 93

4.4.1 程序举例 93

4.4.2 枚举思想及程序实现 96

4.4.3 迭代思想及程序实现 98

4.6 本章小结 101

第5章 函数 103

5.1 概述 103

5.1.1 C函数的特点 103

5.1.2 C函数的分类 103

5.2 标准库函数 104

5.2.1 常用标准库函数 104

5.2.2 伪随机数的产生及其应用 105

5.3 函数定义和调用 107

5.3.1 函数定义 107

5.3.2 函数调用 109

5.4 嵌套调用与递归调用 112

5.4.1 嵌套调用 112

5.4.2 递归调用 114

5.5 变量的作用域和存储类别 117

5.5.1 局部变量的作用域和存储类别 117

5.5.2 全局变量的作用域和存储类别 121

5.6 C程序文件结构 124

5.6.1 单文件单函数结构 124

5.6.2 单文件多函数结构 124

5.6.3 多文件多函数结构 124

5.6.4 多文件多函数多库结构 125

5.7 内部函数和外部函数 125

5.7.1 内部函数 125

5.7.2 外部函数 126

5.8 程序设计举例 126

5.9 本章小结 129

第6章 数组 130

6.1 一维数组 130

6.1.1 一维数组的定义 130

6.1.2 一维数组元素的引用 131

6.1.3 一维数组的初始化 132

6.1.4 一维数组应用举例 132

6.2 二维数组 139

6.2.1 二维数组的定义 139

6.2.2 二维数组元素的引用 140

6.2.3 二维数组的初始化 141

6.2.4 二维数组程序举例 142

6.3 字符数组 144

6.3.1 字符数组的定义和引用 144

6.3.2 字符数组的初始化 144

6.3.3 字符串和字符串结束标志 145

6.3.4 字符数组的输入输出 145

6.3.5 字符串处理函数 146

6.3.6 字符数组应用举例 148

6.4 数组与函数 150

6.4.1 数组元素作函数实参 150

6.4.2 数组名作为函数参数 151

6.5 程序设计举例 153

6.6 本章小结 155

第7章 指针 156

7.1 地址与指针 156

7.1.1 变量的地址和变量的值 156

7.1.2 变量的访问方式 156

7.1.3 指针和指针变量 157

7.2 指针变量 158

7.2.1 指针变量的定义 158

7.2.2 指针变量的引用 159

7.2.3 指针变量作为函数参数 163

7.3 指向数组的指针变量 168

7.3.1 指向数组元素的指针 168

7.3.2 通过指针引用数组元素 169

7.3.3 数组名作函数参数 171

7.3.4 指向多维数组的指针变量 177

7.4 指向字符串的指针变量 185

7.4.1 字符串的表示形式 185

7.4.2 使用字符串指针变量与字符数组的区别 188

7.5 函数指针变量 191

7.5.1 函数指针与指向函数的指针变量 191

7.5.2 用函数指针变量调用函数 192

7.5.3 用指向函数的指针变量作函数参数 194

7.6 返回指针值的函数 196

7.7 指针数组和指向指针的指针 197

7.7.1 指针数组的概念 197

7.7.2 指向指针的指针 201

7.8 本章小结 202

第8章 结构体、共用体和枚举类型 204

8.1 结构体类型 204

8.1.1 结构体类型的定义 204

8.1.2 结构体类型变量的定义 205

8.1.3 结构体类型变量的引用 206

8.1.4 结构体类型变量的初始化 207

8.1.5 结构体类型数组 208

8.1.6 结构体类型指针变量 210

8.1.7 结构体类型指针变量作函数参数 212

8.2 共用体类型 213

8.2.1 共用体类型的概念 213

8.2.2 共用体类型变量的引用 214

8.2.3 共用体类型数据的特点 215

8.3 枚举类型 216

8.3.1 枚举类型的概念和定义 216

8.3.2 枚举类型变量的赋值和使用 217

8.4 利用typedef自定义类型 218

8.5 程序设计举例 219

8.6 本章小结 220

第9章 文件 222

9.1 文件概述 222

9.2 文件指针 222

9.3 文件的打开与关闭 222

9.3.1 文件打开函数(fopen) 223

9.3.2 文件关闭函数(fclose) 224

9.4 文本文件的读写 224

9.4.1 字符读写函数(fgetc和fputc) 224

9.4.2 字符串读写函数(fgets和fputs) 226

9.5 二进制文件的读写 227

9.5.1 数据块读写函数(fread和fwtrite) 227

9.5.2 格式化读写函数(fscanf和fprintf) 229

9.6 文件操作的其他函数 230

9.6.1 判断文件是否结束函数(feof) 230

9.6.2 文件内部指针定位 231

9.6.3 ftell函数 232

9.7 本章小结 233

第10章 链表 234

10.1 动态内存分配 234

10.1.1 C程序的内存划分 234

10.1.2 内存分配方式 234

10.1.3 动态内存分配函数 235

10.2 单链表概述 237

10.2.1 结点的结构 237

10.2.2 单链表的结构 238

10.3 单链表结点的基本操作 239

10.3.1 单链表结点的查找 239

10.3.2 单链表结点的插入 240

10.3.3 单链表结点的删除 242

10.4 单链表的建立 244

10.4.1 逆序建链表 244

10.4.2 顺序建链表 245

10.5 单链表的应用 247

10.5.1 单链表的逆置 247

10.5.2 单链表的归并 248

10.5.3 单链表的拆分 252

10.6 循环链表与约瑟夫环问题 253

10.6.1 循环链表 253

10.6.2 约瑟夫环问题 253

10.7 本章小结 256

第11章 递推与递归 258

11.1 递推 258

11.1.1 递推与递推思想 258

11.1.2 递推设计实例 258

11.2 递归 264

11.2.1 递归与递归思想 264

11.2.2 递归设计实例 265

11.3 本章小结 280

第12章 贪心法与动态规划法 281

12.1 贪心法 281

12.1.1 贪心法的思想 281

12.1.2 贪心法实例 281

12.1.3 贪心法解题的一般步骤 288

12.2 动态规划 289

12.2.1 什么是动态规划 289

12.2.2 动态规划的基本思想 292

12.2.3 动态规划算法的基本步骤 293

12.3 本章小结 298

参考文献 299