图书介绍

从问题到程序 程序设计与C语言引论PDF|Epub|txt|kindle电子书版本网盘下载

从问题到程序 程序设计与C语言引论
  • 裘宗燕编著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111337157
  • 出版时间:2011
  • 标注页数:338页
  • 文件大小:23MB
  • 文件页数:352页
  • 主题词:C语言-程序设计-高等学校-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

从问题到程序 程序设计与C语言引论PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

本书中的编程实例和模式20

例2.1 简单的字符串输出程序20

例2.2 输出长字符串20

例2.3 计算圆球体积23

例2.4 已知三角形两边长和夹角求面积28

例2.5 简单级数计算28

例2.6 已知三角形三边长求面积29

程序模式2.1 简单计算程序32

程序模式2.2 使用数学函数的简单计算程序32

例3.1 已知三角形三边长求面积37

例3.2 求圆盘面积(错误)39

例3.3 求圆盘面积40

例3.4 由三边长求三角形面积的函数41

例3.5 自定义输出函数44

例3.6 几个用条件表达式的函数45

例3.7 判断闰年(利用取模运算判断整除关系)46

例3.8 求圆盘面积(错误参数的处理)48

例3.9 求二次方程的根49

例3.10 循环计算和输出50

例3.11 循环求和51

例3.12 输出摄氏和华氏温度的对照表51

例3.13 用for循环重写的输出摄氏和华氏温度的对照表程序53

例3.14 求立方和53

例3.15 在程序里定义枚举常量56

例3.16 使用scanf的简单输入输出程序57

例3.17 求圆盘面积(带有scanf输入)58

例3.18 求二次方程的根(通过scanf得到方程的三个系数)59

例3.19 字符输入和输出61

程序模式3.1 简单程序65

程序模式3.2 带函数定义的程序65

例4.1 打印一系列平方数69

例4.2 判断素数71

例4.3 乌龟旅行71

例4.4 求立方根73

例4.5 级数通项计算74

例4.6 验证哥德巴赫猜想75

例4.7 由每月降雨量求一年的总降雨量77

例4.8 用特殊值控制循环结束(货单统计)78

例4.9 读入一系列半径求面积79

例4.10 求一系列输入数据中的最大、最小和平均值80

例4.11 由标准输入读入10个字符并输出各字符的编码81

例4.12 写程序读入一行,输出行里字符的个数81

例4.13 用getchar读入整个文件的内容并输出82

例4.14 统计由标准输入得到的文件里的字符个数83

例4.15 简单计算器84

例4.16 递归计算阶乘85

例4.17 递归求幂86

例4.18 Fibonacci序列的计算87

例4.19 统计程序或程序片段的计算时间88

例4.20 用循环求Fibonacci数89

例4.21 用几种方法求整数的最大公约数91

例4.22 河内塔的递归求解93

程序模式4.1 向上循环和向下循环101

程序模式4.2 程序计时(需要包含time.h)101

程序模式4.3 输入一系列数的循环102

程序模式4.4 输入一系列字符的循环102

程序模式4.5 带检查的整数输入102

例5.1 文件中字符的分类统计110

例5.2 使用标准库的字符分类函数111

例5.3 随机数试验程序112

例5.4 打印字符图形和函数分解115

例5.5 弦线法求函数的根121

例5.6 简单猜数程序123

例5.7 静态局部变量的定义和使用128

例5.8 随机数生成器130

例5.9 单词计数和有穷自动机的使用136

例5.10 字位运算符和掩码139

例5.11 使用移位和其他位运算140

例5.12 简单加密解密函数140

例6.1 建立并打印包含Fibonacci数的数组146

例6.2 统计文件里各数字字符出现的次数147

例6.3 用筛法求素数148

例6.4 输入学生成绩并分段输出成绩,再输出统计值149

例6.5 多项式求值150

例6.6 求数组元素平均值152

例6.7 反转数组里的元素153

例6.8 矩阵乘法155

例6.9 以多维数组作为数组参数的函数155

例6.10 字符串复制函数157

例6.11 二进制串到整数的转换函数158

例6.12 字符串的前缀删除函数159

例6.13 找到文件中的最长行并输出160

例6.14 学生成绩直方图程序162

例6.15 带检查的通用整数输入函数165

例6.16 利用sizeof和宏定义“计算”数组的大小166

例6.17 数组元素划分167

例6.18 数组元素排序169

例6.19 统计C语言源程序文件中各ANSIC关键字出现的次数170

程序模式6.1 处理数组元素的循环174

程序模式6.2 从标准输入为数组填充值的循环174

程序模式6.3 处理数组的函数头部|(应该引进一个长度参数)174

