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.rhkb.cn/news/123083.html

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

相关文章

C++ - 多态的实现原理

前言 本博客主要介绍C 当中 多态语法的实现原理&#xff0c;如果有对 多态语法 有疑问的&#xff0c;请看下面这篇博客&#xff1a; C - 多态语法 - 虚函数使用介绍-CSDN博客 探究&#xff0c;为什么多态的条件是那样的&#xff08;虚函数表&#xff09; 首先&#xff0c;调用…

qt day6 人脸识别

在C和C中static关键字的用法 static修饰局部变量、全局变量&#xff08;不能被外部引用extern|未初始化的值为0&#xff09;、函数&#xff08;不能被外部引用extern&#xff09;&#xff0c;不能修饰auto类型的指针&#xff08;因为计算机先为静态变量分配空间&#xff0c;后再…

重磅|Falcon 180B 正式在 Hugging Face Hub 上发布!

引言 我们很高兴地宣布由 Technology Innovation Institute (TII) 训练的开源大模型 Falcon 180B 登陆 Hugging Face&#xff01;Falcon 180B 为开源大模型树立了全新的标杆。作为当前最大的开源大模型&#xff0c;有180B 参数并且是在在 3.5 万亿 token 的 TII RefinedWeb 数据…

打造基于终端命令行的IDE,Termux配置Vim C++开发环境

Termux配置Vim C开发环境&#xff0c;打造基于终端命令行的IDE 主要利用VimCoc插件&#xff0c;配置C的代码提示等功能。 Termux换源 打开termux&#xff0c;输入termux-change-repo 找到mirrors.tuna.tsinghua.edu.cn&#xff0c;清华源&#xff0c;空格选中&#xff0c;回…

Hadoop Hive入门

0目录 1.linux 安装hive 2.hive入门 3.hive高级语法1 1.linux 安装hive 先确保linux虚拟机中已经安装jdk&#xff1b;mysql和hadoop 并可以成功启动hadoop和mysql 下载hive对应版本到opt/install目录下并解压到opt/soft目录下 重命名 hive312 配置profile 文件&#xff…

Qt+C++桌面计算器源码

程序示例精选 QtC桌面计算器源码 如需安装运行环境或远程调试&#xff0c;见文章底部个人QQ名片&#xff0c;由专业技术人员远程协助&#xff01; 前言 这篇博客针对<<QtC桌面计算器源码>>编写代码&#xff0c;代码整洁&#xff0c;规则&#xff0c;易读。 学习与…

Hadoop的第二个核心组件:MapReduce框架第二节

Hadoop的第二个核心组件&#xff1a;MapReduce框架第二节 六、MapReduce的工作流程原理&#xff08;简单版本&#xff09;七、MapReduce中的序列化机制问题八、流量统计案例实现&#xff08;序列化机制的实现&#xff09; 六、MapReduce的工作流程原理&#xff08;简单版本&…

Flutter实用工具Indexer列表索引和Search搜索帮助。

1.列表索引 效果图&#xff1a; indexer.dart import package:json_annotation/json_annotation.dart;abstract class Indexer {///用于排序的字母JsonKey(includeFromJson: false, includeToJson: false)String? sortLetter;///用于排序的拼音JsonKey(includeFromJson: fal…

如何有效防止服务器被攻击?

随着互联网的快速发展&#xff0c;服务器安全问题日益引起人们的关注。近期&#xff0c;全球范围内频繁发生的服务器攻击事件引发了广泛关注。为了保护企业和个人的数据安全&#xff0c;有效防止服务器被攻击已成为迫在眉睫的任务。 首先&#xff0c;及时更新服务器的操作系统和…

基于SpringBoot的医院挂号系统

基于SpringBootVue的医院挂号、预约、问诊管理系统&#xff0c;前后端分离 开发语言&#xff1a;Java数据库&#xff1a;MySQL技术&#xff1a;SpringBoot、Vue、Mybaits Plus、ELementUI工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 角色&#xff1a;管理员、用户、医生 管…

