2025年9月电子学会青少年软件编程(C/C++三级)等级考试试卷
操作/编程
三级
2025
2025-10-29 18:58:55
128次
一、编程题
数山峰
某地质勘探队正在研究一条山脉的 N 个连续山峰,山峰编号为 1 到 N。每个山峰的高度状态用字符串 S 表示:# 表示高峰,. 表示低谷。
地质学家需要统计存在多少山峰编号 i(1≤i≤N - 2)满足以下特殊地形特征:山峰 i 是高峰;山峰 i+1 是低谷;山峰 i+2 是高峰。即寻找所有满足“高峰-低谷-高峰”模式的连续三个山峰组的起始位置数量。
时间限制:1000ms,内存限制:256MB
输入格式
第一行:整数 N(山峰数量);
第二行:长度为 N 的字符串 S(山峰高度状态)。
输出格式
满足条件的山峰编号 i 的个数。
输入样例#1
6 #.##.#
输出样例#1
2
输入样例#2
1 #
输出样例#2
0
输入样例#3
9 ##.#.#.##
输出样例#3
3
数据范围:
1≤N≤2×105;S 仅包含字符 # 和 . 。
【知识点】 电子学会C/C++三级
最近的数
给定一个整数 X 和一个长度为 N 的整数序列 p1、p2、……、pN。请找出不在该序列中的整数(不一定为正数)中,与 X 的差的绝对值最小的那个整数。若存在多个满足条件的整数,则输出其中最小的一个。
时间限制:1000ms,内存限制:256MB
输入格式
第一行:两个整数 X、N;
第二行:N 个整数表示 p1、p2、……、pN。
注意:当 N = 0 时,第二行为空行。
输出格式
输出满足条件的整数。
输入样例#1
6 5 4 7 10 6 5
输出样例#1
8
输入样例#2
6 5 4 7 8 6 5
输出样例#2
3
数据范围:
0≤ N < 100;1≤X、pi<100。
【知识点】 电子学会C/C++三级
扑克牌
给定一个字符串表示扑克牌的牌面顺序,两名玩家轮流抽取卡牌。每次抽取后,立即比较双方当次抽取的牌面大小,并输出比较结果。比较规则:
牌面大小顺序:3 < 4 < 5 < 6 < 7 < 8 < 9 < T < J < Q < K < A < 2,若牌面相同,则判定为平局。
时间限制:1000ms,内存限制:256MB
输入格式
一个字符串,表示扑克牌的顺序。
输出格式
一个字符串,依次表示每次比较的结果:>表示玩家1的牌更大;<表示玩家2的牌更大;= 表示平局。
输入样例#1
8632T5669A
输出样例#1
><>=<
输入样例#2
J2TT34K5
输出样例#2
<=<>
数据范围:
单张牌面字符属于集合 {3, 4, 5, 6, 7, 8, 9, T, J, Q, K, A, 2},输入字符串长度一定是偶数,且不超过 2×106。
【知识点】 电子学会C/C++三级
移动距离
森林里住着 26 只小动物,它们分别对应字母 A 到 Z。这些小动物的家沿着一条直线排列,相邻两家之间的距离为 1。它们的排列顺序记作一个字符串 S。
现在,你要按顺序去拜访 A、B、C、……、Z。每次拜访时,你需要从当前动物的家移动到目标小动物的家。起初,你直接在动物 A 所处的位置。请计算到拜访完Z为止,需要移动的距离之和。
时间限制:1000ms,内存限制:256MB
输入格式
共一行,输入一串字符串 S。
输出格式
共一行,输出一个整数,表示从 A 出发到拜访完 Z 的最小总移动距离。
输入样例#1
ABCDEFGHIJKLMNOPQRSTUVWXYZ
输出样例#1
25
输入样例#2
VENFLQURTCWOAXMGJYIZDKSBHP
输出样例#2
231
数据范围:
S长度为 26。
【知识点】 电子学会C/C++三级
