2023年06月CCF-GESP编程能力等级认证C++编程二级真题

2024年03月02日

一、单选题(每题2分,共30分)

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

A. 编辑
B. 保存
C. 调试
D. 编译

答案:D

第2题 能够实现下面流程图功能的伪代码是( )。

A. if 条件判断 then 语句块
B. if 条件判断 then 什么也不做 else 语句块
C. while 条件判断 do 语句块
D. while not 条件判断 do 语句块

答案:D

第3题 下列关于C++语言的叙述,正确的是( )。

A. char类型变量不能赋值给int类型的变量。
B. 两个int类型变量相乘,计算结果还是int类型。
C. 计算两个int类型变量相乘时,如果乘积超出了int类型的取值范围,程序会报错崩溃。
D. 计算两个double类型变量相除时,如果除数的值为0.0,程序会报错崩溃。

答案:B

第4题 下列关于C++语言的叙述,不正确的是( )。

A. if语句中的判断条件必须用小括号‘(’和‘)’括起来。
B.for语句中两个‘;’之间的循环条件可以省略,表示循环继续执行的条件一直满足。
C. 循环体包含多条语句时,可以用缩进消除二义性。
D. 除了“先乘除、后加减”,还有很多运算符优先级。

答案:C

第5题 以下哪个是C++语言的关键字?( )

A. main
B. max
C. double
D. sqrt

答案:C

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

A. >=
B. /=
C. ||
D. <>

答案:D

第7题 如果a为int类型的变量,b为char类型的变量,则下列哪个语句不符合C++语法?( )

A. a = a + 1.0;
B. a = (int)(b - ‘0’);
C. b = (char)(a + ‘0’);
D. (int)b = a;

答案:D

第8题 如果用两个int类型的变量a和b分别表达平行四边形的两条边长,用int类型的变量h表达a边对应的高,则下列哪个表达式不能用来计算b边对应的高?( )

A. a / b * (0.0 + h)
B. (0.0 + a * h) / b
C. a * h / (b + 0.0)
D. (a + 0.0) * h / b

答案:A

第9题 以下哪个循环语句会无限次执行?( )

A. for (int a = 0; a; a++) ;
B. for (bool b = false; b <= true; b++) ;
C. for (char c = ‘A’; c < ‘z’; c++) ;
D. for (double d = 0.0; d < 10.0; d += 0.001) ;

答案:B

第10题 如果a为char类型的变量,且a的值为’C’(已知’C’的ASCII码为67), 则执行cout << (a + 2);会输出( )。

A. E
B. C+2
C. C2
D. 69

答案:D

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

A. (a == b) && (b == 1)
B. (a && b)
C. (a == b == 1)
D. (a * b == 1)

答案:A

第12题 如果a为char类型的变量,下列哪个表达式可以正确判断“a是数字”?( )

A. ‘0’ <= a && a <= ‘9’
B. ‘1’ <= a && a <= ‘0’
C. ‘0’ <= a <= ‘9’
D. ‘1’ <= a <= ‘0’

答案:A

第13题 在下列代码的横线处填写( ),使得输出是9。

A. (a + b)
B. (a + b - ‘0’)
C. (char)(a + b)
D. (char)(a + b - ‘0’)

答案:D

第14题 在下列代码的横线处填写( ),可以使得输出是42。

A. i % 3 == 0
B. 20 % i == 0
C. i <= 8
D. i >= 18

答案:B

第15题 执行以下C++语言程序后,输出结果是( )。

A. A
B. B
C. C
D. D

答案:C

二、判断题(每题2分,共20分)

第16题 诞生于1986年的中华学习机CEC-I入选了2021年的CCF计算机历史记忆(一类),它的内存只有64KB。当时的汉字编码字符集GB2312中共有6763个汉字,假如每个汉字用2个字节编码,将整个GB2312汉字字符集都放入CEC-I的内存,也只占用了不超过1/5的内存空间。

答案:错误

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

答案:错误

第18题 在使用C++语言编写程序时,不能使用sqrt、abs等数学函数,包含或<math.h>头文件后就能够使用了。

答案:正确

第19题 在C++语言中,标识符中可以有下划线‘’。同时,‘’也是C++语言的运算符。

答案:错误

第20题 如果a是double类型的变量,而且值为3.5,则表达式a * 10的计算结果 为35,且结果类型为int。

答案:错误

第21题 在if语句中,如果条件成立时需要执行多条语句,可以使用大括号‘{’和 ‘}’将这些语句括起来。

答案:正确

第22题 循环语句的循环体有可能无限制地执行下去。

答案:正确

第23题 ++和==都是C++语言的运算符,但+=不是。

答案:错误

第24题 如果a为char类型的变量,且取值为大写字母’F’,则执行语句a = a + 1; 后,a的值会变为大写字母’G’。

答案:正确

第25题 表达式sqrt(9.0)的计算结果为3,且结果类型为int。

答案:错误

三、编程题(每题25分,共50分)

第26题找素数

第27题自幂数判断