码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C++ Primer (第五版)第一章习题部分答案


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

    C++ Primer (第五版)习题答案总目录:https://blog.csdn.net/weixin_48467622/article/details/136418131?spm=1001.2014.3001.5501

    目录

    1.9编写程序,使用while循环将50到100的整数相加

    1.10 除了++运算符将运算对象的值增加1之外,还有一个递减运算符(–)实现将值减少1.编写程序,使用递减运算符在循环中按递减顺序打印出10到0之间的整数.

    1.11编写程序,提示用户输入两个整数,打印出这两个整数所指定的范围内的所有整数.

    1.12下面的for循环完成了什么功能?sum的终值是多少?

    1.13使用for循环重做1.4.1节中的所有练习.

    1.9

    1.10

    1.11

    1.16编写程序,从cin读取一组数,输出其和.

    1.18编译并运行本节的程序,给它输入全都相等的值.再次运行程序,输入没有重复的值

    1.19修改你为1.4.1节练习1.10(第11页)所编写的程序(打印一个范围内的数),使其能处理用户输入的第一个数比第二个数小的情况.

    1.20在网站http://www.informit.com/title/0321714113上第1章的代码目录包含了头文件Sales_item.h 将它拷贝到你自己的工作目录中.用它编写一个程序,读取一组书籍销售记录,将每条记录打印到标准输出上.

    1.21编写程序,读取两个ISBN相同的Sales_item对象,输出它们的和.

    1.22编写程序,读取多个具有相同ISBN的销售记录,输出所有记录的和.

    1.23编写程序,读取多条销售记录,并统计每个ISBN(每本书)有几条销售记录.

    1.24输入表示多个ISBN的多条销售记录来测试上一个程序,每个ISBN的记录应该聚在一起

    1.25借助网站上的Sales_item.h头文件,编译并运行本节给出的书店程序.


    1.9编写程序,使用while循环将50到100的整数相加

    1. #include
    2. int main()
    3. {
    4. int n1=0, n2=50;
    5. while (n2 < 101)
    6. {
    7. n1 = n1 + n2;
    8. n2++;
    9. }
    10. std::cout << "The sum of 50 to 100 is " << n1 << std::endl;
    11. return 0;
    12. }

    1.10 除了++运算符将运算对象的值增加1之外,还有一个递减运算符(–)实现将值减少1.编写程序,使用递减运算符在循环中按递减顺序打印出10到0之间的整数.

    1. #include
    2. int main()
    3. {
    4. int n1=10;
    5. while (n1 >= 0)
    6. {
    7. std::cout << n1 << std::endl;
    8. n1--;
    9. }
    10. return 0;
    11. }

    1.11编写程序,提示用户输入两个整数,打印出这两个整数所指定的范围内的所有整数.

    1. #include
    2. int main()
    3. {
    4. int n1 = 0, n2 = 0;
    5. std::cout << "Please input two numbers:";
    6. std::cin >> n1 >> n2;
    7. if (n1 > n2)
    8. while (n1 >= n2)
    9. std::cout << n2++ << " ";
    10. else
    11. while (n1 <= n2)
    12. std::cout << n1++ << " ";
    13. std::cout << std::endl;
    14. return 0;
    15. }

    1.12下面的for循环完成了什么功能?sum的终值是多少?

    1. #include
    2. int main()
    3. {
    4. int sum = 0;
    5. for (int i = 0; i <= 100; ++i)
    6. sum += i;
    7. std::cout << "The final sum is " << sum << std::endl;
    8. return 0;
    9. }

    由运行结果可知,for循环完成了0到100内的整数求和,sum终值为5050.

    1.13使用for循环重做1.4.1节中的所有练习.

    1.9

    1. #include
    2. int main()
    3. {
    4. int sum = 0;
    5. for (int i = 50; i <= 100; ++i)
    6. sum += i;
    7. std::cout << "The sum is " << sum << std::endl;
    8. return 0;
    9. }

    1.10

    1. #include
    2. int main()
    3. {
    4. for (int i = 10; i >= 0; i--)
    5. std::cout << i << " ";
    6. std::cout << std::endl;
    7. return 0;
    8. }

    1.11

    1. #include
    2. int main()
    3. {
    4. int n1 = 0, n2 = 0;
    5. std::cout << "Please input two numbers:";
    6. std::cin >> n1 >> n2;
    7. if (n1 > n2)
    8. for(;n2 <= n1; n2++)
    9. std::cout << n2 << " ";
    10. else
    11. for(;n1 <= n2; n1++)
    12. std::cout << n1<< " ";
    13. std::cout << std::endl;
    14. return 0;
    15. }

    1.16编写程序,从cin读取一组数,输出其和.

    1. #include
    2. int main()
    3. {
    4. int n1 = 0, n2 = 0;
    5. std::cout << "请输入一些数字求和:";
    6. while (std::cin >> n2)
    7. n1 = n1 + n2;
    8. std::cout << "The sum is " << n1 << std::endl;
    9. return 0;
    10. }

    1.18编译并运行本节的程序,给它输入全都相等的值.再次运行程序,输入没有重复的值

    1. #include
    2. int main()
    3. {
    4. int n1 = 0, n2 = 0;
    5. if (std::cin >> n1)
    6. {
    7. int cnt = 1;
    8. while (std::cin >> n2)
    9. {
    10. if (n1 == n2)
    11. cnt++;
    12. else
    13. {
    14. std::cout << n1 << " occurs " << cnt << " times" << std::endl;
    15. n1 = n2;
    16. cnt = 1;
    17. }
    18. }
    19. std::cout << n1 << " occurs " << cnt << " times" << std::endl;
    20. }
    21. return 0;
    22. }

    1.19修改你为1.4.1节练习1.10(第11页)所编写的程序(打印一个范围内的数),使其能处理用户输入的第一个数比第二个数小的情况.

    1. #include
    2. int main()
    3. {
    4. std::cout << "请输入俩个数(第一个数比第二个数小):" << std::endl;
    5. int v1 = 0, v2 = 0;
    6. std::cin >> v1 >> v2;
    7. if (v1 < v2)
    8. {
    9. while (v1 <= v2)
    10. {
    11. std::cout << v1++ << " ";
    12. }
    13. }
    14. else
    15. {
    16. std::cout << "输入有误." << std::endl;
    17. }
    18. std::cout << std::endl;
    19. return 0;
    20. }

    1.20在网站http://www.informit.com/title/0321714113上第1章的代码目录包含了头文件Sales_item.h 将它拷贝到你自己的工作目录中.用它编写一个程序,读取一组书籍销售记录,将每条记录打印到标准输出上.

    下载地址https://download.csdn.net/download/weixin_48467622/88350222?spm=1001.2014.3001.5501

    1. #include<iostream>
    2. #include"Sales_item.h"
    3. int main()
    4. {
    5. Sales_item s;
    6. while (std::cin >> s)
    7. std::cout << s << std::endl;
    8. return 0;
    9. }

    1.21编写程序,读取两个ISBN相同的Sales_item对象,输出它们的和.

    1. #include
    2. #include"Sales_item.h"
    3. int main()
    4. {
    5. Sales_item s1,s2;
    6. std::cout << "请输入ISBN相同的Sales_item对象:" << std::endl;
    7. std::cin >> s1 >> s2;
    8. if (compareIsbn(s1, s2))
    9. std::cout << std::endl << "汇总信息:ISBN 售出本书 销售额 和 平均售价为:" << std::endl << s1 + s2 << std::endl;
    10. else
    11. std::cout << "您输入的ISBN值不同!" << std::endl;
    12. return 0;
    13. }

    1.22编写程序,读取多个具有相同ISBN的销售记录,输出所有记录的和.

    1. #include
    2. #include"Sales_item.h"
    3. int main()
    4. {
    5. Sales_item s,total;
    6. std::cout << "请输入ISBN相同的Sales_item对象:" << std::endl;
    7. if (std::cin >> total)
    8. {
    9. while (std::cin >> s)
    10. {
    11. if (compareIsbn(s, total))
    12. total = total + s;
    13. else
    14. {
    15. std::cout << "输入ISBN与历史数据不同!" << std::endl;
    16. return -1;
    17. }
    18. }
    19. }
    20. else
    21. {
    22. std::cout << "未输入数据!" << std::endl;
    23. return -1;
    24. }
    25. std::cout << std::endl << "汇总信息:ISBN 售出本书 销售额 和 平均售价为:" << std::endl << total << std::endl;
    26. return 0;
    27. }

    1.23编写程序,读取多条销售记录,并统计每个ISBN(每本书)有几条销售记录.

    1. #include
    2. #include "Sales_item.h"
    3. int main()
    4. {
    5. Sales_item tran1, tran2;
    6. int num = 0;
    7. std::cout << "请输入销售记录:" << std::endl;
    8. if (std::cin >> tran1)
    9. {
    10. num++;
    11. while (std::cin >> tran2)
    12. {
    13. if (tran1.isbn()==tran2.isbn())
    14. {
    15. num++;
    16. }
    17. else
    18. {
    19. std::cout << std::endl << "ISBN:" << tran1.isbn() <<
    20. "的销售记录有" << num << "条" << std::endl;
    21. tran1 = tran2;
    22. num = 1;
    23. }
    24. }
    25. std::cout << std::endl << "ISBN:" << tran1.isbn() << "的销售记录有" << num << "条" << std::endl;
    26. }
    27. else
    28. {
    29. std::cout << "没有输入" << std::endl;
    30. return -1;
    31. }
    32. return 0;
    33. }

    1.24输入表示多个ISBN的多条销售记录来测试上一个程序,每个ISBN的记录应该聚在一起

    1. #include
    2. #include "Sales_item.h"
    3. int main()
    4. {
    5. Sales_item tran1, tran2;
    6. int num = 0;
    7. std::cout << "请输入销售记录:" << std::endl;
    8. if (std::cin >> tran1)
    9. {
    10. num++;
    11. while (std::cin >> tran2)
    12. {
    13. if (tran1.isbn()==tran2.isbn())
    14. {
    15. num++;
    16. }
    17. else
    18. {
    19. std::cout << std::endl << "ISBN:" << tran1.isbn() <<
    20. "的销售记录有" << num << "条" << std::endl;
    21. tran1 = tran2;
    22. num = 1;
    23. }
    24. }
    25. std::cout << std::endl << "ISBN:" << tran1.isbn() << "的销售记录有" << num << "条" << std::endl;
    26. }
    27. else
    28. {
    29. std::cout << "没有输入" << std::endl;
    30. return -1;
    31. }
    32. return 0;
    33. }

    1.25借助网站上的Sales_item.h头文件,编译并运行本节给出的书店程序.

    1. #include
    2. #include "Sales_item.h"
    3. int main()
    4. {
    5. Sales_item total, trans;
    6. std::cout << "请输入销售记录:" << std::endl;
    7. if (std::cin >> total)
    8. {
    9. while (std::cin >> trans)
    10. {
    11. if (total.isbn()==trans.isbn())
    12. {
    13. total = total + trans;
    14. }
    15. else
    16. {
    17. std::cout << total << std::endl;
    18. total = trans;
    19. }
    20. }
    21. std::cout << total << std::endl;
    22. }
    23. else
    24. {
    25. std::cerr << "No data!" << std::endl;
    26. return -1;
    27. }
    28. return 0;
    29. }

  • 相关阅读:
    AutoJs学习-跳一跳相关代码
    玻色量子荣登《麻省理工科技评论》2021“50家聪明公司”榜单
    左移运算符重载
    发明专利说明书如何撰写
    路由事件2
    GameStop NFT 市场分析
    [NCTF2019]True XML cookbook
    kafka主题脚本常用指令
    微信小程序(五)--- Vant组件库,API Promise化,MboX全局数据共享,分包相关
    Prometheus监控案例
  • 原文地址:https://blog.csdn.net/weixin_48467622/article/details/132944855
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号