系统架构技能之设计模式-组合模式

一、上篇回顾 我们上篇主要讲述了结构型模式中的外观模式&#xff0c;外观模式作为结构型模式中的一个简单又实用的模式&#xff0c;外观模式通过封装细节来提供大粒度的调用&#xff0c; 直接的好处就是&#xff0c;封装细节&#xff0c;提供了应用写程序的可维护性和易用性。…

十二、集合(4)

本章概要 集合 Set映射 Map队列 Queue 优先级队列 PriorityQueue 集合与迭代器 集合Set Set 不保存重复的元素。 如果试图将相同对象的多个实例添加到 Set 中&#xff0c;那么它会阻止这种重复行为。 Set 最常见的用途是测试归属性&#xff0c;可以很轻松地询问某个对象是否…

命名空间的详讲

本篇文章旨在讲解C中命名空间的概念以及其相关注意事项&#xff01; C的介绍 C作为C语言的衍生&#xff0c;其对C语言中的一些缺陷进行了一些的补充和优化。但是C也对C语言具有兼容性&#xff01; 本文旨在讲解C对C语言中当声明的变量与库函数的一些标识符&#xff0c;关键字…

【数论】容斥问题教程+符号含义+公式(c++)

容斥问题是什么 比如我们平常考试&#xff0c;我们会统计有几个语文及格&#xff0c;有几个数学及格&#xff0c;比如5个语文及格&#xff0c;2个数学及格&#xff0c;当然了&#xff0c;也会有大学霸两科都及格&#xff0c;比如1个人语文数学都及格&#xff0c;那我们班上一共…

Hadoop的第二个核心组件:MapReduce框架第四节

Hadoop的第二个核心组件&#xff1a;MapReduce框架 十、MapReduce的特殊应用场景1、使用MapReduce进行join操作2、使用MapReduce的计数器3、MapReduce做数据清洗 十一、MapReduce的工作流程&#xff1a;详细的工作流程第一步&#xff1a;提交MR作业资源第二步&#xff1a;运行M…

vnc与windows之间的复制粘贴

【原创】VNC怎么和宿主机共享粘贴板 假设目标主机是linux&#xff0c;终端主机是windows&#xff08;就是在windows上使用VNC登陆linux&#xff09; 在linux中执行 vncconfig -nowin& 在linux选中文字后&#xff0c;无需其他按键&#xff0c;直接在windows中可以黏贴。 …

【C++基础】5. 变量作用域

文章目录 【 1. 局部变量 】【 2. 全局变量 】【 3. 局部变量和全局变量的初始化 】 作用域是程序的一个区域&#xff0c;一般来说有三个地方可以定义变量&#xff1a; 在函数或一个代码块内部声明的变量&#xff0c;称为局部变量。 在函数参数的定义中声明的变量&#xff0c;称…

【前端demo】圣诞节灯泡 CSS动画实现轮流闪灯

文章目录 效果过程灯泡闪亮实现&#xff08;animation和box-shadow&#xff09;控制灯泡闪亮时间和顺序&#xff08;animation-delay&#xff09;按钮开关 代码htmlcssjs 参考代码1代码2 前端demo目录 效果 效果预览&#xff1a;https://codepen.io/karshey/pen/zYyBRWZ 参考…

Vue + Element UI 前端篇(十二):用户管理模块

Vue Element UI 实现权限管理系统 前端篇&#xff08;十二&#xff09;&#xff1a;用户管理模块 用户管理模块 添加接口 在 http/moduls/user.js 中添加用户管理相关接口。 import axios from ../axios/* * 用户管理模块*/// 保存 export const save (params) > {ret…

React中消息订阅与发布(PubSubJS)——两个组件之间通信

结合案例&#xff1a;github搜索案例 结果如下图 1.父容器代码 import React, { Component } from react import Search from ./components/Search import List from ./components/List export default class App extends Component {render() {return (<div className&…