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

文章目录

  • 一、查找插入有序数组的位置
  • 二、最高分
  • 三、不与最大数相同的数字之和
  • 四、最大值和最小值的差
  • 五、数字放大
  • 六、多余的数
  • 七、数字接力
  • 八、幸运大抽奖

一、查找插入有序数组的位置

【试题描述】
给你 m 个已经从小到大排好序的整数, 输入一个数 x, 输出 x 插入的位置,保证 x 插入后
的 m+1 数还是有序的。
【输入要求】
第一行一个整数 m, 表示数的个数 ( m <= 100 )
第二行 m 个整数 ( 这些数在 0-999999 范围内 )
第三行为要查找的数 x
【输出要求】
x 的位置
【输入样例】
10
9 19 20 23 56 78 90 180 190 230
35
【输出样例】
5

#include <bits/stdc++.h>
using namespace std;

/**
  给你 m 个已经从小到大排好序的整数, 输入一个数 x, 输出 x 插入的位置,保证 x 插入后的 m+1 数还是有序的。
 */
int main() {  
	int m;  
	cin >> m; // 输入数的个数  
	int nums[m];  
	for (int i = 0; i < m; ++i) {  
		cin >> nums[i]; // 输入m个整数  
	}  
	int x;  
	cin >> x; // 输入要查找的数x  
	
	//插入的位置
	int p;
	// 查找并输出x的插入位置  
	for (int i = 0; i < m; ++i) {  
		if(nums[i]>=x){
			p=i+1;
			break;
		}
	}  
	// 退出循环时,p即为x的插入位置  
	cout<<p<<endl;
	return 0;  
}

二、最高分

【试题描述】
全班 n 个同学的成绩需要按学号读入, 请找出班级最高分, 并找出最高分的得主。 (假设
无重复成绩)
【输入要求】
两行, 第一行为一个正整数 n, 第二行为 n 个实数, 每个实数之间用一个空格分隔。
【输出要求】
NO (学号) : (成绩) 保留小数点后一位小数。
【输入样例】
5
92 97.5 93 87 89
【输出样例】
NO2:97.5

#include <bits/stdc++.h>  

using namespace std;  
/**
  全班 n 个同学的成绩需要按学号读入, 请找出班级最高分, 并找出最高分的得主。 (假设无重复成绩)
 */
int main() {  
	int n;  
	cin >> n; // 读取学生数量  
	
	double scores[n];
	double maxScore = 0; // 初始化最高分0
	int maxScoreIndex = 0; // 最高分对应的学号索引  
	
	for (int i = 0; i < n; ++i) {  
		cin >> scores[i]; // 读取成绩  
	}  
	
	for (int i = 0; i < n; ++i) {  
		if (scores[i] > maxScore) {  
			maxScore = scores[i]; // 更新最高分  
			maxScoreIndex = i; // 更新最高分对应的学号索引  
		}  
	}  
	// 输出最高分及其学号  
	cout << "NO" << maxScoreIndex + 1 << ":" << fixed << setprecision(1) << maxScore << endl;  
	
	return 0;  
}

三、不与最大数相同的数字之和

【试题描述】
求出一个整数数列中不与最大数相同的数字之和。
【输入要求】
输入分为两行:
第一行为 n, (n ≤ 100)
第二行为 n 个整数。
【输出要求】
输出为 n 个数中不与最大数相同的其余数字之和。
【输入样例】
3
1 2 3
【输出样例】
3

#include <bits/stdc++.h>  
using namespace std;
/**
  求出一个整数数列中不与最大数相同的数字之和。
 */

int main() {  
	int n;  
	cin >> n; // 输入整数n  
	//定义n个元素的数组
	int m[n];  
	for (int i = 0; i < n; i++) {  
		cin >> m[i]; // 输入n个整数  
	}  
	
	// 找到数组中的最大数  
	int max=m[0];
	for(int i=0;i<n;i++){
		if(m[i]>max){
			max=m[i];
		}
	}
	
	int sum = 0;  
	// 计算所有不与最大数相同的数字之和  
	for (int i = 0; i < n; i++) {   
		if (m[i] != max) {  
			sum = sum+m[i];  
		}  
	}  
	
	cout << sum << endl; // 输出结果  
	
	return 0;  
}

