Skip to Content
C++程序设计:原理与实践(基础篇)(原书第2版)
book

C++程序设计:原理与实践(基础篇)(原书第2版)

by 本贾尼 斯特劳斯特鲁普
August 2021
Intermediate to advanced
450 pages
9h 36m
Chinese
Pearson
Content preview from C++程序设计:原理与实践(基础篇)(原书第2版)

习题

1.你使用的C++编译器中,指针值的输出形式是怎样的?提示:不要查阅你的C++编译器文档。

2.一个int占多少字节?double呢?bool呢?不要使用sizeof,除非你要验证自己的答案。

3.编写一个函数void to_low(char*s),将C风格字符串s中的所有大写字符都替换为对应的小写字符。例如,“Hello,World!”替换为“hello,world!”。不要使用任何标准库函数。C风格字符串是一个由0结束的字符数组,因此在结尾你会发现一个值为0的char。

4.编写一个函数char*strdup(const char*),将C风格字符串复制到自由空间上分配的内存中。不要使用任何标准库函数。

5.编写一个函数char*findx(const char*s,const char*x),在C风格字符串s中查找字符串x首次出现的位置。

6.本章没有说明当你使用new用尽内存时会发生什么。这种情况被称为内存耗尽(memory exhaustion)。搞清楚将会发生什么。你有两个明显的选择:查阅你的C++编译器的文档,或者编写一个用无限循环分配内存但不释放的程序。两者都尝试一下。在失败之前你大约分配了多少内存?

7.编写一个程序从cin读取字符保存到自由空间上分配的数组中。读取字符直到输入感叹号(!)为止。不要使用std::string。不要担心内存耗尽。

8.重新做练习7,但这次将读取的字符存入std::string,而不是自由空间上的内存中(string知道如何使用自由空间)。

9.栈向哪个方向生长:向上(趋向高地址)还是向下(趋向低地址)?自由空间初始时向哪个方向生长(在使用delete之前)?编写程序来找到答案。

10.查看你对练习7的解决方案。是否有办法输入数组而导致溢出;也就是说,是否能输入比为数组分配的空间更多的字符(一个严重的错误)?如果你试图输入比分配的空间更多的字符时,将会发生什么合理的现象? ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

C++语言导学(原书第2版)

C++语言导学(原书第2版)

本贾尼 斯特劳斯特鲁普
管理Kubernetes

管理Kubernetes

Brendan Burns, Craig Tracey
Go程序设计语言

Go程序设计语言

艾伦A. A.多诺万, 布莱恩W. 柯尼汉

Publisher Resources

ISBN: 9787111562252