中国电子学会2023年05月份青少年软件编程C++等级考试试卷二级真题(含答案)

news2025/1/13 14:35:07

在这里插入图片描述

一、编程题(共5题,共100分)

1. 数字放大

给定一个整数序列以及放大倍数x,将序列中每个整数放大x倍后输出。
时间限制:1000
内存限制:65536
【输入】
包含三行: 第一行为N,表示整数序列的长度(N ≤ 100); 第二行为N个整数(不超过整型范围),整数之间以一个空格分开; 第三行包含一个整数(不超过整型范围),为指定的整数x。

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

【样例输入】

3
1 5 7
2

【样例输出】

2 10 14

提示: 注意答案的数据范围

参考答案

#include<bits/stdc++.h>
using namespace std;
long long a[105];
int main(){
  long long n , x;
  cin >> n;
  for(int i = 0;i < n;i++){
    cin >> a[i];
  }
  cin >> x;
  for(int i = 0;i < n;i++){
    cout << a[i] * x << " ";
  }
  return 0;
}

2. 单词倒排

编写程序,读入一行英文(只包含字母和空格,单词间以单个空格分隔),将所有单词的顺序倒排并输出,依然以单个空格分隔。
时间限制:10000
内存限制:65536
【输入】

输入为一个字符串(字符串长度至多为100)。
【输出】
输出为按要求排序后的字符串。

【样例输入】

I am a student

【样例输出】

student a am I

参考答案

#include<bits/stdc++.h>
using namespace std;
string s[100005];
int main(){
	int n = 0;
	while(cin >> s[n]){
		n++;
	}
	for(int i = n - 1;i >= 0;i--){
		cout << s[i] << " ";
	}
	return 0;
}

3. 计算矩阵边缘元素之和

所谓矩阵边缘的元素,就是第一行和最后一行的元素以及第一列和最后一列的元素。
时间限制:10000
内存限制:65536
【输入】

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

【输出】

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

【样例输入】

3 3
3 4 1
3 7 1
2 0 1

【样例输出】

15

参考答案

#include<bits/stdc++.h>
using namespace std;
int a[105][105];
int main(){
	int n , m , sum = 0;
	cin >> n >> m;
	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){
				sum = sum + a[i][j];
			}
		}
	}
	cout << sum;
	return 0;
}

4. 奇数单增序列

给定一个长度为N(不大于500)的正整数序列,请将其中的所有奇数取出,并按升序输出。
时间限制:1000
内存限制:65536
【输入】

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

【输出】

增序输出的奇数序列,数据之间以逗号间隔。数据保证至少有一个奇数。

【样例输入】

10
1 3 2 6 5 4 9 8 7 10

【样例输出】

1,3,5,7,9

参考答案

#include<bits/stdc++.h>
using namespace std;
int a[505];
int main(){
	int n;
	int ans = 0;
	cin >> n;
	for(int i = 0;i < n;i++){
		cin >> a[i];
	}
	sort(a + 0 , a + n);
	for(int i = 0;i < n;i++){
		if(a[i] % 2 != 0){
			if(ans == 1){
				cout<<",";
			}
			cout << a[i];
			ans = 1;
		}
	}
	return 0;
}

5. 实数加法

求两个实数相加的和。

题目中输入输出里出现的浮点数都有如下的形式: P1P2…Pi.Q1Q2…Qj。对于整数部分,P1P2…Pi是一个非负整数且当整数部分不为0时,P1不等于0;对于小数部分,Qj不等于0。
时间限制:1000
内存限制:65536
【输入】

2行,每行是一个加数。每个加数的长度不超过100。

【输出】

一行,即相应的和。输出保证一定是一个小数部分不为0的实数。

【样例输入】

0.111111111111111111111111111111
0.111111111111111111111111111111

【样例输出】

0.222222222222222222222222222222

参考答案