程序模式6.4 静态“求”数组的元素个数的宏174

例7.1 能交换两个变量的值的参数178

例7.2 通过指针参数实现输入整数值并检查数值范围的函数179

例7.3 用指针方式实现计算字符串长度的函数185

例7.4 用指针方式实现字符串复制185

例7.5 用指针方式实现的数组处理函数185

例7.6 用指针方式写出的数组元素划分函数186

例7.7 输出任意二维整型数组内容的函数189

例7.8 了解命令行参数的基本用法193

例7.9 动态存储函数malloc的使用195

例7.10 用calloc做存储分配195

例7.11 修改筛法程序196

例7.12 学生成绩统计和直方图程序(动态调整存储块的大小)197

例7.13 通过函数参数送回指针值199

例7.14 利用函数指针重新定义采用弦线法求函数根的函数203

例7.15 数值积分函数204

例7.16 利用函数指针参数操作数组元素205

程序模式7.1 能够修改执行环境的函数209

程序模式7.2 处理命令行参数的程序的main函数原型209

程序模式7.3 动态存储分配209

程序模式7.4 动态存储分配块的大小调整209

例8.1 文件使用的一般过程214

例8.2 命名文件复制程序cat215

例8.3 货单数据统计216

例8.4 求文件中数据的平均值223

例8.5 简单的背英语单词程序225

例8.6 资金来往账目管理系统的输入功能228

程序模式8.1 文件的使用230

程序模式8.2 处理由命令行得到的一系列文件名230

例9.1 展示结构声明、结构变量定义和使用的简单程序235

例9.2 用结构数组重新构造例6.19的统计C程序中关键字的程序236

例9.3 返回结构值的函数238

例9.4 具有结构参数并返回结构值的函数239

例9.5 采用结构参数和结构指针参数的函数239

例9.6 通过动态存储分配创建结构240

例9.7 基于结构设计实现例8.6的账目管理系统241

例9.8 用结构实现例6.14的学生成绩程序243

例11.1 找出正文文件里包含某个特定单词的所有正文行,把这些行的内容及其顺序编号送到标准输出297

例11.2 用strtok把正文文件内容分解为单词序列298

例11.3 出错报告函数309

例11.4 采用变参数函数实现任意元素求和310

例12.1 生成2的某次幂的函数319

例12.2 求数组元素平均值函数321

例12.3 打印二维数组的内容322

例12.4 通用的求矩阵乘积函数322

例12.5 结构的变长数组成员(灵活数组成员)323

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

1.1 程序和程序语言1

1.2 C语言简介6

1.3 一个简单的C程序8

1.4 程序开发过程10

1.5 问题与程序设计14

本章讨论的重要概念15

练习15

第2章 数据与简单计算程序16

2.1 基本字符、标识符和关键字16

2.2 数据、类型和简单程序17

2.2.1 几个常用类型18

2.2.2 函数printf和简单文本输出程序19

2.3 运算符、表达式和计算22

2.3.1 算术运算符和算术表达式22

2.3.2 表达式的求值23

2.3.3 计算和类型24

2.4 数学函数和简单计算程序26

2.4.1 函数、函数调用26

2.4.2 数学函数及其使用27

2.4.3 函数调用中的类型转换28

语言细节和问题29

C语言的字符集29

基本数据类型的一些问题29

数据形式的转换和输出31

运算对象的求值顺序32

几个常用程序模式32

本章讨论的重要概念32

练习33

第3章 变量、函数和流程控制34

3.1 复合结构和顺序程序34

3.2 变量的概念和使用35

3.2.1 变量的定义35

3.2.2 变量的使用36

3.2.3 注释和简单顺序程序38

3.3 定义函数(初步)38

3.3.1 函数定义39

3.3.2 函数与程序42

3.3.3 函数与类型43

3.3.4 自定义输出函数44

3.4 关系表达式、条件表达式、逻辑表达式44

3.4.1 关系表达式和条件表达式44

3.4.2 逻辑表达式46

3.5 语句与控制结构47

3.5.1 条件语句:if语句48

3.5.2 循环语句:while语句50

3.5.3 循环语句:for语句52

3.6 若干C语言结构54

3.6.1 增量和减量运算符(++、--)54

3.6.2 逗号运算符55

3.6.3 实现二元运算符操作的赋值运算符55

3.6.4 空语句55

3.6.5 定义枚举常量56

3.7 输入和输出56

3.7.1 格式输入函数scanf57

3.7.2 字符输入和输出函数60

语言细节和问题61

变量的意义和实现61

赋值操作的一些问题61

条件表达式和条件语句62

表达式和求值63

