第14届蓝桥杯C++省赛(初级)真题

一、选择题(50分)

第 1 题 单选题(10分)

C++中,bool类型的变量占用字节数为 ( )。

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

A.1

B.2

C.3

D.4

第 2 题 单选题(10分)

以下关于C++结构体的说法,正确的是 ( )。

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

A.结构体中只能包含成员变量,不能包含成员函数

B.结构体不能从另一个结构体继承

C.结构体里面可以包含静态成员变量

D.结构体里面不能包含构造函数

第 3 题 单选题(10分)

设只含根结点的二又树高度为1,共有62个结点的完全二叉树的高度为 ( )。

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

A.4

B.5

C.6

D.7

第 4 题 单选题(10分)

以下关于数组的说法,不正确的是 ( ) 。

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

A.数组中所有元素的类型必须都相同

B.数组中各元素在内存中是顺序存放的

C.数组最后一个元素的索引是数组的长度

D.数组名的第一个字符可以是下划线

第 5 题 单选题(10分)

         

A.127

B.97

C.63

D.126

选择题答案:ACCCA       

二、编程题(250分)

第 1 题 编程题(20分)

时间限制: 1000MS

内存限制:65536K8

题目描述

编程实现:特殊运算符

假定有一个运算符“>>>”,它的功能如下所示:

>>>257=25

>>>182=18

>>>933 =93

给定一个正整数N (100     <N<1000) ,请计算 n-(>      >>N)的结果     </N<1000)>

例如: N=257时,

257-(>>>257)

=257-25

=232

输入描述

输入一个正整数N (100     <N<1000)< span>     </N<1000)<>

输出描述

输出一个整数,表示N -(>>>N)的结果

样例输入

257

样例输出

232

评分标准:

4分:能正确输出第一组数据:

4分:能正确输出第二组数据

4分:能正确输出第三组数据

4分:能正确输出第四组数据

4分:能正确输出第五组数据

         

第 2 题 编程题(40分)

时间限制:1000MS

内存限制: 65536KB

题目描述:

编程实现: 四叶玫瑰数

四叶玫瑰数是指一个四位数,其各位上的数字的四次方之和等于本身。给定两个正整数N和M,请将N~M (1<=N<=M<=1000000)之间 (含N和M)的四叶玫瑰数按从小到大的顺序输出。

例如: N=1234,M=2345时,有一个四叶玫瑰数1634,因为1^4 +6^4 + 3^4 + 4^4 = 1634,故输出1634。

输入描述

第一行输入两个正整数N、M (1<=N<=M<=1000000)

输出描述

输出一行,包含若干个用一个空格隔开的正整数,表示N~M之间的四叶玫瑰数按从小到大的顺序的输出结果

注意:

题目数据保证给定的N~M范围内至少有一个四叶玫瑰数

样例输入

1234 2345

样例输出

1634

评分标准:

5分:能正确输出第一组数据

5分:能正确输出第二组数据

5分:能正确输出第三组数据

5分: 能正确输出第四组数据

5分: 能正确输出第五组数据

5分:能正确输出第六组数据

5分:能正确输出第七组数据

5分:能正确输出第八组数据

         

第 3 题 编程题(50分)

时间限制:1000MS

内存限制: 65536KB

编程实现: 质因数的个数

提示信息:

因数:又称为约数,如果整数a除以整数b(b!=0) 的商正好是整数而没有余数,我们就说b是a的因数。

质数:又称为素数,一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数。2是最小的质数。

质因数:如果一个数a的因数b同时也是质数,那么b就是a的一个质因数,例如: 8=2x2x2,2就是8的质因数;12=2x2x3,2和3就是12的质因数。

题目描述:

给定两个正整数N和M (1<=N<=M<=1e7) ,统计N到M之间 (含N和M) 每个数所包含的质因数的个数,输出其中最大的个数。

例如:

当N=6,M=10,6到10之间

6的质因数是2、3,共有2个

7的质因数是7,共有1个

8的质因数是2、2、2,共有3个

9的质因数是3、3,共有2个

10的质因数是2、5,共有2个

