C++ Primer Plus 第三章习题

news2025/7/18 22:28:02

目录

复习题

1. 为什么C++有多种整型?

2. 声明与下述描述相符的变量?

3. C++ 提供了什么措施来防止超出整型的范围?

4. 33L和33之间有什么区别?

5. 下面两条C++语句是否等价?

6. 如何使用C++来找出编码88表示的字符?至少找出两种方法。

7. 将long值赋给float变量会导致舍入误差,将long值赋给double变量呢?将long long 值赋给double 变量呢?

8. 下列C++表达式的结果分别是多少?

9. 假设x1和x2是两个double变量,你要将他们作为整数相加,再将结果赋给一个整型变量。请编写一条完成这项任务的c++语句。如果要将他们作为double值相加并转换为int呢?

10. 下面每一条语句的变量都是什么类型?

编程题

复习题

1. 为什么C++有多种整型?


满足不同的计算机系统的所有计算需求。
int、short、long、unsigned int、long long、unsigned long等。


2. 声明与下述描述相符的变量?

    short整数,值为80

    unsigned int整数,值为42110

    值为 3000000000 的整数

short a = 80; /*也可以写为 short int a = 80*/
unsigned int b = 42110;
unsigned long long c = 3000000000;

3. C++ 提供了什么措施来防止超出整型的范围?


C++没有提供自动防止范围越界的措施,但可以使用 climits头文件 来查看范围的最大值,从而达到预防越界。

4. 33L和33之间有什么区别?


33L是long int类型
33 是int 类型。

5. 下面两条C++语句是否等价?

char grade = 65;
char grade = 'A';


看情况而定。
- ASCII码的系统版本一致:两者语句等价。
- 系统不一致:65是int型,'A'是char型。

6. 如何使用C++来找出编码88表示的字符?至少找出两种方法。

int ch = 88;
cout.put(ch);/*方法一*/
cout<<char(ch); /*方法二*/

7. 将long值赋给float变量会导致舍入误差,将long值赋给double变量呢?将long long 值赋给double 变量呢?


    > 将long值赋给double变量时,不会导致误差(long最大有10位,而double提供至少13位有效数字)。
    > 
    > 将 long long值赋给double变量时,会导致舍入误差(long long提供了19位有效数字,而double只有13个有效数字)。

8. 下列C++表达式的结果分别是多少?


a.8*9+2  结果为:74
b.6*3/4   结果为:4
c.3/4*6   结果为:0
d.6.0*3/4  结果为:4.5
e.15%4  结果为:3

9. 假设x1和x2是两个double变量,你要将他们作为整数相加,再将结果赋给一个整型变量。请编写一条完成这项任务的c++语句。如果要将他们作为double值相加并转换为int呢?

double x1,x2;
int add = int(x1) + int(x2); /*整数相加,再赋值*/
int add = int(x1 + x2); /*double值相加,再转换为int*/

10. 下面每一条语句的变量都是什么类型?


a.auto cars=15; /*类型:int*/
b.auto iou=150.37f; /*类型:float*/
c.auto level='B'; /*类型:char*/ 
d.auto crat=U'/U00002155'; /*类型:char32_t*/
e.auto fract=8.25f/2.5; /*类型:double*/

编程题

1. 编写一个小程序,要求用户使用一个整数指出自己的身高(单位为英寸),然后将身高转换为英尺和英寸,该程序使用下划线字符来指示输入位置。另外,使用一个const符号常量来表示转换因子。

2. 编写一个小程序,要求以几英尺几英寸的方式输入其身高,并以磅为单位输入其体重。(使用3个变量来存储这些信息。)该程序报告其BMI(Body Mass Index,体重指数)。为了计算BMI, 该程序以英寸的方式指出用户的身高(1英尺为12英寸),并将以英寸为单位的身高转换为以米为单位的身高(1英寸=0.0254米)。然后,将以磅为单位的体重转换为以千克为单位的体重(1千克=2.2磅)。最后,计算相应的BMI——体重(千克)除以身高(米)的平方。用符号常量表示各种转换因子。

3. 编写一个程序,要求用户以度、分、秒的方式输入一个纬度,然后以度为单位显示该纬度。1度为60分,1分等于60秒,请以符号常量的方式表示这些值。对于每个输入值,应使用一个独立的变量存储它。

