青少年软件编程(C语言)等级二级考试试题(2021年9月)

#6108. 满足条件的数的累加

题目描述

现有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
cpp 复制代码
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
	int n,k,a1,sum;
	int a;
	cin>>n>>k;
	sum = 0;
	for(int i = 0;i<n;i++)
	{
		cin>>a;
		a1 = a/1%10;
		if(a1==k)
		{
			sum = sum+a;
		}
	}
	cout<<sum;
	return 0;
}

#4157. 偶数降序输出

题目描述

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

输入格式

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

输出格式

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

样例

样例输入

复制代码
复制
复制代码
10
1 3 2 6 5 4 9 8 7 10

样例输出

复制代码
复制
复制代码
10 8 6 4 2
cpp 复制代码
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
	int a[100];
	int c[100];
	int m;
	cin>>m;
	int j = 0;
	for(int i=0;i<m;i++)
	{
		cin>>a[i];
		if(a[i]%2==0)
		{
			c[j]=a[i];
			j++;
		}
	}
	for(int i=1;i<j;i++)
	{
		for(int n=0;n<j-i;n++)
		{
			if(c[n]<c[n+1])
			{
				swap(c[n],c[n+1]);
			}
		}
	}
	for(int i=0;i<j;i++)
	{
		cout<<c[i]<<" ";
	}
	return 0;
}

#1048. 图像模糊处理

题目描述

给定 n 行 m 列的图像各像素点的灰度值,要求用如下方法对其进行模糊化处理:

1.四周最外侧的像素点灰度值不变;

2.中间各像素点新灰度值为该像素点及其上下左右相邻四个像素点原灰度值的平均(舍入到最接近的整数)。

输入格式

第一行包含两个整数 n 和 m,表示图像包含像素点的行数和列数。1≤n≤100,1≤m≤100。

接下来n行,每行 m 个整数,表示图像的每个像素点灰度。相邻两个整数之间用单个空格隔开,每个元素均在0~255之间。

输出格式

n 行,每行 m 个整数,为模糊处理后的图像。相邻两个整数之间用单个空格隔开。

样例

输入样例

复制代码
复制
复制代码
4 5
100 0 100 0 50
50 100 200 0 0
50 50 100 100 200
100 100 50 50 100

输出样例

复制代码
复制
复制代码
100 0 100 0 50
50 80 100 60 0
50 80 100 90 200
100 100 50 50 100
cpp 复制代码
#include <iostream>
#include<string.h>
using namespace std;
int main()
{
	int n,m;
	cin>>n>>m;
    int a[100][100];
	for(int i = 0;i<n;i++)
	{
		for(int j = 0;j<m;j++)
		{
			cin>>a[i][j];
		}
	}
	for(int i = 0;i<n;i++)
	{
		for(int j = 0;j<m;j++)
		{
			if(i == 0||i==n-1||j==0||j==m-1)
			{
				cout<<a[i][j]<< " ";
			}
			else
			{
				cout<<int((((a[i][j] + a[i + 1][j] + a[i - 1][j] + a[i][j + 1] + a[i][j - 1])) / 5) + 0.5)<<" ";
			}
			
		}
		cout << endl;
	}
	return 0;
}

#4158. 字符统计

题目描述

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

输入格式

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

输出格式

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

样例

样例输入

复制代码
复制
复制代码
abbccc

样例输出

复制代码
复制
复制代码
c 3
相关推荐
elseif12310 分钟前
出题团招人
c++
木下~learning37 分钟前
对于Linux中等待队列和工作队列的讲解和使用|RK3399
linux·c语言·网络·模块化编程·工作队列·等待队列
不想写代码的星星1 小时前
SFINAE 的演进:从替换失败不是错误,到 Concepts 的优雅
c++
是翔仔呐1 小时前
第13章 SPI通信协议全解:底层时序、4种工作模式与W25Qxx Flash芯片读写实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
2401_878530211 小时前
自定义内存布局控制
开发语言·c++·算法
IT方大同1 小时前
RT_thread(RTOS实时操作系统)线程的创建与切换
c语言·开发语言·嵌入式硬件
是翔仔呐1 小时前
第14章 CAN总线通信全解:底层原理、帧结构与双机CAN通信实战
c语言·开发语言·stm32·单片机·嵌入式硬件·学习·gitee
leaves falling2 小时前
C++模板初阶:让代码“复制粘贴”自动化
开发语言·c++·自动化
2301_816651222 小时前
C++模块化设计原则
开发语言·c++·算法
Yu_Lijing2 小时前
基于C++的《Head First设计模式》笔记——备忘录模式
c++·笔记·设计模式·备忘录模式