2022C语言二级真题

目录

数组逆序重放

题目描述

样例

最长最短单词

题目描述

样例

统计误差范围内的数

题目描述

样例

有趣的跳跃

题目描述

样例

数字放大

题目描述

样例

内部元素之和

题目描述

样例

满足条件的数的累加

题目描述

样例

偶数降序输出

题目描述

样例

字符统计

题目描述

样例

统计指定范围里的数

题目描述

样例

按照个位数排序

题目描述

样例

计算矩阵边缘元素之和

题目描述

样例

最长最短单词

题目描述

样例


数组逆序重放

题目描述

将一个数组中的值按逆序重新存放。例如,原来的顺序为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;
    } 

相关推荐

  1. 2022C语言二级

    2024-06-15 19:04:03       9 阅读
  2. 2020年09月C语言二级

    2024-06-15 19:04:03       10 阅读
  3. 2020年06月C语言二级

    2024-06-15 19:04:03       9 阅读
  4. GESP C++二级认证 2024年3月

    2024-06-15 19:04:03       23 阅读
  5. 腾讯面试C语言

    2024-06-15 19:04:03       49 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 19:04:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 19:04:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 19:04:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 19:04:03       18 阅读

热门阅读

  1. TCP协议参数设置&说明

    2024-06-15 19:04:03       5 阅读
  2. 探索机器学习:深入理解Sklearn基础

    2024-06-15 19:04:03       8 阅读
  3. vue3delete请求报403forbidden,前后端解决方式

    2024-06-15 19:04:03       11 阅读
  4. Vue小记——如何理解 $nextTick( ) ?

    2024-06-15 19:04:03       12 阅读
  5. IDM(Internet Download Manager)简介

    2024-06-15 19:04:03       11 阅读
  6. 深度神经网络是什么?

    2024-06-15 19:04:03       9 阅读
  7. 设计模式-组合模式Composite(结构型)

    2024-06-15 19:04:03       8 阅读
  8. 使用 Python进行自动备份文件

    2024-06-15 19:04:03       8 阅读
  9. React <> </>的用法

    2024-06-15 19:04:03       9 阅读