2022年06月 C/C++(一级)真题解析#中国电子学会#全国青少年软件编程等级考试

在这里插入图片描述

第1题:倒序输出

依次输入4个整数a、b、c、d,将他们倒序输出,即依次输出d、c、b、a这4个数。
时间限制:1000
内存限制:65536
输入
一行4个整数a、b、c、d,以空格分隔。 0 < a,b,c,d < 108
输出
一行4个整数d、c、b、a,整数之间以一个空格分隔。
样例输入
1 2 3 4
样例输出
4 3 2 1

下面是一个使用C语言编写的倒序输出的程序的示例代码:

#include <stdio.h>int main() {int a, b, c, d;scanf("%d %d %d %d", &a, &b, &c, &d);printf("%d %d %d %d\n", d, c, b, a);return 0;
}

在上述代码中,我们使用scanf函数读取输入的四个整数abcd,并使用%d作为格式化字符串。

然后,我们使用printf函数按倒序输出这四个整数。我们通过在格式化字符串中依次写入变量dcba,并使用空格进行分隔,最后加上换行符\n

你可以根据需要使用上述示例代码,并根据题目要求进行适当的修改。记得在编译和运行代码之前,确保你的编译环境已经配置

第2题:平方差计算

给定的两个整数a, b, 他们的平方差结果为a2-b2 ,可以化简为 (a + b)(a-b)。例如5和4的平方差为52-42=(5+4)(5-4)=9。现给定两个整数,求他们的平方差。
时间限制:1000
内存限制:65536
输入
一行两个整数a、b,以空格分隔。 0 < b < a < 104
输出
输出a和b的平方差
样例输入
5 4
样例输出
9

下面是一个使用C语言编写的计算平方差的程序的示例代码:

#include <stdio.h>int main() {int a, b;scanf("%d %d", &a, &b);int square_diff = (a + b) * (a - b);printf("%d\n", square_diff);return 0;
}

在上述代码中,我们使用scanf函数读取输入的两个整数ab

然后,我们定义一个变量square_diff来保存平方差的结果,并计算(a + b) * (a - b)的值,并将其赋给square_diff

最后,我们使用printf函数输出变量square_diff的值。

你可以根据需要使用上述示例代码,并根据题目要求进行适当的修改。记得在编译和运行代码之前,确保你的编译环境已经配置好,并且包含了必要的头文件。

第3题:最小的数

依次输入3个整数a、b、c,将a、b、c中的最小值输出。
时间限制:1000
内存限制:65536
输入
一行3个整数a、b、c,以空格分隔。 0 < a,b,c < 108
输出
1个整数,即3个整数的最小值。
样例输入
2 3 2
样例输出
2

下面是一个使用C语言编写的找到三个整数中最小值的程序的示例代码:

#include <stdio.h>int findMin(int a, int b, int c) {int min = a;if (b < min) {min = b;}if (c < min) {min = c;}return min;
}int main() {int a, b, c;scanf("%d %d %d", &a, &b, &c);int min = findMin(a, b, c);printf("%d\n", min);return 0;
}

在上述代码中,我们首先定义了一个辅助函数findMin,它接受三个整数参数abc,并返回这三个数中的最小值。在函数内部,我们使用一个变量min来保存当前的最小值,初始值为a。然后,我们通过一系列的条件判断语句来更新min的值,将其更新为bc,如果它们的值更小。最后,我们返回min作为函数的结果。

main函数中,我们使用scanf函数读取输入的三个整数abc

然后,我们调用findMin函数,传入abc作为参数,以获得最小值,并将其赋给变量min

最后,我们使用printf函数输出变量min的值。

你可以根据需要使用上述示例代码,并根据题目要求进行适当的修改。记得在编译和运行代码之前,确保你的编译环境已经配置好,并且包含了必要的头文件。

第4题:计算成绩优秀的人数

