选择题 共5道

01 02 03 04 05


编程题 共6道

06 07 08 09 10 11

642 | 第12届蓝桥杯C++青少组中/高级组国赛2021年5月真题-练习
选择题 共5道
01

在C++中当一个函数没有返回值时,函数的类型应定义为(  )。

2分
登录后查看选项
02

设两个bool类型的变量x和y,以下哪个选项可以使表达式“x&&y”为真(  )。

2分
登录后查看选项
03

已知“int a[10]={1,2,3,4,5,6,7,8,9,10};   int *p=&a[3],b;   b=p[5];”,则b的结果为 (   ) 。

2分
登录后查看选项
04

下列关于数组维数的描述中,错误的是(  )。

2分
登录后查看选项
05

以下选项中对接口描述正确的是(  )。

2分
登录后查看选项
编程题 共6道
06

加密

题目描述:

给定一个只含英文字母(英文字母含大小写字母)的字符串作为原始密码,按照规则将其加密,并输出加密后的密码。

加密规则:原始密码每一位上的字母,使用其在字母表中其后的第三个字母替代原来的字母。

如:原始密码为abC,a的字母表中其后三个字母为d,b后三个字母为e,C后三个字母为F,故加密后的密码为deF。

注:

1.当原始密码当前位的字母为小写,加密后的密码为字母表中其后的第三个小写字母;

当原始密码当前位的字母为大写,加密后的密码为字母表中其后的第三个大写字母;

2.原始密码中的英文字母不能为x(X),y(Y),z(Z)。

输入描述:

输入N个英文字母(包含大小写字母,但不包含大小写的‘x’,‘y’,‘z’,2<N<101)作为原始密码

输出描述:

按照加密规则输出一个字符串,作为加密后的密码


样例输入:

abC

样例输出:

deF
2分
登录后作答
07

分解质因数

提示信息:

质数:是一个大于1的自然数,且除了1和它本身外,不能被其他自然数整除的数。最小的质数是2,1不是质数。

合数:一个正整数,如果除1和它本身以外,还能被其他正整数整除,叫合数。如6是合数,除了1和6以外,还能被2和3整除。 

分解质因数:每个合数都可以写成几个质数相乘的形式,其中每个质数都是这个合数的因数,把一个合数用质因数相乘的形式表示出来,叫做分解质因数(分解质因数只针对合数)。如合数12=2×2×3 。

分解质因数的方法是先用这个合数的最小质因数去除这个合数,结果若是一个质数就不再除下去;若是一个合数就继续按原来的方法从最小质因数除起,直至最后除得的结果是一个质数 。

例如:

合数18分解质因数,首先用最小质因数2去除,除后结果为合数9,继续用最小质因数3去除,除后结果为质数3,就不再除下去。所以18的质因数为2、3、3,故质因数的个数为3;

题目描述:

给定一个合数N,将N分解质因数后,输出其质因数个数。

输入描述:

输入一个合数N         

输出描述:

将N分解质因数后,输出质因数个数


样例输入:

18

样例输出:

3
2分
登录后作答
08

开关/门

编程实现:

推理

某校有N间教室,且每间教室有2扇门,一共有2 ×N 扇门,每扇门都有编号,分别从1到 2×N 。

开始时,所有门为关闭状态。现在按照以下规则对门进行处理:

第一次,将所有门打开。

第二次,将所有编号为2的倍数的门作相反的处理(原来是打开的就关闭,原来是关闭的就打开)。

第三次,将所有编号为3的倍数的门作相反的处理(原来是打开的就关闭,原来是关闭的就打开)。

……

第N次,将所有编号为N的倍数的门作相反的处理(原来是打开的就关闭,原来是关闭的就打开)。

问第N次处理后,有多少扇门为打开状态?

【输入格式】

输入一个正整数 N (2 ≤ N ≤100) ,代表有 N间教室。

【输出格式】

按照规则对门进行 N次处理之后,计算有多少扇门为打开状态并输出。


样例输入

2

样例输出

2

【样例解释】

N=2 ,每间教室有 2扇门,一共有 4扇门,门编号分别为 1 , 2 , 3 , 4 。

初始状态:四扇门都为关闭状态。

第一次,将四扇门全部打开。

第二次,将编号为 2 的倍数的门作相反的处理,即将 2 号门和 4 号门关闭。

经过两次处理之后,共有 2 扇门为打开状态。

2分
登录后作答
09