6到10之间的数中质因数最多的是8,质因数有3个,故输出3.

输入描述

输入两个正整数N和M (1<=N<=M<=1e7),两个正整数之间用一个空格隔开

输出描述

输出一个整数,表示质因数个数中的最大值

样例输入

6 10

样例输出

3

评分标准:

5分:能正确输出第一组数据

5分:能正确输出第二组数据

5分:能正确输出第三组数据

5分:能正确输出第四组数据

5分:能正确输出第五组数据

5分:能正确输出第六组数据

5分:能正确输出第七组数据

5分: 能正确输出第八组数据

5分:能正确输出第九组数据

5分: 能正确输出第十组数据

         

第 4 题 编程题(60分)

时间限制:1000MS

内存限制: 65536KB

题目描述:

编程实现:最大的矩形纸片

一张半边参差不齐的网格纸 (网格边长均为1),有一边是完整没有破损的。现要从中剪出一片面积最大的矩形纸片。

给定网格纸中完整边的长度N (1<=N<=1000000) ,以及网格中每一列残存部分的高度(1<=高度<=10000),输出能够剪出的最大矩形纸片面积。

例如: N=6,每一列残存部分的高度依次为3、2、1、4、5、2,如下图所示:

可以发现,沿着红色框可以剪出的矩形纸片面积最大,为8,所以输出8。

输入描述

第一行输入一个正整数N(1≤N≤1000000),表示纸片完整边的长度

第二行输入N个正整数(1≤正整数≤10000),表示每列格子残存部分的高度,两个正整数之间用一个空格隔开

输出描述

输出一个正整数,表示能够剪出的最大矩形纸片面积

样例输入

6

3 2 1 4 5 2

样例输出

8

提示

评分标准:

6分:能正确输出第一组数据;

6分:能正确输出第二组数据;

6分:能正确输出第三组数据;

6分:能正确输出第四组数据;

6分:能正确输出第五组数据;

6分:能正确输出第六组数据;

6分:能正确输出第七组数据;

6分:能正确输出第八组数据;

6分:能正确输出第九组数据;

6分:能正确输出第十组数据。

         

第 5 题 编程题(80分)

时间限制:1000MS

内存限制:65536KB

题目描述:

编程实现:数字游戏

老师给出了一组数,要求小蓝对这组数进行调整,调整的规则如下:

1. 第1次,从这组数中选出一个最小的数,把它调整为和第二小的数一样大;

2. 第2次,再从这组数中选出一个最大的数,把它调整为和第二大的数一样大;

3. 重复执行1、2步骤;

4. 当这组数中所包含的不同的数少于3个时,结束调整。

现在给定了一组数,请帮小蓝编写程序计算出总共的调整次数,以及调整结束时这组数中的最小数和最大数。

例1:

当这组数是 2 2 2 2时,这组数中所包含的不同的数少于3个(只有2这一种数),无需调整,最后输出:

0 2 2

例2:

当这组数是 1 3 4 2时,调整过程如下:

1. 先将这组数中最小的数1,改成2,这组数变为:2 3 4 2

2. 再将这组数中最大的数4,改成3,这组数变为:2 3 3 2

这时,这组数中只包含2、3两个数了,满足规则4,调整结束,总共调整了2次,故最后输出:

2 2 3

输入描述

第一行输入一个正整数N(3≤N≤1000000),表示这组数中数的个数

第二行输入N个正整数(1≤正整数≤1000000),正整数之间用一个空格隔开

输出描述

输出一行,包含三个整数,分别是总的调整次数、调整结束时的最小值和最大值,整数之间用一个空格隔开

样例输入

4

1 3 4 2

样例输出

2 2 3

提示

评分标准:

8分:能正确输出第一组数据;

8分:能正确输出第二组数据;

8分:能正确输出第三组数据;

8分:能正确输出第四组数据;

8分:能正确输出第五组数据;

8分:能正确输出第六组数据;

8分:能正确输出第七组数据;

8分:能正确输出第八组数据;

8分:能正确输出第九组数据;

8分:能正确输出第十组数据。

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值