十五届蓝桥青少stema10月选拔赛

一、选择题

1、十进制数189转换成二进制是 ()

A、10111101

B、11010011

C、11110000

D、11001100

2、定义一个整型变量int a,使用指针存储a的地址,下列选项正确的是()

A、int &p = &a

B、int **p = &a

C、int *p = a

D、int *p = &a

3、定义一个字符串数组: char a[1024] =“Welcome to China!":要计算上述字符串的长度,应该使用下列哪个函数()

A、 strcat()

B、 stremp()

C、 strlen()

D、 size()

4、己定义变量int a = 10, b = 0:

执行表达式((a = 5) || (b = 1)之后,a和b的值分别是( )

A、10 0

B、5  1

C、5  0

D、10 1

5、运行下面程序,输出的结果是()

int func(int x, int y)

{

      if(x ==1 && y == 1)return 1;

      if(x < 0)return y;

      if(y < 0)return x;

      return (func(x,y-2) + func(x-2,y));

}

int main()

{

      cout<<func(3,3);

      return 0;

}

A、7    B、8    C、9   D、10

二、编程题

第一题

编程实现:与3有关的数

提示信息:

如果一个正整数的个位可以被3整除,则这个正整数与3有关

例如:

10的个位是0,0能被3整除,故10与3有关;

11的个位是1,1不能被3整除,故11与3无关

19的个位是9,9能被3整除,故19与3有关

题目描述:

给定一个正整数N(1<=Nm=10000),从小到大依次输出1到N之间所有与3有关的数

输入描述:输入一个正整数 (1<=N<=10000)

输出描述:输出一行,表示1到N之间(含1和N)所有与3有关的正整数,从小到大排列,正整数之间以一个空格隔开

样例输入:10

样例输出:3 6 9 10

第二题

编程实现:跳水比赛

题目描述:

某校有N名选手参加跳水比赛。每名选手比赛后,由6名裁判评分,选手的最终得分为6名裁判评分的总和。

比赛结束之后,请计算出最高分与最低分相差多少

例如:N=4,表示有4名选手

裁判对于这4名选手的打分是:

5 9 6 8 7 6

7 7 7 8 6 7

5 7 6 7 5 7

7 7 7 5 9 8

4名选手的最终分数分别为: 41,42,37,43,其中最高分是43分,最低分是37分,那么最高分和最低分相差了6分,故输出6。

输入描述:

第一行输入一个正整数N(2<=N<=100),表示参赛选手的人数

接下来输入N行,每行6个整数(0<=整数<=10),表示每个裁判的评分,整数之间以一个空格隔开

输出描述:

输出一个整数,表示最高分与最低分的差值

样例输入:

4

5 9 6 8 7 6

7 7 7 8 6 7

5 7 6 7 5 7

7 7 7 5 9 8

样例输出:

6

第三题

编程实现:密文解密

题目描述:

有一段密文,加密规律如下:

原文中所有的字符在字母表中的位置被左移了若干位(如:a左移一位后为z,A左移一位后为Z,f左移三位后为c......)

例如:密文为Ayz,已知加密时原文中的字母被左移了3位,解密后,原文是Dbc。

请根据这个规律,对密文进行解密。

输入描述

共两行

第一行输入一个只包含大小写字母的字符串(长度小于100),表示密文

第二行输入一个正整数n(1<=n<=100000),表示原文中的字母在字母表中的位置被左移的位数

输出描述

输出一个字符串,表示解密后的原文

样例输入:

Ayz

3

样例输出:

Dbc

第四题

编程实现:翻转游戏币

题目描述

桌面上有n枚游戏币,均为反面朝上,编号依次为1到n。有n个人(游戏币的数量与人的数量相等),首先第1个人将所有游戏币翻转,然后第2个人将所有编号是2的倍数的游戏币翻转,接下来第3个人将所有编号是3的倍数的游戏币翻转......以此类推,当最后一个人完成操作后,还有多少枚游戏币正面朝上?

例如:n = 4;

最初4枚游戏币的状态为: 反反反反;

经过第1个人翻转后,游戏币的状态为:正正正正;

经过第2个人翻转后,游戏币的状态为:正反正反;

经过第3个人翻转后,游戏币的状态为:正反反反

经过第4个人翻转后,游戏币的状态为:正反反正:

最后,还有两枚游戏币正面朝上,故答案为2。

输入描述

输入一个正整数n(3sns10:),表示游戏币数量及人的数量

输出描述

输出一个整数,表示最终游戏币正面朝上的数量

样例输入:4

样例输出:2

第五题

编程实现:分发糖果

题目描述:

n个学生站成一排,已知每名学生的考试成绩,老师要根据成绩按以下规则分发糖果

1、每个学生至少得到一个糖果:

2、相邻两个学生中成绩高的会获得更多的糖果

3、相邻两个学生成绩即使相同,获得的糖果数量也可以不同。

请计算出老师最少需要准备多少颗糖果?

例如:有3个学生,他们的考试成绩分别是70,50,80,可以给第一个学生2颗糖果,给第二个学生1颗糖果给第三个学生2颗糖果,所以最少需要准备5颗糖果。

输入描述

共两行

第一行输入一个正整数n(1<=n<=20000),表示学生人数

第二行输入n个整数(0<=整数<=100),表示每个学生的考试成绩,整数之间以一个空格隔开

输出描述:

输出一个整数,表示最少需要准备的糖果数量

样例输入: 70 50 80

样例输出: 5

第六题

编程实现:区间最小值

题目描述:

给定n个整数,从1到n顺序编号,接下来进行m次查询,第i次查询第ai个数到第bi个数(包含ai和bi)之间的最小值并输出。

例如:n=8,8个正整数依次为:40 20 10 30 70 50 80 60

m = 3,3次查询分别为:

a1= 3,bi = 7

a2= 1,b2 = 2

a3= 5,b3 = 8

第一次查询:第3个数(10)到第7个数(80)之间最小值是10:

第二次查询:第1个数(40)到第2个数(20)之间最小值是20:

第三次查询:第5个数(70)到第8个数(60)之间最小值是50;

故输出

10

20

50

输入描述

第一行输入两个整数n和m(1<=n,m<=10^5),分别表示整数的数量及查询次数

第二行输入n个整数(0<=整数<=10^5)

接下来m行,每行输入2个整数ai和bi(1<=ai<=bi<=n),分别表示查询的起始位置和终止位置

输出描述

输出共m行,每行输出一个整数,分别表示每次查询得到的第ai个数到第bi个数之间(包含ai和bi)的最小值

样例输入:

8 3

40 20 10 30 70 50 80 60

3 7

1 2

5 8

样例输出:

10

20

50

  • 50
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值