最大值

题目描述:

某校庆祝元旦需要采购一些瓜子在联欢会上食用,学校给了固定资金n元让小蓝去超市采购瓜子,且要求采购最多的瓜子。到了超市发现有m种瓜子,且都是成袋售卖。小蓝这下为难了,不知道如何才能用固定资金采购最多的瓜子。

在给出每种瓜子每袋的价格、每袋的重量,请你帮助小蓝计算下用n元最多能采购多少瓜子。

例如:

给定的资金n为80元,瓜子种类m为2种:

第一种瓜子每袋18元,每袋10千克;

第二种瓜子每袋30元,每袋20千克;

用80元资金最多可以买50千克瓜子(买2袋第二种,1袋第一种的,总重量50千克,使用资金78元)。

输入描述:

第一行输入两个正整数n(1 ≤n ≤1000)和m(1 ≤m ≤ 30),用一个空格隔开,n代表买瓜子的资金,m代表超市瓜子种类数

接下来输入m行,每行输入两个正整数p(1 < p < 101)和k(1 < k < 101)且用一个空格隔开,p代表每袋瓜子的价格,k代表每袋瓜子的重量

输出描述:

输出一个正整数,代表n元钱最多能采购到的瓜子重量(千克)


样例输入:

80 2
18 10
30 20

样例输出:

50
2分
登录后作答
10

投球游戏

题目描述:

有一个投球游戏,玩法是将球投到N个篮筐里。具体玩法如下:

投篮顺序必须同时符合以下三个规则:

例如给出的3个篮筐距离和顺序为130 200 55。

规则一:

 第一次投篮可以投任意一个篮筐;

规则二:

从第二次投篮开始,每一次投篮只能投顺序在上一次篮筐的后面的篮筐;

如果第一次投的200篮筐,那么接下来就不能投130的篮筐,可以投55的篮筐。

规则三:

从第二次投篮开始,每一次投篮只能投比上一次投篮距离更近的篮筐。

如果第一次投的130的篮筐,那么接下来不能投200的篮筐,只能投55的篮筐。

现给出N的数值,和N个篮筐的距离及顺序,假定每次投篮都能投进,请你编写程序计算按照投球规则最多能投进几个球。

如:N=3,3个篮筐的距离及顺序为:130 200 55  

按照三条规则,一共有以下三种投球方案:

1)如果第一次投130,那么投130,55,最多可以投进2球;

2)如果第一次投200,那么投200,55,最多可以投进2球;

3)如果第一次投55,那么投55,最多可以投进1球。

则按照规则最多可投进2球。

输入描述:

第一行输入一个正整数N(2<N<20)表示篮筐的个数

第二行分别输入N个正整数(10<正整数<1000)并以一个空格隔开,分别表示篮筐距离和N个篮筐顺序,每个篮筐的距离都不相同

输出描述:

输出一个整数,表示最多能投进球的个数


样例输入:

3
130 200 55

样例输出:

2
2分
登录后作答
11

采摘园

题目描述:

有一个矩形的采摘园,采摘园里有N排M列果树,其中有梨树和苹果树,一天小青要去采摘园采摘果子,到了采摘园,看到提示牌写的:

1.只可以采摘苹果,梨树暂不能采摘(未成熟);

2.采摘的起点是从采摘园中指定的某一颗苹果树;

3.从起点开始可以向上、向下、向左、向右移动(只能在采摘园中移动),且只能在苹果树下移动,不能越过梨树。

编写一个程序,计算小青从起点出发最多可到达多少棵苹果下采摘(包括起点苹果树)。

例如:矩形的采摘园种有3排4列的果树,用数字“1”表示苹果树,用数字“2”表示梨树,用数字“6”表示起点(起点也是苹果树),故从起点出发最多可到达7棵苹果下采摘(包含起点苹果树)。

如图所示:

输入描述:

第一行输入两个以一个空格隔开的正整数 N(2<N<51),M(2<M<51),分别表示N排M列的果树;

接下来的N行每行输入M个数字并以一个空格隔开,数字为“1”、“2”、“6”,分别表示苹果树,梨树及起点(起点也是苹果树)

输出描述:

输出一个整数,表示小青在N*M的采摘园中从起点出发最多可到达几棵苹果下采摘(包含起点苹果树)


样例输入:

3 4
2 1 2 1
1 6 1 2
1 1 1 2

样例输出:

7
2分
登录后作答