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

news2025/2/27 14:57:48

在这里插入图片描述

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.coloradmin.cn/o/981634.html

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

相关文章

Zookeeper简述

数新网络-让每个人享受数据的价值 官网现已全新升级—欢迎访问&#xff01; 前 言 ZooKeeper是一个开源的、高可用的、分布式的协调服务&#xff0c;由Apache软件基金会维护。它旨在帮助管理和协调分布式系统和应用程序&#xff0c;提供了一个可靠的平台&#xff0c;用于处理…

苹果与芯片巨头Arm达成20年新合作协议,将继续采用芯片技术

9月6日消息&#xff0c;据外媒报道&#xff0c;芯片设计巨头Arm宣布在当地时间周二提交给美国证券交易委员会&#xff08;SEC&#xff09;的最新IPO文件中&#xff0c;透露与苹果达成了一项长达20年的新合作协议&#xff0c;加深了双方之间的合作关系。 报道称&#xff0c;虽然…

Informatica使用操作流程及Expression(表达式转换)案例2

操作流程 ①定义源<Odbc01_oracle:employees> ②定义目标<EDW_EMPLOYEES> ③创建映射<M_ORACLE_EDW01_employees> ④定义任务<S_ORCL_EDW01_employees> ⑤创建工作流<W_ORCL_EDW01_employees> ⑥工作流调度监控 ⑦查验数据 一、需求&…

js---16-----JavaScript中的类型转换机制

、类型转换机制是什么&#xff1f; JS中有六种简单数据类型&#xff1a;undefined、null、bollean、string、number、symbol&#xff0c;以及引用类型object 但是我们声明的时候只有一种数据类型&#xff0c;只用运行期间才会确定当前类型。 上面代码中&#xff0c;x的值在编…

浅谈redis未授权漏洞

redis未授权漏洞 利用条件 版本比较高的redis需要修改redis的配置文件&#xff0c;将bind前面#注释符去掉&#xff0c;将protected-mode 后面改为no 写入webshell config get dir #查看redis数据库路径 config set dir web路径# #修改靶机Redis数据库路径 config set dbfilen…

巧用抽象类与接口,打造高效Java程序(上)

White graces&#xff1a;个人主页 &#x1f649;专栏推荐:《C语言入门知识》&#x1f649; &#x1f649; 内容推荐:&#x1f649; &#x1f439;今日诗词:十年花骨东风泪&#xff0c;几点螺香素壁尘&#x1f439; 目录 &#x1f338;思维导图&#x1f338; &#x1f338;…

怎么做加密文件二维码?简单技巧快速做二维码

怎么做一个加密的文件二维码呢&#xff1f;现在将文件做成二维码来传递是一种很常见的方式&#xff0c;那么为了保证文件不会被私自下载&#xff0c;那么如何在将文件生成二维码的时候&#xff0c;给二维码进行加密设置呢&#xff1f;下面就让小编给大家分享一下二维码生成器在…

【C\C++】内存分配 和 动态内存管理方式

文章目录 内存分类题目&#xff1a;知识巩固选择题: 变量位于内存中的位置计算题 变量值的大小 答案 C语言 动态内存管理malloc / calloc / realloc作用区别 C 内存管理方式operator new 与 operator deletenew 与 delete 的实现原理malloc free 与 new delete 的区别 内存泄漏…

MySql 变量

1.系统变量 1.1 系统变量分类 变量由系统定义&#xff0c;不是用户定义&#xff0c;属于 服务器 层面。系统变量分为全局系统变量&#xff08;需要添加 global 关键字&#xff09;以及会话系统变量&#xff08;需要添加 session 关键字&#xff09;&#xff0c;有时也把全局系…

mysql UUID 作为主键的问题

UUID 在MySQL中&#xff0c;可以使用UUID()函数来生成一个新的UUID值。该函数的返回值是一个字符串类型&#xff0c;表示一个32位的十六进制数字&#xff0c;其中包含4个连字符“-”&#xff0c;例如&#xff1a;“6ccd780c-baba-1026-9564-0040f4311e29”。 varchar(32) 32*4…

【免费模板】2023数学建模国赛word+latex模板免费分享

