当前位置: 首页 > news >正文

C++基础-编程练习题及答案

文章目录

  • 前言
  • 一、查找“支撑数”
  • 二、数组元素的查找
  • 三、爬楼梯
  • 四、数字交换
  • 五、找高于平均分的人


前言

C++基础-编程练习题和答案


一、查找“支撑数”

【试题描述】
在已知一组整数中, 有这样一种数非常怪, 它们不在第一个, 也不在最后一个, 而且刚好都
比左边和右边相邻的数大, 你能找到它们吗?
【输入要求】
第一行为整数 m, 表示输入的整数个数。 ( 3≤ m ≤100 ) 第二行为 m 个整数。
【输出要求】
若干个支撑数, 每行一个。
【输入样例】
14
1 3 2 4 1 5 3 9 7 10 8 23 85 43
【输出样例】
3
4
5
9
10
85

#include <bits/stdc++.h>
using namespace std;
/*
在已知一组整数中,有这样一种数非常怪,它们不在第一个,也不在最后一个,而且刚好都比左边和右边相邻的数大,你能找到它们吗?
*/
int main() { //定义变量mint m;  cin >> m; // 输入整数的个数  if (m < 3 || m > 100) {  cout << "输入的整数个数不符合要求!" << endl;  return 1;  }  //定义m个元素的数组int nums[m];  for (int i = 0; i < m; ++i) {  cin >> nums[i]; // 输入整数  }  // 遍历整数数组,跳过第一个和最后一个元素for (int i = 1; i < m - 1; ++i) {   if (nums[i] > nums[i - 1] && nums[i] > nums[i + 1]) {  // 如果当前数比左右两边的数都大,则是支撑数  cout << nums[i]<<endl;  }  }  return 0;  
}

二、数组元素的查找

【试题描述】
给你 m 个整数, 查找其中有无值为 x 的数, 输出 x 一共有几个.
【输入要求】
第一行一个整数 m: 数的个数 ( 0 ≤ m ≤ 100 )
第二行 m 个整数(空格隔开) ( 这些数在 0-999999 范围内 )
第三行为要查找的数 x
【输出要求】
一个整数, 表示 x 的个数。
【输入样例】
7
10 21 3 3 5 3 7
3
【输出样例】
3

代码如下:

#include <bits/stdc++.h>using namespace std;  
/*** 给你 m 个整数, 查找其中有无值为 x 的数, 输出 x 一共有几个.* @return */
int main() {  int m;  cin >> m; // 读取整数个数  // 创建一个大小为m的整数数组int nums[m];for (int i = 0; i < m; ++i) {  cin >> nums[i]; // 读取每个整数  }  int x;  cin >> x; // 读取要查找的数x  int count = 0; // 初始化计数器  // 遍历整数数组 for(int i=0;i<m;i++){		if (nums[i] == x) { // 如果找到与x相等的数  ++count; // 计数器加1  }  }  cout << count << endl; // 输出x的个数  return 0;  
}

三、爬楼梯

【试题描述】
有一段楼梯有 n 级台阶,规定每一步只能跨一级或两级,要登上第 m 级台阶有几种不同的走法?
(n<=1000, m<n)
【输入要求】
一行, 两个正整数 n 和 m。
【输出要求】
一个整数
【输入样例】
10 4
【输出样例】
5

#include <bits/stdc++.h>using namespace std;  
/*
有一段楼梯有 n 级台阶,规定每一步只能跨一级或两级,要登上第 m 级台阶有几种不同的走法?
*/int main() {  int n, m;  cin >> n >> m;  // 这里n是楼梯的总级数,但根据题目要求,我们只需要计算到达第m级台阶的方法数  if (m <= 2) {  return m;  }  //定义m级台阶走法数组int dp[m];//一级台阶1种走法dp[0] = 1;  //二级台阶2种走法dp[1] = 2;  //第i级台阶走法=第i-1级台阶走法+第i-2级台阶走法for (int i = 2; i < m; ++i) {  dp[i] = dp[i - 1] + dp[i - 2];  }  //第 m 级台阶的走法数cout << dp[m - 1] << endl;  return 0;  
}

四、数字交换

