2023年6月 GESP C++ 2级认证考试真题(含编程操作题部分)
选 单选题(共 15 题,每题 2 分)
高级语言编写的程序需要经过以下( )操作,可以生成在计算机上运行的可执行代码。
能够实现下面流程图功能的伪代码是( )。
下列关于 C++ 语言的叙述,正确的是( )。
下列关于 C++ 语言的叙述,不正确的是( )。
以下哪个是 C++ 语言的关键字?( )
以下哪个不是 C++ 语言的运算符?( )
如果 $a$ 为 int 类型的变量,$b$ 为 char 类型的变量,则下列哪个语句不符合 C++ 语法?( )
如果用两个 int 类型的变量 $a$ 和 $b$ 分别表达平行四边形的两条边长,用 int 类型的变量 $h$ 表达 $a$ 边对应的高,则下列哪个表达式不能用来计算 $b$ 边对应的高?( )
以下哪个循环语句会无限次执行?( )
如果 $a$ 为 char 类型的变量,且 $a$ 的值为 'C'(已知 'C' 的 ASCII 码为 $67$),则执行 cout << (a + 2); 会输出( )。
如果 $a$ 和 $b$ 均为 int 类型的变量,下列表达式能正确判断“$a$ 等于 $1$ 且 $b$ 等于 $1$”的是( )。
如果 $a$ 为 char 类型的变量,下列哪个表达式可以正确判断“$a$ 是数字”?
( )
在下列代码的横线处填写( ),使得输出是 $9$ 。
在下列代码的横线处填写( ),可以使得输出是 $42$ 。
执行以下 C++ 语言程序后,输出结果是( )。
判 判断题(共 10 题,每题 2 分)
诞生于 $1986$ 年的中华学习机 CEC-I 入选了 $2021$ 年的 CCF 计算机历史记忆(一类),它的内存只有 $64$ KB。当时的汉字编码字符集 GB2312 中共有 $6763$ 个汉字,假如每个汉字用 $2$ 个字节编码,将整个 GB2312 汉字字符集都放入 CEC-I 的内存,也只占用了不超过 $1/5$ 的内存空间。
域名是由一串用点分隔的名字来标识互联网上一个计算机或计算机组的名称,CCF 编程能力等级认证官方网站的域名是 gesp.ccf.org.cn,其中顶级域名是 gesp。
在使用 C++ 语言编写程序时,不能使用 sqrt、abs 等数学函数,包含 <cmath> 或 <math.h> 头文件后就能够使用了。
在 C++ 语言中,标识符中可以有下划线 _。同时,_ 也是 C++ 语言的运算符。
如果 $a$ 是 double 类型的变量,而且值为 $3.5$,则表达式 a * 10 的计算结果为 $35$,且结果类型为 int。
在 if 语句中,如果条件成立时需要执行多条语句,可以使用大括号‘{’和‘}’将这些语句括起来。
循环语句的循环体有可能无限制地执行下去。
++ 和 == 都是 C++ 语言的运算符,但 += 不是。
如果 $a$ 为 char 类型的变量,且取值为大写字母 'F',则执行语句 a = a + 1; 后,$a$ 的值会变为大写字母 'G'。
表达式 sqrt(9.0) 的计算结果为 $3$,且结果类型为 int。
编 编程操作题(共 2 题,共 50 分)
试题名称:找素数
时间限制:1.0 s | 内存限制:128.0 MB
题目描述
小明刚刚学习了素数的概念:如果一个大于 $1$ 的正整数,除了 $1$ 和它自身外,不能被其他正整数整除,则这个正整数是素数。现在,小明想找到两个正整数 $A$ 和 $B$ 之间(包括 $A$ 和 $B$)有多少个素数。
输入格式
输入只有一行两个正整数 $A, B$。约定 $2 \le A \le B \le 1000$。
输出格式
输出一行,包含一个整数 $C$,表示找到 $C$ 个素数。
样例输入 #1
2 10
样例输出 #1
4
样例输入 #2
98 100
样例输出 #2
0
说明/提示
【样例解释 1】
在 $2$ 和 $10$ 之间有 $4$ 个素数,分别为:$2$、$3$、$5$、$7$。
试题名称:自幂数判断
时间限制:1.0 s | 内存限制:512.0 MB
题目描述
自幂数是指,一个 $N$ 位数,满足各位数字 $N$ 次方之和是本身。例如,$153$ 是 $3$ 位数,其每位数的 $3$ 次方之和,$1^3+5^3+3^3=153$,因此 $153$ 是自幂数;$1634$ 是 $4$ 位数,其每位数的 $4$ 次方之和,$1^4+6^4+3^4+4^4=1634$,因此 $1634$ 是自幂数。现在,输入若干个正整数,请判断它们是否是自幂数。
输入格式
输入第一行是一个正整数 $M$,表示有 $M$ 个待判断的正整数。约定 $1 \le M \le 100$。
从第 $2$ 行开始的 $M$ 行,每行一个待判断的正整数。约定这些正整数均小于 $10^8$。
输出格式
输出 $M$ 行,如果对应的待判断正整数为自幂数,则输出英文大写字母 $\texttt T$,否则输出英文大写字母 $\texttt F$。
提示:不需要等到所有输入结束在依次输出,可以输入一个数就判断一个数并输出,再输入下一个数。
样例输入 #1
3
152
111
153
样例输出 #1
F
F
T
样例输入 #2
5
8208
548834
88593477
12345
5432
样例输出 #2
T
T
T
F
F