2022C语言二级真题

news2025/11/3 7:19:51

目录

数组逆序重放

题目描述

样例

最长最短单词

题目描述

样例

统计误差范围内的数

题目描述

样例

有趣的跳跃

题目描述

样例

数字放大

题目描述

样例

内部元素之和

题目描述

样例

满足条件的数的累加

题目描述

样例

偶数降序输出

题目描述

样例

字符统计

题目描述

样例

统计指定范围里的数

题目描述

样例

按照个位数排序

题目描述

样例

计算矩阵边缘元素之和

题目描述

样例

最长最短单词

题目描述

样例


数组逆序重放

题目描述

将一个数组中的值按逆序重新存放。例如,原来的顺序为8 6 5 4 1,要求改为1 4 5 6 8。

输入格式

输入为两行:第一行数组中元素的个数n,第二行是n个整数,每两个整数之间用空格分隔。

输出格式

输出为一行:输出逆序后数组的整数,每两个整数之间用空格分隔。

样例

输入样例

5

8 9 5 4 1

输出样例

1 4 5 9 8

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	int a[110];
	int n;
	cin>>n;
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
	}
	for(int i = n-1;i>=0;i--)
	{
		cout<<a[i]<<" ";
	}
	return 0;
}

最长最短单词

题目描述

输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。

试输出第1个最长的单词和第1个最短单词。

输入格式

一行句子。

输出格式

第1行,第一个最长的单词。

第2行,第一个最短的单词。

样例

样例输入

I am studying Programming language C in Peking University

样例输出

Programming

I

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	char a[20000];
	char wlong[200];
	char wshort[200],word[200];
	int numlong=0,numshort=100;
	int i,n,l,k,cl;
	l=0;
	k=0;
	cin.getline(a,20000);
	n=strlen(a);
	for(i=0;i<=n;i++)
	{
		if(a[i]!=' '&&a[i]!=','&&a[i]!=0)
		{
			l++;
			word[k]=a[i];
			k++;
		}
		if(a[i]==' '||a[i]==','||a[i]==0)
		{
			if(l>numlong)
			{
				numlong=l;
				strcpy(wlong,word);
			}
			if(l>0&&l<numshort)
			{
				numshort=l;
				strcpy(wshort,word);
			}
			l=0;
			k=0;
			for(cl=0;cl<=200;cl++)
				word[cl]='\0';
		}
		
	}
	cout<<wlong<<endl;
	cout<<wshort;
	return 0;
}

统计误差范围内的数

题目描述

统计一个整数序列中与指定数字m误差范围小于等于X的数的个数。

输入格式

输入包含三行:第一行为N,表示整数序列的长度(N<=100);第二行为N个整数,整数之间以一个空格分开;第三行包含2个整数,为指定的整数m,误差范围X。

输出格式

输出输出为N个数中与指定数字m误差范围小于等于X的数的个数。

样例

样例输入

5

1 2 3 4 5

3 1

样例输出

3

样例解释

提示样例中2,3,4都满足条件,故答案为3

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int a[110];
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
	}
	int m,x;
	cin>>m>>x;
	int sum = 0;
	for(int i = 0;i<n;i++)
	{
		if(a[i] < m+x)
		{
			sum++;
		}
	}
	cout<<sum;
	return 0;
}

有趣的跳跃

题目描述

在一个长度为n的数字序列中,如果相邻元素差的绝对值经过升序排序后正好是1~n-1,则认定该序列存在“有趣的跳跃”。

例如:数字序列1、4、2、3 的相邻数字差的绝对值分别为3、2、1,排序后是1、2、3,说明该序列存在着“有趣的跳跃”。

现在给你一个序列,请你判断该序列是否存在“有趣的跳跃”。

输入格式

第1 行为一个整数(不超过100000)。

接下来一行为个不超过100000 的整数。

输出格式

若存在,输出“yes”,否则输出“no”。

样例

样例输入:

4

1 4 2 3

样例输出:

yes

#include<iostream>
#include<iomanip>
#include<string.h>
using namespace std;
int main()
{
	int n;
	cin>>n;
	int a[110];
	for(int i = 0;i<n;i++)
	{
		cin>>a[i];
	}
	int sum = 0;
	for(int i = 0;i<n;i++)
	{
		if(a[i] >=1 || a[i] <= n-1)
		{
			sum++;
		}
	}
	if(sum>0)
	{
		cout<<"yes";
	}
	else
	{
		cout<<"no";
	}
	return 0;
}