4. 编写一个程序,要求用户以整数方式输入秒数(使用long或long long变量存储),然后以天、小时、分钟和秒的方式显示这段时间。使用符号常量来表示每天有多少小时、每小时有多少分钟以及每分钟有多少秒。

5.  编写一个程序,要求用户输入全球当前的人口和美国当前的人口(或其他国家的人口)。将这些信息存储在long long变量中,并让程序显示美国(或其他国家)的人口占全球人口的百分比。

6. 编写一个程序,要求用户输入驱车里程(英里)和使用汽油量(加仑),然后指出汽车耗油量为一加仑的里程。如果愿意,也可以让程序要求用户以公里为单位输入距离,并以升为单位输入汽油量,然后指出欧洲风格的结果——即每100公里的耗油量(升)。

7. 编写一个程序,要求用户按欧洲风格输入汽车的耗油量(每100公里消耗的汽油量(升)),然后将其转换为美国风格的耗油量——每加仑多少英里。注意,除了使用不同的单位计量外,美国方法(距离/燃料)与欧洲方法(燃料/距离)相反。100公里等于62.14英里,1加仑等于3.875升。因此,19mpg大约合12.41/100km,127mpg大约合8.71/100km。
 

以下是代码:

#include<iostream>
using namespace std;
#include <string>
void test01()
{
	const double Inch_Per_Feet = 12;
    double height_inch;
    cout << "请输入你的身高:";

    cin >> height_inch; // 读取输入英寸身高
    cout << "你的身高是:" << height_inch << " 英寸" << endl;

    double height_feet = height_inch / Inch_Per_Feet; // 转换后的英尺身高
    cout << "你的身高是:" << height_feet << " 英尺" << endl;
}

void test02()
{
    const int Inch_Per_Feet = 12;
    const float m_Per_Inch = 0.0254;
    const float kg_Per_pound = 2.2;
    double height, weight, bmi;
    float inches, feet;
    cout << "please input your height(inch and feet) : " << endl;
    cin >> inches >> feet;
    cout << "please input your height (pound) : " << endl;
    cin >> weight;
    height = Inch_Per_Feet * inches * m_Per_Inch * feet;
    weight = weight / kg_Per_pound;
    bmi = weight / (height * height);

    cout << "your height meter is " << height << endl;
    cout << "your weight (kg) is " << weight << endl;
    cout << "your bmi is " << bmi << endl;
}

void test03()
{
    const int Degree_Per_Minute = 60;
    const int Minute_Per_second = 60;
    float degrees, minutes, seconds;
    cout << "Enter a latitude in degrees,minutes,and seconds:" << endl;
    cout << "First,enter the degrees: ";
    cin >> degrees;
    cout << "Next,enter the minutes of arc:";
    cin >> minutes;
    cout << "Finally,enter the seconds of arc:";
    cin >> seconds;
    float total_degrees = degrees + minutes / Degree_Per_Minute + seconds / Minute_Per_second;
    cout << "\n" << degrees << " degrees," << minutes << " minutes," << seconds
        << " seconds = " << total_degrees << " degrees" << endl;
}

void test04()
{
    const int Hour_Per_Day = 24;
    const int Minute_Per_Hour = 60;
    const int Second_Per_Minute = 60;
    long long seconds;

    cout << "Enter the number of seconds : ";
    cin >> seconds;
    int day = seconds / (Hour_Per_Day * Minute_Per_Hour * Second_Per_Minute);
    int hour = seconds / (Minute_Per_Hour * Second_Per_Minute) % Hour_Per_Day;
    int minute = seconds / Minute_Per_Hour % Minute_Per_Hour;
    int left_second = seconds % Second_Per_Minute;
    cout << seconds << " seconds = " << day << " days, " << hour
        << " hour, " << minute << "minutes, " << left_second << " seconds." << endl;
}


void test05()
{
    long long chinese, worlds;
    cout << "please input your chinese population : ";
    cin >> chinese;
    cout << "please input your world population : ";
    cin >> worlds;
    float percent = float(chinese) / float(worlds) * 100;
    cout << "chinese percent is " << percent << "%" << endl;
}

void test06()
{
    double distance, oil_vol;
    cout << "please input your distance : ";
    cin >> distance;
    cout << "please input your oil volume : ";
    cin >> oil_vol;
    double mile_per_gallon = distance / oil_vol;
    cout << "every gallon's ditance is " << mile_per_gallon << endl;
}

