C++ Primer (第五版)第三章习题部分答案

慈云数据 8个月前 (03-13) 技术支持 99 0

       在我自学C++过程中,我选择了C++Primer这本书,并对部分代码习题进行了求解以及运行结果。接下来几个月我将为大家定时按章节更新习题答案与运行结果,运行环境(Visual Studio Code,Windows 11):

C++ Primer (第五版)习题答案总目录:

https://blog.csdn.net/weixin_48467622/article/details/136418131?spm=1001.2014.3001.5501

目录

3.1.1.使用恰当的using 声明重做 1.4.1节和2.6.2节的练习。

1.4.1 

 2.6.2

3.2.编写一段程序从标准输入中一次读入一行,然后修改该程序使其一次读入一个词。

One Row

One Word!

3.4.编写一段程序读取两个字符串,比较其是否相等并输出结果。如果不相等,输出比较大的那个字符串。改写上述程序,比较输入的两个字符串是否等长,如果不等长,输出长度较大的那个字符串。

3.4.1

3.4.2

3.5.编写一段程序从标准输入中读入多个字符串并将他们连接起来,输出连接成的大字符串。然后修改上述程序,用空格把输入的多个字符串分割开来。

3.5.1.字符串拼接

3.5.2.空格拼接。

3.6 编写一段程序,使用范围for语句将字符串内的所有字符用X代替。

3.7 就上一题完成的程序而言,如果将循环控制变量的类型设为char将发生什么?先估计一下结果,然后实际编程进行验证。

3.8 分别用while循环和传统的for循环重写第一题的程序,你觉得哪种形式更好呢?为什么?

3.9 下面的程序有何作用?它合法吗?如果不合法,为什么?

3.10 编写一段程序,读入一个包含标点符号的字符串,将标点符号去除后输出字符串剩余的部分。

3.14 编写一段程序,用cin读入一组整数并把它们存入一个vector对象

3.15 改写上题的程序,不过这次读入的是字符串。

3.16 编写一段程序,把练习3.13中vector对象的容量和具体内容输出出来。检验你之前的回答是否正确,如果不对,回过头重新学习3.3.1节(第87页)直到弄明白错在何处为止。

3.17 从cin读入一组词并把它们存入一个vector对象,然后设法把所有词都改写为大写形式。输出改变后的结果,每个词占一行。

3.19 如果想定义一个含有10个元素的vector对象,所有元素的值都是42,请列举出三种不同的实现方法。哪种方法更好呢?为什么?

3.20 读入一组整数并把他们存入一个vector对象,将每对相邻整数的和输出出来。改写你的程序,这次要求先输出第一个和最后一个元素的和,接着输入第二个和倒数第二个元素的和,以此类推。

3.21 请使用迭代器重做3.3.3节的第一个练习。

3.22 修改之前那个输出text第一段的程序,首先把text的第一段全部改成大写形式,然后输出它。

3.23 编写一段程序,创建一个含有10个整数的vector对象,然后使用迭代器将所有元素的值都变成原来的两倍。输出vector对象的内容,检验程序是否正确。

3.24 请使用迭代器重做3.3.3节的最后一个练习。

3.25 3.3.3节划分分数段的程序是使用下标运算符实现的,请利用迭代器改写该程序实现完全相同的功能。

3.31 编写一段程序,定义一个含有10个int的数组,令每个元素的值就是其下标值。

3.32 将上一题刚刚创建的数组拷贝给另一数组。利用vector重写程序,实现类似的功能。

3.34 假定p1 和 p2 都指向同一个数组中的元素,则下面程序的功能是什么?什么情况下该程序是非法的?

3.35 编写一段程序,利用指针将数组中的元素置为0。

3.36 编写一段程序,比较两个数组是否相等。再写一段程序,比较两个vector对象是否相等。

3.39 编写一段程序,比较两个string对象。再编写一段程序,比较两个C风格字符串的内容。

3.40 编写一段程序,定义两个字符数组并用字符串字面值初始化它们;接着再定义一个字符数组存放前面两个数组连接后的结果。使用strcpy和strcat把前两个数组的内容拷贝到第三个数组当中。

3.41 编写一段程序,用整型数组初始化一个vector对象。

3.42 编写一段程序,将含有整数元素的vector对象拷贝给一个整型数组。

3.43 编写3个不同版本的程序,令其均能输出ia的元素。版本1使用范围for语句管理迭代过程;版本2和版本3都使用普通for语句,其中版本2要求使用下标运算符,版本3要求使用指针。此外,在所有3个版本的程序中都要直接写出数据类型,而不能使用类型别名、auto关键字和decltype关键字。

3.44 改写上一个练习中的程序,使用类型别名来代替循环控制变量的类型。

3.45 再一次改写程序,这次使用auto关键字。


3.1.1.使用恰当的using 声明重做 1.4.1节和2.6.2节的练习。

1.4.1 

#include 
 
using std::cin;
using std::cout;
using std::endl;
 
int main()
{
	int sum = 0;
	for (int val = 1; val  total.units_sold >> totalprice)
    {
      total.revenue = total.units_sold*totalprice;
      Sale_data nextdata;
      double nextprice;
      while(cin >> nextdata.bookNo >> nextdata.units_sold >> nextprice)
      {
        nextdata.revenue = nextprice*nextdata.units_sold;
        if(total.bookNo == nextdata.bookNo)
        {
          total.units_sold += nextdata.units_sold;
          total.revenue += nextdata.revenue;
        }
        else
        {
          cout 
微信扫一扫加客服

微信扫一扫加客服

点击启动AI问答
Draggable Icon