试卷 第十五届蓝桥杯青少组C++编程中级组国赛真题试卷
第十五届蓝桥杯青少组C++编程中级组国赛真题试卷
选择题
第 1 题    单选题

定义 int a[5] ={1,2,3,4,5},*p=a+2;下列哪项与其他选项输出的结果不相同?

*选择题严禁使用程序验证,选择题不答或答错都不扣分

A.

cout << a[1]+2;

B.

 cout << *(p+ +);

C.

cout << p[1];

D.

cout << *(a+3);

第 2 题    单选题

(3e8)16÷(120)8的结果是(  )。

*选择题严禁使用程序验证,选择题不答或答错都不扣分

A.

(1101.1 )2

B.

(14.4)8

C.

(d.8)16

D.

(12.6)10

第 3 题    单选题

设栈s初始为空,元素的入栈顺序为 a、b、c、d、e、f,出栈顺序为c、e、f、d、b、a,则栈s的容量最少是( )。

选择题严禁使用程序验证,选择题不答或答错都不扣分

A.

3

B.

4

C.

5

D.

6

第 4 题    单选题

下列关于类的说法,正确的是(  )。

选择题严禁使用程序验证,选择题不答或答错都不扣分

A.

类的成员变量和成员函数的访问权限默认是公有的

B.

类中的静态成员函数可以访问其他非静态成员

C.

类的构造函数和析构函数都可以被重载

D.

类的私有成员变量可以被类中的成员函数访问

第 5 题    单选题

表达式 ceil(-120%47/8.0)的结果是(  )。

选择题严禁使用程序验证,选择题不答或答错都不扣分

A.

2

B.

3

C.

-3

D.

-4

编程题
第 6 题    问答题

给定一个奇数n和一个大写字母Center,生成一个n x n的字符矩 阵。字符矩阵由大写字母和'.' (注意: '.' 为英文句号)组成,并且所有大写字母组成一个n行的萎形,菱形的中心位置为大写字母Center,菱形中 的大写字母规律参照”下列三组样例。

例1, n= 3, Center= 'C',字符矩阵为:

.B.
BCB
.B.

例2, n= 5,Center = 'Z',字符矩阵为:

..X..
.XYX.
XYZYX 
.XYX. 
..X..

输入样例

9
E

输出样例

....A....
...ABA...
..ABCBA..
.ABCDCBA.
ABCDEDCBA
.ABCDCBA.
..ABCBA..
...ABA...
....A....
第 7 题    问答题

有两排石头,每排n颗,从左到右依次排开,每颗石头的颜色为黄色或者绿色。每次可以选择第一排的任意一颗石头与第二排的任意一颗石头交换位置。请计算最少需要交换多少次才能使每一列石头的颜色都相同;如果无论交换多少次都无法使每一列石头的颜色都相同,则输出-1;

此时每一列石头的颜色都相同,故至少需要交换2次。

输入格式

本题每个测试点包含多组测试数据第一行包含一个整数 T(1T300),表示数据组数接下来T组数据,每组数据第一行输入一个整数n(1n104) ,表示每排石头的数量

第二行输入 n个整数,整数只能为1或 01表示黄色,表示绿色,表示第一排从左到右每颗石头的颜色,整数之间以一个空格隔开

第三行输入 n个整数,整数只能为101表示黄色,0表示绿色,表示第二排从左到右每颗石头的颜色,整数之间以一个空格隔开。

输入样例

2
3
1 0 0
0 0 1
5
1 0 1 0 1
0 1 0 1 0

输出样例

2
-1

第 8 题    问答题

因数:也称约数,如果整数a除以整数b,商为整数且余数为0,则称a的因数。

例如:123都是 6的因数。素数:也称质数,是指在大于1的自然数中,除了1和它本身以外没有其他因数的数。例如:23是素数,46不是素数平方数:指的是可以写成某个整数的平方的数。例如:4(22)9(32)16(42)都是平方数。

莫比乌斯函数 μ(n) 是指以下的函数:

1、若n=1,则 μ(n)=1;

2、若 n的因数中有大于1的平方数,则 μ(n)=0;

3、若 n的因数中没有大于1的平方数,且n=p1,p2.....pk,则 μ(n)=(-1)k:P,P..P. 表示k(k<=1)个不同素数的乘积。

例如:

的因数有 1248,其中大于1的平方数有 4,所以 μ(8)=0;

15 的因数有 13515,没有大于1的平方数,且15=3*5,所以μ(15)=(-1)2= 1;

30 的因数有12356101530,没有大于1的平方数,且30=2*3*5,所以μ(30)=(-1)3=-1

