欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > 蓝桥备赛指南(13):填空签到题(1-1)

蓝桥备赛指南(13):填空签到题(1-1)

2025/6/7 17:13:48 来源:https://blog.csdn.net/2301_80508598/article/details/146963862  浏览:    关键词:蓝桥备赛指南(13):填空签到题(1-1)

前言

签到题是竞赛中相对简单、容易得分的题目,通常出现在比赛的前几道题。签到题具有题意清晰、解题思路简单、计算量小等特点。签到题在竞赛中占据重要的地位,它们是参赛者获取基础分数的关键。签到题大致可以分为数学类计算题、组合与排列类计算题、逻辑推理类计算题。

填空签到题实战案例1

试题A:求和(5分)

问题描述:求1(含)至20230408(含)中每个数的和。

答案提交:这是一道结果填空题,你只需要计算出结果后提交即可。本题的结果为一个整数,在提交答案时只填这个整数,填写多余的内容将无法得分。

问题分析:很明显,这是一道数学计算类的题,可以手算也可以编程解决。不难看出,这道题跟数学中的等差数列有点像,或许可以利用等差数列来解决,其公式就是n*(n+1)/2。20230408是一个很大的数,会不会溢出呢。在C++中,int的范围是32位,也就是2^31-1,也就是2147483647。所以,数据范围明显会溢出(4e14),必须使用更大的数据类型(long long)。

问题代码:

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;using ll = long long;int main() {ll n = 20230408;ll result = n * (n + 1) / 2;cout << result << endl;return 0;
}
//输出结果:204634714038436

 填空签到题实战案例2

试题B:空间(5分)

问题描述:小蓝准备用256MB的内存空间开一个数组,数组的每个元素都是32位二进制整数,如果不考虑程序占用的空间和维护内存需要的帮助空间,请问256MB的空间可以存多少个32位二进制整数?

答案提交:这是一道结果填空题,你只需要计算出结果后提交即可。本题的结果为一个整数,在提交答案时只填这个整数,填写多余的内容将无法得分。

问题分析:如果你想要把这道题做对,就必须要知道这道题所所涉及的字节转换。记得1MB等于2^20字节,或者更常见的说法是1MB=1024KB,1KB=1024B,所以1MB=1024×1024=1,048,576字节。每个数组元素是32位二进制整数。这里要注意,位(bit)和字节(Byte)的关系。一个字节等于8位,所以32位等于4个字节(因为32÷8=4)。所以每个元素占4个字节。现在的问题是,总共有多少字节的空间,每个元素占4字节,所以总元素个数就是总字节数除以每个元素占的字节数。也就是256MB的字节数除以4。这样就能得到答案了。最后,元素个数=总字节数/单个元素字节数。

问题代码:

#include<stdio.h>
#include<iostream>
#include<algorithm>
#include<vector>
using namespace std;using ll = long long;int main() {ll total_bits = 256LL * 1024 * 1024;ll nums_size = 4;ll nums = total_bits / nums_size;cout << nums << endl;return 0;
}
//输出结果:67108864

 填空签到题实战案例3

试题C:ASC(5分)

问题描述:已知大写字母的ASCLL码为65,请问大写字母L的ASLL码是多少?

答案提交:这是一道结果填空题,你只需要计算出结果后提交即可。本题的结果为一个整数,在提交答案时只填这个整数,填写多余的内容将无法得分。

问题解析:首先给大家拓展一下ASCLL码,如图所示:

 首先,ASCII码中,大写字母A到Z是连续排列的A是65,那么B应该是66,C是67,依此类推,直到Z是90。所以每个字母对应的ASCII码可以通过它在字母表中的位置来计算。

题目问的是L的ASCII码。那么我需要确定L是字母表中的第几个字母。A是第1个,B是第2个,C第3个,D第4个,E第5个,F第6个,G第7个,H第8个,I第9个,J第10个,K第11个,L就是第12个字母。所以,L的ASCII码应该是65加上11,因为A是65,后面每个字母加1。这样计算的话,65 + 11 = 76。所以答案应该是76。

 问题代码:

int main() {cout << (int)'L' << endl;return 0;
}
//输出结果:76

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词