无需转发 免费获取2023国赛模板&#xff0c;获取方式见文末 模板文件预览如下&#xff1a; 模板参考格式如下&#xff1a; &#xff08;题目&#xff09;XXXXXX 摘 要&#xff1a; 开头段&#xff1a;需要充分概括论文内容&#xff0c;一般两到三句话即可&#xff0c;长度控…

Java基础二十五(Map)

Map 接口 Map 接口是 Java 集合框架中的一种用于储存键值对映射关系的接口。Map 接口提供了一种通过键来访问值的方式&#xff0c;其中每一个键都是唯一的&#xff0c;值可以重复。 public interface Map<K,V>Map 接口的主要特征如下&#xff1a; 键唯一性&#xff1a;…

matlab数据处理: cell table array+datetime

原数据文件.csv matlab xlsread(filename{i},B2:T2881) 会同于Excel最多1048576行 舍弃 a{1,i} xlsread(filename{i},‘B2:T2881’);%读取excel文件,选定区域’B2:G2881’ readcell(filename{i},Range,E2:M2881) 会全部读取 优选 对于日期 yyyy-MM-dd HH:mm:ss.000 matlab cel…

开始MySQL之路——MySQL三大日志(binlog、redo log和undo log)概述详解

前言 MySQL实现事务、崩溃恢复、集群的主从复制&#xff0c;底层都离不开日志&#xff0c;所以日志是MySQL的精华所在。只有了解MySQL日志&#xff0c;才算是彻底搞懂MySQL。 日志是mysql数据库的重要组成部分&#xff0c;记录着数据库运行期间各种状态信息。mysql日志主要包…

【Linux从入门到精通】通信 | 管道通信(匿名管道 命名管道)

本派你文章主要是对进程通信进行详解。主要内容是介绍 为什么通信、怎么进行通信。其中本篇文章主要讲解的是管道通信。希望本篇文章会对你有所帮助。 文章目录 一、进程通信简单介绍 1、1 什么是进程通信 1、2 为什么要进行通信 1、3 进程通信的方式 二、匿名管道 2、1 什么是…

基于单片机的八路抢答器(数码管版)(独立按键、四位共阳极数码管、指示灯)

随着科学技术的发展和普及&#xff0c;各种各样的竞赛越来越多&#xff0c;其中抢答器的作用也就显而易见。目前很多抢答器基本上采用小规模数字集成电路设计&#xff0c;使用起来不够理想。因此设计一更易于使用和区分度高的抢答器成了非常迫切的任务。现在单片机已进入各个领…

Python UI自动化 —— pytest常用运行参数解析、pytest执行顺序解析

pytest常用Console参数&#xff1a; -v 用于显示每个测试函数的执行结果-q 只显示整体测试结果-s 用于显示测试函数中print()函数输出-x 在第一个错误或失败的测试中立即退出-m 只运行带有装饰器配置的测试用例-k 通过表达式运行指定的测试用例-h 帮助 首先来看什么参数都没加…

QT 第四天

一、设置一个闹钟 .pro QT core gui texttospeechgreaterThan(QT_MAJOR_VERSION, 4): QT widgetsCONFIG c11# The following define makes your compiler emit warnings if you use # any Qt feature that has been marked deprecated (the exact warnings # depend…

RHCE——十八、shell编程之sed

RHCE 一、概念工作原理 二、基本语法1、格式2、参数3、定址符4、操作 三、输出文本范例文件 四、文本替换1、范例文件2、格式3、示例4、使用替换实现删除 五、删除文本1、注意2、示例 六、插入文本1、注意2、格式3、示例4、注意 七、练习 一、概念 sed命令是一个非交互式的文本…

[keil] uv编译分析

假设Keil安装路径: C:\Keil_v5\ 假设工程在 d:\HELLO , 工程Targets名:Simulator [在Manage Project Items中可修改] 如下指令为:Build(F7) C:\Keil_v5\UV4\UV4.exe -b d:\HELLO\Hello.uvproj -j0 -t Simulator -o d:\HELLO\uv4.log 如下指令为:Rebuild(CtrlAltF7) C:\Kei…