C++Primer练习答案(仅供参考,如有错误还请指正)

2.5.2节练习

2.35

#include<iostream>
#include"Sales_item.h"
int main()
{
	const int i = 42;
	auto j = i;
	const auto& k = i;
	auto* p = &i;
	const auto j2 = i, & k2 = i;
	std::cout << typeid(i).name() << std::endl;
	std::cout << typeid(j).name() << std::endl;
	std::cout << typeid(k).name() << std::endl;
	std::cout << typeid(p).name() << std::endl;
	std::cout << typeid(j2).name() << std::endl;
	std::cout << typeid(k2).name() << std::endl;
}

2.36

a int 4

b int 4

c int 4

d int& 4

2.37

a int 3

b int 4

c int 3

d int& 3

2.38

  

2.39

1>D:\code\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.cpp(6,1): error C2628: “Foo”后面接“int”是非法的(是否忘记了“;”?)
1>D:\code\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.cpp(7,1): error C3874: “main”的返回类型应为“int”而非“Foo”
1>D:\code\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.cpp(8,10): error C2440: “return”: 无法从“int”转换为“Foo”
1>D:\code\ConsoleApplication3\ConsoleApplication3\ConsoleApplication3.cpp(8,10): message : 无构造函数可以接受源类型,或构造函数重载决策不明确

2.41

#include<iostream>
#include<string>
#include"Sales_item.h"

int main()
{
    Sales_data data1, data2;
    double price = 0;
    std::cin >> data1.bookNo >> data1.units_sold >> price;
    data1.revenue = data1.units_sold * price;
    std::cin >> data2.bookNo >> data2.units_sold >> price;
    data2.revenue = data2.units_sold * price;
    if (data1.bookNo == data2.bookNo) {
        unsigned totalCnt = data1.units_sold + data2.units_sold;
        double totalRevenue = data1.revenue + data2.revenue;
        std::cout << data1.bookNo << " " << totalCnt << " " << totalRevenue << " ";
        if (totalCnt != 0)
            std::cout << totalRevenue / totalCnt << std::endl;
        else
            std::cout << "(no sales)" << std::endl;
    }
    else
    {
        std::cerr << "Data must refer to the same ISBN" << std::endl;
        return -1;
    }
    return 0;
}

 3.1

#include<iostream>

using std::cout;
using std::endl;

int main()
{
	int i = 50, sum = 0;
	for (i = 50; i <= 100; ++i) {
		sum += i;
	}
	cout << sum << endl;
}

  

#include<iostream>

using std::cout;
using std::endl;

int main()
{
	int i = 10;
	for (i = 10; i >= 0; --i) {
		cout << i << " ";
	}
	
}

  

#include<iostream>

using std::cin;
using std::cout;
using std::endl;

int main()
{
	int a, b;
	cout << "input two numbers:" << endl;
	cin >> a >> b;
	if (a >= b)
		for (; b <= a; ++b)
			cout << b << " ";
	else
		for (; a <= b; ++a)
			cout << a << " ";
	
}

  

 
posted @ 2020-03-25 19:00  suangsuan  阅读(514)  评论(0)    收藏  举报