《C++语言程序设计(第5版)》(清华大学出版社,郑莉 董渊编著)习题——第2章 C++语言简单程序设计

2-15 编写一个程序,运行时提示输入一个数字,再把这个数字显示出来。

#include <iostream>using namespace std;int main() {// 提示用户输入数字cout << "请输入一个数字: ";// 用于存储用户输入的数字的变量double number;// 从标准输入读取用户输入的数字cin >> number;// 显示用户输入的数字cout << "您输入的数字是: " << number << endl;return 0;
}

 

2-16 C++语言有哪几种数据类型?简述其值域。编程显示你使用的计算机中的各种数据类型的字节数。

#include <iostream>using namespace std;int main() {cout << "整型的大小: " << sizeof(int) << " 字节\n";cout << "长整型的大小: " << sizeof(long) << " 字节\n";cout << "短整型的大小: " << sizeof(short) << " 字节\n";cout << "字符型的大小: " << sizeof(char) << " 字节\n";cout << "单精度浮点型的大小: " << sizeof(float) << " 字节\n";cout << "双精度浮点型的大小: " << sizeof(double) << " 字节\n";cout << "布尔型的大小: " << sizeof(bool) << " 字节\n";// 根据需要添加更多的数据类型return 0;
}

2-17 输出ASCⅡ码为32~127的字符。

#include <iostream>using namespace std;int main() {// 输出ASCII码为32~127的字符for (int i = 32; i <= 127; ++i) {cout << char(i) << " ";}cout << endl;return 0;
}

2-25 编写一个完整的程序,实现功能:向用户提问“现在正在下雨吗?”,提示用户输入Y或N。若输入为Y,显示“现在正在下雨。”;若输入为N,显示“现在没有下雨。”;否则继续提问“现在正在下雨吗?”。

#include <iostream>
#include <string>int main() {std::string userInput;do {// 提问用户是否正在下雨std::cout << "现在正在下雨吗?(输入Y或N): ";std::cin >> userInput;// 处理用户输入if (userInput == "Y" || userInput == "y") {std::cout << "现在正在下雨。\n";} else if (userInput == "N" || userInput == "n") {std::cout << "现在没有下雨。\n";} else {std::cout << "无效的输入,请输入Y或N。\n";}} while (userInput != "Y" && userInput != "y" && userInput != "N" && userInput != "n");return 0;
}

2-26 编写一个完整的程序,运行时向用户提问“你考试考了多少分?(0~100)”,接收输入后判断其等级显示出来。规则如下:
优90≤分数≤100

良80≤分数<90

中60≤分数<80

差0≤分数<60

#include <iostream>int main() {// 提示用户输入分数std::cout << "你考试考了多少分?(0~100): ";// 接收用户输入int score;std::cin >> score;// 判断等级并显示结果if (score >= 90 && score <= 100) {std::cout << "优\n";} else if (score >= 80 && score < 90) {std::cout << "良\n";} else if (score >= 60 && score < 80) {std::cout << "中\n";} else if (score >= 0 && score < 60) {std::cout << "差\n";} else {std::cout << "输入无效,分数应在0~100之间。\n";}return 0;
}

2-27 实现一个简单的菜单程序,运行时显示“Menu:A(dd) D(elete) S(ort) Q(uit),Selet one:“提醒用户输入,A表示增加,D表示删除,S表示排序,Q表示退出,输入为A、D、S时分别提示“数据已经增加、删除、排序。”输入为Q时程序结束。

(1)要求使用if…else语句进行判断,用break、continue控制程序流程。

(2)要求使用switch语句。

//使用if...else#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main() {vector<string> data;  // 用于存储数据的向量while (true) {cout << "菜单:A(增加) D(删除) S(排序) Q(退出)\n";char choice;cout << "请选择:";cin >> choice;if (choice == 'A') {// 增加数据string newData;cout << "输入要增加的数据:";cin >> newData;data.push_back(newData);cout << "数据已经增加。\n";} else if (choice == 'D') {// 删除数据if (data.empty()) {cout << "没有数据可以删除。\n";} else {cout << "原始数据:";for (size_t i = 0; i < data.size(); ++i) {cout << data[i] << " ";}cout << "\n输入要删除的数据:";string itemToDelete;cin >> itemToDelete;vector<string>::iterator it = find(data.begin(), data.end(), itemToDelete);if (it != data.end()) {data.erase(it);cout << "数据已经删除。\n";} else {cout << "未找到数据。\n";}}} else if (choice == 'S') {// 排序数据if (data.empty()) {cout << "没有数据可以排序。\n";} else {sort(data.begin(), data.end());cout << "数据已经排序。\n";}} else if (choice == 'Q') {// 退出程序cout << "程序正在退出。\n";break;} else {// 处理无效输入cout << "无效的选择。请键入 A、D、S 或 Q。\n";continue;}// 显示当前数据cout << "当前数据:";for (size_t i = 0; i < data.size(); ++i) {cout << data[i] << " ";}cout << "\n\n";}return 0;
}

