C++PrimerPlus第四章编程题

news2025/1/18 8:52:56

编程题

题目总览

在这里插入图片描述

在这里插入图片描述

编程题题解

    1. 题目要求输入四次信息,有四次交互的输入(in),最后在一口气列举出来。同时对于firstname与lastname进行了拼接,而且对于输入的成绩进行降级操作。同时对于名字name的要求是可以输入多个单词,也就是可以输入空格。
  • 再次解析题意就是需要输入4个变量,同时firstname和lastname需要使用getline的方法来实现输入(避免空格字符造成跳过输入流程的错误),再拼接为name(或者按照顺序输出)。成绩输入的字母aiisc-1实现降级。
  • 代码:
#include<iostream>
#include<string>
using namespace std;
int main()
{
	string fn;
	string ln;
	string name;
	int age;
	char grade;
	std::cout << "What is your first name: ";
	getline(cin, fn);		//std::cin >> fn;两者区别在于使用getline可以避免在识别到空格就跳过下阶段的输入
	std::cout << "\nWhat is your last name : ";
	getline(cin, ln);		//std::cin >> ln; 使用getline需要头文件string
	name = ln + "," + fn;
	std::cout << "\nWhat letter grade do you deserve?";
	std::cin >> grade;
	grade += 1;
	std::cout << "\nWhat is your age?";
	std::cin >> age;
	std::cout << "Name: " << name << "\nGrade: " << grade << "\nAge: " << age;
	return 0;
}
    1. 题目要求使用string来获取到交互的喜爱甜点和名字,再输出(类似题1)
  • 代码:
#include<iostream>
#include<string>
int main()
{
	using namespace std;
	const int ArSize = 20;
	string name;
	string dessert;
	std::cout << "Enter your name:\n";
	getline(cin, name);
	std::cout << "Enter your favorite dessert:\n";
	getline(cin, dessert);
	std::cout << "I have some delicious [" << dessert;
	std::cout << "] for you , [" << name<< "].\n";
	return 0;
}
    1. 使用拼接和复制的函数来对字符串数组进行操作。
  • 代码:
#include<iostream>
#include<cstring>
int main()
{
	char fn[20];
	char ln[20];
	std::cout << "Enter your first name: ";
	std::cin >> fn;
	std::cout << "Enter your last name: ";
	std::cin >> ln;
	char name[50];
	strcpy_s(name, fn);
	strcat_s(name, ",");
	strcat_s(name, ln);
	std::cout << "Here is the information in a single string : " << name;
	return 0;
}
    1. 改写第三题中使用的char数组操作部分为string操作部分
  • 代码:
#include<iostream>
#include<string>
int main()
{
	using namespace std;
	string fn;
	string ln;
	std::cout << "Enter your first name: ";
	std::cin >> fn;
	std::cout << "Enter your last name: ";
	std::cin >> ln;
	string name;
	name = fn + "," + ln;
	std::cout << "Here is the information in a single string : " << name;
	return 0;
}
    1. 定义一个结构包含字符串,浮点数,整数三种成员类型,再初始化并输出。
  • 代码:
#include<iostream>
#include<string>
struct CandyBar{
	std::string brand;//品牌
	float heavy;	
	int calorie;
};
int main()
{
	CandyBar snack{
		"Mocha Munch",
		2.3,
		350
	};
	std::cout << "snack CandyBar:\n";
	std::cout << "Brand:" << snack.brand;
	std::cout << "\nHeavy:" << snack.heavy;
	std::cout << "\nCalorie:" << snack.calorie;
	return 0;
}
    1. 对于题5而言增加了一个数组的操作,多个结构赋值与输出。
  • 代码:
