当前位置: 首页 > news >正文

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

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

目录

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的整数相加

#include<iostream>
int main(){int n1=0, n2=50;while (n2 < 101){n1 = n1 + n2;n2++;}std::cout << "The sum of 50 to 100 is " << n1 << std::endl;return 0;
}

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

#include<iostream>
int main(){int n1=10;while (n1 >= 0){std::cout << n1 << std::endl;n1--;}return 0;
}

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

#include<iostream>
int main(){int n1 = 0, n2 = 0;std::cout << "Please input two numbers:";std::cin >> n1 >> n2;if (n1 > n2)while (n1 >= n2)std::cout << n2++ << " ";elsewhile (n1 <= n2)std::cout << n1++ << " ";std::cout << std::endl;return 0;
}

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

#include<iostream>
int main(){int sum = 0;for (int i = 0; i <= 100; ++i)sum += i;std::cout << "The final sum is " << sum << std::endl;return 0;
}

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

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

1.9

#include<iostream>
int main(){int sum = 0;for (int i = 50; i <= 100; ++i)sum += i;std::cout << "The sum is " << sum << std::endl;return 0;
}

1.10

#include<iostream>
int main(){for (int i = 10; i >= 0; i--)std::cout << i << " ";std::cout << std::endl;return 0;
}

1.11

#include<iostream>
int main(){int n1 = 0, n2 = 0;std::cout << "Please input two numbers:";std::cin >> n1 >> n2;if (n1 > n2)for(;n2 <= n1; n2++)std::cout << n2 << " ";elsefor(;n1 <= n2; n1++)std::cout << n1<< " ";std::cout << std::endl;return 0;
}

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

#include<iostream>
int main(){int n1 = 0, n2 = 0;std::cout << "请输入一些数字求和:";while (std::cin >> n2)n1 = n1 + n2;std::cout << "The sum is " << n1 << std::endl;return 0;
}

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

#include<iostream>
int main(){int n1 = 0, n2 = 0;if (std::cin >> n1){int cnt = 1;while (std::cin >> n2){if (n1 == n2)cnt++;else{std::cout << n1 << " occurs " << cnt << " times" << std::endl;n1 = n2;cnt = 1;}}std::cout << n1 << " occurs " << cnt << " times" << std::endl;}return 0;
}

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

#include<iostream>
int main()
{std::cout << "请输入俩个数(第一个数比第二个数小):" << std::endl;int v1 = 0, v2 = 0;std::cin >> v1 >> v2;if (v1 < v2){while (v1 <= v2){std::cout << v1++ << " ";}}else{std::cout << "输入有误." << std::endl;}std::cout << std::endl;return 0;
}

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

#include<iostream>
#include"Sales_item.h"
int main()
{Sales_item s;while (std::cin >> s)std::cout << s << std::endl;return 0;
}

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

#include<iostream>
#include"Sales_item.h"
int main()
{Sales_item s1,s2;std::cout << "请输入ISBN相同的Sales_item对象:" << std::endl;std::cin >> s1 >> s2;if (compareIsbn(s1, s2))std::cout << std::endl << "汇总信息:ISBN 售出本书 销售额 和 平均售价为:" << std::endl << s1 + s2 << std::endl;elsestd::cout << "您输入的ISBN值不同!" << std::endl;return 0;
}

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

#include<iostream>
#include"Sales_item.h"
int main()
{Sales_item s,total;std::cout << "请输入ISBN相同的Sales_item对象:" << std::endl;if (std::cin >> total){while (std::cin >> s){if (compareIsbn(s, total))total = total + s;else{std::cout << "输入ISBN与历史数据不同!" << std::endl;return -1;}}}else{std::cout << "未输入数据!" << std::endl;return -1;}std::cout << std::endl << "汇总信息:ISBN 售出本书 销售额 和 平均售价为:" << std::endl << total << std::endl;return 0;
}

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

#include <iostream>
#include "Sales_item.h"
int main()
{Sales_item tran1, tran2;int num = 0;std::cout << "请输入销售记录:" << std::endl;if (std::cin >> tran1){num++;while (std::cin >> tran2){if (tran1.isbn()==tran2.isbn()){num++;}else{std::cout << std::endl << "ISBN:" << tran1.isbn() <<"的销售记录有" << num << "条" << std::endl;tran1 = tran2;num = 1;}}std::cout << std::endl << "ISBN:" << tran1.isbn() << "的销售记录有" << num << "条" << std::endl;}else{std::cout << "没有输入" << std::endl;return -1;}return 0;
}

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

