试卷 2023年6月CCF GESP编程能力认证C++等级考试(三级)试卷
2023年6月CCF GESP编程能力认证C++等级考试(三级)试卷
选择题
第 1 题    单选题

高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的 可执行代码

A.

编辑

B.

保存

C.

调试

D.

编译

第 2 题    单选题

在下列代码的横线处填写( ),可以使得输出是“2”。

A.

min > array[i]

B.

min < array[i]

C.

min = array[i]

D.

以上均不对。

第 3 题    单选题

在下列代码的横线处填写( ),可以使得输出是“24 12”。

A.

a = a ^ b

B.

b = a ^ b

C.

a = a + b

D.

b = a + b

第 4 题    单选题

如果 为 int 类型的变量,下列哪个表达式可以正确求出满足“小于等于 且是4的倍数”的整数中最大的?( ) 

A.

 (a & (~3))

B.

((a << 2) >> 2)

C.

(a ^ 3)

D.

((a - 1) | 3) + 1 

第 5 题    单选题

如果 a 和 b 均为 int 类型的变量,下列表达式能正确判断“a 等于 b”的是 ( )。

A.

((a / b) == 1)

B.

((a & b) == a)

C.

((a ^ b) == 0)

D.

((a | b) == b)

第 6 题    单选题

一个int类型的值,做以下哪个操作,一定会变回原来的值?( ) 

A.

 左移3位,再右移3位。

B.

右移3位,再左移3位。

C.

按位或 7,再按位与-8。

D.

按位异或 7,再按位异或 7。

第 7 题    单选题

下列关于C++语言中数组的叙述,不正确的是( )。

A.

数组必须先定义后使用。

B.

数组的所有元素在内存中是连续存放的。

C.

除了字符数组,在定义数组时“[]”内必须有常数。

D.

不能对数组赋值,但可以对数组的每个基础类型的元素赋值。

第 8 题    单选题

下列关于进制的叙述,不正确的是( )。

A.

正整数的二进制表示中只会出现 0 和 1。

B.

10 不是 2 的整数次幂,所以十进制数无法转换为二进制数。

C.

从二进制转换为 8 进制时,可以很方便地由低到高将每 3 位二进制位转换为 对应的一位 8 进制位。

D.

从二进制转换为 16 进制时,可以很方便地由低到高将每 4 位二进制位转换 为对应的一位 16 进制位。

第 9 题    单选题

以下数组定义,符合C++语言语法的是( )。

A.

int a[];

B.

int b['3'];

C.

int c[3.0];

D.

int[3] d;

第 10 题    单选题

一个数组定义为doublearray[3];,则这个数组占用内存的大小为( )。

A.

24

B.

12

C.

6

D.

3

第 11 题    单选题

如果字符串定义为charstr[]="Hello";,则字符数组str的长度为( )。

A.

0

B.

5

C.

6

D.

7

第 12 题    单选题

以下哪个不是C++语言中的运算符?( )

A.

&

B.

&&

C.

*

D.

**

第 13 题    单选题

已知大写字符'A'的 ASCII 编码的十六进制表示为 0x41,则字符'F'的 ASCII 编码的十六进制表示为( )。

A.

46

B.

47

C.

48

D.

49

第 14 题    单选题

二进制数11.01在十进制下是( )。

A.

3.01

B.

3.05

C.

3.125

D.

3.25

第 15 题    单选题

在下列代码的横线处填写( ),可以使得输出不是“31”。

A.

res = res + array[i]

B.

res = res & array[i]

C.

res = res | array[i]

D.

res = res ^ array[i] 

判断题
第 16 题    判断题

一个算法可以用不同的形式来描述,但要求描述比较规范,因此不能用自然语言描述。 

A.
正确
B.
错误
第 17 题    判断题

在 C++语言中,表达式(0xf == 015)的值为 true。 

A.
正确
B.
错误
第 18 题    判断题

计算机中存储的数据都是二进制形式。因此,在使用 C++语言编写程序时, 将所有十进制数改写为相同数值的二进制数,会使得程序运行效率更高。

A.
正确
B.
错误
第 19 题    判断题

 在 C++语言中,数组被定义时,它的大小就确定了。

A.
正确
B.
错误
第 20 题    判断题

在 C++语言中,可以使用字符(如'0')作为数组下标。

A.
正确
B.
错误
第 21 题    判断题

 字符常量'\0'常用来表示字符串结束,它和字符常量'0'是不同的。

A.
正确
B.
错误
第 22 题    判断题

在C++语言中,长度为n的数组,合理的下标范围是从0到 n,包括0和n。

A.
正确
B.
错误
第 23 题    判断题

数据编码方式只有原码、反码、补码三种。

A.
正确
B.
错误
第 24 题    判断题

域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称, CCF 编程能力等级认证官方网站gesp的域名是gesp.ccf.org.cn,其中顶级域名是 gesp。

A.
正确
B.
错误
第 25 题    判断题

如果 为 int 类型的变量,且表达式((a | 3) == 3)的值为 true,则说 明

A.
正确
B.
错误
编程题
第 26 题    问答题

CCF-GESP编程能力等级认证C++三级编程题:春游。

[问题描述】

老师带领同学们春游。已知班上有N位同学,每位同学有从 0 到N− 1 的唯一编号。到了集合时间,老师确认是否所有同学都到达了集合地点,就让同学们报出自己的编号。到达的同学都会报出的编号,不会报出别人的编号,但有的同学很顽皮,会多次报出。你能帮老师找出有哪些同学没有到达吗?

【输入描述】

输入包含 2 行。第一行包含两个整数N和M,表示班级有N位同学,同学们共有M次报出编号。约定 2 ≤N, M ≤ 1000。

第二行包含M个整数,分别为M次报出的编号。约定所有编号都在合理范围内。

【输出描述】

输出一行。如果所有同学都到达,则输出N;否则由小到大输出所有未到达的同学编号,空格分隔。


【样例输入 1】

3 3

0 2 1

【样例输出 1】

3

【样例输入 2】

3 5

0 0 0 0 0

【样例输出 2】

1 2

第 27 题    问答题

CCF-GESP编程能力等级认证C++三级编程题:密码合规检测。

【问题描述】

网站注册需要有用户名和密码,编写程序以检查用户输入密码的有效性。合规的密码应满足以下要求:

1、只能由 a-z 之间 26 个小写字母、A-Z 之间 26 个大写字母、0-9 之间 10个数字以及!@#$四个特殊字符构成。

2、密码最短长度:6 个字符,密码最大长度:12 个字符。

3、大写字母、小写字母和数字必须至少有其中两种,以及至少有四个特殊字符中的一个。

【输入描述】

输入一行不含空格的字符串。约定长度不超过 100。该字符串被英文逗号分隔为多段,作为多组被检测密码。

【输出描述】

输出若干行,每行输出一组合规的密码。

输出顺序以输入先后为序,即先输入则先输出。

 

【样例输入 1】

seHJ12!@,sjdkffH$123,sdf!@&12HDHa!,123&^YUhg@!

【样例输出 1】

seHJ12!@

sjdkffH$123

【样例解释 1】

输入被英文逗号分为了四组被检测密码:“seHJ12!@”、“sjdkffH$123”、“sdf!@&12HDHa!”、“123&^YUhg@!”。其中,“sdf!@&12HDHa!”长度超过 12个字符,不合规;“123&^YUhg@!”包含四个特殊字符之外的字符“^”,不合规。

答题卡
选择题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
判断题
编程题
26 27
题目总数:27
总分数:100
时间:90分钟