【试题描述】
有一组数(设有 N 个) 。 有 M 组操作,每组操作交换给定的两个数.编一程序输出经过 M 次
交换后的数组。
【输入要求】
第一行, 两个数 N, M(不超过 20 个)
第二行 N 个数, 由空格分开
从第三行开始连续有 M 行, 每行 2 个数字(即 M 组数) 。
以其中一行数字举例: 比如 3 5 表示第三个数和第五个数交换。
【输出要求】
交换后的一行数(中间用空格隔开)
【输入样例】
16 2
3 6 11 45 23 70 67 34 26 89 90 15 56 50 20 10
3 5
13 15
【输出样例】
3 6 23 45 11 70 67 34 26 89 90 15 20 50 56 10

#include <bits/stdc++.h>using namespace std;  
/**有一组数(设有 N 个),有 M 组操作,每组操作交换给定的两个数.编一程序输出经过 M 次交换后的数组。*/
int main() {  int n, m;  cin >> n >> m; // 读取数组长度和操作次数  //定义数组int nums[n];  for (int i = 0; i < n; i++) {  cin >> nums[i]; // 读取初始数组  }  // 执行交换操作  for (int i = 1; i <= m; ++i) {  int index1, index2;  cin >> index1 >> index2; // 读取需要交换的两个数的索引  index1=index1-1;// 注意:C++中的数组索引是从0开始的,所以要将输入的索引减1  // tmp用于交换的中间变量 交换两个数  int tmp=nums[index1];nums[index1]=nums[index2 - 1];nums[index2 - 1]=tmp;}  // 输出交换后的数组  for (int i = 0; i < n; ++i) {  cout << nums[i] << " ";  }  return 0;  
}

五、找高于平均分的人

【试题描述】
全班 n 个同学的成绩需要按学号读入, 请找出所有高于班级的平均同学。
【输入要求】
两行, 第一行为一个正整数 n, 第二行为 n 个实数, 每个实数之间用一个空格分隔。
【输出要求】
一行, 输出高于班平均的同学的学号, 场宽为 10。
【输入样例】
5
92 97.5 93 87 89
输出样例
1 2 3

#include <bits/stdc++.h>using namespace std;  
/**全班 n 个同学的成绩需要按学号读入, 请找出所有高于班级的平均同学。*/
int main() {  int n;  cin >> n; // 读取学生数量  double scores[n];//循环读取n个学生数量for (int i = 0; i < n; ++i) {  cin >> scores[i]; // 读取第i个学生成绩  }  double sum = 0.0;  for (int i = 0; i < n; ++i) {  // 计算成绩总和  sum += scores[i]; }  // 计算平均成绩  double average = sum / n; //cout<<"平均分"<<average<<endl;for (int i = 0; i < n; ++i) {  if (scores[i] > average) {  // 输出高于平均分的同学学号,学号是从1开始的cout << setw(10) << (i + 1) << " ";   }  }  cout << endl; // 输出结束后换行  return 0;  
}

相关文章:

C++基础-编程练习题及答案

文章目录 前言一、查找“支撑数”二、数组元素的查找三、爬楼梯四、数字交换五、找高于平均分的人 前言 C基础-编程练习题和答案 一、查找“支撑数” 【试题描述】 在已知一组整数中&#xff0c; 有这样一种数非常怪&#xff0c; 它们不在第一个&#xff0c; 也不在最后一个&…...

eNSP-抓包解析HTTP、FTP、DNS协议

一、环境搭建 1.http服务器搭建 2.FTP服务器搭建 3.DNS服务器搭建 二、抓包 三、http协议 1.HTTP协议&#xff0c;建立在TCP协议之上 2.http请求 3.http响应 请求响应报文参考&#xff1a;https://it-chengzi.blog.csdn.net/article/details/113809803 4.浏览器开发者工具抓包…...

【栈】Leetcode 验证栈序列

题目讲解 946. 验证栈序列 算法讲解 在这里就只需要模拟一下这个栈的出栈顺序即可&#xff1a;使用一个stack&#xff0c;每次让pushed里面的元素入栈&#xff0c;如果当前栈顶的元素等于poped容器中的当前元素&#xff0c;因此就需要让栈顶元素出栈&#xff0c;poped的遍历…...

【数据库原理及应用】期末复习汇总高校期末真题试卷08