四、最大值和最小值的差

【试题描述】
输出一个整数序列中最大的数和最小的数的差。
【输入要求】
第一行为 n, 表示整数个数, 整数个数不会大于 10000;
第二行为 n 个整数, 每个整数的绝对值不会大于 10000。
【输出要求】
输出 n 给数中最大值和最小值的差。
【输入样例】
5
2 5 7 4 2
【输出样例】
5

#include <bits/stdc++.h>
using namespace std;
/**
  最大值和最小值的差
 */

int main() {  
	int n;  
	cin >> n; // 输入整数个数  
	
	int numbers[n];  
	for (int i = 0; i < n; ++i) {  
		cin >> numbers[i]; // 输入整数序列  
	}  
	
	// 初始化最大值为,最小值
	int max_num = numbers[0];  
	int min_num = numbers[0];  
	
	// 遍历数组找到最大值和最小值  
	for(int i=0;i<n;i++){
		max_num = max(max_num, numbers[i]);  
		min_num = min(min_num, numbers[i]); 
	}
	
	// 计算最大值和最小值的差  
	int diff = max_num - min_num;  
	
	cout << diff << endl; // 输出结果  
	
	return 0;  
}

五、数字放大

【试题描述】
给定一些整数以及放大倍数 x, 将每个整数放大 x 倍后输出。
【输入要求】
包含三行:
第一行为 n, 表示整数的个数
第二行为 n 个给定的整数(不超过整形范围)
第三行为整数 x, 表示放大的倍数
【输出要求】
n 个整数, 为原数列放大之后的数列, 两数之间以一个空格分开。
【输入样例】
3
1 5 7
2
【输出样例】
2 10 14

#include<bits/stdc++.h>
using namespace std;
/**
  给定一些整数以及放大倍数 x, 将每个整数放大 x 倍后输出。
 */

int main() {  
	int n;  
	cin >> n; // 输入整数的个数  
	
	int numbers[n];  
	for (int i = 0; i < n; ++i) {  
		cin >> numbers[i]; // 输入给定的整数  
	}  
	
	int x;  
	cin >> x; // 输入放大的倍数  
	
	// 放大每个整数并输出  
	for (int i = 0; i < n; ++i) {  
		cout << numbers[i] * x  << " ";  
	}  
	
	return 0;  
}

六、多余的数

【试题描述】
小 A 同学在完成一个数学题: 求给定的 n 个整数的和。 小 A 同学在求完之后发现和参考答案
对不上, 检查后发现在求和过程中多计算了一个数, 其他过程没问题。 现给出小 A 计算用的
n+1 个数, 以及正确的参考答案, 请算出小 A 同学多计算的那一个数。
【输入要求】
第一行 n 的值
第二行 n+1 个正整数, 每个数小于等于 1000000
第三行一个整数 x, 表示参考答案
【输出要求】
一个整数, 表示多计算的那一个数。
【输入样例】
10
2 4 6 8 1 3 5 7 9 5 11
54
【输出样例】
7
【提示】
样例中原有的 10 个数为 2 4 6 8 1 3 5 9 5 11, 和为 54, 多余的数为 7。

#include<bits/stdc++.h>
using namespace std;
/**
  小 A 同学在完成一个数学题: 求给定的 n 个整数的和。 小 A 同学在求完之后发现和参考答案
  对不上, 检查后发现在求和过程中多计算了一个数, 其他过程没问题。 现给出小 A 计算用的
  n+1 个数, 以及正确的参考答案, 请算出小 A 同学多计算的那一个数。
 */

