2021 年 6 月青少年软编等考 C 语言一级真题解析

目录

  • T1. 数的输入和输出
    • 思路分析
  • T2. (a / b) × c 的值
    • 思路分析
  • T3. 大写字母的判断
    • 思路分析
  • T4. 特殊求和
    • 思路分析
  • T5. 硬币翻转
    • 思路分析

T1. 数的输入和输出

输入一个整数和双精度浮点数,先将浮点数保留 2 2 2 位小数输出,然后输出整数。

时间限制:1 s
内存限制:64 MB

  • 输入
    一行两个数,分别为整数 n n n(不超过整型范围),双精度浮点数 f f f,以一个空格分开。
  • 输出
    一行两个数,分别为保留 2 2 2 位小数输出的 f f f,以及整数 n n n,以一个空格分开。
  • 样例输入
    100 123.456789
    
  • 样例输出
    123.46 100
    

思路分析

此题考查整数和浮点数的输入输出,以及浮点数精度控制,属于入门题。按照样例输出的格式编写代码输出即可,注意输出变量的顺序与输入顺序是相反的。

/** Name: T1.cpp* Problem: 数的输入和输出* Author: Teacher Gao.* Date&Time: 2024/03/04 20:31*/#include <cstdio>using namespace std;int main()
{int a;double b;scanf("%d%lf", &a, &b);printf("%.2f %d\n", b, a);return 0;
}

T2. (a / b) × c 的值

给定整数 a a a b b b c c c,计算 ( a / b ) × c (a / b) \times c (a/b)×c 的值,这里的除法为实数除法。

时间限制:1 s
内存限制:64 MB

  • 输入
    一行,三个整数 a a a b b b c c c,整数间以空格分隔。 1 ≤ a , b , c ≤ 1000 1 ≤ a,b,c ≤ 1000 1a,b,c1000
  • 输出
    将计算结果保留 6 6 6 位小数输出。
  • 样例输入
    1 3 3
    
  • 样例输出
    1.000000
    

思路分析

此题考查算术运算,数据类型转换,以及浮点数精度控制,属于入门题。按照题目中的公式编写代码计算并输出即可。

至于算术运算中的整数除法转换为实数除法,可以使用自动类型转换,即将公式 (a / b) * c 写成 (1.0 * a / b) * c。由于 1.0double 型常量,因此 1.0 * a 的值会是 double 型,而数值大小并未发生变化。

更多数据类型转换相关内容,可以参考基本类型这篇文章。

/** Name: T2.cpp* Problem: (a / b) × c 的值* Author: Teacher Gao.* Date&Time: 2024/03/04 20:33*/#include <cstdio>using namespace std;int main()
{int a, b, c;scanf("%d%d%d", &a, &b, &c);printf("%.6f", (1.0 * a / b) * c);return 0;
}

T3. 大写字母的判断

输入一个字符,判断是否是英文大写字母,即是否是 A ∼ Z A \sim Z AZ 中的一个。

时间限制:1 s
内存限制:64 MB

  • 输入
    一个字符。
  • 输出
    如果是英文大写字母,则输出 YES,否者输出 NO
  • 样例输入
    K
    
  • 样例输出
    YES
    

思路分析

此题考查分支结构,以及关系运算与逻辑运算,属于入门题。此题相比同年 3 3 3 月份的 T3,难度降低了不少。

C/C++ 中的 char 类型是以 ASCII 码的形式存储在内存中的,而 ASCII 码是对常用的 128 128 128 个字符进行了整数编码,因此在 C/C++ 中我们有时把 char 类型也称为整数类型。整数类型支持关系运算,因此我们可以直接对 char 类型数据执行关系运算,以确定该数据是否在我们所需要的范围。

/** Name: T3.cpp* Problem: 大写字母的判断* Author: Teacher Gao.* Date&Time: 2024/03/04 20:35*/#include <iostream>using namespace std;int main()
{char ch;cin >> ch;if ('A' <= ch && ch <= 'Z') {cout << "YES" << endl;}else {cout << "NO" << endl;}return 0;
}

T4. 特殊求和

如果一个数能够被 7 7 7 整除或者十进制表示中含有数字 7 7 7,那么我们称这个数为幻数,比如 17 17 17 21 21 21 73 73 73 是幻数,而 6 6 6 59 59 59 不是。