#include <iostream>
#include "Sales_item.h"
int main()
{Sales_item tran1, tran2;int num = 0;std::cout << "请输入销售记录:" << std::endl;if (std::cin >> tran1){num++;while (std::cin >> tran2){if (tran1.isbn()==tran2.isbn()){num++;}else{std::cout << std::endl << "ISBN:" << tran1.isbn() <<"的销售记录有" << num << "条" << std::endl;tran1 = tran2;num = 1;}}std::cout << std::endl << "ISBN:" << tran1.isbn() << "的销售记录有" << num << "条" << std::endl;}else{std::cout << "没有输入" << std::endl;return -1;}return 0;
}

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

#include <iostream>
#include "Sales_item.h"
int main()
{Sales_item total, trans;std::cout << "请输入销售记录:" << std::endl;if (std::cin >> total){while (std::cin >> trans){if (total.isbn()==trans.isbn()){total = total + trans;}else{std::cout << total << std::endl;total = trans;}}std::cout << total << std::endl;}else{std::cerr << "No data!" << std::endl;return -1;}return 0;
}

相关文章:

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

在我自学C过程中&#xff0c;我选择了CPrimer这本书&#xff0c;并对部分代码习题进行了求解以及运行结果。接下来几个月我将为大家定时按章节更新习题答案与运行结果: 目录 1.9编写程序,使用while循环将50到100的整数相加 1.10 除了运算符将运算对象的值增加1之外,还有一个…...

Python与GUI集成:零基础也能开发国际象棋游戏

引言&#xff1a; 国际象棋&#xff0c;作为世界上最受欢迎的棋类游戏之一&#xff0c;拥有丰富的策略和深度。但是&#xff0c;你知道自己可以使用Python来创建一个简单的国际象棋游戏并为其添加图形用户界面&#xff08;GUI&#xff09;吗&#xff1f;在本教程中&#xff0c…...

SaaS软件能保证数据安全吗?

SaaS软件能保证数据安全吗&#xff1f; 本文将要尝试从各个方面尽可能客观的去阐述这个问题&#xff0c;而不是简单自嗨式的说简道云平台如何保障数据安全。 建议先收藏起来慢慢品&#xff01; 01 SaaS安全到底是什么&#xff1f;——定义解读 本文所用SaaS平台>>>…...

方案:基于AI烟火识别与视频技术的秸秆焚烧智能化监控预警方案

一、方案背景 为严控秸秆露天焚烧&#xff0c;改善环境空气质量&#xff0c;各省相继发布秸秆禁烧工作内容。以安徽省为例&#xff0c;大气污染防治联席会议下发了该省2020年秸秆禁烧工作部署通知。2020年起&#xff0c;气象局将对全省秸秆焚烧火点实施卫星全年全时段监测&…...

phantomjs插件---实现通过链接生成网页截图

Phantomjs | PhantomJS 配置要求 windows下&#xff0c;安装完成phantomJS 设置phantomjs环境变量【也可直接使用phantomjs目录下的执行文件】 直接通过访问php文件执行/通过cmd命令行执行【phantomjs phantom_script.js】 linux下,安装完成phantomJS 设置phantomjs环境变量 直…...

SpringBoot分页实现查询数据

1.原生查询 1.1创建分页查询实体类 package com.itheima.pojo;import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor;import java.util.List;//分页查询结果封装类 Data NoArgsConstructor AllArgsConstructor public class PageBean {pr…...

Jetson Xavier NX 与飞控(Pixhawk 4 Mini)实现串口通信

一、飞控端配置 首先对 Pixhawk 4 Mini 烧录固件参考 Kakute H7 刷写 px4 固件_想要个小姑娘的博客-CSDN博客 烧录完成后打开 QGroundControl&#xff0c;进入参数设置并搜索 MAV&#xff0c;如下所示 然后修改 MAV_1_CONFIG&#xff0c;修改为自己想要连接机载电脑&#xf…...

为什么2022年秋招嵌入式开发岗位薪资大涨?

