蓝桥杯java第五届真题_第11届蓝桥杯青少组C++最后一轮选拔赛真题回忆版及参考答案...

本文提供了第11届蓝桥杯青少组C++选拔赛的部分真题及答案,包括选择题和编程题。选择题涉及密码安全性、日期计算、素数判断、IP地址格式检查等;编程题涵盖条件判断、反弹高度计算、数值统计与回文数检测等,是信息学奥赛训练的好材料。
摘要由CSDN通过智能技术生成

一、选择题(共150分,每题30分)

1 下面哪个密码最安全

A. 111111 B. 123456 C. qwerty D. Z2a8Q1

答案:D不解释。

2.如果今天是星期六,再过60天是星期几

A. 星期三 B. 星期四 C. 星期五 D. 星期六

答案:A。

分析:可利用周期。(6 + 60 % 7) % 7 = 3

3.90到100之间有几个素数

A. 0 B. 1 C. 2 D. 3

答案:B

分析:只有97一个数

4.下列几个32位IP地址中,书写错误的是

A. 162.105.128.2 B. 192.168.0.1 C. 256.256.129.1 D. 10.0.0.1

答案:C

分析:32位IP分成四个字节,每个字节是8位。8位二进制的范围是00000000~11111111,化成十进制就是0~255,超过此范围即为错。

5.下列4种不同进制表示的数中,数值最小的是

A. 八进制52 B. 十进制数44 C. 十六进制2F D. 二进制101000

答案:D

分析:52[8] = 42[10], 2F[16]=47[10], 101000[2]=40[2]

二、编程题(共250分,前三题每题50分,最后一题100分)

1.输入一个正整数N,如果N大于等于90输出A,如果N大于等于80且小于90输出B,如果N大于等于70且小于90输出C,如果N小于70输出D。

输入

70

输出

C

时间限制:1000ms

内存限制:65536KB

评分标准:

10分:能正确判断一组数据

20分:能正确判断两组数据

20分:能正确判断三组及三组以上数据

参考代码:

#include

using namespace std;

int main()

{

int n;

cin >> n;

if(n >= 90)

{

cout << 'A';

}

else if(n >= 80 && n < 90)

{

cout << 'B';

}

else if(n >= 70 && n < 80)

{

cout << 'C';

}

else if(n < 70)

{

cout << 'D';

}

return 0;

}

2.一个小球从n米高度自由落下,每次落地后反跳回原高度的一半,再落下。求第10次反弹多高,及初始落下到第10次反弹到最高点时(不含第十次落下距离)一共经历了多少米?

输入描述:输入一个正整数n

输出描述:(1)第10次反弹高度 (2)一共经历了多少米(不含第十次落下距离)

输入

1024

输出

1

3069

时间限制:1000ms

内存限制:65536KB

评分标准:

10分:能正确判断一组数据

20分:能正确判断两组数据

20分:能正确判断三组及三组以上数据

参考代码:

#include

using namespace std;

int main()

{

double n;

cin >> n;

double h = n;

for(int i = 1; i <= 10; i++)

{

n /= 2;

h += 2 * n;

}

h -= n;//减掉第十次从顶点落到地面的距离

cout << n << endl << h;

return 0;

}

3.输入10个正整数,以空格分隔,输出其中的最大值、最小值以及平均值,以逗号隔开

输入

1 2 3 4 5 6 7 8 9 10

输出

10,1,5.5

时间限制:1000ms

内存限制:65536ms

评分标准:

10分:能正确判断一组数据

20分:能正确判断两组数据

20分:能正确判断三组及三组以上数据

参考代码:

#include

#include

using namespace std;

int main()

{

int a;

int maxN = INT_MIN;

int minN = INT_MAX;

double sum = 0;

for(int i = 1; i <= 10; i++)

{

cin >> a;

if(a > maxN)

{

maxN = a;

}

if(a < minN)

{

minN = a;

}

sum += a;

}

cout << maxN << ',' << minN << ',' << sum / 10;

return 0;

}

4.输入n,输出1~n(包含1和n)之间所有的回文数,并统计回文数的个数。个数之前要加星号。

输入:

100

输出:

1

2

3

4

5

6

7

8

9

11

22

33

44

55

66

77

88

99

*18

时间限制:1000ms

内存限制:65536KB

评分标准:

20分:能正确输出一组回文数及个数

20分:能正确输出两组回文数及个数

20分:能正确输出三组回文数及个数

20分:能正确输出四组回文数及个数

20分:能正确输出五组回文数及个数

参考代码:

#include

using namespace std;

int main()

{

int n;

cin >> n;

int cnt = 0;

for(int i = 1; i <= n; i++)

{

int tmp = i;

int num = 0; //逆序的数

while(tmp)

{

num = num * 10 + tmp % 10;

tmp /= 10;

}

if(i == num)

{

cout << i << endl;

cnt++;

}

}

cout << '*' << cnt;

return 0;

}

了解信息学奥赛请加微信307591841(QQ同号)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值