2021 年 6 月青少年软编等考 C 语言二级真题解析
目录
- T1. 数字放大
- 思路分析
- T2. 统一文件名
- 思路分析
- T3. 内部元素之和
- 思路分析
- T4. 整数排序
- 思路分析
- T5. 计算好数
- 思路分析
T1. 数字放大
给定一个整数序列以及放大倍数 x x x,将序列中每个整数放大 x x x 倍后输出。
时间限制:1 s
内存限制:64 MB
- 输入
包含三行:
第一行为 n n n,表示整数序列的长度, n ≤ 100 n ≤ 100 n≤100;
第二行为 n n n 个整数(不超过整型范围),整数之间以一个空格分开;
第三行包含一个整数(不超过整型范围),为指定的整数 x x x。 - 输出
n n n 个整数,为原序列放大之后的序列,整数之间以一个空格分开。 - 样例输入
3 1 5 7 2
- 样例输出
2 10 14
- 提示
注意答案的数据范围。
思路分析
此题考察一维数组的遍历操作,属于入门题。
此题只需要将整数序列存储起来,输入 x x x 之后依次遍历数组中的每个元素,将其乘以 x x x 之后输出即可,注意需要用 long long
类型。
/* * Name:T1.cpp* Problem:数字放大* Author:Teacher Gao.* Date&Time:2024/6/15 06:41*/#include <iostream>using namespace std;int main()
{long long n, a[100], x;cin >> n;for (int i = 1; i <= n; i++) {cin >> a[i];}cin >> x;for (int i = 1; i <= n; i++) {cout << a[i] * x << " ";}return 0;
}
T2. 统一文件名
小 A A A 在命名文件的时候经常不注意大小写,格式比较混乱。现要求你写一个程序将目录下的文件统一规范的格式,即文件名的第一个字符如果是字母要大写,其他字母小写。如将 Test \text{Test} Test、 test \text{test} test 整理成 Test \text{Test} Test。
时间限制:1 s
内存限制:64 MB
- 输入
第一行一个数字 n n n,表示有 n n n 个文件名要统一, n n n 不超过 100 100 100。
接下来 n n n 行,每行一个单词,长度不超过 20 20 20,表示文件的名字。文件名由字母、数字和-
组成。 - 输出
n n n 行,每行一个单词,对应统一后的文件名。 - 样例输入
4 Test data 2-TEST problem-6
- 样例输出
Test Data 2-test Problem-6
思路分析
此题考查字符的修改操作,属于入门题。
此题只需要将输入的 n n n 个字符串的首字母改为大写字母,然后输出即可。可以采用 if
语句进行判定,若输入字符串的首字母为小写字母,则将其修改为对应的大写字母之后输出。也可以采用 toupper
函数实现,该函数的功能是将小写字母改为大写字母,若参数不是小写字母,则不做任何修改。
/** Name: T2.cpp* Problem: 统一文件名* Author: Teacher Gao.* Date&Time: 2024/09/15 14:29*/#include <iostream>
#include <string>using namespace std;int main()
{int n;string s;cin >> n;for (int i = 1; i <= n; i++) {cin >> s;s[0] = toupper(s[0]);cout << s << endl;}return 0;
}
T3. 内部元素之和
输入一个整数矩阵,计算位于矩阵内部的元素之和。所谓矩阵内部的元素,不在第一行和最后一行的元素以及第一列和最后一列的元素。
时间限制:1 s
内存限制:64 MB
- 输入
第一行分别为矩阵的行数 m m m 和列数 n n n( m < 100 m < 100 m<100, n < 100 n < 100 n<100),两者之间以一个空格分开。
接下来输入的 m m m 行数据中,每行包含 n n n 个整数(每个数大于等于 0 0 0,小于 1000 1000 1000),整数之间以一个空格分开。 - 输出
输出对应矩阵的内部元素和。 - 样例输入
3 3 3 4 1 3 7 1 2 0 1
- 样例输出
7
思路分析
此题考查二维数组的遍历操作,属于入门题。
此题只需要注意统计输入的二维数组中的元素和时,判定当前元素是否属于内部元素,若是内部元素则进行累加即可。也可以在输入之后另外写一个双重循环嵌套,调整循环起点和终点,免去判断是否为内部元素的麻烦。以上两种方法较为简单,请读者自行实现。
第三种方法不使用二维数组,而是利用二维数组按行输入的特征,将二维下标转换到一维下标进行判断。二维下标 ( i , j ) (i, j) (i,j) 转换到一维下标 k k k 的转换公式为 $k = (i - 1) * n + j,于是第一行满足 1 ≤ k ≤ n 1 \le k \le n 1≤k≤n,最后一行满足 ( m − 1 ) n + 1 ≤ k ≤ m n (m - 1)n + 1 \le k \le mn (m−1)n+1≤k≤mn,第一列满足 k % n = 1 k \% n = 1 k%n=1,最后一列满足 k % n = 0 k \% n = 0 k%n=0。于是当 k k k 满足条件 n + 1 ≤ k ≤ ( m − 1 ) n n + 1 \le k \le (m-1)n n+1≤k≤(m−1)n,且 i % n ≥ 2 i \% n \ge 2 i%n≥2 时即为内部元素。
/** Name: T3.cpp* Problem: 内部元素之和* Author: Teacher Gao.* Date&Time: 2024/09/15 14:49*/#include <iostream>using namespace std;int main()
{int m, n, x, sum = 0;cin >> m >> n;for (int k = 1; k <= m * n; k++) {cin >> x;if (n < k && k <= (m-1)*n && k % n >= 2) {sum += x;}}cout << sum << endl;return 0;
}
T4. 整数排序
给定 10 10 10 个整数的序列,要求对其重新排序。排序要求:
- 奇数在前,偶数在后;
- 奇数按从大到小排序;
- 偶数按输入顺序逆序排序。
时间限制:1 s
内存限制:64 MB
- 输入
输入一行,包含 10 10 10 个整数,彼此以一个空格分开,每个整数的范围是大于等于 0 0 0,小于等于 100 100 100。 - 输出
按照要求排序后输出一行,包含排序后的 10 10 10 个整数,数与数之间以一个空格分开。 - 样例输入
4 7 3 13 11 12 0 47 34 98
- 样例输出
47 13 11 7 3 98 34 0 12 4
思路分析
此题考查排序算法,难度一般。
此题较为简单的做法是将奇数和偶数分开两个数组存储,对奇数数组做从大到小排序后输出,然后对偶数数组进行逆序输出。请读者自行实现。
此题也可以使用结构体排序,但是排序规则比较繁琐,需要讨论两个关键字的奇偶性,若同时为偶数,还需要考虑其输入次序。简单起见,可以将奇偶性属性也加入结构体成员,并作为第一关键字进行比较。见示例代码。
/** Name: T4.cpp* Problem: 整数排序* Author: Teacher Gao.* Date&Time: 2024/09/15 15:10*/#include <iostream>
#include <algorithm>using namespace std;struct num {// info 为 1 表示奇数,为 0 表示偶数int val, id, info;
}a[15];bool cmp(num x, num y) {if (x.info != y.info) return x.info > y.info;if (x.info == 1) return x.val > y.val;return x.id > y.id;
}int main()
{for (int i = 1; i <= 10; i++) {cin >> a[i].val;a[i].id = i;a[i].info = a[i].val % 2;}sort(a + 1, a + 10 + 1, cmp);for (int i = 1; i <= 10; i++) {cout << a[i].val << " ";}return 0;
}
T5. 计算好数
若将一个正整数化为二进制数,在此二进制数中,我们将数字 1 1 1 的个数多于数字 0 0 0 的个数的这类二进制数称为好数。
例如:
( 13 ) 10 = ( 1101 ) 2 (13)10 = (1101)2 (13)10=(1101)2,其中 1 1 1 的个数为 3 3 3, 0 0 0 的个数为 1 1 1,则此数是好数;
( 10 ) 10 = ( 1010 ) 2 (10)10 = (1010)2 (10)10=(1010)2,其中 1 1 1 的个数为 2 2 2, 0 0 0 的个数也为 2 2 2,则此数不是好数;
( 24 ) 10 = ( 11000 ) 2 (24)10 = (11000)2 (24)10=(11000)2,其中 1 1 1 的个数为 2 2 2, 0 0 0 的个数为 3 3 3,则此数不是好数。
对于给定的 n n n,写程序求出 1 ∼ n 1 \sim n 1∼n 之中(包括 1 1 1 与 n n n)中的好数个数。
时间限制:1 s
内存限制:64 MB
- 输入
一个整数,题目中的 n n n, n ≤ 1000 n ≤ 1000 n≤1000。 - 输出
一个整数,表示 1 ∼ n 1 \sim n 1∼n 之中(包括 1 1 1 与 n n n)中的好数个数。 - 样例输入
10
- 样例输出
5
思路分析
此题主要考查进制转换,即短除法,难度一般。
短除法的实现可以用 while
语句,注意在做短除法之前需要清空统计 1 1 1 和 0 0 0 数量的计数器变量。见示例代码。
/** Name: T5.cpp* Problem: 计算好数* Author: Teacher Gao.* Date&Time: 2024/09/15 15:24*/#include <iostream>using namespace std;int main()
{int n, tot = 0;cin >> n;for (int i = 1; i <= n; i++) {int tmp = i, t1 = 0, t0 = 0;while (tmp) {if (tmp % 2) t1++;else t0++;tmp /= 2;}if (t1 > t0) tot++;}cout << tot << endl;return 0;
}
相关文章:
2021 年 6 月青少年软编等考 C 语言二级真题解析
目录 T1. 数字放大思路分析 T2. 统一文件名思路分析 T3. 内部元素之和思路分析 T4. 整数排序思路分析 T5. 计算好数思路分析 T1. 数字放大 给定一个整数序列以及放大倍数 x x x,将序列中每个整数放大 x x x 倍后输出。 时间限制:1 s 内存限制&#x…...
2024网络安全、应用软件系统开发决赛技术文件
用软件系统开发技术方案 一、竞赛项目 2024 年全国电子信息行业第二届职工技能竞赛四川省应用 软件系统开发选拔赛分理论比赛和实际操作两个部分。理论比赛 成绩占30%,实际操作成绩占70%。 二、理论比赛 1、理论比赛范围 ①计算机系统基础知识: …...
CSP-J初赛每日题目2(答案)
二进制数 00100100和 00010100 的和是( )。 A.00101000 B.01100111 C.01000100 D.00111000 正确答案: D \color{green}{正确答案: D} 正确答案:D 解析: \color{red}{解析:} 解析: 00100100 36 \color{r…...
为什么Node.js不适合CPU密集型应用?
Node.js不适合CPU密集型应用的原因主要基于其设计理念和核心特性,具体可以归纳为以下几点: 单线程模型 Node.js采用单线程模型来处理用户请求和异步I/O操作。虽然这种模型在处理高并发I/O密集型任务时非常高效,因为它避免了传统多线程模型中的…...
数模原理精解【12】
文章目录 广义线性模型多元回归中的 R 2 R^2 R2(也称为决定系数)一、定义二、性质三、计算四、例子五、例题 偏相关系数一、定义二、计算三、性质四、例子 多元回归相关定义性质假设检验定义计算性质检验方法例子和例题例子例题例子 参考文献 广义线性模…...
steamdeck执行exe文件
命令行安装: sudo pacman xxxx //"xxxx"为软件名 ,或者搜索“arch linux 软件安装命令” 安装wine及wineZGUI 命令行输入: sudo pacman -S wine 后面需要输入密码,deck设置的用户密码即可(输入无反应是正…...
三、集合原理-3.2、HashMap(下)
3.2、HashMap(下) 3.2.2、单线程下的HashMap的工作原理(底层逻辑)是什么? 答: HashMap的源码位于Java的标准库中,你可以在java.util包中找到它。 以下是HashMap的简化源码示例,用于说明其实现逻辑&#…...
【激活函数】Activation Function——在卷积神经网络中的激活函数是一个什么样的角色??
【激活函数】Activation Function——在卷积神经网络中的激活函数是一个什么样的角色?? Activation Function——在卷积神经网络中的激活函数是一个什么样的角色?? 文章目录 【激活函数】Activation Function——在卷积神经网络中…...
重生之我在Java世界------学单例设计模式
什么是单例设计模式? 单例模式是面向对象编程中最简单却又最常用的设计模式之一。它的核心思想是确保一个类只有一个实例,并提供一个全局访问点。本文将深入探讨单例模式的原理、常见实现方法、优缺点,以及在使用过程中可能遇到的陷阱。 单…...
快速提升Python Pandas处理速度的秘诀
大家好,Python的Pandas库为数据处理和分析提供了丰富的功能,但当处理大规模数据时,性能问题往往成为瓶颈。本文将介绍一些在Pandas中进行性能优化的方法与技巧,帮助有效提升数据处理速度,优化代码运行效率。 1.数据类…...
在基于线程的环境中运行 MATLAB 函数
MATLAB 和其他工具箱中的数百个函数可以在基于线程的环境中运行。可以使用 backgroundPool 或 parpool("threads") 在基于线程的环境中运行代码。 要在后台运行函数,请使用 parfeval 和 backgroundPool。 具体信息可以参考Choose Between Thread-B…...

黑神话悟空+云技术,游戏新体验!
近期,一款名为黑神话悟空的游戏因其独特的艺术风格和创新的技术实现在玩家中产生了不小的影响。 而云桌面技术作为一种新兴的解决方案,正在改变人们的游戏体验方式,使得高性能游戏可以在更多设备上流畅运行。 那么,黑神话悟空如…...

【Android 13源码分析】WindowContainer窗口层级-3-实例分析
在安卓源码的设计中,将将屏幕分为了37层,不同的窗口将在不同的层级中显示。 对这一块的概念以及相关源码做了详细分析,整理出以下几篇。 【Android 13源码分析】WindowContainer窗口层级-1-初识窗口层级树 【Android 13源码分析】WindowCon…...

Redis常用操作及springboot整合redis
1. Redis和Mysql的区别 数据模型:二者都是数据库,但是不同的是mysql是进行存储到磁盘当中,而Redis是进行存储到内存中. 数据模型 : mysql的存储的形式是二维表而Redis是通过key-value键值对的形式进行存储数据. 实际的应用的场景: Redis适合于需要快速读写的场景&…...
动态规划day34|背包理论基础(1)(2)、46.携带研究材料(纯粹的01背包)、416. 分割等和子集(01背包的应用)
动态规划day34|背包理论基础(1)(2)、46.携带研究材料、416. 分割等和子集 背包理论基础(1)——二维背包理论基础(2)——一维46.携带研究材料(卡码网 01背包)1. 二维背包2. 一维背包 …...
pytorch优化器
在反向传播计算完所有参数的梯度后,还需要使用优化方法更新网络的权重和参数。例如,随机梯度下降法(SGD)的更新策略如下: weight weight - learning_rate * gradient 手动实现如下: learning_rate 0.01 …...

必备工具,AI生成证件照,再也不用麻烦他人,电子驾驶证等多种证件照一键生成
最近有一个生成证件照的开源项目很火,今天我们来学习一下。之前我生成证件照都是线下去拍照,线上使用也是各种限制,需要付费或看广告,而且效果也不是很理想, 今天要分享的这个 AI 证件照生成工具可以一键可以生成一寸…...

深度解析 MintRich 独特的价格曲线机制玩法
随着 Meme 币赛道的迅速崛起,NFT 市场也迎来了新的变革。作为一个创新的 NFT 发行平台,Mint.Rich 正掀起一场全民参与的 NFT 热潮。其简易的操作界面和独特的价格曲线设计,让任何人都能以极低的门槛发行和交易自己的 NFT,从而参与…...

实时数仓3.0DWD层
实时数仓3.0DWD层 DWD层设计要点:9.1 流量域未经加工的事务事实表9.1.1 主要任务9.1.2 思路9.1.3 图解9.1.4 代码 9.2 流量域独立访客事务事实表9.2.1 主要任务9.2.2 思路分析9.2.3 图解9.2.4 代码 9.3 流量域用户跳出事务事实表9.3.1 主要任务9.3.2 思路分析9.3.3 …...

路径规划 | 基于A*算法的往返式全覆盖路径规划的改进算法(Matlab)
目录 效果一览基本介绍程序设计参考文献 效果一览 基本介绍 基于A*算法的往返式全覆盖路径规划的改进算法 matlab实现代码 往返式全覆盖路径规划,通过建立二维栅格地图,设置障碍物,以及起始点根据定义往返式路径规划的定义的优先级运动规则从…...

STM32标准库-DMA直接存储器存取
文章目录 一、DMA1.1简介1.2存储器映像1.3DMA框图1.4DMA基本结构1.5DMA请求1.6数据宽度与对齐1.7数据转运DMA1.8ADC扫描模式DMA 二、数据转运DMA2.1接线图2.2代码2.3相关API 一、DMA 1.1简介 DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设…...

(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...
python如何将word的doc另存为docx
将 DOCX 文件另存为 DOCX 格式(Python 实现) 在 Python 中,你可以使用 python-docx 库来操作 Word 文档。不过需要注意的是,.doc 是旧的 Word 格式,而 .docx 是新的基于 XML 的格式。python-docx 只能处理 .docx 格式…...
VTK如何让部分单位不可见
最近遇到一个需求,需要让一个vtkDataSet中的部分单元不可见,查阅了一些资料大概有以下几种方式 1.通过颜色映射表来进行,是最正规的做法 vtkNew<vtkLookupTable> lut; //值为0不显示,主要是最后一个参数,透明度…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南
🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...

Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...