#1313. GESP-C++二级(2023-06)

GESP-C++二级(2023-06)

CCF GESP C++ 二级 (2023 年 06 月)

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

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

{{ select(1) }}

  • 编辑
  • 保存
  • 调试
  • 编译

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

{{ select(2) }}

  • if 条件判断 then 语句块
  • if 条件判断 then 什么也不做 else 语句块
  • while 条件判断 do 语句块
  • while not 条件判断 do 语句块

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

{{ select(3) }}

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

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

{{ select(4) }}

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

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

{{ select(5) }}

  • main
  • max
  • double
  • sqrt

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

{{ select(6) }}

  • >=>=
  • /=
  • ||
  • <>

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

{{ select(7) }}

  • a = a + 1.0;
  • a = (int)(b - '0');
  • b = (char)(a + '0');
  • (int)b = a;

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

{{ select(8) }}

  • a / b * (0.0 + h)
  • (0.0 + a * h) / b
  • a * h / (b + 0.0)
  • (a + 0.0) * h / b

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

{{ select(9) }}

  • for (int a = 0; a; a++) ;
  • for (bool b = false; b <= true; b++) ;
  • for (char c = 'A'; c < 'z'; c++) ;
  • for (double d = 0.0; d < 10.0; d += 0.001) ;

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

{{ select(10) }}

  • E
  • C+2
  • C2
  • 69

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

{{ select(11) }}

  • (a == b) && (b == 1)
  • (a && b)
  • (a == b == 1)
  • (a * b == 1)

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

{{ select(12) }}

  • '0' <= a && a <= '9'
  • '1' <= a && a <= '0'
  • '0' <= a <= '9'
  • '1' <= a <= '0'

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

#include <iostream>
using namespace std;
int main() {
    char a = '3', b = '6';
    cout << ______; // 在此处填入代码
    return 0;
}

{{ select(13) }}

  • (a + b)
  • (a + b - '0')
  • (char)(a + b)
  • (char)(a + b - '0')

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

#include <iostream>
using namespace std;
int main() {
    int sum = 0;
    for (int i = 1; i <= 20; i++)
    if (______) // 在此处填入代码
    sum += i;
    cout << sum << endl;
    return 0;
}

{{ select(14) }}

  • i % 3 == 0
  • 20 % i == 0
  • i <= 8
  • i >= 18

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

#include <iostream>
using namespace std;
int main() {
    for (char x = 'A'; x <= 'D'; x++)
    if ((x != 'A') + (x == 'C') + (x == 'D') + (x != 'D') == 3)
    cout << x;
    return 0;
}

{{ select(15) }}

  • A
  • B
  • C
  • D

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

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

{{ select(16) }}

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

{{ select(17) }}

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

{{ select(18) }}

19.在C++语言中,标识符中可以有下划线"_"。同时,“_”也是C++语言的运算符。

{{ select(19) }}

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

{{ select(20) }}

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

{{ select(21) }}

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

{{ select(22) }}

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

{{ select(23) }}

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

{{ select(24) }}

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

{{ select(25) }}