// 使用switch语句#include <iostream>
#include <vector>
#include <algorithm>using namespace std;int main() {vector<string> data;  // 用于存储数据的向量char choice;while (true) {cout << "菜单:A(增加) D(删除) S(排序) Q(退出)\n";cout << "请选择:";cin >> choice;switch (choice) {case 'A':case 'a': {// 增加数据string newData;cout << "请输入要增加的数据:";cin >> newData;data.push_back(newData);cout << "数据已经增加。\n";break;}case 'D':case 'd': {// 删除数据if (data.empty()) {cout << "没有数据可以删除。\n";} else {cout << "当前数据:";for (size_t i = 0; i < data.size(); ++i) {cout << data[i] << " ";}cout << "\n请输入要删除的数据:";string itemToDelete;cin >> itemToDelete;size_t indexToDelete = 0;bool found = false;for (size_t i = 0; i < data.size(); ++i) {if (data[i] == itemToDelete) {indexToDelete = i;found = true;break;}}if (found) {data.erase(data.begin() + indexToDelete);cout << "数据已经删除。\n";} else {cout << "未找到数据。\n";}}break;}case 'S':case 's': {// 排序数据if (data.empty()) {cout << "没有数据可以排序。\n";} else {sort(data.begin(), data.end());cout << "数据已经排序。\n";}break;}case 'Q':case 'q':// 退出程序cout << "程序正在退出。\n";return 0;default:// 处理无效输入cout << "无效的选择,请输入A、D、S或Q。\n";}// 显示当前数据cout << "当前数据:";for (size_t i = 0; i < data.size(); ++i) {cout << data[i] << " ";}cout << "\n\n";}return 0;
}

2-28 用穷举法找出1~100的质数并显示出来。分别使用while、do-while、for循环语句实现。

// 使用while循环#include <iostream>using namespace std;int main() {int number = 2;cout << "1~100之间的质数有:";while (number <= 100) {int divisor = 2;bool isPrime = true;while (divisor <= number / 2) {if (number % divisor == 0) {isPrime = false;break;}divisor++;}if (isPrime) {cout << number << " ";}number++;}cout << endl;return 0;
}
//使用do...while语句#include <iostream>using namespace std;int main() {int number = 2;cout << "1~100之间的质数有:";do {int divisor = 2;bool isPrime = true;do {if (number % divisor == 0) {isPrime = false;break;}divisor++;} while (divisor <= number / 2);if (isPrime) {cout << number << " ";}number++;} while (number <= 100);cout << endl;return 0;
}
//使用for循环语句#include <iostream>using namespace std;int main() {cout << "1~100之间的质数有:";for (int number = 2; number <= 100; ++number) {bool isPrime = true;for (int divisor = 2; divisor <= number / 2; ++divisor) {if (number % divisor == 0) {isPrime = false;break;}}if (isPrime) {cout << number << " ";}}cout << endl;return 0;
}

2-30 声明一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来

#include <iostream>using namespace std;// 定义表示时间的结构体
struct Time {int year;int month;int day;int hour;int minute;int second;
};int main() {// 创建时间结构体变量Time time;// 提示用户输入时间信息cout << "请输入年份: ";cin >> time.year;cout << "请输入月份: ";cin >> time.month;cout << "请输入日期: ";cin >> time.day;cout << "请输入小时: ";cin >> time.hour;cout << "请输入分钟: ";cin >> time.minute;cout << "请输入秒数: ";cin >> time.second;// 显示完整的时间信息cout << "输入的时间为:" << time.year << "年" << time.month << "月" << time.day << "日 "<< time.hour << "时" << time.minute << "分" << time.second << "秒" << endl;return 0;
}

2-31 在程序中定义一个整型变量,赋以1~100的值,要求用户猜这个数,比较两个数的大小,把结果提示给用户,直到猜对为止。分别使用while、do...while语句实现循环。

//使用while循环#include <iostream>using namespace std;int main() {int targetNumber = 42; // 要猜的数字int userGuess;cout << "猜一猜1~100之间的数字: ";// 使用while循环while (true) {cin >> userGuess;if (userGuess == targetNumber) {cout << "恭喜你,猜对了!" << endl;break; // 结束循环} else if (userGuess < targetNumber) {cout << "猜的数字太小了,请再试一次: ";} else {cout << "猜的数字太大了,请再试一次: ";}}return 0;
}
// 使用do...while语句#include <iostream>using namespace std;int main() {int targetNumber = 42; // 要猜的数字int userGuess;cout << "猜一猜1~100之间的数字: ";// 使用do...while循环do {cin >> userGuess;if (userGuess == targetNumber) {cout << "恭喜你,猜对了!" << endl;} else if (userGuess < targetNumber) {cout << "猜的数字太小了,请再试一次: ";} else {cout << "猜的数字太大了,请再试一次: ";}} while (userGuess != targetNumber);return 0;
}

