Logo

2023年12月 GESP C++ 4级

GESP · 4级 · 2023-12

60:00
满分 100
时长 60 分钟
27

2023年12月 GESP C++ 4级认证考试真题(含编程操作题部分)

答题卡 已答 0/27
已答 正确 错误 编程题

单选题(共 15 题,每题 2 分)

1

下面有关函数参数的说法,正确的是( )。

2

下面 C++ 代码执行后,输出的是( )。

3

下面 C++ 代码最后执行后输出是( )。

4

下面 C++ 代码执行后的结果是( )。

5

下面 C++ 代码执行后输出是( )。

6

如果变量 $x$ 的地址是 0x6ffe14,下面 C++ 代码执行以后输出的是( )。

7

在 C++ 中,执行下面代码后,输出的是( )。

8

下列 C++ 语句执行以后结果是 true 的是( )。

9

在如下的 C++ 代码中实现了对字符串中出现的 26 个字母的个数统计,横线处应填入是( )。

10

下面 C++ 代码执行后生成的文件其字节数为( )。

11

下列 C++ 代码输入 $1$ , $2$ , $3$ , $4$ ,执行后,将输出的是( )。

12

以下 C++ 代码用于实现每个整数对应的因数,如输入 $12$ ,则输出 $1$ $2$ $3$ $4$ $6$ $12$ ;如输入 $18$ ,则输出 $1$ $3$ $6$ $9$ $18$ 。横线处应填入代码是( )。

13

某公司新出了一款无人驾驶的小汽车,通过声控智能驾驶系统,乘客只要告诉汽车目的地,车子就能自动选择一条优化路线,告诉乘客后驶达那里。请问下面哪项不是驾驶系统完成选路所必须的。( )

14

现代计算机是指电子计算机,它所基于的是( )体系结构。

15

输入一个正整数 $N$($N \geq 7$),想找出它所有相邻的因数对,比如,输入 $12$,因数对有 $(1,2)$、$(2,3)$、$(3,4)$。下面哪段代码找不到所有的因数对?()

判断题(共 10 题,每题 2 分)

16

C++ 的内置函数 sort() 支持数组的局部排序。例如 int a[] = {10, 9, 8, 7, 6, 5, 4, 3, 2, 1},可以用 sort(a, a + 5),排序成 {6, 7, 8, 9, 10, 5, 4, 3, 2, 1}。( )

17

用递归法求 $n$ 的阶乘,时间复杂度是 $O(n)$。

18

[(1,2)*2]*3 在 C++ 中是合法的表达式。( )

19

在下面的 C++ 代码中,将对 1.txt 文件写入 hello。( )

20

文本文件 1.txt 第 1 行由 01234 共 5 个字符组成其间没有空格,当用 C++ 代码正常打开文件成功并执行如下代码以后,第 1 行长度为 5( )

21

执行 C++ 代码 cout << (5 || 2); 后将输出 $1$。( )

22

在 C++ 中,两个字符串相加的运算符 + 相当于字符串的合并运算。下面 C++ 代码执行后,将输出 chenadai。( )

23

C++ 内置函数 sort() 可以对整数、浮点数、字符数组进行从大到小,从小到大,局部排序。( )

24

小杨最近在准备考 GESP,他用的 Dev C++ 来练习和运行程序,所以 Dev C++ 也是一个小型操作系统。( )

25

任何一个 while 循环都可以转化为等价的 for 循环( )。

编程操作题(共 2 题,共 50 分)

26
编程操作题 25分

试题名称:小杨的字典

时间限制:1.0 s | 内存限制:512.0 MB

题目描述

在遥远的星球,有两个国家 A 国和 B 国,他们使用着不同的语言:A 语言和 B 语言。小杨是 B 国的翻译官,他的工作是将 A 语言的文章翻译成 B 语言的文章。

为了顺利完成工作,小杨制作了一本字典,里面记录了 $N$ 个 A 语言单词对应的 B 语言单词,巧合的是,这些单词都由地球上的 26 个小写英文字母组成。

