C/C++函数与算法速查宝典
新华书店全新正版,极速发货,假一罚十,可开电子发票,请放心购买。
¥
55.41
6.2折
¥
89.9
全新
库存11件
作者陈锐,孙玉胜,梁辉
出版社人民邮电出版社
ISBN9787115588357
出版时间2022-09
装帧平装
开本16开
定价89.9元
货号1202742504
上书时间2024-10-12
商品详情
- 品相描述:全新
- 商品描述
-
作者简介
1.陈锐,硕士生导师,中国人工智能学会情感智能专委会委员、中国图象图形学学会人机交互专委会委员。目前从事数据结构与算法方面的教学工作,以及人工智能、推荐系统方面的科研工作。出版多部作品,其中两部获批省部级规划教材立项建设。
2.孙玉胜,硕士生导师,电子书信息工程国家专业建设点负责人,“Python 程序设计”省级课程负责人。目前从事电子信息、软件工程专业教学和科研工作。
3.梁辉,教授,博士生导师,河南省计算机动画实现技术国际联合实验室主任,数字媒体技术专业带头人,“计算机动画与虚拟现实”科技创新团队带头人。目前从事计算机动画、数字媒体技术、虚拟现实的科研工作。
目录
第1篇 C语言函数篇
第1章 ctype.h库函数2
ctype.h库函数主要包括一些字符处理函数。例如,其中的isalnum函数用来判断是否是英文字母或数字字符,tolower函数是将大写字母转换为小写字母。
1.1 字符测试函数2
1.1.1isalnum函数——判断是否是英文字母或数字字符2
1.1.2isalpha函数——判断是否为英文字母3
1.1.3isascii函数——判断ASCII码是否位于0~1274
1.1.4iscntrl函数——判断是否是控制字符5
1.1.5isdigit函数——判断是否是数字字符6
1.1.6isgraph函数——判断是否是可打印字符(不包括空格)7
1.1.7islower函数——判断是否是小写英文字母8
1.1.8isprint函数——判断是否是可打印字符(包括空格)10
1.1.9ispunct函数——判断是否是标点符号11
1.1.10isspace函数——判断是否是空白符12
1.1.11isxdigit函数——判断是否是十六进制字符13
1.2 字符转换函数15
1.2.1tolower函数——将大写英文字母转换为小写英文字母15
1.2.2toupper函数——将小写英文字母转换为大写英文字母16
1.2.3toascii函数——将字符转换为ASCII码17
第2章 stdio.h库函数19
stdio.h库函数主要包括常用的输入/输出函数。例如,其中的getch函数用来接受从键盘输入的字符,printf函数用来格式化输出数据,fprintf函数用来格式化输出数据到指定的文件中。
2.1 字符输入/输出函数19
2.1.1getch函数和getche函数——接受从键盘输入的字符19
2.1.2getchar函数——接受一个字符并显示在屏幕上20
2.1.3gets函数——读取一个字符串21
2.1.4putchar函数——在屏幕上输出一个字符23
2.1.5puts函数——在屏幕上输出一个字符串24
2.2 格式化输入/输出函数25
2.2.1printf函数——格式化输出数据25
2.2.2scanf函数——格式化输入数据28
2.2.3sprintf函数——输出格式化数据到指定的数组中30
2.2.4sscanf函数——从字符串读取格式化数据31
2.2.5vprintf函数——在屏幕上输出格式化变长参数列表33
2.2.6vscanf函数——读取从键盘输入的格式化数据34
2.3 文件输入/输出函数35
2.3.1fgetc函数和getc函数——从文件中读取一个字符35
2.3.2fgets函数——从文件中读取多个字符36
2.3.3fprintf函数——格式化输出数据到指定的文件中38
2.3.4fscanf函数——从文件中读取格式化数据39
2.3.5fputc函数和putc函数——输出一个字符到指定的文件中40
2.3.6fputs函数——输出一个字符串到指定的文件中42
2.3.7fread函数——从文件中读取一个数据块43
2.3.8fwrite函数——向文件中写入数据块44
2.3.9vfprintf函数——输出格式化数据到指定的文件46
2.3.10vfscanf函数——从文件中读取格式化数据47
2.4 文件定位函数48
2.4.1fseek函数——移动文件位置指针到指定位置49
2.4.2ftell函数——得到文件位置指针的当前值50
2.4.3rewind函数——将文件位置指针移动到文件的开头51
2.5 文件存取操作函数53
2.5.1fclose函数——关闭文件53
2.5.2fflush函数——将缓冲区的内容写入文件54
2.5.3fopen函数——打开文件55
2.5.4remove函数——删除文件57
2.5.5rename函数——重命名文件58
2.6 文件错误控制函数60
2.6.1clearerr函数——清除文件中的错误标志60
2.6.2feof函数——是否到了文件末尾61
2.6.3ferror函数——检查文件操作是否出现了错误62
2.7 文件输入/输出函数综合应用范例64
第3章 string.h库函数70
string.h库函数主要包括常用的字符串操作函数。例如,其中的strcmp函数用来比较两个字符串的大小,strcpy函数用来将一个字符串拷贝到另一个字符串中,strcat函数用来将两个字符串连接在一起。
3.1 字符串比较函数70
3.1.1memcmp函数和memicmp函数——比较两个字符串70
3.1.2strcmp函数和stricmp函数——比较两个字符串72
3.1.3strncmp函数和strnicmp函数——比较两个字符串74
3.2 字符串拷贝函数75
3.2.1memcpy函数——拷贝n个字节到另一个数组75
3.2.2memmove函数——拷贝n个字节到数组中(可重叠)76
3.2.3strcpy函数——字符串拷贝77
3.2.4strncpy函数——拷贝n个字符到目的字符数组78
3.3 字符串连接函数80
3.3.1strcat函数——连接两个字符串80
3.3.2strncat函数——将字符串1的前n个字符连接到字符串281
3.4 字符串查找函数82
3.4.1memchr函数——在内存块中查找字符83
3.4.2strchr函数——在字符串中查找字符84
3.4.3strstr函数——查找字符串85
3.4.4strtok函数——分解字符串87
3.5 字符串转换函数88
3.5.1strlwr函数——将大写字母转换为小写字母88
3.5.2strrev函数——将字符串逆置90
3.5.3strupr函数——将小写字母转换为大写字母91
3.6 其他函数92
3.6.1memset函数——用指定的字符填充字符串92
3.6.2strlen函数——求字符串的长度93
3.7 字符串函数综合应用范例94
第4章 stdlib.h库函数99
stdlib.h库函数主要包括字符串转换函数、动态内存管理函数、过程控制函数等。例如,atof函数是将字符串转换为双精度浮点数,malloc函数是分配内存空间,abort函数用来终止当前的进程。
4.1 字符串转换函数99
4.1.1atof函数——将字符串转换为双精度浮点数99
4.1.2atoi函数——将字符串转换为整数101
4.1.3atol函数——将字符串转换为长整型数102
4.1.4strtod函数——将字符串转换为双精度浮点数103
4.1.5strtol函数——将字符串转换为长整型数104
4.2 动态内存管理函数106
4.2.1malloc函数——分配内存空间106
4.2.2calloc函数——分配内存空间并初始化107
4.2.3free函数——释放内存空间109
4.2.4realloc函数——重新分配内存空间111
4.2.5动态内存管理函数综合应用范例112
4.3 随机数生成函数116
4.3.1rand函数——产生伪随机数116
4.3.2srand函数——初始化随机数发生器117
4.4 查找函数和排序函数118
4.4.1bsearch函数——折半查找118
4.4.2qsort函数——快速排序119
4.4.3排序函数和查找函数综合应用范例121
4.5 过程控制函数123
4.5.1abort函数——终止当前进程123
4.5.2exit函数——退出当前程序126
4.5.3system函数——执行系统命令127
第5章 math.h库函数129
math.h库函数主要包括三角函数、指数和对数函数、幂指数和开方函数等。例如,cos函数用来求角度的余弦值,log函数用来求自然对数,pow10函数用来求10exp的值。
5.1 三角函数129
5.1.1cos函数——求角度的余弦值129
5.1.2sin函数——求角度的正弦值130
5.1.3tan函数——求角度的正切值131
5.1.4acos函数——求角度的反余弦值132
5.1.5asin函数——求角度的反正弦值133
5.1.6atan函数——求角度的反正切值134
5.2 指数和对数函数136
5.2.1exp函数——求以自然数e为底的指数值136
5.2.2log函数——求自然对数137
5.2.3log10函数——求对数138
5.3 幂指数和开方函数139
5.3.1pow函数——求baseexp的值139
5.3.2pow10函数——求10exp的值140
5.3.3sqrt函数——求平方根141
5.4 绝对值函数142
5.4.1abs函数——求整数的绝对值143
5.4.2fabs函数——求浮点数的绝对值144
5.4.3labs函数——求长整型数据的绝对值145
5.5 其他函数146
5.5.1floor函数——求不大于x的优选整数146
5.5.2fmod函数——返回x/y的余数147
5.5.3frexp函数——将浮点数分解为尾数和指数148
5.5.4hypot函数——根据直角边求斜边149
5.5.5modf函数——将浮点数分解为整数部分和小数部分151
5.5.6poly函数——计算xn的值152
5.6 数学函数综合应用范例153
5.6.1计算方程的根153
5.6.2求整数序列的第i个元素155
5.6.3求2s+2t的第10项156
第6章 stdarg.h库函数159
stdarg.h库函数主要包括3个用来处理变长参数的宏。例如,va_arg宏用来获取下一个参数,va_start宏用来初始化变长参数列表。
6.1 va_arg宏159
6.2 va_start宏161
6.3 va_end宏162
6.4 可变参数函数综合应用范例164
第7章 time.h库函数166
time.h库函数主要包括一些时间处理函数。例如,其中的time函数用来得到当前的时间,ctime函数用来将时间转换为字符串形式。
7.1 时间操作函数166
7.1.1clock函数——返回CPU时钟计时单元166
7.1.2difftime函数——计算两个时钟之间的间隔167
7.1.3time函数——得到当前的时间169
7.2 时间格式转换函数170
7.2.1asctime函数——将时间格式转换为字符串形式170
7.2.2ctime函数——将时间转换为字符串形式171
7.2.3gmtime函数——返回(格林尼治)时间结构的指针172
7.2.4localtime函数——返回指向时间结构的指针174
7.2.5mktime函数——将structtm格式的时间转换为秒175
7.2.6strftime函数——将时间格式化为字符串176
第2篇 算法篇
第8章 排序算法180
排序算法是程序设计中较为常用的算法。排序算法主要包括插入排序、交换排序、选择排序、归并排序和基数排序。
8.1 插入排序180
8.1.1直接插入排序180
8.1.2折半插入排序182
8.1.3希尔排序185
8.2 交换排序187
8.2.1冒泡排序188
8.2.2快速排序191
8.3 选择排序195
8.3.1简单选择排序195
8.3.2堆排序199
8.4 归并排序205
8.5 基数排序207
第9章 查找算法214
查找算法是程序设计中常用的算法。查找算法主要包括基于线性表的查找、基于树的查找和哈希表的查找。
9.1 基于线性表的查找214
9.1.1顺序查找214
9.1.2折半查找216
9.1.3分块查找219
9.2 基于树的查找222
9.2.1基于二叉排序树的查找操作222
9.2.2基于二叉排序树的插入操作224
9.3 哈希表的查找227
9.3.1构造哈希表227
9.3.2处理冲突229
第10章 递推算法234
递推算法是通过不断迭代,用旧的变量值递推得到新值。递推算法常用来解决重复计算的问题,如斐波那契数列、存取问题等。
10.1顺推法234
10.1.1斐波那契数列234
10.1.2将十进制数转换为二进制数236
10.1.3求优选公约数和最小公倍数238
10.1.4质因数的分解240
10.1.5角谷猜想241
10.1.6母牛生小牛问题242
10.1.7杨辉三角243
10.2逆推法245
10.2.1猴子摘桃问题245
10.2.2存取问题246
第11章 枚举算法248
枚举算法也称穷举算法,它是编程中常用的一种算法。在解决某些问题时,可能无法按照一定规律从众多的候选解中找出正确的答案。此时,可以从众多的候选解中逐一取出候选答案,并验证候选答案是否为正确的解。
11.1判断n是否能被3、5、7整除248
11.2百钱买百鸡251
11.3五猴分桃252
11.4求优选连续子序列和254
11.5填数游戏256
11.6谁在说谎257
第12章 递归算法260
递归是自己调用自己,它将一个复杂的问题进行整体考虑,只要知道最基本问题的答案,就可以得到整个问题的答案。常见的递归问题有阶乘、斐波那契数列和优选公约数等。
12.1简单递归260
12.1.1求n的阶乘260
12.1.2斐波那契数列263
12.1.3求n个数中的优选者265
12.1.4进制转换266
12.1.5求优选公约数267
12.2复杂递归268
12.2.1逆置字符串268
12.2.2和式分解270
12.2.3和式分解(分解出的和数非递增排列)272
12.2.4求无序序列中的第k大元素273
12.2.5从1~n个自然数中任选r个数的所有组合数275
12.2.6大牛生小牛问题277
第13章 贪心算法279
贪心算法是一种不追求很优解,只希望找到较为满意解的方法。贪心算法省去了为找很优解要穷尽所有可能而必须耗费的大量时间,因此,它一般可以快速得到比较满意的解。贪心算法常以当前情况为基础做很优选择,而不考虑各种可能的整体情况,所以贪心算法不需要回溯。
13.1找零钱问题279
13.2哈夫曼编码281
13.3加油站问题288
第14章 回溯算法290
回溯算法也称为试探法,是一种选优搜索法。该方法首先暂时放弃关于问题规模大小的,并将问题的候选解按照某种顺序逐一枚举和检验。当发现当前的候选解不可能是解时,就选择下一个候选解;倘若当前候选解只是不满足问题的规模要求,但满足所有其他要求时,则继续扩大当前候选解的规模,并继续向前试探。如果当前的候选解满足包括问题规模在内的所有要求,则该候选解就是问题的一个解。在寻找解的过程中,放弃当前候选解,退回上一步重新选择候选解的过程就称为回溯。
14.1和式分解(非递归实现)290
14.2填字游戏293
14.3装箱问题297
第15章 分治算法300
分治算法是将一个规模为N的问题分解为K个规模较小的子问题进行求解,这些子问题相互独立且与原问题性质相同。求出子问题的解,就可得到原问题的解。优选子序列和、求x的n次幂、众数问题等就是利用分治算法来实现的。
15.1优选子序列和问题300
15.2求x的n次幂302
15.3众数问题304
15.4求n个数中的优选者和最小者306
15.5整数划分问题308
15.6大整数的乘法问题310
第16章 矩阵算法315
矩阵算法主要通过分析数组中元素值的变化规律,巧妙利用数组下标与元素值之间的关系设计算法。矩阵算法往往需要交换或者存取矩阵中的某个元素,这就需要灵活掌握二维数组两个下标的变换。
16.1打印拉丁方阵315
16.2打印蛇形方阵317
16.3打印螺旋矩阵(非递归和递归实现)318
16.4打印逆螺旋矩阵321
16.5将矩阵旋转90度322
16.6将上三方阵以行序为主序转换为以列序为主序324
第17章 实用算法327
在学习和工作中,经常会遇到一些与实际生活紧密相关的问题,这些问题也可通过算法来得到答案,从而大大提高我们的学习和工作效率。比较常见的实用算法有计算一年中的第几天、大小写金额转换、微信抢红包问题、求算术表达式的值、一元多项式的乘法、大整数乘法。
17.1一年中的第几天327
17.2大小写金额转换329
17.3将15位身份证号转换为18位333
17.4微信抢红包问题335
17.5求算术表达式的值336
17.6一元多项式的乘法345
17.7大整数乘法351
17.8迷宫求解353
第18章 程序调试技术359
程序调试也是程序员推荐的一项技能。对于初学者来说,通过不断调试程序,既验证了程序的正确性,又深入地理解了程序的算法思想,提高了调试程序的能力,为今后深入学习计算机的其他内容打下坚实的基础。
18.1为什么要调试程序359
18.2程序调试360
18.2.1如何使用VisualStudio2019开发环境调试程序360
18.2.2冒泡排序程序调试366
18.2.3合并链表程序调试371
以下章节见电子资源
第3篇 C++输入/输出流与容器篇
第19章 ios_base类379
ios_base类主要是C++输入/输出流的基类,它主要包含流的格式化函数。例如,flags函数用来获取或设置流格式,precision函数用来得到/设置浮点数的精度。
19.1flags函数——得到/设置流的格式标志380
19.2setf函数和unsetf函数——设置和清除流的格式标志381
19.3precision函数——得到/设置浮点数的精度383
19.4width函数——得到/设置域宽384
第20章 iostream类386
iostream类派生自istream类和ostream类。iostream类中的函数非常常用。例如,isotream类的对象cout用来控制输出、cin用来控制输入。
20.1get函数——无格式的输入操作388
20.2getline函数——接受输入的字符串390
20.3ignore函数——忽略指定的字符391
20.4peek函数——从流中接受输入的字符392
20.5read函数——读取一个字符块393
20.6putback函数——将读取的字符返回给输入流394
20.7put函数——输出字符396
20.8fill函数——得到/设置填充字符397
第21章 文件流类399
ifstream类、ofstream类和fstream类都是对文件进行读/写操作的类,我们将这些类统称为文件流类。在C++中,要对文件进行读/写操作,就需要先将文件流类与文件关联起来(一般采用open的方式或构造函数的方式),然后再利用文件流对文件进行操作。
21.1ifstream构造函数——创建输入流对象400
21.2rdbuf函数——返回指向filebuf的指针401
21.3is_open函数——检测文件是否被打开403
21.4open函数和close函数——打开和关闭文件404
21.5read函数和write函数——从流中读取数据和向流中写入数据406
21.6seekg函数和tellg函数——设置和得到流的位置指针位置407
21.7seekp函数和tellp函数——设置和得到文件的位置指针位置409<
— 没有更多了 —
以下为对购买帮助不大的评价