c++ primer 5th 课后习题整理
Eroslol
控制工程研究生在读,刚开始接触编程
展开
-
7.6 7.7
#include#includeusing namespace std;struct Sales_data{ string const &isbn() const{ return bookNo; }; Sales_data &combine(const Sales_data&); string bookNo; unsigned units_sold = 0; d原创 2016-09-27 19:33:28 · 411 阅读 · 0 评论 -
3.22
#include#include#includeusing namespace std;int main(){ vector text; for (string line; getline(cin, line); text.push_back(line)); for (auto &word : text) { for (auto &ch:word) if (isalph原创 2016-09-21 19:40:25 · 238 阅读 · 0 评论 -
3.20
#include#include#includeusing namespace std;int main(){ vector v; for (int i; cin >> i; v.push_back(i)); for (int i = 0; i <= v.size() - 1; i++) cout << v[i] + v[i + 1] << endl; return 0;原创 2016-09-21 19:31:44 · 254 阅读 · 0 评论 -
3.17
#include#include#includeusing namespace std;int main(){ string s; vector vec; while (cin >> s) { vec.push_back(s); } for (auto &str : vec) for (auto &c : str) c = toupper(c); for (au原创 2016-09-21 14:05:31 · 235 阅读 · 0 评论 -
3.15
#include#include#includeusing namespace std;int main(){ vector v; for (string s; cin >> s; v.push_back(s)); return 0;}原创 2016-09-21 13:58:23 · 220 阅读 · 0 评论 -
3.14
#include#includeusing namespace std;int main(){ int n; vector v; while (cin >> n) { v.push_back(n); } return 0;}#include#includeusing namespace std;int main(){ vector v; for (in原创 2016-09-21 13:56:52 · 329 阅读 · 0 评论 -
3.10
#include#include#includeusing namespace std;int main(){ for (string s; getline(cin, s); cout << endl) for (auto c:s) if (!ispunct(c)) cout << c; return 0;}原创 2016-09-21 13:51:57 · 270 阅读 · 0 评论 -
3.8
#include#includeusing namespace std;int main(){ string s("a simple string"); int i = 0; while (s[i] != '\0') { s[i] = 'X'; i++; } cout << s << endl; return 0;}#include#includeusin原创 2016-09-21 13:46:50 · 197 阅读 · 0 评论 -
3.6
#include#includeusing namespace std;int main(){ string s("a simple string"); for (auto &c : s)//想要改变string对象中字符的值,必须要把循环变量定义成引用类型 c = 'X'; cout << s << endl; return 0;}原创 2016-09-21 13:43:32 · 240 阅读 · 0 评论 -
3.4
#include#includeusing namespace std;int main(){ string s1, s2; cin >> s1 >> s2; if (s1 == s2) cout << "相等" << endl; else cout s2) ? s1 : s2);//条件运算符优先级小于<< 所以必须要括号 return 0;}#in原创 2016-09-21 13:17:24 · 269 阅读 · 0 评论 -
3.2
#include#includeusing namespace std;int main(){ string s; while (getline(cin, s)) cout << s << endl; return 0;}#include#includeusing namespace std;int main(){ for (string s; get原创 2016-09-21 13:04:20 · 288 阅读 · 0 评论 -
2.41
#include#includeusing namespace std;struct Sale_data{ string bookNo; string bookName; unsigned units_sold = 0; double revenue = 0.0; double price = 0.0;};int main(){ Sale_data book; do原创 2016-09-21 11:17:16 · 540 阅读 · 0 评论 -
7.1
#include#includeusing namespace std;struct Sales_data{ std::string bookNo; unsigned units_sold = 0; double revenue = 0.0;};int main(){ Sales_data total; if (cin >> total.bookNo >> total.原创 2016-09-24 09:05:15 · 338 阅读 · 0 评论 -
6.44
#include#includeusing namespace std;inline bool is_shorter(const string &lft, const string &rht){ return lft.size() < rht.size();}int main(){ cout << is_shorter("pezy", "mooophy") << endl;原创 2016-09-24 08:38:49 · 428 阅读 · 0 评论 -
6.42
#include#include#includeusing namespace std;string make_plural(size_t ctr, const string &word, const string &ending = "s"){ return (ctr > 1) ? word + ending : word;}int main(){ cout << ma原创 2016-09-24 08:35:52 · 385 阅读 · 0 评论 -
2.40
struct Sale_data{ string bookNo; string bookName; unsigned units_sold = 0; double revenue = 0.0; double price = 0.0;};原创 2016-09-21 11:00:39 · 350 阅读 · 0 评论 -
3.23
#include#include#includeusing namespace std;int main(){ vector v{ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };//列表初始化 for (auto it = v.begin(); it != v.end(); it++) *it *= 2;//*it 返回迭代器iter所指元素的引用 for (原创 2016-09-21 19:57:01 · 256 阅读 · 0 评论 -
3.24
#include#includeusing namespace std;int main(){ vector v; for (int buffer; cin >> buffer; v.push_back(buffer)); for (auto it = v.cbegin(); it + 1 != v.cend(); it++) cout << *it + *(it + 1) <原创 2016-09-21 20:12:25 · 305 阅读 · 0 评论 -
3.25
#include#includeusing namespace std;int main(){ vector scores(11, 0);//unsigned int 缩写成unsigned for (unsigned grade; cin >> grade;) if (grade <= 100) ++*(scores.begin() + grade / 10); for (原创 2016-09-21 20:25:27 · 233 阅读 · 0 评论 -
7.4 7.5
#includeclass Person{private: string strName; string strAddress;public: string getName() const{ return strName; }//常量成员函数 string getAddress() const { return getAddress; }};原创 2016-09-27 16:51:11 · 418 阅读 · 0 评论 -
5.5
#include#include#includeusing namespace std;int main(){ vector scores = { "F", "D", "C", "B", "A", "A++" }; for (int g; cin >> g;) { string letter; if (g < 60) cout << (letter = scores原创 2016-09-22 15:25:00 · 248 阅读 · 0 评论 -
4.22
#includeusing namespace std;int main(){ for (unsigned g; cin >> g;) { auto result = g > 90 ? "high pass" : g < 60 ? "fail" : g < 75 ? "low pass" : "pass"; cout << result << endl; if (g>90原创 2016-09-22 14:56:04 · 267 阅读 · 0 评论 -
4.21
#include#includeusing namespace std;int main(){ vector vec = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; for (auto i : vec) cout << ((i % 2 != 0) ? i *= 2 : i) << " "; cout << endl; return 0;}原创 2016-09-22 14:49:07 · 289 阅读 · 0 评论 -
3.45
#includeusing namespace std;int main(){ int arr[3][4] = { { 0, 1, 2, 3 }, { 4, 5, 6, 7 }, { 8, 9, 10, 11 } }; for (auto &p:arr) for (int q : p) cout << q << " "; cout << endl; for原创 2016-09-22 14:43:27 · 289 阅读 · 0 评论 -
3.44
#includeusing int_array = int[4];using namespace std;int main(){ int arr[3][4] = { { 0, 1, 2, 3 }, { 4, 5, 6, 7 }, { 8, 9, 10, 11 } }; for (const int(&row)[4] : arr) for (int col : ro原创 2016-09-22 14:37:35 · 301 阅读 · 0 评论 -
3.43
#includeusing namespace std;int main(){ int arr[3][4] = { {0,1,2,3}, {4,5,6,7}, {8,9,10,11} }; for (const int(&row)[4]:arr) for (int col : row) cout << col << " "; cout << endl;原创 2016-09-22 14:33:07 · 394 阅读 · 0 评论 -
3.42
#include#include#includeusing namespace std;int main(){ vector vec = { 0, 1, 2, 3, 4, 5 }; int arr[6]; for (int i = 0; i <= vec.size() - 1; i++) arr[i] = vec[i]; for (auto i : arr) cout原创 2016-09-22 09:39:12 · 467 阅读 · 0 评论 -
3.41
#include#include#includeusing namespace std;int main(){ int arr[5] = { 0, 1, 2, 3, 4 }; vector vec; for (auto i : arr) vec.push_back(i); for (auto i : vec) cout << i << " "; cout << en原创 2016-09-22 09:36:22 · 376 阅读 · 0 评论 -
3.40
#include#includeusing namespace std;const char cstr1[] = "Hello";const char cstr2[] = "world";int main(){ constexpr size_t new_size = strlen(cstr1) + strlen(" ") + strlen(cstr2) + 1; char cst原创 2016-09-22 09:16:39 · 452 阅读 · 0 评论 -
3.39
#includeusing namespace std;int main(){ string s1("moophy"), s2("pezy"); if (s1 == s2)//如果s1和s2所含的字符完全一样,则他们相等 cout << "same" << endl; else if (s1 > s2) cout pezy" << endl; else cout <<原创 2016-09-22 08:53:20 · 313 阅读 · 0 评论 -
3.36
#include#include#includeusing namespace std;bool compare(int *const pb1, int *const pe1, int *const pb2, int *const pe2){ if ((pe1 - pb2) != (pe2 - pb2)) return false; else { for (int *i原创 2016-09-22 08:38:50 · 335 阅读 · 0 评论 -
3.35
#includeusing namespace std;int main(){ const int size = 10; int arr[size]; for (auto ptr = arr; ptr != arr + size; ptr++)//指针和迭代器很像 可以执行迭代器运算 *ptr = 0; for (auto i : arr)//遍历数组也可以用范围for语句原创 2016-09-22 08:12:09 · 291 阅读 · 0 评论 -
3.32
#include#includeusing namespace std;int main(){ int a[10]; for (int i = 0; i <= 9; i++) a[i] = i; int b[10]; for (int i = 0; i <= 9; i++) b[i] = a[i]; vector v(10); for (int i = 0; i <原创 2016-09-21 20:41:43 · 263 阅读 · 0 评论 -
3.31
#includeusing namespace std;int main(){ int a[10]; for (int i = 0; i <= 9; i++) a[i] = i; for (auto i : a)//遍历数组所有元素 最好的办法也是使用范围for语句 cout << i << " "; cout << endl; return 0;}原创 2016-09-21 20:32:42 · 335 阅读 · 0 评论 -
2.8
#includeusing namespace std;int main(){ cout << 2 << "\115\012"; cout << 2 << "\t\115\012"; return 0;}原创 2016-09-21 10:50:29 · 258 阅读 · 0 评论 -
1.25
#include#include"Sales_item.h"using namespace std;int main(){ Sales_item total; if (cin >> total) { Sales_item trans; while (cin >> trans) { if (trans.isbn == total.isbn) total +=原创 2016-09-21 10:47:37 · 391 阅读 · 0 评论 -
6.8
int fact(int val);int func();templateT abs(T i){ return i > 0 ? i : -i;}原创 2016-09-23 10:35:34 · 272 阅读 · 0 评论 -
6.7
#includeusing namespace std;size_t count_add(int n){ static size_t ctr = 0;//函数体内如果在定义静态变量的同时进行了初始化,则以后程序不再进行初始化操作(出现在函数内部的基本类型的的静态变量初始化语句只有在第一次调用才执行)//而对自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次原创 2016-09-23 10:32:44 · 264 阅读 · 0 评论 -
6.6
#includeusing namespace std;size_t count_add(int n){ static size_t ctr = 0;//函数体内如果在定义静态变量的同时进行了初始化,则以后程序不再进行初始化操作(出现在函数内部的基本类型的的静态变量初始化语句只有在第一次调用才执行)//而对自动变量赋初值是在函数调用时进行,每调用一次函数重新给一次初值,相当于执行一次原创 2016-09-23 10:31:06 · 353 阅读 · 0 评论 -
6.5
#includeusing namespace std;int abs(int i){ return i > 0 ? i : -i;}int main(){ for (int i; cin >> i; cout << abs(i) << endl); return 0;}原创 2016-09-23 10:13:47 · 276 阅读 · 0 评论