void test07()
{
    float consumption;
    cout << "please input your oil consumption every KM: ";
    cin >> consumption;
    float jl = consumption * 100 / 3.875;
    cout << 62.14 / jl << endl;
}

int main()
{
    test01();
    test02();
    test03();
    test04();
    test05();
    test06();
    test07();
	return 0;
}

 

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

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

相关文章

又一个生物标志物ADMA被发现!可为OA治疗提供新方向!

文章标题&#xff1a;Metabolite asymmetric dimethylarginine (ADMA) functions as a destabilization enhancer of SOX9 mediated by DDAH1 in osteoarthriti 发表期刊&#xff1a;Science Advances 影响因子&#xff1a;14.95 作者单位&#xff1a;浙江大学医学院附属邵逸…

EasyUi03

1.无限极分类. 1.1无限极分类介绍. 1.1.1何为无限极分类. 无限极分类简单点说就是一个类别能够分多个子类&#xff0c;而后一个子类又能够分多个子类&#xff0c;就这样无限分下去&#xff0c;就好象 windows能够新建一个文件夹&#xff0c;而后在这个文件夹里又能够建一些文…

《嵌入式系统》知识总结12:SysTick定时器

SysTick定时器 系统时钟&#xff08;SysTick&#xff09; Corte-M3在内核中包含的简单定时器 • 该定时器的时钟源可以来自CM3内部时钟&#xff08;FCLK&#xff09;&#xff0c;或CM3外部时钟&#xff08;STCLK&#xff09; • 在STM32微控制器中&#xff0c;SysTick的时钟源可…

平板触控笔哪款好用?电容笔牌子排行

现如今&#xff0c;电容笔越来越受欢迎&#xff0c;不少人在记笔记、学画画甚至是玩游戏的时候都会使用它。最近看到很多人问&#xff0c;iPad电容笔哪款好用&#xff1f;针对这个问题&#xff0c;我来给大家推荐四款公认好用的平替电容笔&#xff0c;一起来看看吧。 一、主动…

实验篇(7.2) 08. 通过安全隧道访问内网服务器 (FortiClient-IPsec) ❀ 远程访问

【简介】通过对SSL VPN与IPsec VPN的对比&#xff0c;我们知道SSL VPN是基于应用层的VPN&#xff0c;而IPsec VPN是基于网络层的VPN&#xff0c;IPsec VPN对所有的IP应用均透明。我们看看怎么用FortiClient实现IPsec VPN远程访问。 实验要求与环境 OldMei集团深圳总部部署了一台…

眼底图片解读(对比图!!!)

目录 1. 前言 2.常见眼底解析 (1) 黄斑变性 (2) 糖尿病视网膜病变 (3) 青光眼 (4) 视网膜血管阻塞 (5)视网膜裂孔和脱离 1. 前言 眼底图像是通过眼底摄影等技术获取的眼底部位的影像&#xff0c;可以提供关于眼睛健康和疾病的重要信息。以下是眼底图像中常见的信息和相关…

只见新人笑,不见旧人哭 ChatGPT淘汰了多少产品?快来了解!

ChatGPT作为目前世界上最先进的人工智能聊天工具&#xff0c;其GPT模型就是一种自然语言处理&#xff08;NLP&#xff09;模型&#xff0c;使用多层变换器&#xff08;Transformer&#xff09;来预测下一个单词的概率分布&#xff0c;通过训练在大型文本语料库上学习到的语言模…

chatgpt赋能python:Python自动运行教程:让你的工作更智能化

Python自动运行教程&#xff1a;让你的工作更智能化 Python是一种高级、解释型、面向对象的编程语言&#xff0c;被广泛应用于数据分析、机器学习和自动化任务等领域。除此之外&#xff0c;Python还能够实现自动化运行&#xff0c;让用户无需手动干预&#xff0c;从而减轻工作…

Think系列产品进入BIOS的操作方法

Think系列产品进入BIOS的操作方法&#xff1a; 适用范围&#xff1a;ThinkPad全系列笔记本ThinkCentre全系列一体机ThinkStation全系列工作站 温馨提示&#xff1a;如果您用的是Win8/8.1系统&#xff0c;小乐强烈建议您在系统下执行“重启”后的开机界面(切记&#xff1a;不是从…

DynaMask:用于实例分割的动态掩码选择

