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

在这里插入图片描述

C/C++编程(1~8级)全部真题・点这里

第1题:字符三角形

描述
给定一个字符,用它构造一个底边长5个字符,高3个字符的等腰字符三角形。
输入
输入只有一行, 包含一个字符。
输出
该字符构成的等腰三角形,底边长5个字符,高3个字符。
样例输入
*
1
样例输出
  *
 ***
*****

你可以使用C语言编写一个程序来构造一个底边长为5个字符、高为3个字符的等腰字符三角形。以下是示例代码:

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

在主函数中,我们声明了字符变量ch,使用scanf函数读取输入的字符。

接下来,我们使用printf函数打印构成等腰字符三角形的字符。在每一行,我们使用空格来控制字符的位置,然后使用%c格式化字符变量ch来打印字符。第一行有两个空格,第二行有一个空格,第三行没有空格。

最后,我们使用return 0;语句结束程序。

你可以将以上代码保存为一个.c文件,使用C语言编译器编译运行,输入一个字符,即可得到构造的等腰字符三角形输出结果。

第2题:计算(a+b)*(c-b)的值

描述
给定3个整数a、b、c,计算表达式(a+b)*(c-b)的值。
输入
输入仅一行,包括三个整数a、b、c, 数与数之间以一个空格分开。
输出
输出一行,即表达式的值
样例输入
2 3 5
样例输出
10

你可以使用C语言编写一个程序来计算表达式(a+b)*(c-b)的值。以下是示例代码:

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

在主函数中,我们声明了整数变量a、b、c,使用scanf函数读取输入的三个整数。

接下来,我们使用一个表达式将(a+b)*(c-b)的结果赋值给result变量。

最后,我们使用printf函数打印result的值。

你可以将以上代码保存为一个.c文件,使用C语言编译器编译运行,输入三个整数,即可得到表达式的值输出结果。

第3题:晶晶赴约会

晶晶的朋友贝贝约晶晶下周一起去看展览,但晶晶每周的1、3、5有课必须上课, 请帮晶晶判断她能否接受贝贝的邀请,如果能输出YES;如果不能则输出NO。注意YES 和NO都是大写字母!
输入
输入有一行,贝贝邀请晶晶去看展览的日期,用数字1到7表示从星期一到星期 日。
输出
输出有一行,如果晶晶可以接受贝贝的邀请,输出YES,否则,输出NO。
注 意YES和NO都是大写字母!
输入样例
2
输出样例
YES

你可以使用C语言编写一个程序来判断晶晶是否能接受贝贝的邀请。以下是示例代码:

#include <stdio.h>int main() {int day;scanf("%d", &day);if (day == 1 || day == 3 || day == 5) {printf("NO\n");} else {printf("YES\n");}return 0;
}

在主函数中,我们声明了整数变量day,使用scanf函数读取输入的日期。

接下来,我们使用条件语句判断day的值是否等于1、3或5。如果是,表示晶晶当天有课必须上课,输出"NO";否则,表示晶晶可以接受邀请,输出"YES"。

最后,我们使用printf函数打印结果。

你可以将以上代码保存为一个.c文件,使用C语言编译器编译运行,输入贝贝邀请晶晶去看展览的日期,即可得到是否接受邀请的输出结果。

第4题:角谷猜想

所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数, 则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整 数为5,计算过程分别为16、8、4、2、1。
程序要求输入一个整数,将经过处理得到1的过程输出来。
输入
一个正整数 N(N <= 2, 000, 000)
输出
从输入整数到1的步骤,每一步为一行,每一部中描述计算过程。最后一行输出"End”。 如果输入为1,直接输出"End”。
样例输入
5
样例输出
5*3+1=16
16/2=8
8/2=4
4/2=2
2/2=1
End

你可以使用C语言编写一个程序来实现角谷猜想。以下是示例代码:

#include <stdio.h>void collatzConjecture(int num) {while (num != 1) {printf("%d", num);if (num % 2 == 0) {printf("/2=");num /= 2;} else {printf("*3+1=");num = num * 3 + 1;}printf("%d\n", num);}printf("End\n");
}int main() {int num;scanf("%d", &num);collatzConjecture(num);return 0;
}

首先,我们定义了一个函数collatzConjecture,用于实现角谷猜想的计算过程。函数的参数是一个整数num。

在函数内部,我们使用while循环,判断num是否等于1。如果不等于1,则进行下一步的计算。

在每一步的计算过程中,我们输出当前的num值,并根据num的奇偶性进行不同的计算。如果num是偶数,我们将其除以2并输出计算结果;如果num是奇数,我们将其乘以3再加1,并输出计算结果。

最后,我们在循环结束后输出"End"表示计算过程结束。

在主函数中,我们声明了整数变量num,使用scanf函数读取输入的整数。

然后,我们调用collatzConjecture函数,传入num作为参数,进行角谷猜想的计算。