数字放大

题目描述

给定一个整数序列以及放大倍数x,将序列中每个整数放大x倍后输出。

输入格式

包含三行:

第一行为N,表示整数序列的长度(N ≤ 100);

第二行为N个整数(不超过整型范围),整数之间以一个空格分开;

第三行包含一个整数(不超过整型范围),为指定的整数x。

输出格式

N个整数,为原序列放大之后的序列,整数之间以一个空格分开。

样例

样例输入

3

1 5 7

2

样例输出

2 10 14

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
    int a[110];
    int n;
    cin>>n;
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
    }
    int x;
    cin>>x;
    for(int i = 0;i<n;i++)
    {
        cout<<a[i]*x<<" ";
    }
    return 0;
}


内部元素之和

题目描述

输入一个整数矩阵,计算位于矩阵内部的元素之和。所谓矩阵内部的元素,不在第一行和最后一行的元素以及第一列和最后一列的元素。

输入格式

第一行分别为矩阵的行数m和列数n(m < 100,n < 100),两者之间以一个空格分开。接下来输入的m行数据中,每行包含n个整数(每个数大于等于0,小于1000),整数之间以一个空格分开。

输出格式

输出对应矩阵的内部元素和

样例

样例输入

3 3

3 4 1

3 7 1

2 0 1

样例输出

7

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
    int a[110];
    int n;
    cin>>n;
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
    }
    int x;
    cin>>x;
    for(int i = 0;i<n;i++)
    {
        cout<<a[i]*x<<" ";
    }
    return 0;
}

满足条件的数的累加

题目描述

现有n个整数,将其中个位数为k的数进行累加求和。

输入格式

第一行两个整数n、k,以空格分隔。(0 < n < 1000, 0 ≤ k ≤ 9)第二行n个非负整数,以空格分隔,每个数不大于100000。

输出格式

输出满足题目要求的累加和。

样例

样例输入

10 7

2 5 7 17 11 18 4 27 1 7

样例输出

58

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
    int a[110];
    int n,k;
    cin>>n>>k;
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
    }
    int sum = 0;
    for(int i = 0;i<n;i++)
    {
        if(a[i]%10 == k)
        {
            sum = sum + a[i];
        }
    }
    cout<<sum;
    return 0;
}


偶数降序输出

题目描述

给定一个长度为N(不大于500)的正整数序列,请将其中的所有偶数取出,并按降序输出。

输入格式

共2行:第1行为N;第2行为N 个正整数,其间用空格间隔。

输出格式

降序输出的偶数序列,数之间以空格间隔。数据保证至少有一个偶数。

样例

样例输入

10

1 3 2 6 5 4 9 8 7 10

样例输出

10 8 6 4 2

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
    int a[110];
    int b[110];
    int n;
    cin>>n;
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
    }
    int s = 0;
    for(int i = 0;i<n;i++)
    {
        if(a[i]%2 == 0)
        {
            b[s] = a[i];
            s++;
        }
    }
    for(int i = 0;i<=s;i++)
    {
        if(b[i]<b[i+1])
        {
            int f = b[i];
            b[i] = b[i+1];
            b[i+1] = f;
        }
    }
    for(int i = 0;i<=s;i++)
    {
        cout<<b[i]<<" ";
    }
    return 0;
}


字符统计

题目描述

给定一个由a-z这26个字符组成的字符串,统计其中哪个字符出现的次数最多。

输入格式

输入包含一行,一个字符串,长度不超过1000。

输出格式

输出一行,包括出现次数最多的字符和该字符出现的次数,中间以一个空格分开。如果有多个字符出现的次数相同且最多,那么输出ascii码最小的那一个字符。

样例

样例输入

abbccc

样例输出

c 3

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
    int a[110];
    int b[110];
    int n;
    cin>>n;
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
    }
    int s = 0;
    for(int i = 0;i<n;i++)
    {
        if(a[i]%2 == 0)
        {
            b[s] = a[i];
            s++;
        }
    }
    for(int i = 0;i<=s;i++)
    {
        if(b[i]<b[i+1])
        {
            int f = b[i];
            b[i] = b[i+1];
            b[i+1] = f;
        }
    }
    for(int i = 0;i<=s;i++)
    {
        cout<<b[i]<<" ";
    }
    return 0;
}

