#L0008. GESP 三级 模拟赛 R1——客观题

GESP 三级 模拟赛 R1——客观题

1 单选题(每题 22 分,共 3030 分)

  1. 已知 int a[5] = {10, 20, 30, 40, 50};,执行 cout << a[2] + a[4]; 的输出结果是( ){{ select(1) }}
  • 60
  • 70
  • 80
  • 90
  1. 以下代码的功能是( )
int a[6] = {5, 2, 8, 1, 9, 3};
int m = a[0];
for (int i = 1; i < 6; i++)
    if (a[i] > m) m = a[i];
cout << m;

{{ select(2) }}

  • 求数组元素之和
  • 求数组元素的最大值
  • 求数组元素的最小值
  • 求数组元素的个数
  1. 关于计算机中的编码,下列说法中正确的是(){{ select(3) }}
  • ASCII编码能够表示所有的字符集。
  • 1616 位短整数的取值范围是 006553565535,因为它是无符号的。
  • 在计算机存储中,负数是以其正值的二进制直接存储的。
  • ASCII编码使用 77 位二进制数表示字符,最多可以表示 128128 个不同的字符。
  1. 以下流程图的输出结果是()

{{ select(4) }}

  • 0
  • 24
  • 8
  • 3
  1. 已知 'A' 的ASCII码值为 6565,执行下面的C++代码后,输出结果为()
string s = "GESP";
int sum = 0;
for(int i = 0; i < 4; i++)
{
    sum += s[i] - 'A' + 1;
}
cout << sum;

{{ select(5) }}

  • 43
  • 47
  • 303
  • 45
  1. 二进制数 1011.01 对应的十进制数是( ){{ select(6) }}
  • 11.25
  • 11.5
  • 13.25
  • 13.5
  1. 以下关于模拟算法的描述,正确的是( ){{ select(7) }}
  • 通过数学公式直接求解
  • 逐步模拟实际过程解决问题
  • 仅适用于图形化问题
  • 时间复杂度一定为 O(1)O(1)
  1. 给定一个8位二进制数[11010010],下列选项中正确的是( ){{ select(8) }}
  • 若它是原码表示,该数代表的十进制数值为 2626
  • 若它是反码表示,该数代表的十进制数值为 46-46
  • 若它是补码表示,该数代表的十进制数值为 45-45
  • 若它是原码表示,该数的反码表示形式为[10101101]
  1. 执行以下代码后,a[1] 的值是( )
int a[3] = {1, 2, 3};
a[1] = a[0] + a[2];

{{ select(9) }}

  • 1
  • 2
  • 3
  • 4
  1. 下列关于 C++ 语言中数组的叙述,不正确的是( ){{ select(10) }}
  • 定义 int arr[5]; 创建了一个包含 55 个整型变量的数组。
  • 数组的第一个元素的下标是 00
  • 数组在定义时,其大小可以是一个变量(如 int n; cin >> n; int arr[n];)。
  • 可以通过 arr[0] 访问数组的第一个元素。
  1. 100100 盏灯泡排成一行,所有灯泡初始时都是关闭状态。现在进行如下操作:第 11 轮,你将每盏灯泡都切换一次(即从关闭变为开启);第 22 轮,每隔一盏灯切换一次(即切换第 2,4,6...2, 4, 6... 灯泡的状态);第 33 轮,每隔两盏灯切换一次(即切换第 3,6,9...3, 6, 9... 灯泡的状态),依此类推,直到第 100100 轮,只切换第 100100 盏灯泡的状态。请问,在完成这 100100 轮操作后,最终有多少盏灯泡是亮着的? {{ select(11) }}
  • 5
  • 8
  • 10
  • 12
  1. 将输入的字符串中所有大写字母变成小写,所有小写字母变成大写,其余字符不变,并输出。以下程序中能够正确实现该功能的为(){{ select(12) }}
  • string s;
    cin >> s;
    for(int i = 0; i < s.length(); i++)
    {
        if(s[i] <= 'a' && s[i] >= 'z')
            s[i] -= 32;
        else if(s[i] <= 'A' && s[i] >= 'Z')
            s[i] += 32;
    }
    cout << s;
    
  • string s;
    cin >> s;
    for(int i = 0; i < s.length(); i++)
    {
        if(s[i] >= 'a' && s[i] <= 'z')
            s[i] -= 'a' - 'A';
        else if(s[i] >= 'A' && s[i] <= 'Z')
            s[i] += 'a' - 'A';
    }
    cout << s;
    
  • string s;
    cin >> s;
    for(int i = 0; i < s.length(); i++)
    {
        if(s[i] >= 'a' && s[i] <= 'z')
            s[i] += 'a' - 'A';
        else if(s[i] >= 'A' && s[i] <= 'Z')
            s[i] -= 'a' - 'A';
    }
    cout << s;
    
  • string s;
    cin >> s;
    for(int i = 0; i < s.length(); i++)
    {
        if(s[i] <= 'a' && s[i] >= 'z')
            s[i] += 'A' - 'a';
        else if(s[i] <= 'A' && s[i] >= 'Z')
            s[i] -= 'A' - 'a';
    }
    cout << s;
    
  1. 以下代码的输出结果为()
int num = 13;
while(num)
{
    cout << (num & 1);
    num >>= 1;
}

{{ select(13) }}

  • 1011
  • 0100
  • 1101
  • 0010
  1. 以下代码的功能是( )
string s = "Hello,World";  
s.replace(s.find(','), 1, " ");

{{ select(14) }}

  • 删除逗号
  • 替换逗号为空格
  • 截取子串
  • 拼接字符串
  1. 表达式 (0x1A & 0xF) | 0x2 的结果是( ){{ select(15) }}
  • 0x2
  • 0xA
  • 0xC
  • 0x8

2 判断题(每题 22 分,共 2020 分)

  1. 补码统一了零的表示,并且简化了加减法运算。{{ select(16) }}
  • 正确
  • 错误
  1. 二进制数转换为十六进制时,每 44 位二进制数对应 11 位十六进制数。{{ select(17) }}
  • 正确
  • 错误
  1. 将整数 55 右移 >> 一位,再左移 << 一位,最后结果仍然为 55。{{ select(18) }}
  • 正确
  • 错误
  1. 伪代码也必须符合C++的语法规则。{{ select(19) }}
  • 正确
  • 错误
  1. 学校要从 nn 个人中选择若干人参加比赛,小明在这 nn 个人中。所有的选取方案中,有 2n12^{n-1} 种方案一定包含了小明。{{ select(20) }}
  • 正确
  • 错误
  1. 枚举法的时间复杂度通常较高,但可以保证找到所有解。{{ select(21) }}
  • 正确
  • 错误
  1. C++中,字符串的 substr() 函数返回的是截取的子串的起始位置。{{ select(22) }}
  • 正确
  • 错误
  1. 以下代码如果能够运行,输出结果一定是 00
int a = 1;
cout << (a >> 1);

{{ select(23) }}

  • 正确
  • 错误
  1. 同一个数值,用不同进制表示,结果一定是不同的。{{ select(24) }}
  • 正确
  • 错误
  1. 可以用枚举算法判断一个数是否为质数。{{ select(25) }}
  • 正确
  • 错误