#include<stdio.h>
#include<string.h>
#include<iostream>
using namespace std;
int main()
{
    char a[202],b[202],c[101],d[101];
    cin>>a;
    cin>>b;
    memset(c,0,sizeof(c));
    memset(d,0,sizeof(d));
    int i,j=0,ap=0,bp=0,ka=0,kb=0;
    //ka,kb用来统计数组a和b的小数部分的位数
    //ap,bp用来统计数组a和b的整数部分的位数
 
    //统计数组a的整数部分和小数部分的位数
    for(i=0; i<strlen(a); i++)
    {
        if(a[i]=='.')
        {
            break;
        }
        ap++;
    }
    ka=strlen(a)-ap-1;
    //统计数组b的整数部分和小数部分的位数
    for(i=0; i<strlen(b); i++)
    {
        if(b[i]=='.')
        {
            break;
        }
        bp++;
    }
    kb=strlen(b)-bp-1;
    //对于整数部分从个位开始加即倒叙输入
    for(i=0; i<ap||i<bp; i++)
    {
        if(i<ap)
        {
            c[i]+=a[ap-1-i]-'0';
        }
        if(i<bp)
        {
            c[i]+=b[bp-1-i]-'0';
        }
        if(c[i]>9) //大于9则向前进1
        {
            c[i+1]+=1;
            c[i]%=10;
        }
    }
    //判断是否有小数部分
    if(ka>0||kb>0)
    {
        for(i=0; i<ka||i<kb; i++)
        {
            if(i<ka)
            {
                d[i]+=a[i+ap+1]-'0';//小数部分正序输入
            }
            if(i<kb)
            {
                d[i]+=b[i+bp+1]-'0';
            }
        }
        //取两者最大小数位,用于输出小数输出
        if(ka<kb)
        {
            ka=kb;
        }
        //取两者最大整数位
        if(ap<bp)
        {
            ap=bp;
        }
        for(i=ka-1; i>0; i--) //向前进1
        {
            if(d[i]>9)//小数部分的进位
            {
                d[i-1]+=1;
                d[i]%=10;
            }
        }
        if(d[0]>9)//对第一位小数是否进位进行判断
        {
            c[0]+=1;
            d[0]%=10;
            while(c[j]>9)
            {
                c[j+1]+=1;
                c[j]%=10;
            }
        }
        if(c[ap]>0)
        {
            printf("%d",c[ap]);
        }
        for(i=ap-1; i>=0; i--)
        {
            printf("%d",c[i]);
        }
        printf(".");
        for(i=0; i<ka; i++)
        {
            printf("%d",d[i]);
        }
    }
    else
    {
        if(ap<bp)
        {
            ap=bp;
        }
        if(c[ap]>0)
        {
            printf("%d",c[ap]);
        }
        for(i=ap-1; i>=0; i--)
        {
            printf("%d",c[i]);
        }
    }
    return 0;
}

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

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

相关文章

yandex地图js学习

由于百度地图在国外的某些寻路的场景不太完善&#xff0c;所以试用了一下俄罗斯的开源地图。同google地图一样&#xff0c;规划路线需要申请apikey&#xff0c;但无需绑定信用卡&#xff0c;每天的免费调用次数也非常够用。 yandex maps开发文档 申请apikey 只需要创建账号&…

5.5.4 从IPv4到IPv6过渡——双协议栈

5.5.4 从IPv4到IPv6过渡——双协议栈 与软件版本更新不同&#xff0c;IP协议版本的更新不可能在短时间内完成&#xff0c;只能够采用逐步演进的方法&#xff0c;也就是说在很长一段时间内&#xff0c;必须允许两种协议的网络并存&#xff0c;并且能够确保网络能够互联互通&…

C++11语法杂记(更新中)

文章目录 一. delctype二. default三. delete四. 可变参数模板五. emplace系列六. noexcept七. constexpr 一. delctype delctype和auto类似&#xff0c;也可以自动识别类型 举例如下&#xff1a; 与auto不同的是&#xff0c;auto只能用于定义变量类型&#xff0c;而decltyp…

查看ResultSet中的rowData

之前的dml语句都返回值都是int表示有改动的行数 那么Select可是要展示数据的 SELECT查询的结果 通过这个ResultSet遍历 然后通过next方法来一行行读取数据 类似于迭代器(肯定不是迭代器) 里面还包含获得的数据元素 相当于这个既包含元素&#xff0c;还能迭代自己的元素 具体你…

MySQL——DQL,DCL语言学习

作者简介&#xff1a;一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭&#xff1a;低头赶路&#xff0c;敬事如仪 个人主页&#xff1a;网络豆的主页​​​​​​ 前言 本章将会讲解MySQLDQL&#xff0c;DCL语言的学习。 一.DQL DQL 英文全称是 Data …

全志V3S嵌入式驱动开发(五种镜像烧入的方法)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 关于v3s的镜像烧入&#xff0c;大约有五种方法。前面陆陆续续已经介绍了三种方法&#xff0c;实际工作中具体使用哪一种&#xff0c;大家可以根据自…

SpringBoot 监控与管理的主要组件

SpringBoot 监控与管理的主要组件 SpringBoot作为一款开箱即用的Java Web开发框架&#xff0c;集成了很多方便开发者使用的组件。其中一个非常重要的组件就是监控与管理组件。在现代的分布式应用中&#xff0c;监控与管理已经成为了必不可少的一部分。SpringBoot提供了一些非常…

指针与数组--动态数组(1)[1、C程序的内存映像 2、动态内存分配]

目录 一、C程序的内存映像 二、动态内存分配 1、malloc&#xff08;&#xff09;函数 2、calloc&#xff08;&#xff09;函数 3、free&#xff08;&#xff09;函数 4、realloc&#xff08;&#xff09;函数 一、C程序的内存映像 一个编译后的C程序 获得并使用4块在逻辑上不…

