选择题 共5道

01 02 03 04 05


编程题 共5道

06 07 08 09 10

E856 2025-信息素养算法创意实践挑战赛-初中组-复赛-真题3-练习

选择题 共5道
01

下列表达式中,值为 false 的是?

int a=5,b=3,c=7;
4分
登录后查看选项
02

下列循环中,执行次数最少的是?

// 循环1
for (int i=0; i<10; i+=2){...}
// 循环2
for (int i=0; i<10; i+=3){...}
// 循环3
for (int i=1; i<10; i*=2){...}
// 循环4
for (int i=1; i<10; i*=3){...}
4分
登录后查看选项
03

以下代码输出多少个*?

for(int i=1;i<=5;i++){
	for(int j=1;j<=i;j++){
		cout<<"*";
	}
}
4分
登录后查看选项
04

对于1到1000之间的整数n,下列代码用于判断n是否为质数。请问以下选项中,哪一个替换原循环条件i<=n-1后不能正确判断n是否为质数?

bool is_prime(int n) {
	if (n < 2) return false;
	for (int i=2; i<=n-1; ++i) {
		if (n%i == 0) return false;
	}
	return true;
}
4分
登录后查看选项
05

下列关于运算符的说法,哪个是错误的?

int a=5,b=2;
4分
登录后查看选项
编程题 共5道
06
题目描述

小明在平面上玩一个走格子的游戏。现在他要依次沿直线经过2个点,你需要计算小明走过的总路程。

提示:平面上两点(x1, y1)和(x2, y2)之间的距离可以使用勾股定理计算,sqrt((x2-x1)2+(y2-y1)2)

输入

第1行,每行包含两个整数x1和y1,表示起点的坐标。

第2行,每行包含两个整数x2和y2,表示终点的坐标。

输出

输出一个实数,表示小明走过的总路程,结果保留两位小数。

数据范围

-1000<=x1,x2,y1,y2 <= 1000

输入样例
0 0
3 4
输出样例
5.00
16分
登录后作答
07
题目描述

小明在直线上玩一个走格子的游戏。开始时,他位于坐标0处,并面向正方向。游戏提供一系列移动指令,你需要根据这些指令确定小明最终的位置。移动指令有以下几种:

  • 'W':向面朝方向移动一格。
  • 'S':向面朝方向的反方向移动一格。
  • 'A':向左转180度。(小明的朝向逆时针旋转180度)。
  • 'D':向右转180度。(小明的朝向顺时针旋转180度)

给你一个包含移动指令的字符串,请你计算小明经过n轮移动后的最终坐标。

输入

第一行包含一个整数n,表示移动的轮数。

第二行包含一个长度为n的字符串,表示移动指令序列,字符串中只包含字符‘W’,‘S’,‘A’,‘D’。

输出

输出一个整数,表示小明最终的坐标。

数据范围

1<=n<= 100

输入样例
5
WAWDS
输出样例
-1
16分
登录后作答
08
题目描述

给你一个包含n个整数的数组,这些整数分别是a1,a2,…, an。你需要将这n个整数分成两组,称为B组和C组,使得B组中所有整数的和与C组中所有整数的和的乘积是一个奇数。

输入

输入包含多组测试数据。

第一行是一个整数t,表示测试数据的组数.

接下来的每组测试数据格式如下:

第一行是一个整数n,表示数组中整数的个数。

第二行是n个整数a1,a2,… an,它们之间用空格隔开。

输出

对于每组测试数据,如果能找到符合要求的B组和C组,输出"Yes";如果找不到,输出"No"。

数据范围

1 ≤t≤500,2≤n≤100,1≤ai≤10^4

输入样例

2

3

2 1 3

4

2 8 6 4

输出样例
Yes
No
16分
登录后作答
09
题目描述

定义一个特殊的数列{an},除第一项外其余每一项都是一个分数,前两项为:a1=1,a2 = 1/2。

对于n >2,an的计算规则如下:

  • 将an-1表示为最简分数p/q
  • 则an= p/(p+q)

给定一个整数n,请计算an的值,以最简分数p/q的形式表示。

输入

一个整数n。

输出

两个整数p和q,中间用空格分隔,表示an=p/q,且要求p和q互质。

数据范围

2 ≤n≤ 10^5

输入样例
3
输出样例
1 3
16分
登录后作答
10
题目描述

小明现在有n个箱子,编号为1~n,第i个箱子中有ai个金币。小明需要按照箱子编号从小到大依次打开所有箱子,一个箱子都需要一把钥匙,现在有两种钥匙可以打开箱子:

  1. A钥匙,需要花费k个金币;
  2. B钥匙,不需要花费任何金币,但是会将每个未打开的箱子中的金币减半,包括即将打开的箱子。例如:使用一把B钥匙即将打开第i个箱子,那么第i~n个箱子的金币都会减半(例如:第i~n范围内的某个箱子原先金币数量为5,减半之后变为2)。

一把钥匙只能用于一个箱子,不能重复使用。

小明一共需要使用n把钥匙,每个钥匙打开一个箱子。初始时,小明没有金币,也没有钥匙,如果想要使用一把A钥匙打开箱子,就需要购买它。允许小明当前所拥有的金币数量为负数,例如:小明有1个金币,可以买一把价值为3个金币的A钥匙,那么小明当前拥有的金币数量是-2。

请你帮助小明计算,按照箱子编号从小到大依次打开所有箱子能获取的最大金币数量。

输入

第一行,包含两个整数n、k;

第二行,包含n个整数a1、a2、...、an。

输出

一行,包含一个整数,表示结果。

数据范围

1≤n≤2*10^5,0≤k≤10^9,0≤ai≤10^9

输入样例1

4 5

10 10 3 1

输出样例1
11
输入样例2

12 51

5 74 89 45 18 69 67 67 11 96 23 59

输出样例2
60
16分
登录后作答