当前位置: 首页 > 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环境。...

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

【CSS position 属性】static、relative、fixed、absolute 、sticky详细介绍,多层嵌套定位示例

文章目录 ★ position 的五种类型及基本用法 ★ 一、position 属性概述 二、position 的五种类型详解(初学者版) 1. static(默认值) 2. relative(相对定位) 3. absolute(绝对定位) 4. fixed(固定定位) 5. sticky(粘性定位) 三、定位元素的层级关系(z-i…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)

更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...

什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南

文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/55aefaea8a9f477e86d065227851fe3d.pn…...

听写流程自动化实践,轻量级教育辅助

随着智能教育工具的发展&#xff0c;越来越多的传统学习方式正在被数字化、自动化所优化。听写作为语文、英语等学科中重要的基础训练形式&#xff0c;也迎来了更高效的解决方案。 这是一款轻量但功能强大的听写辅助工具。它是基于本地词库与可选在线语音引擎构建&#xff0c;…...

【Kafka】Kafka从入门到实战:构建高吞吐量分布式消息系统

Kafka从入门到实战:构建高吞吐量分布式消息系统 一、Kafka概述 Apache Kafka是一个分布式流处理平台,最初由LinkedIn开发,后成为Apache顶级项目。它被设计用于高吞吐量、低延迟的消息处理,能够处理来自多个生产者的海量数据,并将这些数据实时传递给消费者。 Kafka核心特…...

UE5 音效系统

一.音效管理 音乐一般都是WAV,创建一个背景音乐类SoudClass,一个音效类SoundClass。所有的音乐都分为这两个类。再创建一个总音乐类&#xff0c;将上述两个作为它的子类。 接着我们创建一个音乐混合类SoundMix&#xff0c;将上述三个类翻入其中&#xff0c;通过它管理每个音乐…...

Python第七周作业

Python第七周作业 文章目录 Python第七周作业 1.使用open以只读模式打开文件data.txt&#xff0c;并逐行打印内容 2.使用pathlib模块获取当前脚本的绝对路径&#xff0c;并创建logs目录&#xff08;若不存在&#xff09; 3.递归遍历目录data&#xff0c;输出所有.csv文件的路径…...