统计指定范围里的数

题目描述

给定一个数的序列S,以及一个区间[L, R], 求序列中介于该区间的数的个数,即序列中大于等于L且小于等于R的数的个数。

输入格式

第一行1个整数n、分别表示序列的长度。

第二行n个正整数,表示序列里的每一个数,每个数小于等于10000000。

第三行2个整数L、R,分别表示区间的左端点,区间的右端点。

输出格式

输出一个整数,表示序列中大于等于L且小于等于R的数的个数。

样例

样例输入

5

11 8 1 10 16

1 10

样例输出

3

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
    int n;
    cin>>n;
    int a[110];
    for(int i = 0;i<n;i++)
    {
        cin>>a[i];
    }
    int l,r;
    cin>>l>>r;
    int sum = 0;
    for(int i = 0;i<n;i++)
    {
        if(a[i]>=l && a[i]<=r)
        {
            sum++;
        }
    }
    cout<<sum;
    return 0;
}


按照个位数排序

题目描述

对于给定的正整数序列,按照个位数从小到大排序,个位数相同的按照本身大小从小到大排序。

输入格式

第一行1个整数n,表示序列的大小。( 0 < n ≤ 1000) 第二行n个正整数,表示序列的每个数,每个数不大于100000000。

输出格式

输出按照题目要求排序后的序列

样例

样例输入

6

17 23 9 13 88 10

样例输出

10 13 23 17 88 9

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
    int a[110];
    int n,j,temp;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>a[i];
        
        j=i-1;
        temp=a[i];
        while(j>=0 && (temp%10<a[j]%10||(temp%10==a[j]%10&&temp<a[j])))
        {
            a[j+1]=a[j];
            j--;
        }
        a[j+1]=temp;
    }
    for(int i=0;i<n;i++)
    {
        cout<<a[i]<<" ";
    }
    
    return 0;
}


计算矩阵边缘元素之和

题目描述

输入一个整数矩阵,计算位于矩阵边缘的元素之和。

所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。

输入格式

第一行分别为矩阵的行数n和列数m,两者之间以一个空格分开。

接下来输入的n行数据中,每行包含m个整数,整数之间以一个空格分开。

输出格式

输出对应矩阵的边缘元素和。

样例

样例输入

3 3

3 4 1

3 7 1

2 0 1

样例输出

15

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
    int a[110][110];
    int n,m;
    for(int i = 0;i<n;i++)
    {
        for(int j = 0;j<m;j++)
        {
            cin>>a[i][j];
        }
    }
    int sum = 0;
    for(int i = 0;i<n;i++)
    {
        for(int j = 0;j<m;j++)
        {
            if( i == 1 || i == m || j == 1 || j == n )
            {
                sum = sum + a[i][j];
            }
        }
    }
    cout<<sum;
    return 0;
}


最长最短单词

题目描述

输入1行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。

试输出第1个最长的单词和第1个最短单词。

输入格式

一行句子。

输出格式

第1行,第一个最长的单词。

第2行,第一个最短的单词。

样例

样例输入

I am studying Programming language C in Peking University

样例输出

Programming

I

#include <iostream>
#include<string.h>
using namespace std;
int main()
{
        char str[30000],c;
        int sum = 0;
        int max = -1;
        int max1;
        int min = 1000;
        int min1;
        int i,j,k;
        i=0;
        while((c=getchar())!=EOF)
        {
            str[i++]=c;
        }
        str[i]='\0'; 
        for(j=0;j<i;j++)
        {
            if(str[j]==' '||str[j]==','||str[j]=='.')
            {
                if(sum>max)
                {
                    max=sum;
                    max1=j;
                }
                if(sum<min&&sum>0)
                {
                    min=sum;
                    min1=j;
                }
                sum=0;
            }
            else
            {
                sum++;
            }
        }
        for(k=max1-max;k<max1;k++)
        {
            printf("%c",str[k]);
        }
        printf("\n");
        for(k=min1-min;k<min1;k++)
        {
            printf("%c",str[k]);
        }
        printf("\n");
        return 0;
    } 

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

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

