#X000302. GESP C++ 三级试卷(2023年06月)

GESP C++ 三级试卷(2023年06月)

GESP C++ 三级试卷(6月版)

一、选择题

本试卷共15道单项选择题,考察基本语法、逻辑结构和简单算法。


第1题

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

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

第2题

二进制数 (11.01) 在十进制下是( )。 {{ select(2) }}

  • (3.01)
  • (3.05)
  • (3.125)
  • (3.25)

第3题

已知大写字符 'A' 的 ASCII 编码的十六进制表示为 0x41,则字符 'F' 的 ASCII 编码的十六进制表示为( )。 {{ select(3) }}

  • 46
  • 47
  • 48
  • 49

第4题

以下哪个不是 C++语言中的运算符?( ) {{ select(4) }}

  • 8
  • 88
  • **

第5题

如果字符串定义为 char str[] = "Hello";,则字符数组 str 的长度为( )。 {{ select(5) }}

  • 0
  • 5
  • 6
  • 7

第6题

一个数组定义为 double array[3];,则这个数组占用内存的大小为( )。 {{ select(6) }}

  • 24
  • 12
  • 6
  • 3

第7题

以下数组定义,符合 C++语言语法的是( )。 {{ select(7) }}

  • int a[];
  • int b['3'];
  • int c[3.0];
  • int[3] d;

第8题

下列关于进制的叙述,不正确的是( )。 {{ select(8) }}

  • 正整数的二进制表示中只会出现 0 和 1。
  • (10) 不是 2 的整数次幂,所以十进制数无法转换为二进制数。
  • 从二进制转换为 8 进制时,可以很方便地由低到高将每 3 位二进制位转换为对应的一位 8 进制位。
  • 从二进制转换为 16 进制时,可以很方便地由低到高将每 4 位二进制位转换为对应的一位 16 进制位。

第9题

下列关于 C++语言中数组的叙述,不正确的是( )。 {{ select(9) }}

  • 数组必须先定义后使用。
  • 数组的所有元素在内存中是连续存放的。
  • 除了字符数组,在定义数组时"[]"内必须有常数。
  • 不能对数组赋值,但可以对数组的每个基础类型的元素赋值。

第10题

一个 int 类型的值,做以下哪个操作,一定会变回原来的值?( ) {{ select(10) }}

  • 左移 3 位,再右移 3 位。
  • 右移 3 位,再左移 3 位。
  • 按位或 7,再按位与-8。
  • 按位异或 7,再按位异或 7。

第11题

如果 a 和 b 均为 int 类型的变量,下列表达式能正确判断 "a 等于 b" 的是( )。 {{ select(11) }}

  • ( (a / b) == 1 )
  • ( (a & b) == a )
  • ( (a \land b) == 0 )
  • ( (a | b) == b )

第12题

如果 a 为 int 类型的变量,下列哪个表达式可以正确求出满足 "小于等于 a 且是 4 的倍数" 的整数中最大的?( ) {{ select(12) }}

  • ( (a & (\neg 3)) )
  • ( ((a << 2) >> 2) )
  • ( (a \land 3) )
  • ( ((a - 1) | 3) + 1 )

第13题

在下列代码的横线处填写( ),可以使得输出是 "24 12"。

#include <iostream>
using namespace std;
int main() {
    int a = 12, b = 24;
    ______; // 在此处填入代码
    a = a \land b;
    b = a \land b;
    cout << a << " " << b << endl;
    return 0;
}

{{ select(13) }}

  • a = a \land b
  • b = a \land b
  • a = a + b
  • b = a + b

第14题

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

#include <iostream>
using namespace std;
int main() {
    int array[5] = {3, 7, 5, 2, 4};
    int min = 0;
    for (int i = 0; i < 5; i++)
        if (______) // 在此处填写代码
            min = array[i];
    cout << min << endl;
    return 0;
}

{{ select(14) }}

  • min > array[i]
  • min < array[i]
  • min = array[i]
  • 以上均不对

第15题

在下列代码的横线处填写( ),可以使得输出不是"31"。

#include <iostream>
using namespace std;
int main() {
    int array[5] = {1, 2, 4, 8, 16};
    int res = 0;
    for (int i = 0; i < 5; i++)
        ______; // 在此处填写代码
    cout << res << endl;
    return 0;
}

{{ select(15) }}

  • res = res + array[i]
  • res = res & array[i]
  • res = res | array[i]
  • res = res ^ array[i]

二、判断题

本试卷共10道判断题,考察对基本概念的理解。


第16题

一个算法可以用不同的形式来描述,但要求描述比较规范,因此不能用自然语言描述。 {{ select(16) }}

  • 正确
  • 错误

第17题

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

  • 正确
  • 错误

第18题

数据编码方式只有原码、反码、补码三种。 {{ select(18) }}

  • 正确
  • 错误

第19题

在C++语言中,长度为n的数组,合理的下标范围是从0到n,包括0和n。 {{ select(19) }}

  • 正确
  • 错误

第20题

字符串量'(\backslash \theta)'常用来表示字符串结束,它和字符串量'(\theta)'是不同的。 {{ select(20) }}

  • 正确
  • 错误

第21题

在C++语言中,可以使用字符(如'(\theta)')作为数组下标。 {{ select(21) }}

  • 正确
  • 错误

第22题

在C++语言中,数组被定义时,它的大小就确定了。 {{ select(22) }}

  • 正确
  • 错误

第23题

计算机中存储的数据都是二进制形式。因此,在使用C++语言编写程序时,将所有十进制数改写为相同数值的二进制数,会使得程序运行效率更高。 {{ select(23) }}

  • 正确
  • 错误

第24题

在C++语言中,表达式((\theta x f = 615))的值为true。 {{ select(24) }}

  • 正确
  • 错误

第25题

如果 a 为 int 类型的变量,且表达式 ( (a \mid 3) == 3 ) 的值为 true,则说明 a 在从 0 到 3 之间(可能为 0、可能为 3)。 {{ select(25) }}

  • 正确
  • 错误