vue+leaflet 使用js自定义封装动画marker样式点

效果图 1. 引入leaflet import L from leaflet2. 使用原生js实现 import L from leaflet; import ../assets/css/blinkmarker.css; L.blinkMarker (point, property) > {// 使用js标签,便于操作,这个temDivEle的作用是将divEle通过innerHTML的方式获取为字符串var temp…

Nacos 打通 CMDB 实现就近访问

博主介绍&#xff1a;✌全网粉丝4W&#xff0c;全栈开发工程师&#xff0c;从事多年软件开发&#xff0c;在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战、定制、远程&#xff0c;博主也曾写过优秀论文&#xff0c;查重率极低&#xff0c;在这方面…

小程序 体验版 快速配置https服务接口 - 项目是nodeJS配置本地https服务,不用下载源码不用付费,直接使用Git的openssh功能(亲测有效)

背景 学习网易云音乐小程序开发&#xff0c;用了老师的node JS做后端服务器&#xff0c;上线小程序体验版必须要https接口。 接下来就是配置NodeJs服务https踩的坑跟发现的惊喜。 配置https 下载与配置 密钥生成 1 运行命令 &#xff1a; openssl genrsa -out privatekey.p…

BST有缺陷--红黑树(RBT)应运而生

1.首先介绍一下什么是BST&#xff08;二叉查找树&#xff09; 若其左子树非空&#xff0c;则左子树上所有节点的值都小于根节点的值若其右子树非空&#xff0c;则右子树上所有节点的值都大于根节点的值其左右子树都是一棵二叉查找树二叉排序树通过中序遍历可以得到递增序列 如下…

技能树-网络爬虫-selenium

文章目录 前言一、selenium二、selenium 测试用例总结 前言 大家好&#xff0c;我是空空star&#xff0c;本篇给大家分享一下《技能树-网络爬虫-selenium》。 一、selenium Selenium是web自动化测试工具集&#xff0c;爬虫可以利用其实现对页面动态资源的采集&#xff0c;对于…

一位老程序员的忠告:别想着靠技术生存一辈子

注&#xff1a;本文系转载。 笔者目前是自己单干&#xff0c;但此前有多年在从事软件开发工作&#xff0c;回头想想自己&#xff0c;特别想对那些初学JAVA/DOT、NET技术的朋友说点心里话&#xff0c;希望我们的体会多少能给你们一些启发。 一、 在一个地方工作8小时就是“穷”…

Python多线程与多进程教程:全面解析、代码案例与优化技巧

文章目录 引言多线程多线程概述案例1&#xff1a;使用多线程实现并发下载文件案例2&#xff1a;使用多线程处理CPU密集型任务 使用threading模块案例1&#xff1a;自定义线程类并启动线程案例2&#xff1a;使用锁保护共享资源 线程同步与互斥案例&#xff1a;使用锁实现线程安全…

css用法总结

1. 块级元素合并时边框重叠问题的解决方案 设置边框2px 红色 如果不做处理&#xff0c;仅仅添加边框则会是这个样子 设置处理后的样式 代码展示 2. 拥有边框的div , hover时的展示效果 代码展示 3. img 和 文字环绕展示 代码展示 设置左浮动即可 4. text-align: center; 可…

Linux——Samba文件共享服务

个人简介&#xff1a;云计算网络运维专业人员&#xff0c;了解运维知识&#xff0c;掌握TCP/IP协议&#xff0c;每天分享网络运维知识与技能。座右铭&#xff1a;海不辞水&#xff0c;故能成其大&#xff1b;山不辞石&#xff0c;故能成其高。 个人主页&#xff1a;小李会科技的…

Go语言基础-基础语法

前言&#xff1a; \textcolor{Green}{前言&#xff1a;} 前言&#xff1a; &#x1f49e;这个专栏就专门来记录一下寒假参加的第五期字节跳动训练营 &#x1f49e;从这个专栏里面可以迅速获得Go的知识 本文主要是根据今天所学&#xff08;链接放在了最后&#xff09;总结记录的…

please specify ‘programme‘ in launch.json

故障现象&#xff1a; 在windows下点击F5&#xff0c;以运行vscode代码&#xff0c;在屏幕右下角出现这个错误提醒&#xff1b; 故障原因&#xff1a; 在配置文件&#xff08;settings.json或者launch.json&#xff09;中&#xff0c;缺少“program”这个参数配置&#xff1b…

SpringBoot 如何使用 Actuator 进行应用程序监控

SpringBoot 如何使用 Actuator 进行应用程序监控 在现代的应用程序开发中&#xff0c;应用程序监控是非常重要的&#xff0c;因为它可以帮助我们快速发现和解决问题。Spring Boot Actuator 是 Spring Boot 提供的一个强大的监控和管理工具&#xff0c;它可以帮助我们监控和管理…