小杨希望你写一个程序,帮助他根据这本字典翻译一段 A 语言文章。这段文章由标点符号 !()-[]{}\|;:'",./?<> 和一些 A 语言单词构成,每个单词之间必定由至少一个标点符号分割,你的程序需要把这段话中的所有 A 语言单词替换成它的 B 语言翻译。特别地,如果遇到不在字典中的单词,请使用大写 UNK 来替换它。

例如,小杨的字典中包含 $2$ 个 A 语言单词 abcd,它们的 B 语言翻译分别为 adef,那么我们可以把 A 语言文章 abc.d.d.abc.abcd. 翻译成 B 语言文章 a.def.def.a.UNK. 其中,单词 abcd 不在词典内,因此我们需要使用 UNK 来替换它。

输入格式

第一行一个整数 $N$,表示词典中的条目数。保证 $N \le 100$。

接下来 $N$ 行,每行两个用单个空格隔开的字符串 $A$, $B$ ,分别表示字典中的一个 A 语言单词以及它对应的 B 语言翻译。保证所有 $A$ 不重复;保证 $A$ 和 $B$ 的长度不超过 $10$。

最后一行一个字符串 $S$ ,表示需要翻译的 A 语言文章。保证字符串 $S$ 的长度不超过 $1000$,保证字符串 $S$ 只包含小写字母以及标点符号 !()-[]{}\|;:'",./?<>

输出格式

输出一行,表示翻译后的结果。

样例输入 #1

2
abc a
d def
abc.d.d.abc.abcd

样例输出 #1

a.def.def.a.UNK

样例输入 #2

3
abc a
d def
abcd xxxx
abc,(d)d!-abc?abcd

样例输出 #2

a,(def)def!-a?xxxx

样例输入 #3

1
abcdefghij klmnopqrst
!()-[]{}\|;:'",./?<>abcdefghijklmnopqrstuvwxyz

样例输出 #3

!()-[]{}\|;:'",./?<>UNK
27
编程操作题 25分

试题名称:田忌赛马

时间限制:1.0 s | 内存限制:512.0 MB

题目描述

你要和田忌赛马。你们各自有 $N$ 匹马,并且要进行 $N$ 轮比赛,每轮比赛,你们都要各派出一匹马决出胜负。

你的马匹的速度分别为 $u_1,u_2,\cdots,u_n$,田忌的马匹的速度分别为 $v_1,v_2,\cdots,v_n$。田忌会按顺序派出他的马匹,请问你要如何排兵布阵,才能赢得最多轮次的比赛?巧合的是,你和田忌的所有马匹的速度两两不同,因此不可能出现平局。

输入格式

第一行一个整数 $N$。保证 $1\le N \le 5\times 10^4$

接下来一行 $N$ 个用空格隔开的整数,依次为 $u_1,u_2,\cdots,u_n$,表示你的马匹们的速度。保证 $1\le u_i\le 2N$。

接下来一行 $N$ 个用空格隔开的整数,依次为 $v_1,v_2,\cdots,v_n$,表示田忌的马匹们的速度。保证 $1\le v_i\le 2N$。

输出格式

输出一行,表示你最多能获胜几轮。

样例输入 #1

3
1 3 5
2 4 6

样例输出 #1

2

样例输入 #2

5
10 3 5 8 7
4 6 1 2 9

样例输出 #2

5

说明/提示

样例解释 1

第 1 轮,田忌派出速度为 2 的马匹,你可以派出速度为 3 的马匹迎战,本轮你获胜。

第 2 轮,田忌派出速度为 4 的马匹,你可以派出速度为 5 的马匹迎战,本轮你获胜。

第 3 轮,田忌派出速度为 6 的马匹,你可以派出速度为 1 的马匹迎战,本轮田忌获胜。

如此,你可以赢得 2 轮比赛。

已答 0/27