#include<iostream>
#include<string>
struct CandyBar {
	std::string brand;//品牌
	float heavy;
	int calorie;
};
int main()
{
	using namespace std;
	CandyBar candys[3] = {
		{"aerbeisi",10,200},
		{"xufuji",20,400},
		{"buerjia",30,500}
	};
	for (int i = 0; i < 3; i++) {
		std::cout << "\nBrand:" << candys[i].brand;
		std::cout << "\nHeavy:" << candys[i].heavy;
		std::cout << "\nCalorie:" << candys[i].calorie;
		std::wcout << "\n___________";
	}
	return 0;
}
    1. 建立一个结构,输入来对结构内的元素进行赋值,并输出。
  • 代码:
#include<iostream>
#include<string>
struct Pizza {
	std::string Company;
	float diameter;
	float weight;
};
int main()
{
	Pizza pizza;
	std::cout << "\ncompany:";
	std::cin >> pizza.Company;
	std::cout << "\ndiameter:";
	std::cin >> pizza.diameter;
	std::cout << "\nweight:";
	std::cin >> pizza.weight;
	std::cout << "pizza信息为:";
	std::cout << "\n公司:" << pizza.Company;
	std::cout << "\n直径:" << pizza.diameter<<"cm";
	std::cout << "\n重量:" << pizza.weight << "g";
	return 0;
}
    1. 相较于题目7,这里要求不是声明一个结构变量,改为用new来为结构分配内存。
  • 代码:
#include<iostream>
#include<string>
struct Pizza {
	std::string Company;
	float diameter;
	float weight;
};
int main()
{
	Pizza *pizza = new Pizza;
	std::cout << "\ndiameter:";
	std::cin >> pizza->diameter;
	std::cout << "\ncompany:";
	std::cin >> pizza->Company;
	std::cout << "\nweight:";
	std::cin >> pizza->weight;
	std::cout << "pizza信息为:";
	std::cout << "\n公司:" << pizza->Company;
	std::cout << "\n直径:" << pizza->diameter << "cm";
	std::cout << "\n重量:" << pizza->weight << "g";
	delete pizza;
	return 0;
} 
    1. 对6进行动态分配数组的规划。
  • 代码:
#include<iostream>
#include<string>
struct CandyBar {
	std::string brand;//品牌
	float heavy;
	int calorie;
};
int main()
{
	using namespace std;
	CandyBar *ca1 = new CandyBar;
	CandyBar *ca2 = new CandyBar;
	CandyBar *ca3 = new CandyBar;
	CandyBar *cas[3] = { ca1,ca2,ca3 };
	for (int i = 0; i < 3; i++) {
		std::cin >> cas[i]->brand;
		std::cin >> cas[i]->calorie;
		std::cin >> cas[i]->heavy;
	}
	for (int i = 0; i < 3; i++) {
		std::cout << "\nBrand:" << cas[i]->brand;
		std::cout << "\nHeavy:" << cas[i]->heavy;
		std::cout << "\nCalorie:" <<cas[i]->calorie;
		std::wcout << "\n___________";
	}
	delete ca1, ca2, ca3,cas;
	return 0;
}
    1. 输入数据并且计算平均值与次数。使用array对象来存储数据。
  • 代码:
#include<iostream>
#include<array>
int main()
{
	using namespace std;
	array<float, 3>run;	//创建一个run的array对象,内部包含3个float类型元素。
	float sum = 0;
	for (int i = 0; i < 3; i++)
	{
		std::cout << "请输入第" << i+1 << "次的40米跑成绩:";
		std::cin >> run[i];
		sum += run[i];
		std::cout << "\a第" << i + 1 << "次40米跑成绩为" << run[i] << "s\n\n";
		std::cout << "前" << i+1 << "次平均成绩为:" << sum / (i + 1)<<"s\n\n";
	}
	return 0;
}

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

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

相关文章

使用Flink MySQL cdc分别sink到ES、Kafka、Hudi

