信奥刷题站
GESP 认证 4级2023-12

2023年12月 GESP C++ 4级

题量
27 题
客观题
25 题
建议时长
60 分钟
卷面总分
100 分

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

开始整卷模拟计时作答 · 交卷即时判分 · 错题自动进错题本(需登录)2 道编程大题:在线只判客观题,编程题请自行前往洛谷等 OJ 提交验证

// questions

题目预览

1
单选题2

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

A

函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值不变。

B

函数参数传递时,主函数当中采用值传递方式将参数传递给子函数时,若子函数将参数值改变,主函数当中的参数值将随子函数一样改变而改变。

C

函数参数传递时,主函数如果将参数的地址传递给子函数,若子函数将参数值改变,主函数当中的参数值将不改变。

D

函数参数传递可以不满足子函数的参数个数要求。

2
单选题2

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

A

chen

B

c

C

chen a dai

D

dai

3
单选题2

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

A

111

B

222

C

333

D

444

4
单选题2

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

A
B
C
D
5
单选题2

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

A

111, 222, 333

B

111

C

222

D

333

6
单选题2

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

A

0x6ffe11

B

0x6ffe14

C

0x6ffe18

D

0x6ffe15

7
单选题2

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

A

400400400

B

200200200

C

202020

D

100100100

8
单选题2

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

A

3 && false

B

5 && 2

C

101 && 000

D

4 & true

9
单选题2

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

A

alpha[i] = alpha[i - 1] + 1;

B

alpha[i] = alpha[i] + 1;

C

alpha[i + 1] = alpha[i] + 1;

D

alpha[i - 1] = alpha[i] + 1;

10
单选题2

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

A

101010

B

161616

C

404040

D

242424

11
单选题2

下列 C++ 代码输入 111 , 222 , 333 , 444 ,执行后,将输出的是( )。

A

111#444#

B

111#333#

C

111#222#333#444#

D

111#222#333#444

12
单选题2

以下 C++ 代码用于实现每个整数对应的因数,如输入 121212 ,则输出 111 222 333 444 666 121212 ;如输入 181818 ,则输出 111 333 666 999 181818 。横线处应填入代码是( )。

A

if(n % i == 0)

B

if(n / i == 0)

C

if(n % i != 0)

D

if(n / i != 0)

13
单选题2

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

A

麦克风

B

扬声器

C

油量表

D

传感器

14
单选题2

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

A

艾伦·图灵

B

冯·诺依曼

C

阿塔纳索夫

D

埃克特-莫克利

15
单选题2

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

A

for(i=1;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

B

for(i=2;i<N;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

C

for(i=2;i<N/2;i++) if(!(N%(i-1)) && !(N%i)) printf("(%d,%d)\n", i-1, i);

D

for(i=1;i<N/2;i++) if(!(N%i) && !(N%(i+1))) printf("(%d,%d)\n", i, i+1);

16
判断题2

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
判断题2

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

18
判断题2

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

19
判断题2

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

20
判断题2

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

21
判断题2

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

22
判断题2

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

23
判断题2

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

24
判断题2

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

25
判断题2

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

GESP 编程操作题
26
编程题25

试题名称:小杨的字典

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

题目描述

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

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

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

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

输入格式

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

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

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

输出格式

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

样例输入 #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
本题为编程大题:请复制题面到洛谷 / GESP OJ 等平台编写并提交代码(本站不判分)
27
编程题25

试题名称:田忌赛马

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

题目描述

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

你的马匹的速度分别为 u1,u2,⋯,unu_1,u_2,\cdots,u_nu1,u2,un,田忌的马匹的速度分别为 v1,v2,⋯ ,vnv_1,v_2,\cdots,v_nv1,v2,,vn。田忌会按顺序派出他的马匹,请问你要如何排兵布阵,才能赢得最多轮次的比赛?巧合的是,你和田忌的所有马匹的速度两两不同,因此不可能出现平局。

输入格式

第一行一个整数 NNN。保证 1≤N≤5×1041\le N \le 5\times 10^41N5×104

接下来一行 NNN 个用空格隔开的整数,依次为 u1,u2,⋯ ,unu_1,u_2,\cdots,u_nu1,u2,,un,表示你的马匹们的速度。保证 1≤ui≤2N1\le u_i\le 2N1ui2N

接下来一行 NNN 个用空格隔开的整数,依次为 v1,v2,⋯ ,vnv_1,v_2,\cdots,v_nv1,v2,,vn,表示田忌的马匹们的速度。保证 1≤vi≤2N1\le v_i\le 2N1vi2N

输出格式

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

样例输入 #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 轮比赛。

本题为编程大题:请复制题面到洛谷 / GESP OJ 等平台编写并提交代码(本站不判分)