《从问题到程序 程序设计与C语言引论》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:裘宗燕编著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2005
  • ISBN:7111167562
  • 页数:416 页
图书介绍:本书以程序设计为基本线索,同时深入介绍了C语言各方面的情况。

目录 1

前言 1

本书作者简介 1

第1章 程序设计和C语言 1

1 1 程序和程序语言 1

1 2 C语言简介 8

1 3 ?个简单的C程序 10

1 4 程序开发过程 13

1 5 问题与程序设计 17

本章讨论的重要概念 18

练习 18

第2章 数据对象与计算 21

2 1 基本字符 名字表示、标识符和关键字 21

2 2 数据与类型 23

2 3 基本类型与数据表示 23

2 3 1 整数类型和整数的表示 23

2 3 2 实数类型和实数的表示 25

2 3 3 字符类型和字符的表示 26

2 3 4 数据的外部表示、内部表示与转换 27

2 4 1 算术运算符 30

2 4 运算符、表达式与计算 30

2 4 2 算术表达式 31

2 4 3 表达式的求值 32

2 4 4 计算和类型 34

2 5 数学函数库及其使用 37

2 5 1 函数函数调用 37

2 5 2 数学函数及其使用 38

2 5 3 函数调用中的类型转换 39

几个常用程序模式 40

问题解释 40

本章讨论的重要概念 41

练习 41

第3章 变量、函数和控制结构 43

3 1 语句、复合结构 43

3 2 变量——概念、定义和使用 44

3 2 1 变量的定 45

3 2 2 变量的赋值与取值 46

3 2 3 几个问题 48

3 3 定义函数(初步) 50

3 3 1 函数定义 52

3 3 2 函数和程序 55

3 3 3 函数与类型 56

3 3 4 自定义输出函数 57

3 4 关系表达式、逻辑表达式、条件表达式 58

3 4 1 关系表达式和条件表达式 58

3 4 2 逻辑表达式 60

3 5 语句与控制结构 61

3 5 1 条件语句(if语句) 62

3 5 2 循环语句(1)while语句 65

3 5 3 循环语句(2)for语句 68

3 6 若干常用结构和问题 70

3 6 1 增量和减量运算符(++、--) 70

3 6 2 逗号运算符 71

3 6 3 实现二元运算符操作的赋值运算符 71

3 6 4 空语 72

3 6 5 表达式和求值 73

几个常用程序模式 74

问题解释 74

本章讨论的重要概念 75

练习 75

第4章 基本程序设计技术 79

4 1 循环程序设计 79

4 1 1 基本循环方式 80

4 1 2 求-系列完全平方数 81

4 1 3 判断素数(谓词函数) 82

4 1 4 艰难的旅程(浮点误差) 83

4 1 5 求立方根(迭代和逼进) 85

4 1 6 求sin函数值(通项计算) 86

4 2 循环程序的问题 87

4 2 1 从循环中退出   87

4 2 2 循环中的几种变量 89

4 3 循环与递归 90

4 3 1 阶乘和乘幂(循环,递归) 90

4 3 2 Fibonacci序列(计算与时间) 93

4 3 3 为计算过程计时 94

4 3 4 Fibonacci序列的迭代计算(程序正确性与循环不变式) 95

4 3 5 最大公约数 97

4 3 6 河内塔(梵塔)问题 100

4 4 基本输入输 102

4 4 1 格式输入函数scanf 102

4 4 2 字符输入输出函数 109

4 4 3 输入函数的返回值及其作用 112

4 5 控制结构和控制语句 114

4 5 1 do-while循环结构 114

4 5 2 流程控制语句 115

4 5 3 开关语句 117

4 6 2 定义枚举常量 119

4 6 1 一个简单计算器 119

4 6 程序设计实例 119

4 6 3 单词计数问题 120

4 7 程序测试和排错 123

4 7 1 测试 123

4 7 2 白箱测式 124

4 7 3 黑箱测试 125

4 7 4 排除程序里的错误 126

问题解释 127

练习 128

本章讨论的重要概念 128

几个常用程序模式 128

第5章 C程序结构 133