输入和缓冲65

几个常用程序模式65

本章讨论的重要概念65

练习66

第4章 基本编程技术68

4.1 循环程序设计68

4.1.1 基本循环方式69

4.1.2 求一系列完全平方数69

4.1.3 判断素数(谓词函数)71

4.1.4 艰难旅程(浮点误差)71

4.1.5 求立方根(迭代和逼近)73

4.1.6 求sin函数值(通项计算)74

4.1.7 从循环中退出75

4.2 输入循环77

4.2.1 输入循环的基本技术77

4.2.2 字符输入80

4.2.3 检查输入83

4.2.4 一个简单计算器84

4.3 循环与递归85

4.3.1 阶乘和乘幂(循环,递归)85

4.3.2 Fibonacci序列(计算与时间)87

4.3.3 为计算过程计时88

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

4.3.5 最大公约数91

4.3.6 河内塔(梵塔)问题93

4.4 程序调试和排错95

4.4.1 测试95

4.4.2 白箱测试95

4.4.3 黑箱测试96

4.4.4 排除程序里的错误98

语言细节和问题98

程序的逐步求精和控制结构嵌套99

循环中的几种变量99

与输入输出有关的几个问题100

输入与安全性100

几个常用程序模式101

本章讨论的重要概念102

练习102

第5章 C程序结构105

5.1 数值类型105

5.1.1 字符类型105

5.1.2 整数类型106

5.1.3 基本数据类型的选择107

5.2 几种控制语句107

5.2.1 do-while循环结构107

5.2.2 流程控制语句108

5.2.3 开关语句109

5.3 一些标准库函数110

5.3.1 字符分类函数111

5.3.2 随机数生成函数112

5.4 程序的函数分解113

5.4.1 函数分解113

5.4.2 对函数的两种观点114

5.4.3 函数定义与调用之间的配合118

5.4.4 函数原型119

5.4.5 求函数的根121

5.4.6 一个简单猜数游戏123

5.5 C程序结构与变量125

5.5.1 外部定义的变量125

5.5.2 作用域、存在期和变量类126

5.5.3 变量的其他问题130

5.6 预处理131

5.6.1 文件包含命令132

5.6.2 宏定义与宏替换132

5.6.3 条件编译命令135

5.6.4 定义常量135

5.6.5 单词计数问题136

5.7 字位运算符138

本章讨论的重要概念141

练习141

第6章 顺序数据组织:数组144

6.1 数组的定义和使用144

6.1.1 数组变量的定义和声明145

6.1.2 数组的使用145

6.1.3 数组的初始化147

6.1.4 数组程序实例147

6.1.5 定义数组的问题151

6.2 以数组为参数的函数151

6.2.1 一个例子152

6.2.2 修改实参数组的元素153

6.3 二维和多维数组153

6.3.1 多维数组的初始化154

6.3.2 多维数组的使用154

6.3.3 多维数组作为函数的参数155

6.4 字符数组与字符串156

6.4.1 字符数组156

6.4.2 字符串156

6.4.3 程序实例157

6.4.4 标准库字符串处理函数159

6.4.5 输出文本里的最长行160

6.5 编程实例162

6.5.1 成绩直方图162

6.5.2 一个通用的带检查的整数输入函数165

6.5.3 “计算”数组变量的大小166

6.5.4 数组的划分167

6.5.5 数组的排序169

6.5.6 统计C程序里的关键字170

语言细节和问题172

数组的存储实现172

越界访问的可能后果173

多维数组的实现173

函数参数与sizeof运算符173

字符串的字典序174

几个常用程序模式174

本章讨论的重要概念174

练习174

第7章 指针的应用176

7.1 指针的定义和使用176

7.1.1 指针的定义177

7.1.2 指针操作177

7.1.3 指针作为函数参数178

7.1.4 有关指针的几个问题180

7.2 指针与数组181

7.2.1 指向数组元素的指针181

7.2.2 基于指针运算的数组程序设计183

7.2.3 数组参数与指针184

7.2.4 指针与数组操作的程序实例184

7.2.5 字符指针与字符数组187

7.2.6 多维数组作为参数的通用函数188

7.3 指针数组189

7.3.1 字符指针数组190

7.3.2 指针数组与二维数组190

7.3.3 命令行参数及其处理191

7.4 动态存储管理193

7.4.1 C语言的动态存储管理机制194

7.4.2 两个程序实例196

7.4.3 函数、指针和动态存储199

7.4.4 定义类型200

7.5 指向函数的指针202

7.5.1 函数指针的定义和使用202

7.5.2 函数指针作为函数的参数203

语言细节和问题206

指针运算原理206

指针转换206

