#5379. 2024年厦门市小学生计算机 C++语言竞赛(初赛)试卷
2024年厦门市小学生计算机 C++语言竞赛(初赛)试卷
2024年厦门市小学生计算机 C++语言竞赛(初赛)试卷
参赛须知
1、本竞赛用时为90分钟。
2、本卷共四大题,45小题,满分100分。
一.单项选择题 1-10每题1分, 11-20 每题2分,共30分)
1.北京时间2024年10月8日下午5点45分许,2024年诺贝尔物理学奖揭晓。( )成为了历史上第一位诺贝尔物理学奖和图灵奖双料得主。{{ select(1) }}
- 赫伯特·亚历山大·西蒙
- 杰弗里·辛顿
- 约翰·霍普菲尔德
- 姚期智
2.中国科学院、国家航天局、中国载人航天工程办公室于2024年10月联合发布《国家空间科学中长期发展规划(2024一2050年)》,规划明确了我国空间科学发展目标,提出我国拟突破的五大科学主题和17个优先发展方向,下列选项中不属于“五大科学主题”的是{{ select(2) }}
- 极端宇宙
- 时空穿越
- 宜居行星
- 太空格物
3.量子通信是一种基于量子力学原理进行信息传输的技术,主要特点是它利用量子比特(qubits)进行数据编码和传输,具有极高的安全性和保密性。在量子通信领域,中国的突破性成就包括以下哪项?{{ select(3) }}
- 世界首个量子计算机
- 量子计算机在全球范围内开始商业化
- 开发出世界首个量子激光武器
- 成功实现量子卫星“墨子号”与地面站的量子通信
4.小唐于公历1888年2月29日出生,唐家人有一个习俗:在孩子们出生以后的每年公历生日当天给他们过生日。请问:小唐在公历1910年之前过了几次生日?{{ select(4) }}
- 22
- 21
- 5
- 4
5.下面哪个选项的图形可以实现一笔画出?
{{ select(5) }}
- A
- B
- C
- D
6.互联网是将全球计算机网络连接起来的技术,它的诞生和发展改变了人们的生活、工作和娱乐方式,催生了新兴产业和社会现象。互联网起源可以追溯到20世纪60年代的{{ select(6) }}
- 阿帕网
- 万维网
- IPv4
- IPv6
7.通讯不发达的年代,常利用烽火台传递有多少城镇正在求援。每座烽火台都有他所代表的值,从右到左,分别代表1,2,4,8。若烽火台点燃,则用1标记;未点燃,则用0标记。现烽火台点燃情况如下图所示,则共有( )城镇需要救援。
{{ select(7) }}
- 8
- 9
- 10
- 11
8.ASCII码是美国国家交换标准代码,可表示128个不同字符,计算机内至少需要()位二进制编码来表示。{{ select(8) }}
- 6
- 7
- 8
- 9
9.与二进制小数0.01对应的十六进制数是{{ select(9) }}
- 0.1
- 0.2
- 0.4
- 0.8
10.下列文件扩展名中个,不属于图像的是{{ select(10) }}
- mpeg
- jpeg
- bmp
- png
11.在 C++中,int 类型变量占用4字节。若数组大小限制为128MB,下列选项中可以安全定义的int数组最大长度是多少?{{ select(11) }}
12.字符串中任意个连续的字符组成的子序列称为该串的子串。当字符串长度为5时,共有( )个子串。{{ select(12) }}
- 32
- 10
- 16
- 15
13.100以内和100互质的正整数个数有( )个{{ select(13) }}
- 20
- 40
- 60
- 80
14.在存储器中,访问速度最快的是{{ select(14) }}
- 外存
- 高速缓存
- 内存
- 寄存器
15.若x=1,y=2,z=4,则条件表达式 (x%2==1) ? x>z : y<z ? 1 : 0的值是{{ select(15) }}
- 0
- 1
- 2
- 4
16.下列关键字中,( )是循环关键字。{{ select(16) }}
- include
- if
- while
- double
17.一部30帧每秒,共10秒,分辨率为 位真彩色的短视频,若未经压缩,所需的存储空间为{{ select(17) }}
- 22.5MB
- 675MB
- 768MB
- 619200MB
18.A =1 , B=0 ,下列式子恒为1的是{{ select(18) }}
- (-A V B) ^(A V B) V B
- (-A V B) V (A V -B) ^B
- A V (-A V B) ^B
- B^ (A V -B) ^-B
19.下列选项中,正确的IP地址格式是{{ select(19) }}
- 202.202.1
- 202.2.2.2.2
- 202.118.118.1
- 202.258.14.13
20.计算机中,有符号整数常用补码表示,变量x,y,z 中分别存储着 , 他们的大小关系应该是{{ select(20) }}
- x>y>z
- x>z>y
- z>y>x
- z>x>y
二.填空题 (21-30 每题3分,共30分)
21.八进制数2024转化为十进制数为:{{ input(21) }}
22.C++ 程序中有已知整型变量a 的值为0,那么执行if ( a = 0 );语句时if 语句内条件真假情况为{{ input(22) }}。(填写true或false)
23.在C++程序中定义一个返回值为范围在 之间的整数的函数,则该函数应声明为{{ input(23) }}类型
24.int 执行后,a的值为{{ input(24) }}。
25.有以下程序
int a=2;
switch(a){
case 1:
printf("1");
case 2:
printf("2");
case 3:
printf("3");
程序执行后的输出结果为{{ input(25) }}。
26,:有以下程序:
int i = 0, sum = 0;
do{
i++;
sum+=i;
}while(i<=100);
程序执行后sum的最终值为{{ input(26) }}。
27.掷两颗均匀的点数为1到6的两颗般子,第一颗般子点数大于第二颗骰子点数的情况共有{{ input(27) }}种。
28.已知子序列是从给定序列中通过删除一些元素(可以不删)后所得到的序列。这些元素的顺序要和原序列中元素的相对顺序保持一致。最长上升子序列是在一个序列中,找出一个子序列,这个子序列中的元素是严格递增的,并且在所有满足递增条件的子序列中它的长度是最长的。对于序列3,1,5,7,9,8,6,2,4来说,最长上升子序列的长度为{{ input(28) }}。
29.某班级有40个同学,从其中任意抽选4个人,班长、学习委员、体育委员至少有一个人在内的情况有{{ input(29) }}种。
30.6个人围着一个圆形的桌子坐在一起,有{{ input(30) }}种坐法。
三. 阅读程序填写结果( 31-40 每题3 分,共30分)
程序一:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int x,y,k;
scanf("%d%d%d",&x,&y,&k);
for(int i=0;i<k&&x!=y;++i){
if(x>y) x-=y;
else y-=x;
}
printf("%d %d\n",x,y);
return 0;
}
题号 | 第1题 | 第2题 | 第3题 |
---|---|---|---|
输入数据 | 12 15 4 | 10 1000 90 | 2431 65 100 |
输出数据 | {{ input(31) }} | {{ input(32) }} | {{ input(33) }} |
程序二:
#include<bits/stdc++.h>
using namespace std;
const int maxn=100+7;
int p1[maxn],p2[maxn];
int main()
{
int n;sacnf("%d",&n);
for(int i=1;i<=n;++i){
scanf("%d",&p1[i]);
}
for(int i=1;i<=n;++i){
p2[i]=p1[p1[i]];
}
for(int i=1;i<=n;++i){
cout<<p2[i]<<" ";
}
cout<<"\n";
return 0;
}
题号 | 第1题 | 第2题 | 第3题 | 第4题 |
---|---|---|---|---|
输入数据 | 3 1 2 3 | 3 3 2 1 | 5 3 1 2 5 4 | 5 2 3 5 1 4 |
输出数据 | {{ input(34) }} | {{ input(35) }} | {{ input(36) }} | {{ input(37) }} |
程序三:
#include<bits/stdc++.h>
using namespace std;
int f(int n,int k){
if(n==1) return 0;
else return (f(n-1,k)+k)%n;
}
int main(){
int n,k;
scanf("%d%d",&n,&k);
int s=f(n,k);
printf("%d\n",s+1);
return 0;
}
题号 | 第1题 | 第2题 | 第3题 |
---|---|---|---|
输入数据 | 5 1 | 3 3 | 10 2 |
输出数据 | {{ input(38) }} | {{ input(39) }} | {{ input(40) }} |
四.完善程序(选择正确的选项填充程序空白部分, 41-45 每题2分,共10分)
问题描述
Oier设计了一种有趣的数字游戏:
一位同学随机给出一个数 ,其余同学需要构造一个数列 , , ,..,. ,满足以下条件:
数列中所有数的和等于n;
数列中的每个数 的表示中,每一位数字只能是0或1(例如1,101,11011符合规则,而5,12,8910不符合规则);
在满足上述条件的情况下,尽可能减少数列的长度x,你需要输出满足条件的最小的数列长度 以及这个数列。
样例序号 | 样例输入 | 样例输出 |
---|---|---|
1 | 42 | 4 11 11 10 10 |
2 | 356 | 6 111 111 111 11 11 1 |
#include<bits/stdc++.h>
using namespace std;
int ans[100001];
int main(){
int n,t=0,num_loc=0;
cin>>n;
while(n!=0)
{
ans[++t]= ① ;
if(ans[t]>num_loc)
num_loc= ② ;
n/=10;
}
cout<< ③ <<endl;
for(int i=1;i<=num_loc;i++)
{
int k=0;
for(int j= ④ ;j>=1;j--)
{
if(ans[j]!=0)
{
k= ⑤ ;
cout<<1;
ans[j]--;
}
else if(k)
cout<<0;
}
cout<<" ";
}
return 0;
}
41.第①空应填写?{{ select(41) }}
- n % 10
- n % 2
- n - 10
- n - 2
42.第②空应填写?{{ select(42) }}
- t
- n
- ans[t]
- ans [n]
43 第③空应填写?{{ select(43) }}
- ans [n]
- num loc
- t
- n
44.第④空应填写?{{ select(44) }}
- t
- n
- t / 2
- n / 2
45.第⑤空应填写?{{ select(45) }}
- n
- k
- 0
- 1