你可以将以上代码保存为一个.c文件,使用C语言编译器编译运行,输入一个正整数,即可得到经过处理得到1的过程的输出结果。

第5题:求满足条件的3位数

编写程序,按从小到大的顺序寻找同时符合条件1和2的所有3位数,条件为:
1.该数为完全平方数
2.该数至少有2位数字相同
例如,100同时满足上面两个条件。
输入
输入一个数n,n的大小不超过实际满足条件的3位数的个数。
输出
输出为第n个满足条件的3位数(升序)
样例输入
1
样例输出
100

你可以使用C语言编写一个程序来找到满足条件的3位数。以下是示例代码:

#include <stdio.h>
#include <math.h>int isPerfectSquare(int num) {int root = sqrt(num);return (root * root == num);
}int hasRepeatedDigits(int num) {int digits[10] = {0}; // 数字出现次数的统计数组while (num > 0) {int digit = num % 10;digits[digit]++;num /= 10;}for (int i = 0; i < 10; i++) {if (digits[i] >= 2) {return 1; // 至少有2位数字相同}}return 0;
}int main() {int n;scanf("%d", &n);int count = 0; // 计数器int num = 100; // 从最小的3位数开始while (count < n) {if (isPerfectSquare(num) && hasRepeatedDigits(num)) {count++;}num++;}printf("%d\n", num-1);return 0;
}

在主函数中,我们声明了整数变量n,使用scanf函数读取输入的数n。

接下来,我们定义了两个辅助函数。函数isPerfectSquare用于判断一个数是否为完全平方数,函数hasRepeatedDigits用于判断一个数是否至少有两位数字相同。

在主函数中,我们使用一个while循环来遍历3位数,同时使用计数器count来记录满足条件的数的个数。

在循环中,我们判断当前的num是否满足条件1和条件2。如果满足,则将计数器count加1。

当计数器count达到输入的数n时,循环结束。

最后,我们输出满足条件的第n个3位数(即num-1)。

你可以将以上代码保存为一个.c文件,使用C语言编译器编译运行,输入一个数n,即可得到第n个满足条件的3位数的输出结果。

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

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

相关文章

C#学习 - 类型、变量、方法

类型&#xff08;Type&#xff09; 又称为数据类型&#xff08;Data Type&#xff09; 数据类型是数据在内存中存储时的“型号” 小内存容纳大尺寸数据会丢失精确度、发生错误 大内存容纳小尺寸数据会导致浪费 编程语言的数据类型与数学中的数据类型不完全相同 编程时数据受到…

nuxt3项目使用pdfjs-dist预览pdf

使用的包的源代码是 pdfjs - npm 但是我们实际上项目中使用的是pdfjs打包后的dist文件&#xff0c;也就是pdfjs-dist - npm 所以我们需要使用这个命令 npm i pdfjs-dist 我们可以克隆pdfjs这个包来看源代码&#xff0c;里面有使用的例子&#xff0c;也可以根据源代码自己打…

康冠2024届秋招校招面试软件开发岗问的问题

1.自我介绍 2.谈谈你的技术栈 3.我主要使用C#因此面试官问我了解Java怎么样 4.聊项目&#xff0c;例如开发过程中的问题 5.制作完项目的感受 6.为什么你会使用这些技术栈做项目 7.是否会把老项目翻盘重做 8.考公还是考研 9.期待的工作地点

bert ranking pairwise demo

下面是用bert 训练pairwise rank 的 demo import torch from torch.utils.data import DataLoader, Dataset from transformers import BertModel, BertTokenizer from sklearn.metrics import pairwise_distances_argmin_minclass PairwiseRankingDataset(Dataset):def __ini…

ClickHouse进阶(十三):Clickhouse数据字典-3-文件数据源及Mysql数据源

进入正文前&#xff0c;感谢宝子们订阅专题、点赞、评论、收藏&#xff01;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; &#x1f3e1;个人主页&#xff1a;含各种IT体系技术,IT贫道_大数据OLAP体系技术栈,Apache Doris,Kerberos安全认证-CSDN博客 &#x1f4cc;订阅…

鸿蒙应用程序入口UIAbility详解

一、UIAbility概述 UIAbility是一种包含用户界面的应用组件&#xff0c;主要用于和用户进行交互。UIAbility也是系统调度的单元&#xff0c;为应用提供窗口在其中绘制界面。每一个UIAbility实例&#xff0c;都对应于一个最近任务列表中的任务。一个应用可以有一个UIAbility&am…

LVS + Keepalived群集

文章目录 1. Keepalived工具概述1.1 什么是Keepalived1.2 工作原理1.3 Keepailved实现原理1.4 Keepalived体系主要模块及其作用1.5 keepalived的抢占与非抢占模式 2. 脑裂现象 &#xff08;拓展&#xff09;2.1 什么是脑裂2.2 脑裂的产生原因2.3 如何解决脑裂2.4 如何预防脑裂 …

介绍PHP