5 1 数值类型 133

5 1 1 实数类型和整数类型 133

5 1 2 字符类型 133

5 1 3 整数类型 134

5 1 4 基本数据类型的选择 135

5 2 函数和标准库函数 136

5 2 2 字符分类函数 137

5 2 1 C语言的库函数 137

5 2 3 随机数生成函数 138

5 3 函数定义和程序的函数分解 139

5 3 1 主函数 140

5 3 2 程序的函数分解 141

5 3 3 对函数的两种观点 142

5 3 4 函数原型 146

5 4 C程序结构与变量 149

5 4 1 外部定义的变量 150

5 4 3 外部变量和自动变量 151

5 4 2 作用域与生存期 151

5 4 4 变量定义的嵌套 153

5 4 5 静态局部变量 154

5 4 6 变量的其他问题 155

5 4 7 一个实例 157

5 5 预处 159

5 5 1 文件包含命令 159

5 5 2 宏定义与宏替换 160

5 5 3 条件编译命令 163

5 6 定义常量 164

5 7 字位运算符 165

5 8 编程实例 168

5 8 1 一个简单的猜数游戏 168

5 8 2 加密与解密 170

本章讨论的重要概念 172

练习 172

第6章 数组 175

6 1 数组的概念、定义和使用 175

6 1 1 定义数组变量 176

6 1 2 数组的使用 177

6 1 3 数组的初始化 179

6 1 4 数组的存储实现 180

6 2 数组程序实例 181

6 2 1 从字符到下标 181

6 2 2 筛法求素数 182

6 2 3 成绩分类 183

6 2 4 多项式求值 184

6 2 5 定义数组的问题 185

6 3 1 一个例子 186

6 3 数组作为函数参数 186

6 3 2 修改实参数组的元素 188

6 4 字符数组与字符串 189

6 4 1 字符数组 189

6 4 2 字符串 189

6 4 3 程序实例 191

6 4 4 标准库字符串处理函数 193

6 4 5 输出文本里的最长行 194

6 5 1 多维数组的初始化 198

6 5 两维和多维数组 198

6 5 2 多维数组的表示和使用 199

6 5 3 多维数组作为函数的参数 200

6 6 编程实例 201

6 6 1 成绩直方图 201

6 6 2 一个通用带检查的整数输入函数 205

6 6 3 “计算”数组变量的大小 206

6 6 4 统计C程序里的关键字 208

6 6 5 数组的划分 211

6 6 6 数组的排序 213

问题解释 215

几个常用程序模式 215

本章讨论的重要概念 215

练习 215

第7章 指针 217

7 1 地址与指针 217

7 2 指针变量的定义和使用 218

7 2 1 指针操作 218

7 2 2 指针作为函数的参数 219

7 2 3 与指针有关的一些问题 222

7 3 指针与数组 224

7 3 1 指向数组元素的指针 224

7 3 2 基于指针运算的数组程序设计 227

7 3 3 数组参数与指针 228

7 3 4 指针与数组操作的程序实例 229

7 3 5 字符指针与字符数组 231

7 4 指针数组 233

7 4 1 指针数组与两维数组 234

7 4 2 命令行参数及其处理 235

7 5 多维数组作为参数的通用函数 238

7 6 动态存储管理 240

7 6 1 为什么需要动态存储管理 240

7 6 2 C语言的动态存储管理机制 241

7 6 3 两个程序实例 244

7 6 4 函数、指针和动态存储 247

7 7 定义类型 250

7 7 1 定义数组类型和指针类型 251

7 7 2 复杂类型描述与解读 252

7 8 1 函数指针的定义和使用 254

7 8 指向函数的指针 254

7 8 2 函数指针作为函数的参数 255

7 8 3 数值积分函数 257

7 8 4 若干以函数指针为参数的数组操作实用函数 259

几个常用程序模式 260

本章讨论的重要概念 260

练习 261

8 1 文件的概念 263

8 1 1 流和文件指针 263

第8章 文件和输入输出 263

8 1 2 缓冲式输入输出 264

8 2 文件的使用 265

8 2 1 文件的打开和关闭 265