对于给定的 n n n,求出 1 ∼ n 1 \sim n 1n 中所有幻数的和。

时间限制:1 s
内存限制:64 MB

  • 输入
    一个整数 n n n 1 < n < 10000 1 < n < 10000 1<n<10000
  • 输出
    一个整数,表示 1 ∼ n 1 \sim n 1n 中所有幻数的和。
  • 样例输入
    14
    
  • 样例输出
    21
    

思路分析

此题考查循环结构,分支结构判断倍数关系,以及数位拆分,属于一般应用题。此题相比同年 3 3 3 月份的 T4,难度提升较大,涉及到循环嵌套和较为复杂的逻辑。

此题需要用循环遍历 1 1 1 n n n 之间的所有整数,依次判断每个数 i。若 i 7 7 7 的倍数,则将其累加;若 i 不是 7 7 7 的倍数,则对 i 进行数位拆分,依次判断每一位是否为 7 7 7,若为 7 7 7,则将 i 累加。

需要注意数位拆分过程中可能会修改 i 的值,这可能导致外层循环无法退出,因此需要一个临时变量 t 来存储 i 的值,然后对 t 进行数位拆分,这样就不会影响外层循环的进行。此外,一旦检测到 t 的某一位数值是 7 7 7,则将 i 累加,而不是 t,因为此时 t 可能已经被改变了。并且累加之后要及时结束数位拆分的过程,否则可能会将 i 累加多次,导致结果偏大。

/** Name: T4.cpp* Problem: 特殊求和* Author: Teacher Gao.* Date&Time: 2024/03/04 20:36*/#include <iostream>using namespace std;int main()
{int n, sum = 0;cin >> n;for (int i = 1; i <= n; i++) {if (i % 7 == 0) {sum += i;continue;}int t = i;while (t) {if (t % 10 == 7) {sum += i;break;}t /= 10;}	}cout << sum << endl;return 0;
}

T5. 硬币翻转

假设有 n n n 个硬币( n n n 为不大于 5000 5000 5000 的正整数),从 1 1 1 n n n 按顺序依次编号,初始时全部处于正面向上的状态;有 m m m 个人( m m m 为不大于 n n n 的正整数)也从 1 1 1 m m m 依次编号。

第一个人( 1 1 1 号)将硬币全部翻转一次,第二个人( 2 2 2 号)将编号为 2 2 2 的倍数的硬币翻转一次,第三个人( 3 3 3 号)将编号为 3 3 3 的倍数的硬币翻转一次。依照编号递增顺序,以后的人都和 3 3 3 号一样,将凡是自己编号倍数的硬币翻转一次。

请问:当第 m m m 个人操作之后,哪些硬币是正面向上的,按从小到大输出其编号,以空格分开。

时间限制:1 s
内存限制:64 MB

  • 输入
    输入正整数 n n n m m m,以单个空格隔开。
  • 输出
    顺次输出正面向上的硬币的编号,其间用空格间隔。
  • 样例输入
    10 10
    
  • 样例输出
    2 3 5 6 7 8 10
    

思路分析

此题考查循环结构,以及标记法,属于基础题。但是涉及到数组,相比同年 3 3 3 月份的 T5,难度提升较大。

此题可以设置一个数组 a[],用来标记每一个硬币的状态(正面朝上还是反面朝上),我们可以用 a[i] == 0 表示正面朝上,a[i] == 1 表示反面朝上。然后用两层循环分别枚举硬币编号 i 和人的编号 j,若硬币编号是人的编号的倍数,即 i % j == 0,则将硬币状态进行反转。当两层循环枚举结束之后,依次遍历每一个硬币的状态 a[i],若 a[i] == 0 则表示编号为 i 的硬币正面朝上,输出 i 即可。

两层循环枚举时,外层循环枚举人的编号或者硬币编号都可以。不过若用外层循环枚举人的编号 j,那么内层循环枚举硬币编号 i 时可以从 j 开始,步长设为 j,这样就不需要用 if 语句判断硬币编号是否是人的编号的倍数了(见参考代码)。此外,反转硬币状态可以用 a[i] = !a[i] 代替 if 语句的判断。