试卷 一、选择题(每题 2 分&#xff0c;共 30 分)    1. ___ ____是长期存储在计算机内的有组织,可共享的数据集合. A.数据库管理系统 B.数据库系统 C.数据库 D.文件组织 2. 数据库类型是按照 来划分…...

每天五分钟深度学习:数学中的极值

本文重点 在数学领域中,极值是一个极其重要的概念,它不仅在纯数学理论研究中占据核心地位,而且在工程、物理、经济等实际应用领域也发挥着不可替代的作用。极值问题涉及函数的最大值和最小值,是微积分学中的一个基本问题。本文旨在详细介绍数学中的极值概念、性质、求解方…...

【Linux】Linux——Centos7安装Tomcat

1.下载Tomcat 安装包 官网地址&#xff1a;Apache Tomcat - Apache Tomcat 9 Software Downloadshttps://tomcat.apache.org/download-90.cgi 2.将下载的安装包上传到 Xftp 上&#xff0c;我是直接放到 usr 下了 3.将安装包解压到 /usr/local/ tar -zxvf apache-tomcat-9.0.8…...

SpringBoot+vue实现右侧登录昵称展示

目录 1. 定义User数据 1.1.在created方法获取数据 1.2.头部导航栏绑定User数据 1.3.在data中定义User数据 2. 获取数据 2.1.接收父组件传递的值 2.2.展示数据 3. 页面效果 在SpringBoot和 Vue.js 结合的项目中实现右侧登录昵称展示&#xff0c;通常涉及到前端的用户界面…...

【网络原理】UDP协议 | UDP报文格式 | 校验和 | UDP的特点 | 应用层的自定义格式

文章目录 一、UDP协议1.UDP的传输流程发送方接收方 2.UDP协议报文格式&#xff1a;长度受限校验和如何校验&#xff1a;CRC算法&#xff1a;循环冗余算法md5算法&#xff1a; 2.UDP的特点 二、开发中常见的自定义格式1.xml&#xff08;古老&#xff09;2.json&#xff08;最流行…...

NodeJs入门知识

**************************************************************************************************************************************************************************** 1、配置Node.js与npm下载&#xff08;精力所致&#xff0c;必有精品&#xff09; …...

代码随想录学习Day 34

62.不同路径 题目链接 讲解链接 动归五部曲&#xff1a; 1.确定dp数组及其下标的含义&#xff1a;dp[i][j]的含义是从(0, 0)走到(i, j)所需的步数&#xff1b; 2.确定递推公式&#xff1a;因为只能往右或者往下&#xff0c;所以dp[i][j] dp[i - 1][j] dp[i][j - 1]。 3.…...

由于找不到MSVCP120D.dll,无法继续执行代码。重新安装程序可能会解决此问题

由于找不到MSVCP120D.dll,无法继续执行代码。重新安装程序可能会解决此问题 一、问题详细描述二、问题产生背景三、问题原因四、解决办法1、安装缺少的库2、直接更换更高版本的opencv 五、vs版本对应vc1、版本对应2、vs对应vc查看方法 一、问题详细描述 同样可能会报 &#xff…...

【前端】输入时字符跳动动画实现

输入时字符跳动动画实现 在前端开发中&#xff0c;为了提升用户体验&#xff0c;我们经常需要为用户的交互行为提供即时的反馈。这不仅让用户知道他们的操作有了响应&#xff0c;还可以让整个界面看起来更加生动、有趣。本文将通过一个简单的例子讲解如何实现在用户输入字符时…...

C语言面试重点问题

1. 冒泡排序法 2. strlen、strcpy、strcat、strcmp的用法和原理 3. 大小端的区分 3.1 主函数区分大小端 #include <stdio.h>int main(void) {int num 0x11223344;char *p (char *)&num;if (0x11 *p){printf("大端!\n");}else if (0x44 *p){printf(…...

antlr4略解

文章目录 1. antlr4是用来干什么的&#xff1f;2. 什么是lexer和parser&#xff1f;3. 使用antlr4生成某语言的lexer和parser的具体过程4. 其他 1. antlr4是用来干什么的&#xff1f; 是用来生成某语言lexer和parser的。 通俗点说&#xff0c;就是输入一个语言的规则描述文件&…...

超级好用的C++实用库之文件目录操作

&#x1f4a1; 需要该C实用库源码的大佬们&#xff0c;可扫码关注文章末尾的微信公众号二维码&#xff0c;或搜索微信公众号“希望睿智”。添加关注后&#xff0c;输入消息“超级好用的C实用库”&#xff0c;即可获得源码的下载链接。 概述 文件和目录操作是操作系统层面上的基…...

结合kimi chat的爬虫实战思路

背景 想钻研一下项目组件&#xff0c;找找之后的学习方向。不能自以为是&#xff0c;所以借着网开源项目网站上公布的项目内容看一下&#xff0c;那些是我可以努力去学习的&#xff08;入门的&#xff09;。首先需要获取相关内容&#xff0c;于是爬取整理。 任务1&#xff1a…...

UnsupportedClassVersionError异常如何解决?

下面是异常报错的详细描述 java -version java version "17.0.11" 2024-04-16 LTS Java(TM) SE Runtime Environment (build 17.0.117-LTS-207) Java HotSpot(TM) 64-Bit Server VM (build 17.0.117-LTS-207, mixed mode, sharing) 环境变量已经是jdk17&#xff0c;但…...

LeetCode热题100|动态规划Part.1|70.爬楼梯、118.杨辉三角、198.打家劫舍

70.爬楼梯 代码随想录原题&#xff0c;看这篇文章&#xff1a;C动态规划Part.1|动态规划理论基础、509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯 118.杨辉三角 题目链接&#xff1a;118.杨辉三角 一刷代码 时间复杂度和空间复杂度都造到 O ( n u m R o w s 2 ) O(num…...

python 根据网址和关键词批量下载影像

最近用到了GLASS的LAI产品&#xff0c;但这个产品的文件夹分得很细&#xff0c;我需要的影像又有8个瓦片&#xff0c;一个一个点击很麻烦&#xff0c;于是探索了批量下载的方法 一、下载1幅 import requests import re import os import requests import re# 网页URLurl &…...

爬虫-无限debug场景 解决方式

解决无限debug 场景1 1. 鼠标右键 选择 continue to here&#xff08;此处不停留&#xff09;2. 鼠标右键 选择 edite breakpoint 设置 10 保证条件不成立 这行永远不执行3.方法置空 1. 方法调用加断点2. 控制台 setInterval function name() {}4. 替换文件 5. hoo…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性&#xff0c;不同版本的Docker对内核版本有不同要求。例如&#xff0c;Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本&#xff0c;Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

Java如何权衡是使用无序的数组还是有序的数组

在 Java 中,选择有序数组还是无序数组取决于具体场景的性能需求与操作特点。以下是关键权衡因素及决策指南: ⚖️ 核心权衡维度 维度有序数组无序数组查询性能二分查找 O(log n) ✅线性扫描 O(n) ❌插入/删除需移位维护顺序 O(n) ❌直接操作尾部 O(1) ✅内存开销与无序数组相…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

质量体系的重要

质量体系是为确保产品、服务或过程质量满足规定要求&#xff0c;由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面&#xff1a; &#x1f3db;️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限&#xff0c;形成层级清晰的管理网络&#xf…...

【算法训练营Day07】字符串part1

文章目录 反转字符串反转字符串II替换数字 反转字符串 题目链接&#xff1a;344. 反转字符串 双指针法&#xff0c;两个指针的元素直接调转即可 class Solution {public void reverseString(char[] s) {int head 0;int end s.length - 1;while(head < end) {char temp …...

PL0语法,分析器实现!

简介 PL/0 是一种简单的编程语言,通常用于教学编译原理。它的语法结构清晰,功能包括常量定义、变量声明、过程(子程序)定义以及基本的控制结构(如条件语句和循环语句)。 PL/0 语法规范 PL/0 是一种教学用的小型编程语言,由 Niklaus Wirth 设计,用于展示编译原理的核…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

鸿蒙(HarmonyOS5)实现跳一跳小游戏

下面我将介绍如何使用鸿蒙的ArkUI框架&#xff0c;实现一个简单的跳一跳小游戏。 1. 项目结构 src/main/ets/ ├── MainAbility │ ├── pages │ │ ├── Index.ets // 主页面 │ │ └── GamePage.ets // 游戏页面 │ └── model │ …...

Linux基础开发工具——vim工具

文章目录 vim工具什么是vimvim的多模式和使用vim的基础模式vim的三种基础模式三种模式的初步了解 常用模式的详细讲解插入模式命令模式模式转化光标的移动文本的编辑 底行模式替换模式视图模式总结 使用vim的小技巧vim的配置(了解) vim工具 本文章仍然是继续讲解Linux系统下的…...

生信服务器 | 做生信为什么推荐使用Linux服务器?

原文链接&#xff1a;生信服务器 | 做生信为什么推荐使用Linux服务器&#xff1f; 一、 做生信为什么推荐使用服务器&#xff1f; 大家好&#xff0c;我是小杜。在做生信分析的同学&#xff0c;或是将接触学习生信分析的同学&#xff0c;<font style"color:rgb(53, 1…...