#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) }}

  • 3.1 ⁣× ⁣107 3.1\!\times\!10^{7}
  • 1.6 ⁣× ⁣107 1.\,6\!\times\!10^{7}
  • 1.25×106 1.\,25\times10^{6}
  • 3. 8 ⁣× ⁣107 3.~8\!\times\!10^{7}

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秒,分辨率为 1024768,24 1024*768,24 位真彩色的短视频,若未经压缩,所需的存储空间为{{ 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 中分别存储着 FA(16)\mathrm{FA}_{(16)}F6(16){\mathrm{F}6}_{(16)} 7F(16)\mathrm{7F_{(16)}} 他们的大小关系应该是{{ 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++程序中定义一个返回值为范围在 240240-2^{40}{\sim}2^{40} 之间的整数的函数,则该函数应声明为{{ input(23) }}类型

24.int a=126%6210\mathsf{a=}126\%6\mathsf{*}2\mathsf{-}10 执行后,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\mathsf{n} ,其余同学需要构造一个数列 a1\mathsf{a}_{1}a2{\bf a}_{2}a3{\bf a}_{3} ,..,. ax\mathbf{a}_{\mathbf{x}} ,满足以下条件:

\bullet 数列中所有数的和等于n;

\bullet 数列中的每个数 ai\mathbf{a}_{\mathrm{i}} 的表示中,每一位数字只能是0或1(例如1,101,11011符合规则,而5,12,8910不符合规则);

\bullet 在满足上述条件的情况下,尽可能减少数列的长度x,你需要输出满足条件的最小的数列长度 X\mathbf{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