内容正文:
CCF 编程能力等级认证(2023 年
6 月) C++ 3 级
一、选择题
共有 15 道题目,已完成 0 道题目
第 1 题 高级语言编写的程序需要经过以下( )操作,可以生
成在计算机上运行的可执行代码。
编辑
保存
调试
编译
第 2 题 二进制数 11.01 在十进制下是( )。
3.01
3.05
3.125
3.25
第 3 题
已知大写字符'A'的 ASCII 编码的十六进制表示为 0x41,则字符
'F'的 ASCII 编码的十六进制表示为( )。
46
47
48
49
第 4 题 以下哪个不是 C++语言中的运算符?( )
&
&&
*
**
第 5 题 如果字符串定义为 char str[] = "Hello";,则字符数
组 str的长度为( )。
0
5
6
7
第 6 题 一个数组定义为 double array[3];,则这个数组占用
内存的大小为( )。
24
12
6
3
第 7 题 以下数组定义,符合 C++语言语法的是( )。
int a[];
int b['3'];
int c[3.0];
int[3] d;
第 8 题 下列关于进制的叙述,不正确的是( )。
正整数的二进制表示中只会出现 0 和 1。
10 不是 2 的整数次幂,所以十进制数无法转换为二进制数。
从二进制转换为 8 进制时,可以很方便地由低到高将每 3 位
二进制位转换为对应的一位 8 进制位。
从二进制转换为 16 进制时,可以很方便地由低到高将每 4 位
二进制位转换为对应的一位 16 进制位。
第 9 题 下列关于 C++语言中数组的叙述,不正确的是( )。
数组必须先定义后使用。
数组的所有元素在内存中是连续存放的。
除了字符数组,在定义数组时[]内必须有常数。
不能对数组赋值,但可以对数组的每个基础类型的元素赋
值。
第 10 题 一个 int类型的值,做以下哪个操作,一定会变回原
来的值?( )
左移 3 位,再右移 3 位。
右移 3 位,再左移 3 位。
按位或 7,再按位与-8。
按位异或 7,再按位异或 7。
第 11 题 如果 a和 b均为 int类型的变量,下列表达式能正确
判断“a等于 b”的是( )。
((a / b) == 1)
((a & b) == a)
((a ^ b) == 0)
((a | b) == b)
第 12 题 如果 a为 int类型的变量,下列哪个表达式可以正确
求出满足“小于等于 a 且是 4 的倍数”的整数中最大的?( )
(a & (~3))
((a << 2) >> 2)
(a ^ 3)
((a - 1) | 3) + 1
第 13 题 在下列代码的横线处填写( ),可以使得输出是“24
12”。
a = a ^ b
b = a ^ b
a = a + b
b = a + b
第 14 题 在下列代码的横线处填写( ),可以使得输出是
“2”。
min > array[i]
min < array[i]
min = array[i]
以上均不对。
第 15 题 在下列代码的横线处填写( ),可以使得输出不是
“31”。
res = res + array[i]
res = res & array[i]
res = res | array[i]
res = res ^ array[i]
二、判断题
共有 10 道题目,已完成 0 道题目
第 1 题 一个算法可以用不同的形式来描述,但要求描述比较规
范,因此不能用自然语言描述。
正确
错误
第 2 题 域名是由一串用点分隔的名字来标识互联网上一个计算
机或计算机组的名称,CCF 编程能力等级认证官方网站的域名
是 gesp.ccf.org.cn,其中顶级域名是 gesp。
正确
错误
第 3 题 数据编码方式只有原码、反码、补码三种。
正确
错误
第 4 题 在 C++语言中,长度为 n 的数组,合理的下标范围是
从 0 到 n,包括 0 和 n。
正确
错误
第 5 题 字符常量'\0'常用来表示字符串结束,它和字符常量
'0'是不同的。
正确
错误
第 6 题 在 C++语言中,可以使用字符(如'0')作为数组下
标。
正确
错误
第 7 题 在 C++语言中,数组被定义时,它的大小就确定了。
正确
错误
第 8 题 计算机中存储的数据都是二进制形式。因此,在使用
C++语言编写程序时,将所有十进制数改写为相同数值的二进制
数,会使得程序运行效率更高。
正确
错误
第 9 题 在 C++语言中,表达式(0xf == 015)的值为 true。
正确
错误
第 10 题 如果 a为 int类型的变量,且表达式((a | 3) == 3)的
值为 true,则说明 a在从 0 到 3 之间(可能为 0、可能为 3)。
正确
错误
三、春游
试题编号:2023-06-11-03-C-01
试题名称:春游
时间限制: 1.0s
内存限制: 128.0MB
【问题描述】
老师带领同学们春游。已知班上有 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
四、密码合规检测
试题编号:2023-06-11-03-C-02
试题名称:密码合规检测
时间限制: 1.0s
内存限制: 128.0MB
【问题描述】
网站注册需要有用户名和密码,编写程序以检查用户输入密
码的有效性。合规的密码应满足以下要求:
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@!”包含四个特殊字符之外的字符“^”,不合规。