万卷网> 信息素养大赛 >C++编程挑战赛 > 2025年全国青少年信息素养大赛C++编程践挑战赛_初中组_复赛_真题

2025年全国青少年信息素养大赛C++编程践挑战赛_初中组_复赛_真题
复赛 真题 初中 2025 2025-09-16 20:50:29 292

一、单选题

1.

以下说法正确的是()

double t= 1.3456*1000;
int b=t;
if (t - b < 0.4) cout << "yes" << endl;
else cout << "no" << endl;
A.

b的最终值为 1346

B.

程序会输出 yes

C.

若把第 3行的 0.4 改成 0.7,程序会输出 yes

D.

把浮点数赋值给整型变量会导致编译错误

2.

以下代码输出的是?()

int sum = 0;
for (int i= 1;i<= 10;i++)
{
   if (i % 2 == 1) sum += i;
}
cout << sum;


A.

25

B.

55

C.

35

D.

115

3.

a与b都是 int型变量,哪个选项不能表示“a与b的值均为 0”?()

A.

a==0&&b==0

B.

!a && !b

C.

!(a||b)

D.

a*b==0

4.

输入一个非空的字符串,关于程序的输出以下哪个说法是正确的?()

string s;
cin >> s;
int cnt = 0;
bool flag= 1;
for (int i= 0;i< s.size();i++)
{
   if (s[i] >= 'a' && s[i] <= 'z')
   {
       cnt++;
       flag=0;
   }
   else if (s[i] >= 'A' && s[i] <='Z')
   {
       cnt--;
       flag=0;
   }
}
if (cnt > 0 || flag) cout << "yes" << endl;
else cout << "no" << endl:


A.

只要输入的字符串不包含小写字母,程序一定输出 no

B.

输入AaBb,程序会输出yes

C.

输入1234567,程序会输出 no

D.

只要输入的字符串不包含大写字母,程序一定输出 yes

5.

输入1和2,程序会输出()

#include <iostream>
using namespace std;
int a[10];
int main()
{
   cin >> a[1] >> a[8];
   intl=2,r=7;
   while (l<r)
   {
       a[l]= a[l- 1]+ a[r+ 1];
       a[r]= a[r + 1]- a[l-1];
       l++;
       r--;
   }
   cout << a[l]+ a[r] << endl;
   return 0;
}
A.

-6

B.

2

C.

-4

D.

3

二、编程题

1.

过山车“峰”的个数问题

过山车非常刺激,乐乐同学却因为晕车体质无法和同学们一起玩。为了打发等待的时间,他在纸上大致记录了过山车轨道的图形,并估算了n个关键点的高度。如果一个点高于所有相邻的点,则称这个点为“峰”。乐乐觉得,坐过山车最刺激的时刻就是经过“峰”的时候。请写一个程序,计算过山车“峰”的个数。

输入描述

第一行:一个正整数 n;

第二行:n 个正整数a1,a2,an,ai表示第i个点的高度

输出描述

一个整数,表示“峰”的个数。

样例1

输入

6
7 6 6 3 9 1

输出

2

提示

【样例说明】

共6个点,第 1个点比相邻的第 2 个点高,第5个点比相邻的第 4个点、第6个点高,是“峰”,其余点都不是“峰”。

【数据范围】

1<=n<=100000

对于任意1<=i<=n,保证1<=ai<=1000000

2.

数对组合问题

定义G(a,b)为两个正整数a和b先后连接起来组成新的正整数。例如:

当a为202、b为4时,G(a,b)=G(202,4)= 2024。

现在给定两个整数n和m,请问有多少数对(a, b)满足G(a,b)=(a +1)*(b +1)-1,其中1<=a<=n,1<=b<=m,并且a和b均为正整数。

输入描述

输入一行,两个正整数n和m。

输出描述

输出一行,包括一个整数,表示符合题目要求的结果。

样例1

输入

1 12

输出

1

样例2

输入

56 1000

输出

168

提示

对于100%的数据:1<=n,m<=2*109

3.

游乐园座位分组问题

同学们想看游乐园的水上表演。观众席座位分成k排,每排有m个座位。同学人数为 n,为了好安排座位,老师希望将n名同学分成不超过k组,每组人数相同且不超过 m 人。请写一个程序,帮助老师判断能不能达成满足条件的分组,能则输出"yes",否则输出"no"。

本题有多组数据。

输入描述

第一行:一个正整数 T,代表有T组数据。

第2~T+1行:每行三个用空格隔开的正整数 n、k、m,表示同学人数、座位排数与每排座位数。

输出描述

T行,每行一个字符串"yes"或"no”

样例1

输入

2
20 5 10
37 4 20

输出

yes
no

提示

【样例说明】

第1组数据:20名同学分为4组,每组5人(分法不止一种)。

第 2 组数据:没有符合条件的分法。

【数据范围】

1<=T<= 1000

1<=n,m<= 10000

1<=k<=100

4.

游乐园抽奖问题

题目描述:在游乐园纪念品商店消费到一定数额可抽奖。店员在 0 ~ 9 范围内随机选择两个数字 a 和 b(a <= b),所有不小于 a 且不大于 b 的数字作为“彩蛋数字”。抽奖者在奖券上写一个 10 位的正整数,若 10 个数位上“彩蛋数字”不少于 6 个就算中奖。店员收集了 n 张奖券,编号为 1 ~ n,要求编写程序依次输出所有中奖奖券的编号,最后输出中奖奖券的张数。

输入描述:

第 1 行:三个用空格隔开的正整数 n、a、b,表示奖券张数、店员选择的两个数字。

第 2 ~ n + 1 行:编号为 1 ~ n 的奖券上的数,每行一个数,保证都是 10 位的正整数,无前导 0。

输出描述:

若干行,从小到大输出中奖奖券的编号,每行一个编号。最后一行输出中奖奖券的张数。

样例1

输入:

4 0 2

1234567890

9876543210

2222222222

1010109823

输出:

3

4

2

提示:

样例说明:

彩蛋数字是 0 ~ 2,4 张奖券包含的彩蛋数字个数依次为 3、3、10、7,编号为 3、4 的奖券中奖,中奖奖券张数为 2。

数据范围:

1 <= n <= 100000,0 <= a <= b <= 9。

5.

游乐园门票问题

题目描述

学校组织全年级同学去游乐园春游。游乐园门票分为学生票和成人票,学生票a元一张,成人票b元一张。共有x名同学参加春游,用于买票的经费为y元,请计算为x名同学买票后,剩下的钱最多能为多少位教师买票。

输入描述

四个整数 a,b,x,y,分别代表学生票价格、成人票价格、同学人数、经费,保证经费足够购买x张学生票。

输出描述

一个整数,剩下的钱最多能为多少位教师买票!

样例1

输入

20 40 100 2201

输出

5

提示

样例说明:

买 100 张学生票花费 20 *100=2000元,剩余 201元最多购买 201/40=5 张

数据范围:

1 <= a, b, x <= 100,a * x <= y <= 100000。

公众号
客服 反馈
顶部