相关文章

Javaweb8 数据库Mybatis+JDBC

Mybatis Dao层&#xff0c;用于简化JDBC开发 1步中的实体类 int类型一般用Integer &#xff1a;如果用int类型 默认值为0,会影响数据的判断,用Integer默认值是null,不会给数据的判断造成干扰 2.在application .properties里配置数据库的链接信息-四要素 #驱动类名称 #URL #用…

stm32f103 HAL库 HC-SR04测距

目录 一、实现测距二、添加TIM3控制LED根据距离以不同频率闪烁三、观察时序Modebus协议12路超声波雷达设计方案1. 系统架构设计2. 硬件设计3. 软件设计4. 通信协议设计5. 用户接口6. 安全和冗余7. 测试和验证8. 电源和物理封装9. 文档和支持 一、实现测距 配置时钟 配置定时器…

0-1 构建用户画像数仓

目录 前言 一、用户画像概述 1.1 用户画像 1.2 用户标签 1.3 用户群组 二、建设标签和标签体系 2.1 标签体系 2.1.1 统计类标签 2.1.2 规则类标签 2.1.3 机器学习挖掘类标签 2.2 标签建设流程 2.2.1 需求收集与分析 2.2.2 产出标签需求文档 2.2.3 标签的开发 H…

docker安装消息队列mq中的rabbit服务

在现代化的分布式系统中&#xff0c;消息队列&#xff08;Message Queue, MQ&#xff09;已经成为了一种不可或缺的组件。RabbitMQ作为一款高性能、开源的消息队列软件&#xff0c;因其高可用性、可扩展性和易用性而广受欢迎。本文将详细介绍如何在Docker环境中安装RabbitMQ服务…

04-appium元素定位

一、uiautomatorviewer uiautomatorviewer是Android-SDK自带的一个元素定位工具&#xff0c;非常简单好用&#xff0c;可以使用该工具查看app应用中的元素属性&#xff0c;帮助我们在代码中进行元素定位。 1&#xff09;使用步骤 在Android-SDK安装目录中进入到 android-sdk-…

【TB作品】STM32F102C8T6单片机,PWM发生器

硬件&#xff1a; STM32F102C8T6核心板&#xff0c;按键&#xff0c;0.96 OLED显示屏。 软件&#xff1a; 1、硬件启动触发单片机输出PWM&#xff0c;未触发之前PWM输出为低电平。 2、按键修改PWM的变化模式、变化时间长度、占空比上下限。 3、输出的PWM是固定的10kHZ的。 4、变…

Redis的安装(linux、docker)与其基本的api使用

一、Redis简介 Redis是一个开源的&#xff0c;使用 C 编写&#xff0c;高性能的Key-Value的NoSQL数据库。 SQL &#xff1a;关系型数据库&#xff0c;例如&#xff1a;MySQL&#xff0c;Oracle等等NoSQL &#xff1a;Not Only SQL 不仅仅是SQL&#xff0c;表示是非关系型数据库…

【漏洞复现】东胜物流软件 GetProParentModuTreeList SQL注入漏洞

0x01 产品简介 东胜物流软件是青岛东胜伟业软件有限公司-款集订单管理、仓库管理、运输管理等多种功能于一体的物流管理软件。该公司初创于2004年11月(前身为青岛景宏物流信息技术有限公司)&#xff0c;专注于航运物流相关环节的产品和服务。东胜物流信息管理系统货代版采用MS…

Canvas绘制老友记时钟

Canvas绘制老友记时钟 前言 一直做3D/2D可视化&#xff0c;Canvas API和三角函数&#xff0c;空间几何是基础。在官网上看了一遍Canvas API之后&#xff0c;决定绘制一个老友记时钟来巩固知识点&#xff0c;本文用实际代码讲解绘制过程。 代码 HTML <canvas id"myC…

C++ 30 之 new 和 delete 关键字

#include <iostream> #include <string.h> using namespace std;class Students08{ public:Students08(){cout << "students08的默认构造函数"<< endl;}Students08(int a){cout << "students08的有参构造函数"<< endl…

永磁同步直线电机(PMLSM)控制与仿真1-永磁同步直线电机数学模型