int main() {  
	int n;  
	cin >> n; // 输入整数的个数  
	
	int m[n + 1]; // 创建大小为n+1的数组来存储n+1个数  
	for (int i = 0; i < n + 1; ++i) {  
		cin >> m[i]; // 输入n+1个整数  
	}  
	
	int correct;  
	cin >> correct; // 输入参考答案  
	
	// 计算所有n+1个数的和  
	int sumOfAll = 0;  
	for (int i=0;i<n+1;++i) {  
		sumOfAll += m[i];  
	}  
	
	// 计算多出的那个数  
	int extraNum = sumOfAll - correct;  
	
	cout << extraNum << endl; // 输出多出的那个数  
	
	return 0;  
}

七、数字接力

【试题描述】
奶牛们在玩一个数字游戏, 它们从一个整数开始, 比如: 6593。 将这个整数中的各位数
字全部取出, 将他们相乘, 得到一个新的整数, 上面的例子就是 6593=810, 然后继续做
下去, 8
10=0 得到了一个个位数 0。
帮助奶牛完成这个游戏, 读入一个数并计算出有游戏得到一个个位数的过程。
【输入要求】
一个整数 N(10<=n<= 2,000,000,000)。
【输出要求】
在单独的一行中按顺序输出游戏过程中产生的每一个数直到一个个位数结束。 相邻两数
之间要求严格用一个空格隔开, 最后一个数之后不能有空格。
【输入样例】
98886
【输出样例】
98886 27648 2688 768 336 54 20 0

#include<bits/stdc++.h>
using namespace std;
/**
  奶牛们在玩一个数字游戏,它们从一个整数开始,比如: 6593。将这个整数中的各位数
  字全部取出,将他们相乘,得到一个新的整数,上面的例子就是 6*5*9*3=810,然后继续做
  下去,8*1*0*=0 得到了一个个位数 0。
  帮助奶牛完成这个游戏,读入一个数并计算出有游戏得到一个个位数的过程。

 */
int main() {  
	int n;  
	cin >> n; // 输入整数  
	
	int current = n;  
	//输出n
	cout<< n << " ";
	//当得到一个个位数时停止
	while  (current >9){
		int product = 1;  
		//取出每个位上的数相乘
		while (current > 0) {  
			product =product* (current % 10); // 取出最低位数字并相乘  
			current = current/10;           // 去掉最低位数字  
		}
		current=product;
		// 输出游戏过程中产生的每一个数 
		cout<< product ;
		if(product>9){
			//相邻两数之间要求严格用一个空格隔开。
		   cout << " ";	
		}
	}  
	return 0;  
}

八、幸运大抽奖

【试题描述】
淘淘参加游乐园的幸运大抽奖活动。 活动规则如下: 通过参加 5 项游乐活动, 获得相应积分,
积分和的各位数字之和若为回文数, 则可到领奖处领取奖品一份。 请编程完成判断。
【输入要求】
输入 5 个整数
【输出要求】
Congratulations!或者 Sorry!
【输入样例】
51 26 3 21 8
【输出样例】
Sorry!
【解题提示】
回文数即数字顺着和反着是同一个数。 如 121

#include<bits/stdc++.h>
using namespace std;
/**
  淘淘参加游乐园的幸运大抽奖活动。 活动规则如下: 通过参加 5 项游乐活动, 获得相应积分,
  积分和的各位数字之和若为回文数, 则可到领奖处领取奖品一份。 请编程完成判断。
   
  输入
  20 21 10 11 12
  输出
  Congratulations!
 */