文章目录 DynaMask: Dynamic Mask Selection for Instance Segmentation摘要本文方法Dual-Level FPNRegion-Level FPNFeature Aggregation Module (FAM)Mask Switch Module (MSM)损失函数 实验结果 DynaMask: Dynamic Mask Selection for Instance Segmentation 摘要 具有代表…

共见·价值成就|光环云与您相约2023亚马逊云科技合作伙伴峰会!

在云计算蓬勃发展的今天&#xff0c; 在推动业务发展、实现共赢的过程中&#xff0c; 价值成就&#xff0c;是亚马逊云科技对合作伙伴 自始至终的承诺。 为助力合作伙伴成就价值&#xff0c;共建成长路径&#xff0c; 2023亚马逊云科技合作伙伴峰会将于 6月27日在上海世博…

跟着LearnOpenGL学习7--坐标系统

文章目录 一、概述二、变换过程三、局部空间四、世界空间五、观察空间六、裁剪空间6.1、正射投影6.2、透视投影 七、组合变换八、3D实战8.1、创建模型矩阵8.2、创建观察矩阵8.3、创建投影矩阵8.4、变换矩阵传入着色器 九、3D立方体9.1、Z缓冲9.2、更多的立方体 一、概述 OpenG…

【022】C++的结构体、共用体以及枚举详解(最全讲解)

C的结构体、共用体以及枚举详解 引言一、结构体的概述二、结构体变量的操作2.1、结构体变量的初始化2.2、清空整个结构体变量2.3、键盘给结构体变量中的成员赋值2.4、单独操作结构体中的成员2.5、相同类型结构体变量之间的赋值 三、结构体嵌套结构体四、结构体数组五、结构体指…

JUC基础-0531

3 线程间通信 线程间通信的模型有两种:共享内存和消息传递&#xff0c;以下方式都是基本这两种模型来实现的。我们来基本一道面试常见的题目来分析 多线程编程步骤&#xff1a; 第一步&#xff1a;创建资源类&#xff0c;在资源类创建属性和操作方法第二步&#xff1a;在资源…

电脑录音软件哪个好用?如何录制声音?

案例&#xff1a;有没有好用的电脑录音软件分享&#xff1f; 【使用手机录制电脑上的声音&#xff0c;会录入外界的杂音&#xff0c;导致录音文件质量不佳。我需要一款支持录制电脑声音的软件&#xff0c;小伙伴们有没有好用的电脑录音软件推荐&#xff1f;】 电脑录音软件成…

docker安装RabbitMQ教程(2023年最详细)

1.使用docker查询rabbitmq的镜像 docker search rabbitmq 2.安装镜像 如果需要安装其他版本在rabbitmq后面跟上版本号即可 docker pull rabbitmq:3.7.7-management 说明 docker pull rabbitmq:版本号 -management 安装name为rabbitmq的这里是直接安装最新的 docker pull …

算法leetcode|54. 螺旋矩阵(rust重拳出击)

文章目录 54. 螺旋矩阵&#xff1a;样例 1&#xff1a;样例 2&#xff1a;提示&#xff1a; 分析&#xff1a;题解&#xff1a;rust&#xff1a;go&#xff1a;c&#xff1a;python&#xff1a;java&#xff1a;每次循环移动一步&#xff1a;每次循环完成一个顺时针&#xff1a…

玩转 GPT4All

目录 什么是Chatgpt 什么是gpt4all 如何使用 第一步&#xff1a;下载LLM模型 第二步&#xff1a;下载代码 第三步&#xff1a;将模型替换到 第四步&#xff1a;执行启动命令 第五步&#xff1a;生成自己的客户端 第六步&#xff1a;启动 第七步&#xff1a;配置UI 什么…

【CesiumJS入门】(3)ImageryLayer之图层卷帘

前言 上一篇博客简单得介绍了影像图层并成功在视图上加载出来了&#xff0c;而今天我们来实现一个简单的可视化效果&#xff0c;影像图层卷帘。 前置知识&#xff1a;Cesium 事件详解&#xff08;鼠标事件、相机事件、键盘事件、场景触发事件&#xff09;_cesium点击事件_GIS…

OPT CST 慕藤光

OPT 波特率 数据长度 停止位 奇偶校验 9600 bps 8 bits 1 bit 无 所有通讯字节都采用ASCII码 特征字 &#xff1d; $命令字 &#xff1d; 1&#xff0c;2&#xff0c;3&#xff0c;4 打开对应通道电源关闭对应通道电源设置对应通道电源参数读出对应通道电…