文章目录 1、引言2、永磁同步直线电机数学模型2.1 直线电机的结构和工作原理2.2 永磁同步直线电机系统干扰分析2.2.1 齿槽效应2.2.2 端部效应 2.3 永磁同步直线电机的结构2.4 永磁同步直线电机的数学模型2.4.1 ABC坐标系下 PMLSM 的数学模型2.4.2 dq坐标系下 PMLSM 的数学模型2…

集成学习 Ensemble Learning

目录 一、集成学习概览1、介绍2、学习器3、boosting和bagging比较1、样本选择2、样例权重3、预测函数4、计算5、其他 4、结合策略 二、Adaboost1、介绍2、运行过程3、特点4、代码示例 三、随机森林1、介绍2、随机森林生成3、特点4、优缺点5、代码示例6、参数介绍 四、GBDT1、介…

使用python绘制三维散点图

使用python绘制三维散点图 三维散点图三维散点图的用途效果代码 三维散点图 三维散点图&#xff08;3D Scatter Plot&#xff09;是一种用于展示三维数据的图表。与二维散点图类似&#xff0c;三维散点图通过点在三维空间中的位置来表示数据点的三个特征。每个点在 x、y 和 z …

RTA_OS基础功能讲解 2.9-警报器

RTA_OS基础功能讲解 2.9-警报器 文章目录 RTA_OS基础功能讲解 2.9-警报器一、警报器简介二、警报器配置2.1 激活一个任务2.2 设置一个事件2.3 执行回调函数2.4 递增一个(软件)计数器三、警报器设置3.1 绝对警报3.1.1 单次触发3.1.2 周期触发3.1.3 在过去设置警报3.1.4 将绝对…

微信小程序04: 获取openId和unionId

全文目录,一步到位 1.前言简介1.1 专栏传送门1.1.1 上文小总结1.1.2 上文传送门 2. 获取openId和unionId操作2.1 准备工作2.1.1 请先复制00篇的统一封装代码2.1.2 微信登录请求dto 2.2 具体代码使用与注释如下2.2.1 业务代码2.2.2 代码解释(一)[无需复制]2.2.3 获取的map使用方…

【Python推导式秘籍】:一行代码的艺术,高效数据处理之道

文章目录 &#x1f68b;Python推导式&#x1f680;一、列表推导式&#x1f308;1. 了解推导式❤️2. 实践&#x1f4a5;3. 总结 &#x1f680;二、字典推导式&#x1f308;1. 了解字典推导式❤️2. 实践&#x1f4a5;3. 总结 &#x1f680;三、集合推导式&#x1f308;1. 了解集…

Qwen2的各模型性能、占用显存和推理速度比较(摘自官方文档)

Qwen2的各模型性能、占用显存和推理速度比较&#xff08;摘自官方文档&#xff09; 性能 推理速度&#xff08;从大到小&#xff09; 72B 57B-A14B 7B 1.5B 0.5B

目标检测数据集 - PCB板表面缺陷检测数据集下载「包含VOC、COCO、YOLO三种格式」

数据集介绍&#xff1a;PCB 板表面缺陷检测数据集&#xff0c;真实采集高质量 PCB 板表面含缺陷图片数据&#xff0c;数据集含多款不同 PCB 板高清表面图片数据&#xff0c;包括俯拍正拍、旋转拍摄姿态。数据标注标签包括 missing_hole、mouse_bite、open_circuit、short、spur…

【ARM-Linux篇】阿里云人脸识别方案

一、接入阿里云 https://vision.aliyun.com/ 点击“人脸搜索1:N” 点击"立即开通"&#xff1a; 使用阿里云APP/支付宝/钉钉扫码登录&#xff1a; 购买“人脸搜索1:N”能力&#xff0c;第一次购买&#xff0c;可以有5000次的免费使用&#xff1a; 开通完后&#xff…

C++ bfS

岛屿的最大面积 . - 力扣&#xff08;LeetCode&#xff09; 1.刚开始mn又加了int 2.bfs里符合条件了&#xff0c;不push&#xff0c;&#xff0c;&#xff0c;在写什么几把 class Solution { public:int dx[4] {0, 0, 1, -1};int dy[4] {1, -1, 0, 0};bool vis[50][50];int…