2-32 口袋中有红、黄、蓝、白、黑5种颜色的球若干个。每次从口袋种取出3个不同颜色的球,问有多少种取法?

#include <iostream>
#include <string>using namespace std;int main() {const int totalColors = 5; // 总颜色数const int ballsPerDraw = 3; // 每次取出的球数string colors[] = {"红", "黄", "蓝", "白", "黑"};int combinationCount = 0;// 循环遍历所有可能的排列for (int color1 = 0; color1 < totalColors; ++color1) {for (int color2 = 0; color2 < totalColors; ++color2) {for (int color3 = 0; color3 < totalColors; ++color3) {if (color1 != color2 && color1 != color3 && color2 != color3) {// 输出当前排列和编号cout  << combinationCount + 1 << " ";cout << colors[color1] << " " << colors[color2] << " " << colors[color3] << endl;combinationCount++;}}}}// 输出总的排列数cout << "总共有 " << combinationCount << " 种取法。" << endl;return 0;
}

2-33 输出九九乘法表

#include<bits/stdc++.h>
using namespace std;
//打印九九乘法表
int main(){
int i=0;
int j=0;
for(i=1;i<=9;i++){for(j=1;j<=i;j++){cout<<j<<"*"<<i<<"="<<i*j<<" ";}cout<<endl;
}
return 0;
}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

源码|redis7.2.2|sds

文章目录 前言Type && EncodingsdsencodingcreateStringObjectcreateEmbeddedStringObject总结 createRawStringObject总结 createStringObjectFromLongDouble总结 createStringObjectFromLongLongWithOptions总结 相关操作sdscatlen总结 阈值44sds VS C字符串 前言 从…

docker镜像的生成过程

镜像的生成过程 Docker镜像的构建过程&#xff0c;大量应用了镜像间的父子关系。即下层镜像是作为上层镜像的父镜像出现的&#xff0c;下层镜像是作为上层镜像的输入出现。上层镜像是在下层镜像的基础之上变化而来。 FROM centos:7 FROM指令是Dockerfile中唯一不可缺少的命令&a…

Web APIs知识点讲解

学习目标: 能获取DOM元素并修改元素属性具备利用定时器间歇函数制作焦点图切换的能力 一.Web API 基本认知 1.作用和分类 作用: 就是使用 JS 去操作 html 和浏览器分类&#xff1a;DOM (文档对象模型)、BOM&#xff08;浏览器对象模型&#xff09; 2.DOM DOM(Document Ob…

吉林大学19、21级计算机学院《计算机网络》期末真题试题

一、21级&#xff08;考后回忆&#xff09; 一、不定项选择&#xff08;一共10个选择题&#xff0c;一个两分&#xff0c;选全得满分&#xff09; 不定项&#xff1a;可以选择1~4个 考点有&#xff1a; ①协议、服务 ②码分多路复用通过接受码片序列&#xff0c;求哪个站点发送…

vue3项目中axios的常见用法和封装拦截(详细解释)

1、axios的简单介绍 Axios是一个基于Promise的HTTP客户端库&#xff0c;用于浏览器和Node.js环境中发送HTTP请求。它提供了一种简单、易用且功能丰富的方式来与后端服务器进行通信。能够发送常见的HTTP请求&#xff0c;并获得服务端返回的数据。 此外&#xff0c;Axios还提供…

C++ queue

目录 一、介绍 二、queue使用 三、模拟实现 四、优先级队列 五、priority_queue使用 OJ题&#xff1a;215. 数组中的第K个最大元素 快速排序 优先级队列 TOPK 六、模拟实现priority_queue 1、仿函数 2、优先级队列类 3、测试函数 一、介绍 1、队列是一种容器适配器…

【手搓深度学习算法】用线性回归预测波士顿房价

线性回归 线性回归是一种监督学习方法&#xff0c;用于建立因变量与一个或多个自变量之间的关系。线性回归的目标是找到一条直线&#xff0c;使得所有数据点到这条直线的距离之和最小。 线性回归的基本形式如下&#xff1a; y β 0 β 1 x 1 β 2 x 2 . . . β n x n ϵ…

mysql基础-常用函数汇总

目录 1. 查询技巧 2. 时间函数 2.1 now() 2.2 current_date() 2.3 时间差timestampdiff&#xff08;&#xff09;与datediff&#xff08;&#xff09; 2.4 其他时间函数 3. 字符函数 3.1 截取函数 3.2 分割函数 3.3 left与right函数 3.4 其他函数 4. 数字函数 5. …