今天看到一个网友讨论的问题&#xff0c;其实这个问题也很简答。从嵌入式本身优势来说&#xff0c;首先是因为该行业人才人才需求大&#xff0c;据权威统计机构统计在所有软件开发类人才的需求中&#xff0c;对嵌入式工程师的需求达到全部需求量的60%~80%&#xff0c;并且每年以…...

在HTML里,attribute和property有什么区别?

在HTML中&#xff0c;attribute 和 property 之间的区别是一个常见但容易混淆的概念。它们都与HTML元素有关&#xff0c;但它们在功能、用途和行为上有所不同。以下是它们之间的主要区别&#xff1a; 定义和来源: Attribute: 它们是在HTML标记中定义的&#xff0c;通常用于提供…...

机器学习入门与实践:从原理到代码

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 在本文中&#xff0c;我…...

SpringCloud在idea中一键启动项目

1、如下图文件中加上&#xff1a; <component name"RunDashboard"><option name"configurationTypes"><set><option value"SpringBootApplicationConfigurationType" /></set></option></component>…...

VB过程的递归调用,辗转相除法求最大公约数

VB过程的递归调用&#xff0c;辗转相除法求最大公约数 过程的递归调用&#xff0c;辗转相除法求最大公约数 Private Function gys(ByVal m%, ByVal n%) As IntegerDim r%r m Mod n m大或者n大都无所谓&#xff0c;这个不影响计算&#xff0c;由于辗转相除法的算法&#xff0c…...

OpenCV(三十九):积分图像

1.积分图像介绍 积分图像中的每个像素表示了原始图像中对应位置及其左上方矩形区域内像素值的总和。如图&#xff0c;p0表示原始图像蓝色区域内像素值的总和。 倾斜求和&#xff08;Skewed Sum&#xff09;是积分图像的一种扩展形式&#xff0c;用于计算图像区域内的像素和&…...

【Electron 拦截请求实现自定义网络处理】

文章目录 Electron 拦截请求实现自定义网络处理1. 获取默认会话2. 拦截请求3. 完整示例代码总结 Electron 拦截请求实现自定义网络处理 在 Electron 中&#xff0c;我们可以使用 session 模块来拦截和处理网络请求。通过拦截请求&#xff0c;我们可以对请求进行修改、添加请求…...

Pytest系列-内置标签skip和skipif 跳过测试用例的详细使用(5)

简介 skip和skipif&#xff0c;见名知意就是跳过测试&#xff0c;主要用于不想执行的代码&#xff0c;标记后&#xff0c;标记的代码不执行。希望满足某些条件才执行某些测试用例&#xff0c;否则pytest会跳过运行该测试用例实际常见场景&#xff1a;根据平台不同执行测试、跳…...

华为云云耀云服务器L实例评测|docker 常用操作命令

文章目录 写在前面云耀云服务器L实例与ECS的购买和配置区别 1、管理命令2、帮助命令3、镜像命令4、容器命令4.1 查看容器4.2 创建容器 实例 写在前面 ​ 前面讲到了docker环境的安装&#xff0c;这是我们可以直接打开远程连接华为云云耀云服务器L实例&#xff0c;直接连接公网…...

RJ45网络信号浪涌保护器解决方案

RJ45网络信号浪涌保护器是一种用于保护网络设备免受雷击或其他高压电流干扰的装置&#xff0c;它可以有效地吸收和释放信号线路上的过电压&#xff0c;从而避免设备损坏或数据丢失。 RJ45信号浪涌保护器的应用领域和施工方案如下&#xff1a; 地凯科技RJ45网络信号浪涌保护器…...

SoC性能指标ARM内核运算能力

自动驾驶芯片常用的性能评价指标:TOPS,DMIPS,GFLOPS分别说的是啥&#xff1f; TOPS Tera Operation Per Second&#xff0c;表示每秒钟可以进行的操作数量&#xff0c;用于衡量自动驾驶的算力。 众所周知&#xff0c;汽车上最常用的传感器是摄像头&#xff0c;而与之对应的计…...

注册小鲸鱼88888专用网站

点击注册充值即可 高效不限速&#xff0c;不限设备 注意这里的地址并没有错&#xff0c;只是你需要想办法正确能进入就行&#xff0c;懂的大佬一定知道用一定的方法访问的。...