现有一个班一门课程考试的分数,请统计其中成绩为优秀的人数。成绩为优秀的要求是分数大于等于85。
时间限制:1000
内存限制:65536
输入
第一行1个整数n,表示分数的个数。(0 < n ≤ 100, ) 第二行n个正整数,表示每一个分数,每个分数小于等于100。
输出
输出一个整数,表示成绩为优秀的人数。
样例输入
10
85 70 99 90 78 55 100 62 88 84
样例输出
5

下面是一个使用C语言编写的统计成绩优秀的人数的程序的示例代码:

#include <stdio.h>int countExcellent(int scores[], int n) {int count = 0;for (int i = 0; i < n; i++) {if (scores[i] >= 85) {count++;}}return count;
}int main() {int n;scanf("%d", &n);int scores[n];for (int i = 0; i < n; i++) {scanf("%d", &scores[i]);}int excellentCount = countExcellent(scores, n);printf("%d\n", excellentCount);return 0;
}

在上述代码中,我们首先定义了一个辅助函数countExcellent,它接受一个整数数组scores和数组的长度n作为参数,并返回成绩优秀的人数。在函数内部,我们定义一个变量count来保存成绩优秀的人数,初始值为0。然后,我们使用一个循环遍历数组中的每个分数,如果分数大于等于85,则将count加1。最后,我们返回count作为函数的结果。

main函数中,我们首先使用scanf函数读取输入的分数的个数n

然后,我们定义一个大小为n的整数数组scores来保存每个分数。

接下来,我们使用一个循环读取输入的每个分数,并将其存储到数组scores中。

然后,我们调用countExcellent函数,传入数组scoresn作为参数,以获得成绩优秀的人数,并将其赋给变量excellentCount

最后,我们使用printf函数输出变量excellentCount的值。

你可以根据需要使用上述示例代码,并根据题目要求进行适当的修改。记得在编译和运行代码之前,确保你的编译环境已经配置好,并且包含了必要的头文件。

第5题:开关灯

假设有N盏灯(N为不大于5000的正整数),从1到N按顺序依次编号,初始时全部处于开启状态;有M个人(M为不大于N的正整数)也从1到M依次编号。
第一个人(1号)将灯全部关闭,第二个人(2号)将编号为2的倍数的灯打开,第三个人(3号)将编号为3的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯打开)。依照编号递增顺序,以后的人都和3号一样,将凡是自己编号倍数的灯做相反处理。
请问:当第M个人操作之后,哪几盏灯是关闭的,按从小到大输出其编号,其间用逗号间隔。
时间限制:1000
内存限制:65536
输入
输入正整数N和M,以单个空格隔开。
输出
顺次输出关闭的灯的编号,其间用逗号间隔。
样例输入
10 10
样例输出
1,4,9

下面是一个使用C语言编写的开关灯问题的程序的示例代码:

#include <stdio.h>
#include <stdbool.h>int main() {int N, M;scanf("%d %d", &N, &M);bool lights[N + 1];  // 使用布尔数组表示灯的状态,下标从1到N// 初始化灯的状态,全部为开启状态for (int i = 1; i <= N; i++) {lights[i] = true;}// 模拟M个人的操作for (int i = 1; i <= M; i++) {for (int j = i; j <= N; j += i) {lights[j] = !lights[j];  // 改变灯的状态}}// 输出关闭的灯的编号bool first = true;  // 用于控制逗号的输出for (int i = 1; i <= N; i++) {if (!lights[i]) {if (!first) {printf(",");}printf("%d", i);first = false;}}printf("\n");return 0;
}

在上述代码中,我们首先使用scanf函数读取输入的灯的数量N和人的数量M

然后,我们定义一个布尔数组lights来表示灯的状态,数组的下标从1到N,初始时全部为开启状态。

接下来,我们使用两个嵌套的循环模拟M个人的操作。外层循环控制每个人的编号,内层循环根据当前人的编号,改变对应倍数的灯的状态,即将开启的灯关闭,将关闭的灯开启。