自定义HBase负载均衡器MyCustomBalancer实现步骤与代码解析

目录 1.HBase默认负载均衡策略 1.1 负载均衡总体流程 1.2 不能触发负载均衡的情况 1.3 负载均衡算法 2.自定义的 HBase 负载均衡器的步骤 3.MyCustomBalancer的代码细节 3.1 balanceCluster 方法的作用 3.2balanceCluster 对数据的影响 3.3监控HBase的性能指标 3.3.…

在国内 PMP 有多少含金量?

在我国大陆&#xff0c;有好多证书被商业化得太重了&#xff0c;甚至演变成了个人或一些公司摇钱的工具。所以有些证书受人吹捧它崛起的快&#xff0c;但是活不长&#xff0c;甚至“夭折”&#xff0c;比如以前微软系列的证书&#xff1b; 而PMP认证从国外引进大陆这么多年了&…

PMP认证考试详细备考攻略,全是干货!

要明白&#xff0c;虽然PMP备考考试只是一时的过程&#xff0c;但通过PMP获得的证书和能力是永久的。 这不仅仅是因为我拿到了PMP培训结业证书和PMP认证证书这两个证明&#xff0c;更重要的是在参加PMP认证考试的整个过程中&#xff0c;我学到了很多关于项目管理的知识&#x…

Python基础入门第九课笔记(文件和文件夹)

1&#xff0c;新建文本并且写内容 a open(1.text,w) a.write("""aaa bbb ccc""") a.close() 2,seek( )移动文件指针 文件对象.seek(偏移量&#xff0c;起始位置) # 起始位置&#xff1a;0开头&#xff0c;1当前位置&#xff0c;2文件结尾…

获取深层次字段报错TypeError: Cannot read properties of undefined (reading ‘title‘)

动态生成菜单时报错,不能多层获取路由meta下面的title字段 <template><p>{{ meneList }}</p><template v-for"item in meneList" :key"item.path"><el-menu-item v-if"!item.children"><template #title>{…

一键了解获取网页requests方式

目录 一、爬虫原理&#xff1a; 二、安装&#xff1a; 测试&#xff1a; 三、文件的操作 方式一 方式二: 方式三 四、认识User-Agent 4.1、为什么用User-Agent&#xff1a; 步骤&#xff1a; 五、请求方式 5.1、get 5.2、post 六、爬出有中国关键字页面案例 一、爬…

小型图书借阅管理系统

springbootmybatismysqlthymeleafjquery构建的小型图书借阅管理系统后端 1.springboot 2.mybatis数据库 1.mysql前端 1.jquery 2.jquery-validate 3.htmlcss

【性能测试入门】:压力测试概念!

压力测试可以验证软件应用程序的稳定性和可靠性。压力测试的目标是评估软件在极端负载条件下的鲁棒性和错误处理能力&#xff0c;并确保软件在紧急情况下不会崩溃。它甚至可以进行超出软件正常工作条件的测试&#xff0c;并评估软件在极端条件下的工作方式。 在软件工程中&…

Linux 上 Nginx 配置访问 web 服务器及配置 https 访问配置过程记录

目录 一、前言说明二、配置思路三、开始修改配置四、结尾 一、前言说明 最近自己搭建了个 Blog 网站&#xff0c;想把网站部署到服务器上面&#xff0c;本文记录一下搭建过程中 Nginx 配置请求转发的过程。 二、配置思路 web项目已经在服务器上面运行起来了&#xff0c;运行的端…

WPS使用技巧——默认粘贴无格式文本

从网页或者其他文档内复制的文本往往带有原本的格式&#xff0c;粘贴到自己的word文档里面&#xff0c;要么先粘贴后统一格式&#xff0c;要么右键选择“只粘贴文本”&#xff0c;非常不便。 今天分享一个可以将粘贴方式默认为“只粘贴文本”的无格式粘贴方法&#xff0c;这样…

pycharm的使用技巧

1.新建文件时,自动生成代码 settings->editor->file and code templates,选择python script ${NAME} 文件名 ${DATE} 日期 2.自动补齐自定义段落 settings->editor->live templates,在右侧点击+号,添加自定义的内容 完成之后,在下方勾选python 3.修改注释的…

(23)Linux的软硬连接

前言&#xff1a;上一章我们讲解了 inode&#xff0c;为文件系统收了尾&#xff0c;这几章我们充分地讲解完了文件系统的知识点&#xff0c;现在我们开始开始学习软硬链接了。 软硬链接 1、Linux 下的快捷方式&#xff1a;软链接 上一章我们介绍完了 inode &#xff0c;我们…