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

news2024/11/24 19:36:30

    在我自学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++ << " ";
	else
		while (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 << " ";
	else
		for(;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;
    else
        std::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;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1022722.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

leetcode522. 最长特殊序列 II(java)

最长特殊序列 题目描述枚举法代码演示 题目描述 难度 - 中等 leetcode522. 最长特殊序列 II 给定字符串列表 strs &#xff0c;返回其中 最长的特殊序列 的长度。如果最长特殊序列不存在&#xff0c;返回 -1 。 特殊序列 定义如下&#xff1a;该序列为某字符串 独有的子序列&a…

【STM32】IWDG—独立看门狗

基于stm32f103 基于《零死角玩转STM32—F103指南者》 一个12bit的递减计数器 STM32 有两个看门狗&#xff0c;一个是独立看门狗另外一个是窗口看门狗&#xff0c;独立看门狗号称宠物狗&#xff0c;窗口看门狗号称警犬。 独立看门狗是一个 12 位的递减计数器&#xff0c;当计…

数字孪生:助力机载软件构型管理

飞机机载软件具有研发周期长、版本更新频繁、相关工程资料密集等特性。由于各个系统的软件分别由不同供应商开发&#xff0c;其设计保障等级、设计架构、实现方法等方面都各有不同&#xff0c;对机载软件进行高效、规范的构型管理显得尤为重要。 Q&#xff1a;什么是构型管理&…

【张兔兔送书第一期:考研必备书单】

考研书单必备 《数据结构与算法分析》《计算机网络&#xff1a;自顶向下方法》《现代操作系统》《深入理解计算机系统》《概率论基础教程&#xff08;原书第10版》《线性代数&#xff08;原书第10版&#xff09;》《线性代数及其应用》赠书活动 八九月的朋友圈刮起了一股晒通知…

Idea新建项目配置Java3D 环境配置

&#xff08;一&#xff09;JDK配置 安装包的下载&#xff1a;1.可以去官网&#xff1a;JDK下载&#xff0c;进入官网页面Java Downloads | Oracle&#xff0c;然后点击Download Java。2.搜博客&#xff0c;可能会内含安装包链接。 ​ 2.在这个界面可以选择我们要安装的版本…

IEEE802.2之LLC(逻辑链路控制)

一、概念 IEEE 802.2 是一种用于局域网&#xff08;LAN&#xff09;和都会区域网&#xff08;MAN&#xff09;的数据链路层逻辑链路控制&#xff08;LLC&#xff09;的标准。它是 IEEE 802 系列标准中的一个组成部分&#xff0c;专门用于定义如何在数据链路层内进行帧的多路复用…

按摩软件仿东郊到家系统开发,上门预约系统;

按摩软件仿东郊到家系统开发&#xff0c;上门预约系统&#xff1b; 用户端、技师端、商家端&#xff0c;以及管理后台。上门预约的操作 1、技师管理。 技师满意度进行统一跟踪评估&#xff0c;进行分级管理&#xff0c;分级评估&#xff1b; 2、订单管理。 按订单状态分类筛选&…

Vue3动态显示时间

使用的是moment.js插件 关键字 vue3的 onMounted 和 onBeforeUnmount 声明周期 一个用来创建 一个用来销毁 创建什么呢? setInterval 函数 销毁时使用时 clearInterval清除定时器 1上代码 function formatTime() {const date moment();const year date.year();const m…

【STM32】SDIO—SD 卡读写01

基于stm32f103 基于零死角玩转STM32—F103指南者 简介 1.SD 卡总共有 8 个寄存器&#xff0c;用于设定或表示 SD 卡信息。 2.SD卡的寄存器不能像STM32那样访问&#xff0c;而是利用命令访问&#xff0c;SDIO 定义了 64 个命令。SD 卡接收到命令后&#xff0c;根据命令要求对…

今天的消费情况

1、今天消费1710元 意外险 住院--集中参保 校---******----服 1220 rmB lunch 240Rmb

若依前端使用

初始化页面时&#xff0c;路由上加参数 多个菜单对应一个页面&#xff0c;默认查询的数据状态不一样 vue 页面上 通过 debugger; 查看所有的参数&#xff0c; 最后取到了

【Android知识笔记】FrameWork中的设计模式

一、FrameWork中有哪些设计巧妙之处 例如: Binder调用,模糊进程边界: 屏蔽跨进程IPC通信的细节,让开发者把精力放在业务上面,无需关心进程之间的通信。Bitmap大图传输,高性能: 只传递Binder句柄,到目标进程后做内存映射,不用做大量数据拷贝,速度非常快。Zygote创建进…

想要定制一个自己的ChatGPT?三步就可以搞定!

2022年底ChatGPT上线&#xff0c;短短两个月用户就超过一亿&#xff0c;成为了人工智能界当之无愧的超级大网红。ChatGPT凭借着自身强大的拟人化及时应答能力迅速破圈&#xff0c;引起了各行各业的热烈讨论。简单来说ChatGPT就是可以基于用户文本输入自动生成回答的AI聊天机器人…

数据结构——KD树

KD树&#xff08;K-Dimensional Tree&#xff09;是一种用于多维空间的二叉树数据结构&#xff0c;旨在提供高效的数据检索。KD树在空间搜索和最近邻搜索等问题中特别有用&#xff0c;允许在高维空间中有效地搜索数据点。 重要性质 1.分割K维数据空间的数据结构 2.是一颗二叉树…

中期科技:智慧公厕是智慧城市管理智慧化的至佳表现

智慧公厕&#xff0c;作为智慧城市建设的一部分&#xff0c;正逐渐成为城市管理的新标杆。它不仅为城市居民提供便利&#xff0c;还深刻地改善了城市管理的效率。如中期科技「智慧公厕-智慧厕所」通过运用先进的科技手段&#xff0c;智慧公厕在优化城市管理、提升城市服务、促进…

电巢科技出席第26届西北地区电子技术与线路课程教学改革研讨会,聚焦一流课程建设!

2023年9月15日至17日&#xff0c;北方民族大学召开第26届西北地区电子技术与线路课程教学改革研讨会。本次会议围绕“梳理课程教学内容&#xff0c;改革教学方式&#xff0c;探索虚拟教研室构建方式&#xff0c;完善基层教学组织&#xff0c;推进一流课程和一流教材资源共享&am…

ip地址与网络上的其他地址有冲突吗?

ip地址相当于是计算机的号码。ip地址与网络上的其他ip地址有冲突是局域网ARP病毒攻击导致的。 ARP&#xff0c;即地址解析协议&#xff0c;实现通过IP地址得知其物理地址。 arp协议是TCP/IP协议组的一个协议&#xff0c;用于进行把网络地址翻译成物理地址(又称MAC地址)。arp病毒…

密码学【对称加密-DES\AES】

前言 在密码学中&#xff0c;加密算法分为双向加密和单向加密。单向加密包括MD5、SHA等摘要算法&#xff0c;它们是不可逆的。双向加密包括对称加密和非对称加密&#xff0c;对称加密包括AES加密、DES加密等。双向加密是可逆的&#xff0c;存在密文的密钥。AES算法是DES算法的替…

7.1、如何理解Flink中的时间语义

目录 1、如何理解Flink中的时间语义 2、实时计算时&#xff0c;应该如何选择时间语义&#xff1f; 3、时间语义与窗口的关系 1、如何理解Flink中的时间语义 flink作为流式计算引擎&#xff0c;提供了 两种时间语义 来对流式数据进行计算 事件时间(EventTime) : 事件产生的…

【架构篇】Supabase架构和功能介绍

Supabase是什么 Supabase将自己定位为Firebase的开源替代品&#xff0c;提供了一套工具来帮助开发者构建web或移动应用程序。Supabase是建立在Postgres之上的&#xff0c;Postgres是一个免费的开源数据库&#xff0c;被认为是世界上最稳定、最先进的数据库之一。Supabase对标F…