完成所有操作后,我们使用一个循环遍历灯的状态数组,输出关闭的灯的编号。使用变量first来控制逗号的输出,确保正确的格式。

最后,我们使用printf函数输出换行符。

你可以根据需要使用上述示例代码,并根据题目要求进行适当的修改。记得在编译和运行代码之前,确保你的编译环境已经配置好,并且包含了必要的头文件。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速上手React:从概述到组件与事件处理

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

ElasticSearch学习

一&#xff0c;简介 ES&#xff08;elaticsearch简写&#xff09;&#xff0c; Elasticsearch是一个开源的高扩展的分布式全文检索引擎&#xff0c;它可以近乎实时的存储、检索数据&#xff1b;本身扩展性很好&#xff0c;可以扩展到上百台服务器&#xff0c;处理PB级别的数据…

使用 AndroidX 增强 WebView 的能力

在App开发过程中&#xff0c;为了在多个平台上保持一致的用户体验和提高开发效率&#xff0c;许多应用程序选择使用 H5 技术。在 Android 平台上&#xff0c;通常使用 WebView 组件来承载 H5 内容以供展示。 一.WebView 存在的问题 自 Android Lollipop 起&#xff0c;WebVie…

lab1 utilities

测试和运行 参考大佬 修改grade-lab-util文件中的python为python3xv6.out这个文件的所有者可能是root&#xff0c;需要修改为用户&#xff0c;sudo chown woaixiaoxiao xv6.out 每完成一个函数&#xff0c;执行下面的步骤在Makefile中加入新增的程序$U/_sleep\make qemu&…

linux 命令- systemctl

systemctl 参数说明 1、使用语法 用法&#xff1a;systemctl [OPTIONS…] {COMMAND} … 2 、参数说明 参数参数说明start立刻启动后面接的unitstop立刻关闭后面接的unitrestart立刻关闭后启动后面接的unit&#xff0c;亦即执行stop再start的意思reload不关闭后面接的unit的…

PyTorch深度学习环境安装(Anaconda、CUDA、cuDNN)及关联PyCharm

1. 关系讲解 Tytorch&#xff1a;Python机器学习库&#xff0c;基于Torch&#xff0c;用于自然语言处理等应用程序 Anaconda&#xff1a;是默认的python包和环境管理工具&#xff0c;安装了anaconda&#xff0c;就默认安装了conda CUDA&#xff1a;CUDA是一种由显卡厂商NVIDI…

取个对象值导致系统崩溃

取个对象值导致系统崩溃 前言 想必各位小伙经常在项目中遇到一些错误&#xff0c;取对象值的时候&#xff0c;经常报错,又或者某些项目突然就挂经常都是出现在一些对象取值上面&#xff0c;然后就被领导一顿训斥 报错分析 例如&#xff1a; 下面这个报错大家想必不会陌生&am…

后端开发8.品牌模块

