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过程中,我选择了CPrimer这本书,并对部分代码习题进行了求解以及运行结果。接下来几个月我将为大家定时按章节更新习题答案与运行结果: 目录 1.9编写程序,使用while循环将50到100的整数相加 1.10 除了运算符将运算对象的值增加1之外,还有一个…...
Python与GUI集成:零基础也能开发国际象棋游戏
引言: 国际象棋,作为世界上最受欢迎的棋类游戏之一,拥有丰富的策略和深度。但是,你知道自己可以使用Python来创建一个简单的国际象棋游戏并为其添加图形用户界面(GUI)吗?在本教程中,…...
SaaS软件能保证数据安全吗?
SaaS软件能保证数据安全吗? 本文将要尝试从各个方面尽可能客观的去阐述这个问题,而不是简单自嗨式的说简道云平台如何保障数据安全。 建议先收藏起来慢慢品! 01 SaaS安全到底是什么?——定义解读 本文所用SaaS平台>>>…...
方案:基于AI烟火识别与视频技术的秸秆焚烧智能化监控预警方案
一、方案背景 为严控秸秆露天焚烧,改善环境空气质量,各省相继发布秸秆禁烧工作内容。以安徽省为例,大气污染防治联席会议下发了该省2020年秸秆禁烧工作部署通知。2020年起,气象局将对全省秸秆焚烧火点实施卫星全年全时段监测&…...
phantomjs插件---实现通过链接生成网页截图
Phantomjs | PhantomJS 配置要求 windows下,安装完成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,进入参数设置并搜索 MAV,如下所示 然后修改 MAV_1_CONFIG,修改为自己想要连接机载电脑…...
为什么2022年秋招嵌入式开发岗位薪资大涨?
今天看到一个网友讨论的问题,其实这个问题也很简答。从嵌入式本身优势来说,首先是因为该行业人才人才需求大,据权威统计机构统计在所有软件开发类人才的需求中,对嵌入式工程师的需求达到全部需求量的60%~80%,并且每年以…...
在HTML里,attribute和property有什么区别?
在HTML中,attribute 和 property 之间的区别是一个常见但容易混淆的概念。它们都与HTML元素有关,但它们在功能、用途和行为上有所不同。以下是它们之间的主要区别: 定义和来源: Attribute: 它们是在HTML标记中定义的,通常用于提供…...
机器学习入门与实践:从原理到代码
💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 在本文中,我…...
SpringCloud在idea中一键启动项目
1、如下图文件中加上: <component name"RunDashboard"><option name"configurationTypes"><set><option value"SpringBootApplicationConfigurationType" /></set></option></component>…...
VB过程的递归调用,辗转相除法求最大公约数
VB过程的递归调用,辗转相除法求最大公约数 过程的递归调用,辗转相除法求最大公约数 Private Function gys(ByVal m%, ByVal n%) As IntegerDim r%r m Mod n m大或者n大都无所谓,这个不影响计算,由于辗转相除法的算法,…...
OpenCV(三十九):积分图像
1.积分图像介绍 积分图像中的每个像素表示了原始图像中对应位置及其左上方矩形区域内像素值的总和。如图,p0表示原始图像蓝色区域内像素值的总和。 倾斜求和(Skewed Sum)是积分图像的一种扩展形式,用于计算图像区域内的像素和&…...
【Electron 拦截请求实现自定义网络处理】
文章目录 Electron 拦截请求实现自定义网络处理1. 获取默认会话2. 拦截请求3. 完整示例代码总结 Electron 拦截请求实现自定义网络处理 在 Electron 中,我们可以使用 session 模块来拦截和处理网络请求。通过拦截请求,我们可以对请求进行修改、添加请求…...
Pytest系列-内置标签skip和skipif 跳过测试用例的详细使用(5)
简介 skip和skipif,见名知意就是跳过测试,主要用于不想执行的代码,标记后,标记的代码不执行。希望满足某些条件才执行某些测试用例,否则pytest会跳过运行该测试用例实际常见场景:根据平台不同执行测试、跳…...
华为云云耀云服务器L实例评测|docker 常用操作命令
文章目录 写在前面云耀云服务器L实例与ECS的购买和配置区别 1、管理命令2、帮助命令3、镜像命令4、容器命令4.1 查看容器4.2 创建容器 实例 写在前面 前面讲到了docker环境的安装,这是我们可以直接打开远程连接华为云云耀云服务器L实例,直接连接公网…...
RJ45网络信号浪涌保护器解决方案
RJ45网络信号浪涌保护器是一种用于保护网络设备免受雷击或其他高压电流干扰的装置,它可以有效地吸收和释放信号线路上的过电压,从而避免设备损坏或数据丢失。 RJ45信号浪涌保护器的应用领域和施工方案如下: 地凯科技RJ45网络信号浪涌保护器…...
SoC性能指标ARM内核运算能力
自动驾驶芯片常用的性能评价指标:TOPS,DMIPS,GFLOPS分别说的是啥? TOPS Tera Operation Per Second,表示每秒钟可以进行的操作数量,用于衡量自动驾驶的算力。 众所周知,汽车上最常用的传感器是摄像头,而与之对应的计…...
注册小鲸鱼88888专用网站
点击注册充值即可 高效不限速,不限设备 注意这里的地址并没有错,只是你需要想办法正确能进入就行,懂的大佬一定知道用一定的方法访问的。...
GitHub平台 Bookget操作
以bookget为例,熟悉github平台。 https://github.com/deweizhu/bookget 选择该界面中的“Wiki”,右侧边栏中是文章的结构大纲。 下载bookget软件。 依照说明,安装bookget环境。...
浅谈 React Hooks
React Hooks 是 React 16.8 引入的一组 API,用于在函数组件中使用 state 和其他 React 特性(例如生命周期方法、context 等)。Hooks 通过简洁的函数接口,解决了状态与 UI 的高度解耦,通过函数式编程范式实现更灵活 Rea…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
(十)学生端搭建
本次旨在将之前的已完成的部分功能进行拼装到学生端,同时完善学生端的构建。本次工作主要包括: 1.学生端整体界面布局 2.模拟考场与部分个人画像流程的串联 3.整体学生端逻辑 一、学生端 在主界面可以选择自己的用户角色 选择学生则进入学生登录界面…...
智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...
家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
关于easyexcel动态下拉选问题处理
前些日子突然碰到一个问题,说是客户的导入文件模版想支持部分导入内容的下拉选,于是我就找了easyexcel官网寻找解决方案,并没有找到合适的方案,没办法只能自己动手并分享出来,针对Java生成Excel下拉菜单时因选项过多导…...
通过 Ansible 在 Windows 2022 上安装 IIS Web 服务器
拓扑结构 这是一个用于通过 Ansible 部署 IIS Web 服务器的实验室拓扑。 前提条件: 在被管理的节点上安装WinRm 准备一张自签名的证书 开放防火墙入站tcp 5985 5986端口 准备自签名证书 PS C:\Users\azureuser> $cert New-SelfSignedCertificate -DnsName &…...
阿里云Ubuntu 22.04 64位搭建Flask流程(亲测)
cd /home 进入home盘 安装虚拟环境: 1、安装virtualenv pip install virtualenv 2.创建新的虚拟环境: virtualenv myenv 3、激活虚拟环境(激活环境可以在当前环境下安装包) source myenv/bin/activate 此时,终端…...
