CCF编程能力等级认证,英文名Grade Examination of Software Programming(以下简称GESP),由中国计算机学会发起并主办,是为青少年计算机和编程学习者提供学业能力验证的平台。GESP旨在提升青少年计算机和编程教育水平,推广和普及青少年计算机和编程教育。GESP覆盖中小学全学段,符合条件的青少年均可参加认证。
GESP考察语言为图形化编程、Python编程及C++编程,主要考察学生掌握相关编程知识和操作能力,熟悉编程各项基础知识和理论框架,通过设定不同等级的考试目标,让学生具备编程从简单的程序到复杂程序设计的编程能力,为后期专业化编程学习打下良好基础。
大家都有疑惑,为什么官网只有12月份的真题,但我这有多月度的。
本次为大家带来的是
2023
年
3
月份,
C++
二级考试真题解析。
一、单选题(每题
2
分,共
30
分)
1.
以下存储器中的数据不会受到附近强磁场干扰的是( )
A
.硬盘
B
.
U
盘
C
.内存
D
.光盘
【答案】
D
【考纲知识点】计算机的存储(二级)
【解析】光盘是光存储介质,是通过激光高温改变光盘涂覆层的形状来记录数据
的,不会因为磁场而改变记录特性。硬盘是磁介质的数据存储设备,会直接受到
磁场干扰。强磁场会在
U
盘和内存的电路中产生感应电流,可能会破坏存储器,
导致数据受损。所以此题正确答案为
D
。
2.
下列流程图,属于计算机的哪种程序结构?( )。
A
. 顺序结构
B
. 循环结构
C
. 分支结构
D
.数据结构
【答案】
C
【考纲知识点】计算机基础结构(一级)
【解析】流程图根据是否按下空格键设置了两个分支,符合分支结构的特征,所
以本题正确答案为
C
。
3.
下列关于
C++
语言的叙述,不正确的是()。
A
.
double
类型的变量占用内存的大小是浮动的
B
.
bool
类型的变量占用
1
字节内存
C
.
int
类型变量的取值范围不是无限的
D
.
char
类型的变量有
256
种取值
【答案】
A
【考纲知识点】计算机的存储(二级)
【解析】在当前
C++
标准下,
double
类型通常占用
8
个字节,
bool
类型占用
1
个
字节,
int
类型通常占用
4
个字节,
char
类型占用
1
字节。
int
类型的取值范围为
− 2
31
~
2
31
− 1
,
char
类型的范围是
-128
~
127
,所以本题正确答案为
A
。
4.
下列关于
C++
语言的叙述,不正确的是()。
A
. 变量定义后,可以使用赋值语句改变它的值
B
. 变量定义时,必须指定类型
C
. 变量名必须为合法标识符
D
.合法标识符可以以数字开始
【答案】
D
【考纲知识点】变量的定义与使用(一级)
【解析】变量定义时,必须指定类型,且变量名必须为合法标识符(只能由字母,
数字,下划线组成,且不能以数字开头),所以本题正确答案为
D
。
5.
以下哪个不是
C++
语言的关键字?
A
.
return
B
.
max
C
.
else
D
.
case
【答案】
B
【考纲知识点】程序设计语言的特点(二级)
【解析】本题属于考察
C++
语言的关键字,
max
是
C++
中的一个库函数,不属于
关键字,所以本题正确答案为
B
。
6.
以下哪个不是
C++
语言的运算符?
A
.
\=
B
.
/=
C
.
-=
D
.
!=
【答案】
A
【考纲知识点】算数运算(一级)
【解析】
B
选项
a /= b
,等价于
a = a / b
;
C
选项
a -= b
等价于
a = a – b
;
D
选项
“!=”
是不等于。
A
选项
\=
并不是
C++
语言的运算符,所以本题正确答案为
A
。
7.
如果
a
和
b
都是
char
类型的变量,下列哪个语句不符合
C++
语法?
A
.
b = a + 1;
B
.
b = a + '1';
C
.
b = 'a'++;
D
.
b = a++;
【答案】
C
【考纲知识点】基本数据类型(一级)
【解析】
A
选项,赋值号右侧表达式对
a
的
ASCII
码数值加
1
,结果为
int
类型,赋值给
b
时转换为
char
类型,也即比
a
的
ASCII
码值大
1
的对应字符。符合
C++
语法。
B
选项,
'1'
为
char
类型常量,赋值号右侧表达式对
a
的
ASCII
码数值加
'1'
的
ASCII
码数值,结果为
char
类型,赋值给
b
。符合
C++
语法。
C
选项,
'a'
为
char
类型常量,常量不能进行
++
自增运算,不符合
C++
语法。
D
选项,
a
为
char
类型常量,可以进行
++
自增运算。该语句将
a
变为
ASCII
码值
增加
1
的对应字符,并将变化前的
a
值赋值给
b
。符合
C++
语法。
所以本题正确答案为
C
。
8.
如果
a
、
b
、
c
和
d
都是
int
类型的变量,则下列哪个表达式能够正确计算它们
的平均值?
A
.
(a + b + c + d) / 4
B
.
(a + b + c + d) % 4
C
.
(a + b + c + d) / 4.0
D
.
(a + b + c + d) % 4.0
【答案】
C
【考纲知识点】算术运算(一级)
【解析】
A
选项中所有参与计算的数都是整型,最终的计算结果也是整型,会默
认向下取整,导致平均值不准确。
B
选项计算的是
a
、
b
、
c
、
d
四个整数的和除
以
4
的余数。
C
选项为
a
、
b
、
c
、
d
四个整数的和除以
4.0
的结果,计算过程中会
将
4.0
视为浮点数,整型与浮点型的计算结果默认为浮点型。
D
选项“
%
”不能
与浮点数参与运算,用法错误。所以本题正确答案为
C
。
9.
如果
a
为
char
类型的变量,且
a
的值为
'2'
,则下列哪条语句执行后,
a
的值
不会变为
'3'
?
A
.
a = a + 1;
B
.
a + 1;
C
.
a = 1 + a;
D
.
++a;
【答案】
B
【考纲知识点】算术运算(一级)
【解析】
B
选项中并未对
a + 1
的结果进行任何处理,变量
a
在计算过程中未发
生改变,所以本题正确答案为
B
。
10.
如果
a
为
int
类型的变量,且
a
的值为
9
,则执行
a -= 3;
之后,
a
的值会是()。
A
.
3
B
.
6
C
.
9
D
.
12
【答案】
B
【考纲知识点】算术运算(一级)
【解析】
a -= 3;
等价于
a = a - 3;
表示把
a - 3
的计算结果重新赋值给
a
变量,所
以本题正确答案为
B
。
11.
如果
a
和
b
均为
int
类型的变量,下列表达式能正确判断
“a
等于
0
或
b
等于
0”
的是()
A
.
(!a) || (!b)
B
.
(a == b == 0)
C
.
(a == 0) && (b == 0)
D
.
(a == 0) - (b == 0) == 0
【答案】
A
【考纲知识点】逻辑运算(一级)
【解析】
A
选项中“
!a
”表示
a
等于
0
,同理“
!b
”表示
b
等于
0
,整个表示式表
示
a
等于
0
或
b
等于
0
。
B
选项会先判断
a
变量和
b
变量是否相等(若
a
和
b
相
等,表达式的值为
1
,若
a
和
b
不相等,表达式的值为
0
),然后再判断表达式
(a==b)
的值是否为
0
。
C
选项表示
a
等于
0
且
b
等于
0
。
D
选项表示表达式
(a==0)
减表达
式
(b==0)
的计算结果是否为
0
,表示
a
和
b
同时为
0
或
a
和
b
同时都不为
0
。所
以本题正确答案为
A
。
12.
如果
a
为
char
类型的变量,下列哪个表达式可以正确判断
“a
是小写字母
”
?
A
.
a <= a <= z
B
.
a - 'a' <= 'z' - 'a'
C
.
'a' <= a <= 'z'
D
.
a >= 'a' && a <= 'z'
【答案】
D
【考纲知识点】逻辑运算(一级)
【解析】
A
选项,
a <= a
总是成立,因此表达式等价于
1 <= z
。
B
选项等价于
a <=
‘z’
。
C
选项无论
’a’ <= a
是否成立,表达式的值
0
或
1
都小于
’z’
。
D
选项表示
a
大
于等于
’a’
,并且
a
小于等于
’z’
,说明
a
变量的
ASCII
码在字符
’a’
和字符
’z’
对应的
ASCII
码之间,即
a
变量为小写字母。所以本题正确答案为
D
。
13.
在下列代码的横线处填写(),使得输出是
`50 10`
。
A
.
a -= b
B
.
a += b
C
.
a = b - a
D
.
a = b
【答案】
C
【考纲知识点】基本运算(一级)
【解析】本题考察通过算术运算交换两个变量数值,可将选项带入进行计算,本
题正确答案为
C
。
14.
在下列代码的横线处填写(),可以使得输出是
`5`
。
A
.
ch < '5'
B
.
ch >= 5
C
.
ch >= '4'
D
.
ch % 2 == 1
【答案】
D
【考纲知识点】循环结构,字符型,
ASCII
码,基本运算 (二级)
【解析】可以将选项带入排除
A
,
B
,
C
选项,需要注意
B
选项中
5
没有单引号,
所以表示的不是字符
’5’
,
D
选项中
ch
虽然是字符类型,但计算时会使用对应的
ASCII
码
%2
,字符
’1’
到字符
’9’
之间,所有
ASCII
码中有
5
个是奇数,所以本题正
确答案为
D
。
15.
执行以下
C++
语言程序后,输出结果是()。
A
.
false
B
.
true
C
.
0
D
.
1
【答案】
C
【考纲知识点】循环结构,布尔型,基本运算 (二级)
【解析】题目中
i
的循环范围是
2~n
,即分别使用
n
对
2~n
之间的所有数进行求
余运算,由于
n
能够被自身整除,所以循环结束后
isprime
的值一定为
false
,但
是
bool
类型在输出时不会输出
true
或
false
,输出时只会输出
1
或
0
,所以本题
正确答案为
C
。
二、判断题(每题
2
分,共
20
分)
1.
明明和笑笑在
“
小庙会
”
上分别抽到一个
4GB
和
4096MB
的
U
盘,容量大的盘