使用动态存储管理的要点和细节206

动态调整策略207

过时的函数指针形式207

复杂类型描述与解读208

几个常用程序模式209

本章讨论的重要概念209

练习209

第8章 文件和输入输出程序设计211

8.1 文件的概念211

8.1.1 流和文件指针211

8.1.2 缓冲式输入输出212

8.2 文件的使用213

8.2.1 文件的打开和关闭213

8.2.2 输入输出函数214

8.2.3 程序实例215

8.2.4 标准错误流216

8.2.5 直接输入输出函数217

8.3 标准流输入输出与格式控制218

8.3.1 行式输入和输出218

8.3.2 输入格式控制218

8.3.3 输出格式控制221

8.3.4 以字符串作为格式化输入输出对象223

8.4 程序实例223

8.4.1 求文件中数据的平均值223

8.4.2 一个背单词程序225

8.4.3 资金账目系统228

几个常用程序模式230

本章讨论的重要概念231

练习231

第9章 结构和复杂数据组织232

9.1 结构232

9.1.1 结构声明与变量定义232

9.1.2 结构变量的初始化和使用235

9.1.3 结构、数组与指针236

9.2 枚举237

9.3 结构与函数238

9.3.1 处理结构的函数238

9.3.2 程序实例241

9.4 编程实例243

9.4.1 数据组的排序243

9.4.2 复数的表示和处理245

9.5 链接结构(自引用结构)247

9.5.1 链接结构247

9.5.2 自引用结构的定义249

9.5.3 程序实现249

9.5.4 数据与查找252

语言细节和问题253

结构的实现253

联合254

字段256

本章讨论的重要概念257

练习257

第10章 程序开发技术259

10.1 分别编译和C程序的分块开发259

10.1.1 分块开发的问题和方法259

10.1.2 程序实例:学生成绩处理260

10.1.3 分块重整263

10.1.4 其他安排和考虑266

10.1.5 模块化思想和技术267

10.1.6 单一头文件结构和多个头文件结构271

10.2 功能模块和程序库273

10.2.1 复数模块273

10.2.2 目标文件和库275

10.2.3 防止重复包含276

10.3 错误报告和处理276

10.3.1 建立统一的错误报告机制276

10.3.2 定义变参数的错误报告函数277

10.3.3 运行中错误的检查和处理279

10.4 程序的配置283

10.4.1 程序的行为参数和启动时配置283

10.4.2 交互式配置285

10.4.3 通过命令行参数286

10.4.4 采用配置文件287

10.5 程序开发过程287

10.5.1 自上而下的开发288

10.5.2 自下而上的开发289

10.5.3 实际开发过程290

本章讨论的重要概念291

练习291

第11章 标准库293

11.1 标准库结构293

11.1.1 标准定义(<stddef.h>)294

11.1.2 错误信息(<errno.h>)294

11.1.3 C99的几个头文件295

11.2 几个已经介绍过的头文件295

11.3 字符串函数(<string.h>)295

11.3.1 一些字符串函数296

11.3.2 存储区操作函数299

11.4 功能函数(<stdlib.h>)299

11.4.1 几个整数函数299

11.4.2 数值转换299

11.4.3 执行控制300

11.4.4 与执行环境交互301

11.4.5 常用函数bsearch和qsort301

11.5 日期和时间(<time.h>)302

11.6 实现特征(<limit.h>和<float.h>)303

11.6.1 整数类型特征303

11.6.2 浮点数类型特征304

11.7 其他与输入输出有关的函数(<stdio.h>)304

11.7.1 符号常量和类型305

11.7.2 文件操作函数305

11.7.3 流缓冲区操作函数306

11.7.4 文件定位及定位函数306

11.7.5 其他有关函数307

11.7.6 采用va_list参数的输出函数308

11.8 定义变长参数表(<stdarg.h>)309

11.9 非局部控制转移(<setjmp.h>)311

11.10 调试断言和信号处理(<assert.h>和<signal.h>)313

11.11 标准库的其他功能314

11.11.1 本地化314

11.11.2 多字节字符315

本章讨论的重要概念316

练习316

第12章 C99导引317

12.1 C99扩充317

12.1.1 语言层扩充317

12.2 C99数组和结构319

12.2.1 复合对象的初始化319

12.2.2 变长数组的定义和声明320

12.2.3 函数的变长数组参数321

12.2.4 结构的变长数组成员322

12.3 几个C99标准库包324

12.3.1 标准库包<stdint.h>和<inttype.h>324

12.3.2 标准库包<complex.h>325

附录A C语言运算符表327

附录B C语言速查328

进一步学习的建议333

参考文献336

热门推荐