PHP是一种流行的服务器端编程语言&#xff0c;用于开发Web应用程序。它是一种开源的编程语言&#xff0c;具有易学易用的语法和强大的功能。PHP支持在服务器上运行的动态网页和Web应用程序的快速开发。 PHP可以与HTML标记语言结合使用&#xff0c;从而能够生成动态的Web页面&a…

关于前端就业前景的一点看法

一、前言 最近&#xff0c;很多人在知乎上鼓吹前端未来会没掉的概念。在此我想说这个说法并不真实&#xff0c;而是一种极端的观点。 事实上&#xff0c;前端开发在当今的互联网行业中扮演着至关重要的角色&#xff0c;它是构建 Web 应用程序所必需的一部分&#xff0c;能够实现…

项目中应该使用nginx还是拦截器来封禁IP

项目中应该使用nginx还是拦截器来封禁IP 在项目中&#xff0c;使用 Nginx 或拦截器&#xff08;例如 Spring Interceptor&#xff09;来封禁 IP 地址都是可行的方法&#xff0c;具体选择取决于你的需求和项目架构。 Nginx 是一种高性能的 Web 服务器和反向代理服务器&#xf…

小白学go基础04-命名惯例对标识符进行命名

计算机科学中只有两件难事&#xff1a;缓存失效和命名。 命名是编程语言的要求&#xff0c;但是好的命名却是为了提高程序的可读性和可维护性。好的命名是什么样子的呢&#xff1f;Go语言的贡献者和布道师Dave Cheney给出了一个说法&#xff1a;“一个好笑话&#xff0c;如果你…

如何使用命令行参数?

使用命令行参数是C语言编程中非常常见和有用的技巧。命令行参数允许您在运行程序时向程序传递信息&#xff0c;这样程序可以根据不同的输入执行不同的操作。在本文中&#xff0c;我们将详细讨论如何在C语言中使用命令行参数&#xff0c;包括如何访问和解析命令行参数、处理不同…

TSINGSEE青犀AI视频分析/边缘计算/AI算法·人脸识别功能——多场景高效运用

旭帆科技AI智能分析网关可提供海量算法供应&#xff0c;涵盖目标监测、分析、抓拍、动作分析、AI识别等&#xff0c;可应用于各行各业的视觉场景中。同时针对小众化场景可快速定制AI算法&#xff0c;主动适配大厂近百款芯片&#xff0c;打通云/边/端灵活部署&#xff0c;算法一…

前端中的事件委托

前端小知识 事 件 委 托 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/details/132819265 【介绍】&#xff1…

目标检测YOLO实战应用案例100讲-森林野火预警的小目标检测(续)

目录 3.2 实验数据评价指标 3.3 YOLO算法 3.3.1 YOLO算法原理 3.3.2 YOLO v5 网络模型

VM安装RedHat7虚机ens33网络不显示IP问题解决

1、今天在VMware中安装RedHat7.4虚拟机&#xff0c;网络连接使用的是 NAT 连接方式&#xff0c;刚开始安装成功之后输入ifconfig 还能看到ens33自动分配的IP地址&#xff0c;但是当虚机关机重启后&#xff0c;再查看IP发现原来的ens33网络已经没有了&#xff0c;只变成了这两个…

XML格式转JSON格式

前言&#xff1a; XML和JSON是两种常见的数据交换格式&#xff0c;它们在现代软件开发中扮演着重要的角色。本文将介绍这两种格式的基本概念、特点以及它们的使用场景&#xff0c;以帮助更好地理解和应用它们。 XML&#xff08;可扩展标记语言&#xff09;和JSON&#xff08;Ja…

Mybatis -- 读取 DATE 类型字段时可能遇到的问题(夏令时问题)

在使用 MYBATIS 读取数据库字段的时候&#xff0c;我们一般需要为查询字段指定数据类型。特别是当我们使用 mybatis generator 去生成对应的接口代码时&#xff0c;会自动按照数据库字段类型生成响应映射规则的代码。   如下&#xff0c;左侧是 date 类型生成的字段映射规则&…

MySQL数据库——存储引擎(2)-存储引擎特点(InnoDB、MyISAM、Memory)、存储引擎选择

目录 存储引擎特点 InnoDB 介绍 特点 文件 逻辑存储结构 MyISAM 介绍 特点 文件 Memory 介绍 特点 文件 区别及特点 存储引擎选择 存储引擎特点 上面我们介绍了什么是存储引擎&#xff0c;以及如何在建表时如何指定存储引擎&#xff0c;接下来我们就来介绍比较…

JS中 bind()的用法,call(),apply(),bind()异同点及使用,如何手写一个bind()

✨什么是bind() bind()的MDN地址 bind() 方法创建一个新函数&#xff0c;当调用该新函数时&#xff0c;它会调用原始函数并将其 this 关键字设置为给定的值&#xff0c;同时&#xff0c;还可以传入一系列指定的参数&#xff0c;这些参数会插入到调用新函数时传入的参数的前面。…