#L0021. GESP 三级 模拟赛 R2——客观题

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

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

  1. 已知 int a[4] = {4, 7, 1, 9};,执行 a[1] = a[3] - a[0]; cout << a[1] + a[2]; 的输出结果是( ){{ select(1) }}
  • 6
  • 5
  • 10
  • 16
  1. 以下代码的功能是( )
int a[6] = {3, 5, 1, 8, 2, 6};
int s = 0;
for (int i = 0; i < 6; i++)
    if (a[i] % 2 == 1) s += a[i];
cout << s;

{{ select(2) }}

  • 求数组中所有偶数之和
  • 求数组中元素的最大值
  • 求数组中元素的个数
  • 求数组中所有奇数之和
  1. 关于 ASCII 编码,下列说法正确的是( ){{ select(3) }}
  • 字符 'A' 的 ASCII 码值是 9797
  • 小写字母的 ASCII 码值比对应的大写字母小 3232
  • 数字字符 '0' 的 ASCII 码值是 4848
  • ASCII 编码一共定义了 256256 个字符
  1. 下面一段伪代码用于计算并输出 sum 的值:
sum ← 0
i ← 1
当 i ≤ 4 时循环执行:
    sum ← sum + i × i
    i ← i + 1
输出 sum

执行后输出的结果是( ){{ select(4) }}

  • 10
  • 30
  • 55
  • 100
  1. 执行 char c = 'A' + 4; cout << c; 的输出结果是( ){{ select(5) }}
  • E
  • D
  • 65
  • a
  1. 十进制数 2929 转换成二进制数是( ){{ select(6) }}
  • 11011
  • 11110
  • 11101
  • 10111
  1. 下列关于枚举法的说法,错误的是( ){{ select(7) }}
  • 枚举法需要逐一列举所有可能的候选解
  • 只要候选解的范围完整,枚举法一定能找到正确解
  • 枚举法的时间开销通常比直接套用公式要大
  • 枚举法只能用来解决数学计算问题
  1. 一个 8 位原码 [10110100] 表示的十进制数是( ){{ select(8) }}
  • 52
  • -52
  • -44
  • 44
  1. 执行以下代码后,输出的结果是( )
int a[5] = {6, 10, 15, 21, 8};
int cnt = 0;
for (int i = 0; i < 5; i++)
    if (a[i] % 3 == 0) cnt++;
cout << cnt;

{{ select(9) }}

  • 2
  • 5
  • 4
  • 3
  1. 在 C++ 中,关于数组下标越界访问,下列说法正确的是( ){{ select(10) }}
  • 编译时一定会报错
  • 运行时一定会立刻崩溃
  • 属于未定义行为,程序结果无法预料
  • 越界访问会被编译器自动忽略
  1. 一场聚会上 nn 位同学两两握手,每两人之间恰好握手一次,总共的握手次数是( ){{ select(11) }}
  • n(n1)2\frac{n(n-1)}{2}
  • n(n1)n(n-1)
  • n2n^2
  • n(n+1)2\frac{n(n+1)}{2}
  1. 将字符串中的所有小写字母转换成大写字母,其余字符不变,以下程序中能够正确实现该功能的是( ){{ select(12) }}
  • string s;
    cin >> s;
    for (int i = 0; i < s.length(); i++)
    {
        if (s[i] >= 'a' && s[i] <= 'z')
            s[i] = 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] = 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] = 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] = s[i] - 32;
    }
    cout << s;
    
  1. 执行 int a = 7; cout << (a << 2); 的输出结果是( ){{ select(13) }}
  • 9
  • 14
  • 49
  • 28
  1. 已知字符串 string s = "Hello, World";,执行 cout << s.find('W'); 的输出结果是( ){{ select(14) }}
  • 6
  • 7
  • 8
  • -1
  1. 表达式 (0x3C >> 2) & 0x7 的值是( ){{ select(15) }}
  • 0x7
  • 0x3
  • 0xF
  • 0xC

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

  1. 补码表示中,00 只有一种表示形式。{{ select(16) }}
  • 正确
  • 错误
  1. 十进制数 100100 的十六进制表示是 6E。{{ select(17) }}
  • 正确
  • 错误
  1. 在数值不发生溢出的情况下,一个非负的 int 类型数左移 44 位,相当于该数乘以 1616。{{ select(18) }}
  • 正确
  • 错误
  1. 判断一个整数 nnn2n \ge 2)是否为质数,可以从 22n1n-1 逐一试除,只要有一个数能整除 nnnn 就不是质数。{{ select(19) }}
  • 正确
  • 错误
  1. 对于同一个问题,枚举法的时间复杂度一定是最优的。{{ select(20) }}
  • 正确
  • 错误
  1. 字符串的 substr(pos, len) 中,参数 len 表示截取的终止位置。{{ select(21) }}
  • 正确
  • 错误
  1. 表达式 (a ^ b) ^ b 的值恒等于 a。{{ select(22) }}
  • 正确
  • 错误
  1. 所有的十进制小数都能用有限位的二进制小数精确表示。{{ select(23) }}
  • 正确
  • 错误
  1. 流程图中的菱形框通常用来表示判断。{{ select(24) }}
  • 正确
  • 错误
  1. 1616 个二进制位最多能表示 6553665536 种不同的值。{{ select(25) }}
  • 正确
  • 错误