CCF GESP 2026年6月认证 C++ 3级

编程题
共 2 道 每题 25 分 共计 50 分
第 1 题
加密
时间限制:1s 内存限制:512MB

题目描述

小杨同学有一串数字,想把它们变成另一串数字,这个过程叫做加密

他有一本密码本,密码本告诉你:每个数字应该变成哪个数字。

数字一共有 10 个:0、1、2、3、4、5、6、7、8、9。

密码本会依次告诉你:

0 要变成什么

1 要变成什么

2 要变成什么

……

9 要变成什么

请你按照密码本,把原来的每个数字都换成新的数字,然后输出。

输入格式

输入共有 3 行。

第一行:一个整数,表示有多少个数字需要加密;

第二行:这些需要加密的数字;

第三行:密码本,一共 10 个数字。

这 10 个数字的意思是:

第 1 个数字:表示 0 加密后变成什么;

第 2 个数字:表示 1 加密后变成什么;

第 3 个数字:表示 2 加密后变成什么;

……

第 10 个数字:表示 9 加密后变成什么。

输出格式

输出加密后的数字。

也就是:把输入第二行里的每个数字,都按照输入第三行的密码本换掉后输出。

样例说明

样例 1

输入:
7
0 2 0 3 4 1 9
9 0 1 2 3 4 5 6 7 8
输出:
9 1 9 2 3 0 8
样例解释:

第二行要加密的数字是:

0 2 0 3 4 1 9

第三行密码本是:

9 0 1 2 3 4 5 6 7 8

它的意思是:

  • 0 变成 9
  • 1 变成 0
  • 2 变成 1
  • 3 变成 2
  • 4 变成 3
  • 5 变成 4
  • 6 变成 5
  • 7 变成 6
  • 8 变成 7
  • 9 变成 8

所以:

  • 0 变成 9
  • 2 变成 1
  • 0 变成 9
  • 3 变成 2
  • 4 变成 3
  • 1 变成 0
  • 9 变成 8

最后得到:

9 1 9 2 3 0 8

数据范围

需要加密的数字个数不超过 20000 个,且均为 0 到 9;密码本中的数字不重复,且均为 0 到 9。

第 2 题
字符转换
时间限制:1s 内存限制:512MB

题目描述

小杨同学有一串字符,里面可能有:

  • 大写字母,比如 A、B、C
  • 小写字母,比如 a、b、c
  • 数字,比如 0、1、2

现在小杨同学想把这串字符变一变,规则如下:

  1. 如果是大写字母,就变成对应的小写字母;
  2. 如果是小写字母,就变成对应的大写字母;
  3. 如果是数字,就变成 *

请你按照这个规则,帮小杨把整串字符转换好。

输入格式

输入一共有 2 行。

第一行:一个整数,表示这串字符一共有多少个字符。

第二行:一串连续的字符,中间没有空格。

输出格式

输出转换后的字符。

注意:输出时字符之间不要加空格。

样例说明

样例 1

输入:
5
aBc98
输出:
AbC**
样例解释:

原来的字符是:aBc98

从左到右一个一个看:

  1. a 是小写字母,所以变成 A;
  2. B 是大写字母,所以变成 b;
  3. c 是小写字母,所以变成 C;
  4. 9 是数字,所以变成 *
  5. 8 是数字,所以变成 *

所以最后输出:AbC**

数据范围

字符个数不会超过 1000 个。

每个字符只会是大写字母、小写字母或数字。

编程题部分已到底了。