概述 简介 效果图 数据库设计 DROP TABLE IF EXISTS `goods_brand`;CREATE TABLE `goods_brand` ( `goodsBrandId` int(11) NOT NULL AUTO_IN

浅谈机器人流程自动化(RPA)

1.什么是RPA RPA代表机器人流程自动化&#xff08;Robotic Process Automation&#xff09;&#xff0c;是一种利用软件机器人或机器人工作流程来执行重复性、规范性和高度可预测性的业务流程的技术。这些流程通常涉及许多繁琐的、重复的任务&#xff0c;例如数据输入、数据处…

系统架构设计专业技能 · 网络规划与设计(三)【系统架构设计师】

系列文章目录 系统架构设计专业技能 网络规划与设计&#xff08;三&#xff09;【系统架构设计师】 系统架构设计专业技能 系统安全分析与设计&#xff08;四&#xff09;【系统架构设计师】 系统架构设计高级技能 软件架构设计&#xff08;一&#xff09;【系统架构设计师…

0基础学习VR全景平台篇 第79篇:全景相机-泰科易如何直播推流

泰科易科技是中国的一家研发全景相机的高科技公司&#xff0c;前不久&#xff0c;在2020世界VR产业大会上发布了新一代5G VR直播影像采集终端--360starlight。以其出色的夜景成像效果和一“部”到位的直播方案重新定义了VR慢直播相机&#xff0c;对行业具有高度借鉴意义。 本文…

Uniapp使用腾讯地图并进行标点创建和设置保姆教程

使用Uniapp内置地图 首先我们需要创建一个uniapp项目 首先我们需要创建一个uniapp项目 我们在HBuilder左上角点击文件新建创建一个项目 然后下面这张图的话就是uniapp创建项目过程当中需要注意的一些点和具体的操作 然后我们创建完项目之后进入到项目pages文件夹下&#xff…

【学习FreeRTOS】第2章——FreeRTOS基础知识

1.任务调度 1.1.任务调度简介 调度器就是使用相关的调度算法来决定当前需要执行的哪个任务FreeRTOS 一共支持三种任务调度方式&#xff1a; 抢占式调度&#xff1a;针对优先级不同的任务&#xff0c;每个任务都有一个优先级&#xff0c;优先级高的任务可以抢占优先级低的任务…

Webstorm + Egg.js 进行断点调试

Webstorm Egg.js 进行断点调试 1、在工具栏找到编辑配置&#xff0c;创建已运行Node.js 应用程序的调试配置 2、debug调试配置 3、调试 4、查看断点是否起效

python爬虫相关

目录 初识爬虫 爬虫分类 网络爬虫原理 爬虫基本工作流程 搜索引擎获取新网站的url robots.txt HTHP协议 Resquests模块 前言&#xff1a; 安装 普通请求 会话请求 response的常用方法 简单案例 aiohttp模块 使用前安装模块 具体案例 数据解析 re解析 bs4…

计算机竞赛 opencv python 深度学习垃圾图像分类系统

0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; opencv python 深度学习垃圾分类系统 &#x1f947;学长这里给一个题目综合评分(每项满分5分) 难度系数&#xff1a;3分工作量&#xff1a;3分创新点&#xff1a;4分 这是一个较为新颖的竞…

WebStorm

WebStorm 介绍下载安装Activation 介绍 WebStorm是由JetBrains公司开发的一款集成开发环境&#xff08;IDE&#xff09;&#xff0c;主要专注于前端开发和Web开发。它旨在提供一套强大的工具和功能&#xff0c;以支持开发者在前端项目中编写、调试和维护代码。 JetBrains官网: …

keil下载程序具体过程2:硬件链路

引言 本篇博客将介绍keil下载程序的过程中&#xff0c;镜像文件将经过哪些硬件&#xff0c;以及简单的介绍他们之间的协议。 一、硬件连接 图1 硬件连接 将PC、jlink、芯片使用ubs线、swd线连接好之后&#xff0c;在PC上的keil软件中&#xff0c;我们选择对应的仿真器&#xf…

【算法题】螺旋矩阵II (求解n阶Z形矩阵)

一、问题的提出 n阶Z形矩阵的特点是按照之(Z)字形的方式排列元素。n阶Z形矩阵是指矩阵的大小为nn&#xff0c;其中n为正整数。 题目描述 一个 n 行 n 列的螺旋(Z形)矩阵如图1所示&#xff0c;观察并找出填数规律。 图1 7行7列和8行8列的螺旋(Z形)矩阵 现在给出矩阵大小 n&…

SDR硬件方案

以射频硬件为线索&#xff0c;梳理常见SDR&#xff08;软件无线电&#xff09;方案。SDR硬件位于天线和数字信号处理之间&#xff0c;负责把无线电信号数字化&#xff0c;交由主机或者嵌入式系统&#xff08;FPGA、DSP&#xff0c;MCU&#xff09;处理。SDR硬件一般包含射频和数…