int main() {  
	//定义积分数组
	int scores[5];  
	
	// 读取5个整数  
	for (int i = 0; i < 5; ++i) {  
		cin >> scores[i];  
	}  
	
	// 计算5个整数的和  109
	int total = 0;  
	for (int i=0;i<5;i++) {  
		total += scores[i];  
	}  

	// 计算和的各位数之和   9+0+1=10
	int sum = 0;  
	while (total > 0) {  
		sum = sum + total % 10;  //取最低位数字
		total /= 10;  // 去掉最低位数字
	}  
	
	int s = sum; 
	// 将sum的各位数反过来  0+1=1
	int reversed = 0;  
	while (s > 0) {  
		//乘以10+对10取余数 得到回文数字
		reversed = reversed * 10 + s % 10;  
		s /= 10;  
	}   

	// 判断各位数之和是否是回文数  1 不等于10	
	if (sum == reversed) {  
		cout << "Congratulations!" << endl;  
	} else {  
		cout << "Sorry!" << endl;  
	}  
	
	return 0;  
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于D1开发板和腾讯云nginx服务器构建家庭视频监控方案

腾讯云服务器使用nginx搭建rtmp服务器 什么是nginx&#xff1f; nginx是一款优秀的反向代理工具&#xff0c;通过nginx可以实现搭建高可用的轻量级web服务器&#xff0c;除此之外&#xff0c;通过Nginx自带的rtmp模块&#xff0c;也可以实现rtmp服务器的搭建。 安装nginx 安装编…

ESD静电问题 | 摄像头空气放电重启

【转自微信公众号&#xff1a;必学大课堂】

【Android Studio】开启真机调试

1 打开手机的开发者模式 各种款式的手机进入开发者模式的情况不同&#xff0c;但大致是在 【关于手机】中多次点击系统版本即可进入。这里以小米8为例&#xff0c;记录下流程。 1.1 进入手机开发者模式 【设置】->【我的设备】->【全部参数】->【MIUI版本】连续点击3…

【go项目01_学习记录02】

学习记录 1 新建项目2 自动重载安装air安装完成&#xff0c;查看版本&#xff1a;air -v使用air: air 3 设置标头4 如何知道 http 包有哪些接口呢&#xff1f;5 Web 数据响应6 小结 1 新建项目 windows系统&#xff0c;cmd&#xff1a; cd %GOPATH%/src //%GOPATH%表示取环境变…

一套C语言VC + MSSQL开发PACS系统源码 带三维重建和还原的PACS医学影像全套系统源码

一套C语言VC MSSQL开发PACS系统源码 带三维重建和还原的PACS医学影像全套系统源码 本套PACS系统成品源码&#xff0c;自主版权。集成三维影像后处理功能&#xff0c;包括三维多平面重建、三维容积重建、三维表面重建、三维虚拟内窥镜、最大/小密度投影、心脏动脉钙化分析等功…

如何将jsp项目转成springboot项目

昨天说过&#xff0c;springboot推荐使用Thymeleaf作为前后端渲染的模板引擎&#xff0c;为什么推荐用Thymeleaf呢&#xff0c;有以下几个原因&#xff1a; 动静结合&#xff1a;Thymeleaf支持HTML原型&#xff0c;允许在HTML标签中增加额外的属性来实现模板与数据的结合。这样…

【投稿资讯】区块链会议CCF C -- CoopIS 2024 截止7.10 附录用率

会议名称&#xff1a;CoopIS CCF等级&#xff1a;CCF C类学术会议 类别&#xff1a;人机交互与普适计算 录用率&#xff1a;2023年接收率21% (21 regular 10 work-in-progress papers/100) AREA 5: HUMAN-CENTRIC SECURITY AND PRIVACY IN INFORMATION SYSTEMS Access Con…

编程入门(六)【Linux系统基础操作四】

读者大大们好呀&#xff01;&#xff01;!☀️☀️☀️ &#x1f525; 欢迎来到我的博客 &#x1f440;期待大大的关注哦❗️❗️❗️ &#x1f680;欢迎收看我的主页文章➡️寻至善的主页 文章目录 &#x1f525;前言&#x1f680;if else条件控制基本的if语句带else的if语句嵌…

一文了解队列

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、队列是什么&#xff1f;二、队列的实现三、功能函数的实现1.节点定义2.队列初始化3.队列销毁4.队列尾插5.队列头删6.返回队头数据7.返回队尾数据8.返回队列…

电脑那些可以升级的基本配置

一. 中央处理器&#xff08;CPU&#xff09;&#xff1a;&#xff08;若不是焊点的可以升级&#xff09; 1、一句话简介&#xff1a; 这是电脑的心脏&#xff0c;决定了电脑的处理能力。常见的品牌有Intel和AMD。 2、换CPU指南&#xff1a; 1) 处理器品牌&#xff1a; - 主要…

mybatis-plus代码

项目结构 config package com.example.mpdemo.config;import com.baomidou.mybatisplus.annotation.DbType; import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor; import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerIntercept…

FPGA串口屏方案

FPGA串口屏方案 客户应用&#xff1a;应用于工业自动化、智能家电、交通轨道、数据机房、充电桩、电力医疗、国防安全、共享设备等显示领域 主要功能&#xff1a; 1.支持几十种食材工作模式 2.支持存储自定义工作模式 3.支持延时工作 4.支持保温工作 5.支持压强模式/温度模…

统信UOS 1070如何制作GHOST镜像并安装到其他设备

原文链接&#xff1a;统信UOS 1070制作GHOST镜像并安装到其他设备 Hello&#xff0c;大家好啊&#xff01;对于想要快速部署多台计算机或在硬件更换后恢复系统的用户来说&#xff0c;制作一个GHOST镜像是一种非常高效的方法。今天&#xff0c;我将介绍如何在统信UOS 1070桌面操…

边缘网关畅维通达EN6400使用测评

1. 引言 在当前快速发展的工业4.0时代&#xff0c;边缘计算已经成为了一个关键技术&#xff0c;它能够使数据处理更加接近数据源头&#xff0c;从而提高处理速度并降低响应时间。这一技术尤其在工业自动化领域显示出了极大的潜力&#xff0c;因为它能有效处理大量来自工业设备…

简单数据结构——栈和队列1(栈超全)(初始化,销毁,出栈入栈销毁实现,例题运用)

知识特点 类似数据表链表&#xff0c;在逻辑上依次存储&#xff0c;但对比顺序表和链表有所限制&#xff0c;不能随便存储 一定要先掌握顺序表的实现&#xff0c;本人博客有顺序表专栏大家可以自行查看&#xff0c;看懂顺序表专栏之后再来了解栈的实现会更容易懂。 如果还没…

Xilinx FPGA底层逻辑资源简介(1):关于LC,CLB,SLICE,LUT,FF的概念

LC&#xff1a;Logic Cell 逻辑单元 Logic Cell是Xilinx定义的一种标准&#xff0c;用于定义不同系列器件的大小。对于7系列芯片&#xff0c;通常在名字中就已经体现了LC的大小&#xff0c;在UG474中原话为&#xff1a; 对于7a75t芯片&#xff0c;LC的大小为75K&#xff0c;6输…

LangChain:简化大模型应用

LangChain 框架提供了常见用例的抽象&#xff0c;简化了大型语言模型&#xff08;LLM&#xff09;&#xff08;如 OpenAI GPT4 或 Google PaLM&#xff09;的应用。它支持 JavaScript 和 Python。 为了弄清楚为什么需要 LangChain&#xff0c;我们先来看下 LLM 的工作原理。 …

ctfshow-web入门-102

这个题我想记录一下&#xff0c;主要是这个方法属实是有点惊艳到我了。故而进行记录&#xff0c;也为了方便大家阅读理解。 看题目&#xff0c;根据题目我写一下我的分析&#xff1a; $_POST传入一个v1&#xff0c;$_GET传入一个v2&#xff0c;一个v3。 赋值符号 优先级高于…

echarts双Y轴,并实现图例等

一个Y轴时yAxis为对象 yAxis: {type: value,name: 占比(%) },两个Y轴时yAxis为数组 yAxis: [{ // 左侧的type: value,name: 占比(%),nameTextStyle: {padding: [0, 0, 10, -50]},min: 0,max: 100,splitNumber: this.splitNumber, // 设置坐标轴的分割段数interval: 20, // 标轴…

【牛客】Tokitsukaze and Average of Substring

原题链接&#xff1a;登录—专业IT笔试面试备考平台_牛客网 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 前缀和。 开一个int类型的前缀和数组pre[30][N]&#xff08;pre[i][j]表示某字符转成的数字 i 在一段区间的前缀个数。因为字母表有‘a’~z…
最新文章