在此题中,若人的数量 m m m 与硬币数量 n n n 相等,则可以利用数学知识进行求解,既不需要数组,也不需要两层循环嵌套,只需要一层循环即可解决,可以极大地简化程序,并提高程序效率。

/** Name: T5.cpp* Problem: 硬币翻转* Author: Teacher Gao.* Date&Time: 2024/03/04 20:41*/#include <iostream>using namespace std;int main()
{int n, m;bool a[5005] = {0};cin >> n >> m;// 枚举人的编号for (int j = 1; j <= m; j++) {// 枚举硬币编号for (int i = j; i <= n; i += j) {a[i] = !a[i];}}for (int i = 1; i <= n; i++) {if (!a[i]) {cout << i << " ";}}return 0;
}

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

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

相关文章

SpringMVC框架①

目录 一、SpringMVC概述 1. 什么是MVC 2. 什么是SpringMVC 3. springMVC特点 二、HellWorld 1. 开发环境 2. 创建maven工程 3. 配置web.xml 4. 创建请求控制器 5. 创建springMVC的配置文件 6. 测试HelloWorld 三、RequestMapping注解 1、RequestMapping功能 2、Re…

Android如何实现复制到剪贴板

文章目录 核心代码关于权限举例 在 Android 开发中&#xff0c;可以使用 ClipboardManager 来复制文本到剪贴板。以下是一个简单的示例代码&#xff0c;演示如何将文本复制到剪贴板&#xff1a; 核心代码 // 获取剪贴板管理器 val clipboardManager getSystemService(Contex…

Linux - 安装 maven(详细教程)

目录 一、下载二、安装三、配置环境变量四、镜像资源配置 一、下载 官网&#xff1a;https://maven.apache.org/download.cgi 打开 maven 的官网下载页面&#xff0c;点击 bin.tar.gz 文件链接 即可下载最新版本的 maven 如果想要下载旧版本的 meven&#xff0c;则点击 Maven…

图形系统开发实战课程:进阶篇(上)——9.空间算法(一)

图形开发学院&#xff5c;GraphAnyWhere 课程名称&#xff1a;图形系统开发实战课程&#xff1a;进阶篇(上)课程章节&#xff1a;“图形样式”原文地址&#xff1a;https://www.graphanywhere.com/graph/advanced/2-9.html 第九章 空间算法&#xff08;一&#xff09; \quad 在…

SpringBoot 自定义映射规则resultMap collection一对多

介绍 collection是封装一对多关系的&#xff0c;通常情况下是一个列表&#xff0c;association是一对一&#xff0c;通常情况是一个对象。例如&#xff1a;查询班级下所有的学生&#xff0c;一个班级可以有多个学生&#xff0c;这就是一对多。 案例 有一个学生表&#xff0c…

基于 Redis 的 JWT令牌失效方案

应用场景 当用户登录状态到登出状态时&#xff0c;对应的JWT的令牌需要设置为失效状态&#xff0c;这时可以使用基于 Redis 的黑名单方案来实现JWT令牌失效。 基于 Redis 的黑名单方案 当用户需要登出系统时&#xff0c;将用户携带的Token进行解析&#xff0c;解码出JWT令牌…

Go语言中的时间控制:定时器技术详细指南

Go语言中的时间控制&#xff1a;定时器技术详细指南 引言定时器基础创建和使用time.Timer使用time.Ticker实现周期性任务定时器的内部机制小结 使用time.Timer实现简单的定时任务创建和启动定时器停止和重置定时器定时器的实际应用小结 利用time.Ticker处理重复的定时任务创建和…

这里推荐一款unity3d人物动物控制器详细的等学会再写文章

unity3d Animal Controller 1.4.0a 动物NPC行为控制器 动物控制器&#xff08;AC&#xff09;是一个基于脚本架构的动画框架控制器。它适用于任何动物或人形角色的根运动或原地动画。 人和动物的各种动作都有; 小白必选、 我只是运行乐demo就感觉牛 demo路径&#xff1a;Asset…

Python不换行print在终端中不显示

问题描述 当使用不换行 print 即 print(‘test, end) 后立即关闭标准输出 sys.stdout open(os.devnull, w)则 print 的内容不会显示在正常的终端上&#xff08;例外是 PyCharm 中的终端能够正常显示&#xff09;。 复现问题 复现该问题的简易代码&#xff1a; import sys,…