GitHub平台 Bookget操作

以bookget为例&#xff0c;熟悉github平台。 https://github.com/deweizhu/bookget 选择该界面中的“Wiki”&#xff0c;右侧边栏中是文章的结构大纲。 下载bookget软件。 依照说明&#xff0c;安装bookget环境。...

OpenClaw隐私保护方案:ollama-QwQ-32B本地化数据处理流程

OpenClaw隐私保护方案&#xff1a;ollama-QwQ-32B本地化数据处理流程 1. 为什么需要本地化隐私保护方案 去年我在处理一份涉及客户隐私的市场分析报告时&#xff0c;遇到了一个棘手问题&#xff1a;当使用云端AI服务进行数据清洗和分析时&#xff0c;不得不将包含敏感字段的原…...

从3大维度突破OCR效率瓶颈:5类场景的实战解决方案

从3大维度突破OCR效率瓶颈&#xff1a;5类场景的实战解决方案 【免费下载链接】Umi-OCR_plugins Umi-OCR 插件库 项目地址: https://gitcode.com/gh_mirrors/um/Umi-OCR_plugins 在数字化办公与学习中&#xff0c;OCR&#xff08;光学字符识别&#xff09;技术已成为信息…...

Homebrew国内镜像源对比:如何为MacOS M2快速安装Pandoc并配置Typora

Homebrew国内镜像源深度评测&#xff1a;M2 Mac高效安装Pandoc与Typora配置指南 作为Markdown写作的重度用户&#xff0c;我曾在M1 Pro和M2 Max芯片的MacBook上反复折腾Pandoc的安装过程。最令人头疼的不是软件本身&#xff0c;而是Homebrew那令人抓狂的下载速度——有时一个简…...

【权威认证|Pydantic v2+Starlette v1.12+FastAPI 2.0深度兼容报告】:为什么你的async generator在/ai/chat接口里静默失败?

第一章&#xff1a;FastAPI 2.0 异步 AI 流式响应 避坑指南FastAPI 2.0 对异步流式响应&#xff08;StreamingResponse&#xff09;的底层行为进行了关键调整&#xff0c;尤其在事件循环绑定、响应体缓冲策略及客户端断连检测方面与 1.x 版本存在显著差异。若沿用旧版流式生成器…...

Windows右键菜单管理效率提升指南:用ContextMenuManager打造个性化定制体验

Windows右键菜单管理效率提升指南&#xff1a;用ContextMenuManager打造个性化定制体验 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否曾遇到这样的场景&…...

快速上手ANIMATEDIFF PRO:从环境部署到视频导出的完整操作流程

快速上手ANIMATEDIFF PRO&#xff1a;从环境部署到视频导出的完整操作流程 1. 环境准备与快速部署 1.1 硬件要求检查 在开始之前&#xff0c;请确保您的设备满足以下最低配置要求&#xff1a; 显卡&#xff1a;NVIDIA RTX 3060及以上&#xff08;推荐RTX 4090&#xff09;显…...

Koodo Reader TTS语音朗读终极指南:打造高效听书体验的完整方案

Koodo Reader TTS语音朗读终极指南&#xff1a;打造高效听书体验的完整方案 【免费下载链接】koodo-reader A modern ebook manager and reader with sync and backup capacities for Windows, macOS, Linux and Web 项目地址: https://gitcode.com/GitHub_Trending/koo/kood…...

基于动态三维环境下的Q-Learning算法无人机自主避障路径规划研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

3分钟搞定Windows音频捕获:win-capture-audio让你的录音效率翻倍

3分钟搞定Windows音频捕获&#xff1a;win-capture-audio让你的录音效率翻倍 【免费下载链接】win-capture-audio An OBS plugin that allows capture of independant application audio streams on Windows, in a similar fashion to OBSs game capture and Discords applicat…...

HY-Motion 1.0在元宇宙中的应用:虚拟世界角色动画生成

HY-Motion 1.0在元宇宙中的应用&#xff1a;虚拟世界角色动画生成 1. 元宇宙里&#xff0c;角色为什么需要“活”起来 打开一个元宇宙应用&#xff0c;你看到的可能是一个精致的虚拟空间&#xff0c;但真正让人愿意停留的&#xff0c;从来不是静态的场景&#xff0c;而是能动…...