给定两个正整数 mn,请计算 到 n之间(含 mn)所有整数的莫比乌斯函数值之和。

输入格式

一行输入两个正整数 m和n(),整数之间以一个空格隔开

输出格式

输出一个整数,表示 到 n之间(含 和 n)所有整数的莫比乌斯函数值之和

输入样例

1 10

输出

-1

第 9 题    问答题

一张棋盘由n行 列的网格矩阵组成,每个网格中最多放一颗棋子。当前棋盘上已有若干棋子。所有水平方向或竖直方向上相邻的棋子属于同一连通块。

现给定棋盘上所有棋子的位置,如果要使棋盘上出现两个及以上的棋子连通块,请问最少需要移除几颗棋子?如果无论怎么移除棋子都无法满足要求,则输出 -1(:只能通过移除棋子的操作来使棋盘上出现两个及以上的棋子连通块。

由下图可知,最少需要移除 2颗棋子才能使棋盘上出现两个及以上的棋子连通块。移除后棋盘示意图如下:

例如:n=3m=33x3的棋盘示意图如下:

故答案为 2

输入格式

本题每个测试点包含多组测试数据第一行包含一个整数T(1T50),表示数据组数接下来T组数据,每组数据第一行输入两个整数 和 m(1nm60),分别表示组成棋盘的网格矩阵的行数和列数,整数之间以一个空格隔开

接下来 行,每行输入个大写字符(字符为'G''L'),分别表示每个网格的情况,’G’表示有棋子,'L'表示无棋子,字符之间以一个空格隔开

输出格式

输出T行,每行一个整数,第i行的整数表示第i组数据中最少需要移除多少颗棋子才能使棋盘上出现两个及以上的棋子连通块;如果无论怎么移除棋子都无法满足要求,则输出 -1

输入样例

2
3 3
L G G
L G G
L L L
4 4
L L L L
L G L L
L G L L
L L L L

输出样例2

-1
第 10 题    问答题

题目描述

给定包含n个整数的数列,从中选取-段连续子数列,使其元素之和能k整除。

请找出符合要求的最长连续子数列并输出其长度以及子数列本身;如果符合要求的最长连续子数列有多个,则输出起始位置最靠后的那个子数列。如果不存在符合要求的子数列,则输出-1

例如:n=7,k=7,数列为73415149;

连续子数列{7}{7, 3, 4}{3, 4}、和{514, 9}的和都能被7;

其中最长的连续子数列有{73, 4}{5149}, 起始位置最靠后的{5, 149}

故符合要求的最长连续子数列长度为3,子数列为5 14 9

输入描述

第一行输入两个整数nk,整数之间以一个空格隔开

第二行输入n个整数(1≤整数≤)104,整数之间以一个空格隔开

输出描述

如果存在符合要求的最长连续子数列,则输出为两行第一行输出一个整数,表示最长连续子数列的长度第二行输出若干个整数,表示起始位置最靠后的最长连续子数列,整数之间以一个空格隔开

如果不存在,则输出-1

输入样例

7 7

7 3 4 1 5 14 9

输出样例

3

5 14 9

第 11 题    问答题

题目描述:某城市的道路构成了一个巨大的树形结构,每一条道路可视为该结构的一条边,而道路的交叉点或端点视为其中的一个节点。该城市共有n节点,编号分别为123.... n。为了实时记录道路情况,需要在某些节点部署监控设备,当部署好后,与该节点直接相连的所有道路均能被监控到。

为了优化资源分配,在保证整座城市的所有道路都被监控到的前提下,部署监控设备的费用要尽可能少。

给定每个节点部署监控设备的费用,请计算要使所有道路都能被监控到的最少花费是多少?

例如: n=8,表示有8个节点(即道路交叉点或端点)18号节点部署监控设备的费用分别为3312、 3022、 18、 103128。道路分布图如下:

根据观察可得,在2号和3号节点处部署监控设备,可以使所有道路都能被监控到,并且花费最少,最少花费为42

输入格式

第一行输入一个整数n (2n≤104,表示城市中节点(即道路交叉点或端点)的数量

第二行输入n个整数(1<整数≤105,分别表示1号到n号节点部署监控设备的费用

接下来n-1行,每行输入两个整数a, b,表示节点a和节点b之间有一条道路

输出格式

输出一个整数,表示要使所有道路均能被监控到的最少花费。

输入样例

8
33 12 30 22 18 10 31 28
1 2
1 3
2 4
2 5
2 6
3 7
3 8

输出样例

42
答题卡
选择题
1 2 3 4 5
编程题
6 7 8 9 10 11
题目总数:11
总分数:500
时间:90分钟