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

多云管理“拦路虎”:深入解析网络互联、身份同步与成本可视化的技术复杂度​

一、引言&#xff1a;多云环境的技术复杂性本质​​ 企业采用多云策略已从技术选型升维至生存刚需。当业务系统分散部署在多个云平台时&#xff0c;​​基础设施的技术债呈现指数级积累​​。网络连接、身份认证、成本管理这三大核心挑战相互嵌套&#xff1a;跨云网络构建数据…...

智慧医疗能源事业线深度画像分析(上)

引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...

前端导出带有合并单元格的列表

// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...

在 Nginx Stream 层“改写”MQTT ngx_stream_mqtt_filter_module

1、为什么要修改 CONNECT 报文&#xff1f; 多租户隔离&#xff1a;自动为接入设备追加租户前缀&#xff0c;后端按 ClientID 拆分队列。零代码鉴权&#xff1a;将入站用户名替换为 OAuth Access-Token&#xff0c;后端 Broker 统一校验。灰度发布&#xff1a;根据 IP/地理位写…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日&#xff0c;国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解&#xff0c;“超级…...

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

快刀集(1): 一刀斩断视频片头广告

一刀流&#xff1a;用一个简单脚本&#xff0c;秒杀视频片头广告&#xff0c;还你清爽观影体验。 1. 引子 作为一个爱生活、爱学习、爱收藏高清资源的老码农&#xff0c;平时写代码之余看看电影、补补片&#xff0c;是再正常不过的事。 电影嘛&#xff0c;要沉浸&#xff0c;…...