基于pytorch的手写体识别

一、环境搭建 链接: python与深度学习——基础环境搭建 二、数据集准备 本次实验用的是MINIST数据集&#xff0c;利用MINIST数据集进行卷积神经网络的学习&#xff0c;就类似于学习单片机的点灯实验&#xff0c;学习一门机器语言输出hello world。MINIST数据集&#xff0c;可以…

【go从入门到精通】go环境安装和第一个经典程序

go下载和环境变量配置 下载地址 Go官网下载地址&#xff1a;https://golang.org/dl/All releases - The Go Programming Languagehttps://golang.org/dl/ 然后根据自己的系统环境来选择不同的安装包下载&#xff0c;下面我分别针对不同环境进行说明&#xff08;大家可以根据自…

计算机网络中常用的命令

Ping 通过发送一系列的ICMP回送数据报来确定本机与目的主机是否可以正常通信。输出中TTL代表ICMP报文存活时间&#xff0c;可以推算报文经过了几个路由器。ping失败有可能是由于Windows防火墙-IPv4回显请求没有开启。Ipconfig 获取主机的网络配置信息&#xff0c;例如IP地址、子…

LeetCode 438. 找到字符串中所有字母异位词

对于判断两个词是否为异位词&#xff0c;可以改而判断它们的词频表是否相同。基于此&#xff0c;在s串中设置滑动窗口&#xff0c;大小跟p串一样&#xff0c;移动&#xff08;剔除左边&#xff0c;增加右边&#xff09;这个窗口并实时记录下它的词频表然后与p的词频表比较。 cl…

数据库之Oracle数据导入导出

目录 一、单表导出和导入1、单表导出数据2、单表导入数据二、全表导出和导入1、远程导出全表数据2、导入本地数据三、密码带特殊字符的写法1、Windows OS写法2、Linux/Unix OS写法 四、总结 一、单表导出和导入 1、单表导出数据 --导出远程服务上的表数据 exp 用户名/密码IP…

Platformview在iOS与Android上的实现方式对比

Android中早期版本Platformview的实现基于Virtual Display。VirtualDisplay方案的原理是&#xff0c;先将Native View绘制到虚显&#xff0c;然后Flutter通过从虚显输出中获取纹理并将其与自己内部的widget树进行合成&#xff0c;最后作为Flutter在 Android 上更大的纹理输出的…

【java】redis的bitmap实现签到功能

功能&#xff1a; 1.签到 2.判断某天是否签到 3.统计某月的签到情况 4.统计某月连续签到了多少天 5.统计某月一共签到了多少次 代码 1.依赖 <dependencies><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId>…

Unity2023.1.19_ECS_DOTS

Unity2023.1.19_ECS_DOTS 盲学-盲目的学习&#xff1a; 懒着自己整理就看看别人整理的吧&#xff0c;整合一下逻辑通了不少&#xff1a; DOTS/data oriented technology stack-面向数据的技术栈 ECS/Entities-Component-System Unity-Entities包 Entities提供ECS架构面向数…

BUUCTF---[ACTF2020 新生赛]BackupFile1

1.题目描述 2.题目提示backup file &#xff0c;是备份文件的意思。点开链接&#xff0c;页面提示 3.查看源码没有什么有用信息&#xff0c;也没有登录界面&#xff0c;所以也不会用到蚁剑链接来找备份文件&#xff0c;所以大概率就是通过构造playload来查找备份文件。 4.备份…

kubectl 速查手册

资源对象文件 --- kind: Pod apiVersion: v1 metadata:name: myweblabels:app: nginx spec:containers:- name: webserverimage: nginx status: {} annotate # 更新资源所关联的注释信息 #-----------------------------------------# [rootmaster k8s]# kubectl apply -f m…

图像检测 - 模板匹配方法(算法详解)

1、介绍 在如今深度学习、神经网络遍地的世界,检测已经很常见了。在深度学习领域,关于目标检测也提出了很多很成熟的算法,例如双阶段的Fast-RCNN、单阶段的YOLO系列等等。 尤其是YOLO系列的不断更新迭代,目标检测的任务变得不再困难,可以做到实时检测的跟踪等等 但对于数…