环境说明 [flink-1.13.1-bin-scala_2.11.tgz](https://archive.apache.org/dist/flink/flink-1.13.1/flink-1.13.1-bin-scala_2.11.tgz)[hadoop-2.7.3.tar.gz](https://archive.apache.org/dist/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz)[flink-cdc-connectors](https:…

【Base64】前后端图片交互(2)

使用Base64去处理前后端图片交互 一、Base64编码介绍二、java.util.Base64 介绍源码分析编码译码 三、使用 Base64 前后端图片交互&#xff08;实操&#xff09;四、效果展示五、总结 绪论&#xff1a;在此之前小编发过一次前后端交互处理的方式&#xff1a;前后端图片交互的简…

深度学习之图像分类(三):VGGNet

系列文章目录 本专栏介绍基于深度学习进行图像识别的经典和前沿模型&#xff0c;将持续更新&#xff0c;包括不仅限于&#xff1a;AlexNet&#xff0c; ZFNet&#xff0c;VGG&#xff0c;GoogLeNet&#xff0c;ResNet&#xff0c;DenseNet&#xff0c;SENet&#xff0c;Mobile…

Windows磁盘空间不够,发现DriverStore文件夹特别大

正想安装一个新的VS2022&#xff0c;但是发现C盘的空间已经不足&#xff0c; 显示为红色了&#xff0c;这样不能安装。只好找一下C盘的空间为什么不足了&#xff0c;后来发现有一个目录特别大&#xff0c;这个目录就是DriverStore文件夹。由于电脑已经运行5年了&#xff0c;也…

Java的线程

介绍线程 线程是系统调度的最小单元&#xff0c;一个进程可以包含多个线程&#xff0c;线程是负责执行二进制指令的。 每个线程有自己的程序计数器、栈&#xff08;Stack&#xff09;、寄存器&#xff08;Register&#xff09;、本地存储&#xff08;Thread Local&#xff09…

Linux的基本权限

基本权限 1.权限的概念2.Linux上的用户分类2.1. 如何切换用户&#xff1f; 3.Linux的权限管理3.1. 文件访问者的分类&#xff08;人&#xff09;3.2.文件类型和访问权限&#xff08;文件属性&#xff09;3.2.1. 文件类型3.2.2. 基本权限 3.3. 文件权限值的表示方法3.3.1. 字符表…

Mac中idea快捷键(Keymap->macOS)

背景&#xff1a; mac&#xff1a;MacBook Pro&#xff08;13英寸&#xff0c;M2&#xff0c;2022年&#xff09; 系统版本&#xff1a;12.4 idea快捷键配置&#xff1a;本文快捷键设置基于macOS&#xff08;Keymap->macOS&#xff09; 一、常用快捷键 1.commandF 在当前…

java类和对象2

文章目录 一、Java实例变量和类变量二、Java实例方法和类方法三、Java方法重载四、Java this关键字五、Java包六、Java import语句七、Java访问权限八、Java基本类型的类封装九、Java jar文件总结 一、Java实例变量和类变量 实例变量和类变量的定义 在声明成员变量时&#xf…

微信云开发之云函数小例子

环境 微信开发者工具 Stable 1.06.2303220云开发控制台 v1.5.47 概述 云函数即在云端&#xff08;服务器端&#xff09;运行的函数&#xff0c;代码运行在云端Node.js中。我们可以使用云函数SDK中提供的数据库和存储API进行数据库和存储的操作。 云函数的独特优势在于与微信…

centos,搭建ftp服务;vsftpd

安装vsftpd 使用yum安装vsftpd&#xff1a; yum install -y vsftpd 配置vsftpd 编辑vsftpd配置文件&#xff1a; vim /etc/vsftpd/vsftpd.conf 以下是一些常见的配置项&#xff1a; anonymous_enableNO local_enableYES write_enableYES local_umask022 dirmessage_enableYE…

职场新人必备:10个写进备忘录的职场tips

作为职场新人&#xff0c;如何快速适应、获得成长和提升自己&#xff0c;是每个人都面临的挑战。在这个竞争激烈的职场中&#xff0c;拥有一些实用的职场tips&#xff0c;可以帮助你更好地应对各种挑战&#xff0c;获得成功。在本文中&#xff0c;我们将分享10个写进备忘录的职…

es8388 驱动详解

音频的基本框架 分为三个部分&#xff1a; 1&#xff09; 整体的绿框&#xff0c;为machine&#xff0c;例如你的PC等&#xff0c;负责图中 “线”的部分的关联&#xff0c;及黄色连接器的管理。也就是说不属于 paltform和codec管理的部分&#xff0c;都划归machine管理。 对应…

【Python socket】零基础也能轻松掌握的学习路线与参考资料

Python socket是Python程序语言中与网络编程密切相关的库之一&#xff0c;可以让程序员在网络世界中建立服务和客户端之间的连接。Python socket提供了一系列关键的概念和方法&#xff0c;让用户能够轻松地构建基于网络的程序&#xff0c;如基于TCP和UDP的应用程序。学习Python…

图(Graph)

Graph 图由顶点&#xff08;vertex /ˈvɜːrteks/&#xff09;和边&#xff08;edge /edʒ/&#xff09;组成的一种结构。 顶点的集合V&#xff0c;边的集合是E&#xff0c;所以图记为G &#xff08;V&#xff0c;E&#xff09; 总结: 顶点是一维数组,而边是二维数组; 假如顶点…

Pycharm无法添加Conda新建的虚拟环境

Pycharm无法添加Conda新建的虚拟环境&#xff0c;点击没反应&#xff0c;在idea.log文件中报错&#xff1a;CondaPythonLegacy - Can’t find python path to use, will use conda run instead 1.问题描述&#x1f50d; 在PyCharm中&#xff0c;依次单击File>Settings>P…

Netty核心技术一--Netty介绍和应用场景

1. 学习要求 要求已经掌握了 Java 编程&#xff0c; 主要技术构成&#xff1a; Java OOP 编程、Java 多线程编程、JavaIO 编程 、Java 网络编程、常用的Java 设计模式(比如观察者模式&#xff0c;命令模式&#xff0c;职责链模式 )、常用的数据结构(比如 链表) 2 Netty的介绍…

C++: 计时器类的设计和实现

文章目录 1. 目的2. 功能列表3. 基础功能&#xff1a;获取耗时4. API 设计: Timer 类5. 单元测试6. API 实现 1. 目的 使用 C Class 的形式&#xff0c;封装原本 C语言的获取时间的函数&#xff0c;提供更容易使用的计时器调用。 使用 C03&#xff0c;原因是和先前的线程安全队…

ATT-ACK靶场渗透(一)

开启内网环境 kali攻击机ip为 192.168.88.156 主机发现、端口扫描 进行主机发现 nmap -sS 192.168.88.156/24 -Pn 192.168.88.1和192.168.88.2可能为网关之类的&#xff0c;不管 weblogic漏洞利用 192.168.88.182开放了80端口和7001&#xff08;weblogic&#xff09;端口…

超越预期:ConvNeXt技术催生YOLOv5目标检测巨变 ,实现超准确率

目录 引言一、ConvNeXt的介绍1、目标检测的重要性2、YOLOv5的介绍3、ConvNeXt原理和特点4、ConvNeXt结构 二、相关研究综述1、目标检测的基础原理和流程2、YOLOv5的特点与局限性3、ConvNeXt技术在目标检测中的应用现状 三、ConvNeXt在YOLOv5中的应用与改进1、安装PyTorch和torc…

阿里Java工程规约(来源阿里)

一、应用分层 1.开放接口层&#xff1a; 可直接封装 Service 接口暴露成 RPC 接口&#xff1b;通过 Web 封装成 http 接口&#xff1b;网关控制层等。 2.终端显示层&#xff1a; 各个端的模板渲染并执行显示层。当前主要是 velocity 渲染&#xff0c;JS 渲染&#xff0c;JSP 渲…