8 2 2 输入输出函数 267

8 2 3 程序实例 268

8 2 4 直接输入输出函数 270

8 3 标准流输入输出与格式控制 271

8 3 1 行式输入和输出 271

8 3 2 输入格式控制 272

8 3 3 输出格式控制 276

8 3 4 以字符串作为格式化输入输出对象 278

8 3 5 标准错误流 278

8 4 程序实例 279

8 4 1 求文件数据的平均值 279

8 4 2 个背单词程序 281

8 4 3 资金账目系统 285

练习 288

9 1 1 结构声明与变量定义 291

第9章 结构和其他数据机制 291

9 1 结构(struct) 291

9 1 2 结构变量的初始化和使用 296

9 1 3 结构、数组与指针 297

9 2 结构与函数 299

9 2 1 处理结构的函数 299

9 2 2 程序实例 302

9 3 联合(union) 306

9 4 枚举(enum) 308

9 5 1 数据组的排序 310

9 5 编程实例 310

9 5 2 复数的表示和处理 312

9 6 链接结构(自引用结构) 315

9 6 1 链接结构 315

9 6 2 自引用结构的定义 317

9 6 3 程序实现 318

9 6 4 数据与查找 321

9 7 字段 322

练习 323

问题解释 323

本章讨论的重要概念 323

第10章 程序开发技术 327

10 1 分别编译和C程序的分块开发 327

10 1 1 分块开发的问题和方法 327

10 1 2 程序实例 学生成绩处理 328

10 1 3 分块重整 333

10 1 4 其他安排和考虑 336

10 1 5 模块化思想和技术 338

10 1 6 单一头文件结构和多个头文件结构 342

10 2 1 复数模块 345

10 2 功能模块和程序库 345

10 2 2 目标文件和库 348

10 2 3 防止重复包含 349

10 3 错误报告和处理 349

10 3 1 建立统一的错误报告机制 349

10 3 2 定义变参数的错误报告函数 350

10 3 3 运行中错误的检查和处理 352

10 4 1 程序的行为参数和启动时的配置 358

10 4 程序的配置 358

10 4 2 交互式配置 360

10 4 3 通过命令行参数 361

10 4 4 采用配置文件 362

10 5 程序开发过程 362

10 5 1 自上而下的开发 363

10 5 2 自下而上的开发 365

10 5 3 实际开发过程 365

练习 367

11 1 标准库结构 371

第11章 标准库 371

11 1 1 标准定义(〈stddef.h〉) 372

11 1 2 错误信息(〈errno h〉) 372

11 2 几个已经介绍过的头文件 373

11 2 1 数学函数(〈math.h〉) 373

11 2 2 字符处理函数(〈ctype h〉) 374

11 3 字符串函数(〈string h〉) 375

11 3 1 一些字符串函数 375

11 3 2 存储区操作 378

11 4 功能函数(〈stdlib h〉) 379

11 4 1 几个整数函数 380

11 4 2 数值转换 380

11 4 3 执行控制 381

11 4 4 与执行环境交互 381

11 4 5 常用函数bsearch和qsort 382

11 5 日期和时间(〈time.h〉) 383

11 6 实现特征(〈limits h〉和〈float h〉) 385

11 6 1 整数类型特征 385

11 7 1 符号常量和类型 386

11 7 其他与输入输出有关的函数(〈stdio h〉) 386

11 6 2 浮点数类型特征 386

11 7 2 文件操作函数 387

11 7 3 流缓冲区操作函数 388

11 7 4 文件定位及定位函数 389

11 7 5 其他有关函数 390

11 7 6 采用va_list参数的输出函数 391

11 8 定义变长度参数表(〈stdarg h〉) 392

11 9 非局部控制转移(〈setjmp h〉) 395

11 10 调试断言和信号处理(〈assert.h〉和〈signal h〉) 397

11 11 1 本地化 398

11 11 标准库的其他功能 398

11 11 2 多字节字符 400

本章讨论的重要概念 400

练习 400

附录A C语言运算符表 401

附录B C语言速查 403

附录C C99简介 409

进一步学习的建议 413

参考文献 416