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 << " ";
}

浙公网安备 33010602011771号