图书介绍
C语言的科学和艺术2025|PDF|Epub|mobi|kindle电子书版本百度云盘下载

- (美)罗伯茨著 著
- 出版社: 北京:机械工业出版社
- ISBN:9787111347750
- 出版时间:2011
- 标注页数:538页
- 文件大小:105MB
- 文件页数:560页
- 主题词:C语言-程序设计
PDF下载
下载说明
C语言的科学和艺术PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1章 概述1
1.1计算简史1
1.2什么是计算机科学4
1.3计算机硬件简介5
1.3.1 CPU5
1.3.2内存6
1.3.3辅助存储器6
1.3.4 I/O设备6
1.4算法7
1.5程序设计语言和编译7
1.6编程错误和调试9
1.7软件维护10
1.8软件工程的重要性11
1.9关于C程序设计语言的一些思考11
小结12
复习题12
第一部分 C语言程序设计基础16
第2章 通过例子学习16
2.1 “Hello world”程序17
2.1.1注释17
2.1.2库包含18
2.1.3主程序18
2.2两个数的加法程序20
2.2.1输入阶段21
2.2.2计算阶段23
2.2.3输出阶段23
2.3有关程序设计过程的观点24
2.4数据类型25
2.4.1浮点型数据25
2.4.2字符串类型的数据26
2.5表达式28
2.5.1常量28
2.5.2变量29
2.5.3赋值语句31
2.5.4运算符和操作数32
2.5.5整型数和浮点型数的结合33
2.5.6整数除法和求余运算符34
2.5.7优先级34
2.5.8优先级法则的应用36
2.5.9类型转换37
小结39
复习题40
程序设计练习41
第3章 问题求解44
3.1程序设计习语和范例44
3.1.1复合赋值习语45
3.1.2自增和自减运算符47
3.2解决规模稍大的问题47
3.3控制语句48
3.3.1重复N次习语49
3.3.2迭代和循环50
3.3.3下标变量50
3.3.4初始化的重要性51
3.3.5读入-直到-标志习语53
3.3.6创造一个更实用的应用程序54
3.3.7条件执行和if语句56
3.4一个调试练习58
3.5格式化输出61
3.5.1 printf的格式码62
3.5.2控制空格、对齐方式和精度63
3.6构思一个程序65
3.6.1程序设计风格66
3.6.2设计时考虑将来的修改67
3.6.3 #define机制67
小结69
复习题69
程序设计练习70
第4章 语句形式74
4.1简单语句74
4.1.1赋值的嵌套76
4.1.2多重赋值76
4.1.3程序块77
4.2控制语句78
4.3布尔型数据78
4.3.1关系运算符79
4.3.2逻辑运算符79
4.3.3简化求值81
4.3.4标志82
4.3.5避免布尔表达式中的冗余82
4.3.6布尔计算示例83
4.4 if语句84
4.4.1单行if语句85
4.4.2多行if语句86
4.4.3 if/else语句86
4.4.4级联if语句86
4.4.5?:运算符(可选的)87
4.5 switch语句89
4.6 while语句91
4.6.1 while循环的应用91
4.6.2无限循环93
4.6.3解决半途退出问题93
4.7 for语句95
4.7.1嵌套的for循环97
4.7.2 for和while的关系98
4.7.3 for语句中浮点型数据的使用问题99
小结100
复习题101
程序设计练习102
第5章 函数105
5.1使用库函数105
5.2函数声明107
5.3自己编写函数108
5.3.1 return语句109
5.3.2将函数与主程序放在一起110
5.3.3包含内部控制结构的函数111
5.3.4返回非数字值的函数113
5.3.5谓词函数113
5.3.6测试字符串是否相等的谓词函数115
5.4函数调用过程机制116
5.4.1参数传递117
5.4.2在其他函数中调用函数119
5.5过程125
5.6逐步精化127
5.6.1从顶开始127
5.6.2实现PrintCalendar128
5.6.3实现PrintCalendarMonth128
5.6.4完成最后的片段132
小结137
复习题138
程序设计练习138
第6章 算法143
6.1测试素数144
6.1.1一个IsPrime的简单版本144
6.1.2验证一个策略是否表示一个算法144
6.1.3说明IsPrime算法的正确性145
6.1.4改进算法的效率146
6.1.5在各个可选方案中选择148
6.2计算最大公约数149
6.2.1 brute-force算法149
6.2.2欧几里得算法150
6.2.3欧几里得算法的正确性说明(可选)150
6.2.4比较GCD算法的效率151
6.3数值算法151
6.3.1连续逼近152
6.3.2报告错误153
6.4级数展开154
6.4.1 Zeno悖论154
6.4.2用级数展开法设计平方根函数156
6.4.3估计平方根的泰勒级数展开(可选)156
6.4.4泰勒级数近似的实现157
6.4.5停留在收敛半径之内159
6.5指定数值类型的大小161
6.5.1整数类型161
6.5.2无符号类型162
6.5.3浮点类型162
小结163
复习题163
程序设计练习164
第二部分 库和模块化开发170
第7章 库和接口:一个简单的图形库170
7.1接口的概念171
7.2图形库介绍172
7.2.1 graphics.h的基本模型173
7.2.2 graphics.h接口的函数174
7.2.3软件包初始化178
7.2.4画直线178
7.2.5画圆和弧179
7.2.6获取有关图形窗口的信息181
7.3建立自己的工具182
7.3.1定义DrawBox182
7.3.2定义DrawCenteredCircle184
7.3.3绝对坐标和相对坐标间的切换184
7.3.4定义过程的好处185
7.4解决一个较大的问题185
7.4.1使用逐步精化186
7.4.2实现DrawHouse过程187
7.4.3寻找共同的模式188
7.4.4结束分解189
小结193
复习题194
程序设计练习195
第8章 设计接口:一个随机数库200
8.1接口设计201
8.1.1同一主题的重要性201
8.1.2简单性和信息隐藏的原则202
8.1.3满足客户的需要202
8.1.4通用工具的优势203
8.1.5稳定性的价值203
8.2用计算机生成随机数204
8.2.1确定行为与非确定行为204
8.2.2随机数和伪随机数204
8.2.3 ANSI C中生成伪随机数205
8.2.4改变随机数的范围206
8.2.5将此问题通用化210
8.3在库中保存工具212
8.3.1接口的内容212
8.3.2写random.h接口213
8.3.3 random.c的实现214
8.3.4构造客户程序215
8.3.5初始化随机数发生器217
8.4评价random.h接口的设计219
8.4.1产生随机实数220
8.4.2模拟一个概率事件220
8.4.3在接口中包含头文件221
8.4.4完成随机数软件包的实现231
8.5使用随机数软件包222
小结225
复习题226
程序设计练习226
第9章 字符串和字符233
9.1枚举的原理234
9.1.1在机器内部表示枚举类型234
9.1.2将枚举类型表示为整数235
9.1.3定义新的枚举类型235
9.1.4枚举类型的操作237
9.1.5标量类型238
9.2字符238
9.2.1数据类型char238
9.2.2 ASCII代码239
9.2.3字符常量240
9.2.4 ASCII代码方案的重要特性240
9.2.5特殊字符241
9.2.6字符运算242
9.2.7 ctype.h接口243
9.2.8涉及字符的控制语句244
9.2.9字符的输入输出245
9.3字符串作为抽象数据类型245
9.3.1分层抽象246
9.3.2抽象类型的概念247
9.4 strlib.h接口247
9.4.1确定字符串的长度248
9.4.2从一个字符串中选择字符248
9.4.3连接249
9.4.4将字符转换为字符串250
9.4.5抽取字符串的一部分250
9.4.6比较两个字符串251
9.4.7在一个字符串内搜索252
9.4.8大小写转换255
9.4.9数值转换255
9.4.10效率和strlib.h库257
小结257
复习题258
程序设计练习260
第10章 模块化开发264
10.1 Pig Latin——一个模块化开发的案例研究266
10.1.1应用自顶向下的设计266
10.1.2使用伪代码267
10.1.3实现TranslateLine268
10.1.4考虑空格和标点符号的问题268
10.1.5精化单词的定义270
10.1.6设计记号扫描器271
10.1.7完成TranslateLine的实现272
10.1.8定义扫描器模块接口274
10.2在模块中维护内部状态276
10.2.1全局变量276
10.2.2使用全局变量的危险性277
10.2.3保持变量的模块私有化277
10.2.4初始化全局变量278
10.2.5私有函数279
10.3实现扫描器抽象280
小结286
复习题286
程序设计练习286
第三部分 复合数据类型294
第11章 数组294
11.1数组295
11.1.1数组声明295
11.1.2数组选择296
11.1.3一个简单的数组实例297
11.1.4改变下标值的范围298
11.2数据的内部表示法299
11.2.1比特、字节和字299
11.2.2内存地址300
11.2.3运算符sizeof301
11.2.4变量的内存分配301
11.2.5引用超出数组范围的元素302
11.3数组作为参数进行传递303
11.3.1元素个数的通用化304
11.3.2数组参数传递机制306
11.3.3实现函数PrintIntegerArray和GetIntegerArray308
11.3.4实现函数ReverseIntegerArray309
11.3.5实现函数SwapIntegerElements310
11.4使用数组制作表格314
11.5数组的静态初始化320
11.5.1自动确定数组大小320
11.5.2确定初始化数组的大小321
11.5.3初始化数组和标量类型321
11.6多维数组321
11.6.1向函数传送多维数组322
11.6.2初始化多维数组323
小结324
复习题324
程序设计练习326
第12章 查找和排序332
12.1查找332
12.1.1在整数数组中查找333
12.1.2关于查找的另一个更复杂的例子335
12.1.3线性查找337
12.1.4二分查找338
12.1.5查找算法的相对效率339
12.2排序341
12.2.1对一个整数数组排序342
12.2.2选择排序算法343
12.2.3选择排序效率的评估346
12.2.4测试程序的运行时间347
12.2.5选择排序的算法分析347
小结348
复习题348
程序设计练习349
第13章 指针354
13.1将地址作为数据值355
13.2 C语言的指针操作356
13.2.1在C语言中声明指针变量356
13.2.2基本的指针操作357
13.2.3特殊指针NULL359
13.3通过引用传递参数359
13.3.1设计函数SwapInteger361
13.3.2用引用调用返回多个结果362
13.3.3过度使用引用调用的危险364
13.4指针和数组364
13.4.1指针运算365
13.4.2运算符++++和--的新作用367
13.4.3指针的自增和自减369
13.4.4指针和数组的关系369
13.5动态分配371
13.5.1 Void*类型371
13.5.2动态数组372
13.5.3查找malloc中的错误373
13.5.4释放内存374
小结374
复习题375
程序设计练习377
第14章 再论字符串381
14.1 string类型的概念表示381
14.1.1字符串作为数组382
14.1.2字符串作为指针384
14.1.3字符串作为抽象类型384
14.1.4字符串参数385
14.1.5字符串变量385
14.1.6指针和数组变量间的区别387
14.1.7决定字符串的表示方法388
14.2 ANSI字符串库389
14.2.1 strcpy函数390
14.2.2 strncpy函数392
14.2.3 strcat和strncat函数393
14.2.4 strlen、strcmp和strncmp函数394
14.2.5 strchr、strrchr和strstr函数394
14.2.6 ANSI字符串函数的应用395
14.3 strlib库的实现397
14.3.1实现转换函数398
14.3.2 strlib分配函数的实现398
小结400
复习题400
程序设计练习401
第15章 文件404
15.1文本文件404
15.2 C语言中文件的使用406
15.2.1声明FILE*类型的变量406
15.2.2打开文件406
15.2.3执行I/O操作407
15.2.4关闭文件407
15.2.5标准文件408
15.3字符I/O408
15.3.1文件更新410
15.3.2在输入文件中重新读取字符413
15.4面向行的I/O415
15.5格式化I/O417
15.5.1 printf的三种形式417
15.5.2 scanf函数417
15.5.3用scanf读入字符串419
15.5.4格式化I/O的一个实例420
15.5.5使用scanf的局限423
小结423
复习题424
程序设计练习425
第16章 记录431
16.1数据记录的概念432
16.2记录在C语言中的使用432
16.2.1定义一个结构类型433
16.2.2声明结构变量433
16.2.3记录选择434
16.2.4记录初始化434
16.2.5简单记录434
16.3数组与记录的结合435
16.4记录的指针437
16.4.1定义一个指向记录类型的指针438
16.4.2为记录数据分配空间439
16.4.3对记录指针进行操作440
16.5创建记录的数据库440
16.5.1创建员工信息数据库441
16.5.2数据库的使用443
16.6基于记录的应用程序设计444
16.6.1使用数据库的重要性444
16.6.2问题的框架445
16.6.3设计内部表示445
16.6.4设计外部结构447
16.6.5程序代码448
16.6.6数据驱动设计方法的重要性455
小结455
复习题458
程序设计练习458
第17章 深入学习465
17.1递归465
17.1.1递归的简单说明466
17.1.2 Factorial函数467
17.1.3递归信任471
17.1.4递归范例472
17.1.5排列的生成472
17.1.6用递归的思想思考475
17.2抽象数据类型475
17.2.1队列抽象476
17.2.2以队列抽象表示类型476
17.2.3 queue.h接口478
17.2.4实现队列抽象479
17.2.5队列抽象的另一种实现方法484
17.3算法分析486
17.3.1评估算法效率487
17.3.2 O标记487
17.3.3再看选择排序488
17.3.4分而治之策略489
17.3.5合并两个数组490
17.3.6合并排序算法491
17.3.7合并排序的计算复杂性492
17.3.8比较平方复杂性与MogN复杂性的性能493
小结493
复习题494
程序设计练习495
附录501
附录A C语言的语法和结构总结501
附录B 库源代码517
热门推荐
- 3905032.html
- 3086606.html
- 1314685.html
- 2523263.html
- 56446.html
- 2007366.html
- 1923195.html
- 2917675.html
- 3205563.html
- 3096729.html
- http://www.ickdjs.cc/book_1164127.html
- http://www.ickdjs.cc/book_3247543.html
- http://www.ickdjs.cc/book_466666.html
- http://www.ickdjs.cc/book_2315905.html
- http://www.ickdjs.cc/book_3354872.html
- http://www.ickdjs.cc/book_1923303.html
- http://www.ickdjs.cc/book_3144535.html
- http://www.ickdjs.cc/book_2471300.html
- http://www.ickdjs.cc/book_2280111.html
- http://www.ickdjs.cc/book_3062640.html