#G1186. 客观题

客观题

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

  1. Base64 编码将每 33 字节的输入数据编码为 44 字节的输出数据。如果输入数据长度不是 33 的倍数,会用 == 号填充。在 Base64 编码中,如果输入字符串的长度为 1010 字节,编码后的字符串长度是多少?( )

{{ select(1) }}

  • 1212 字节
  • 1313 字节
  • 1414 字节
  • 1616 字节
  1. UTF-8 编码规则如下:

    • 11 字节:0xxxxxxx
    • 22 字节:110xxxxx 10xxxxxx
    • 33 字节:1110xxxx 10xxxxxx 10xxxxxx
    • 44 字节:11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

    以下哪个字节序列是合法的 UTF-8 编码?( )

{{ select(2) }}

  • 0xF0 0x80
  • 0xF0 0x90 0x80 0x80
  • 0x80 0x80 0x80
  • 0xFF 0xFE 0xFD
  1. 88 位二进制原码表示中,八进制数 5-5 的二进制形式是什么?( )

{{ select(3) }}

  • 1000010110000101
  • 1111101011111010
  • 1111101111111011
  • 0000010100000101
  1. 十进制数 111.111111.111 的二进制表示可以是下面的( )。

{{ select(4) }}

  • 1101111.00011100011101111.0001110001
  • 1101110.10011100011101110.1001110001
  • 1101111.10011100011101111.1001110001
  • 1101111.00111100011101111.0011110001
  1. 在 C++ 中,补码的主要作用是( )。

{{ select(5) }}

  • 提高浮点数的精度
  • 简化整数的加减法运算
  • 增加整数的表示范围
  • 优化内存分配
  1. 在 C++ 中,一个 88 位有符号整数(使用补码表示)的范围是( )。

{{ select(6) }}

  • 128-128127127
  • 127-127128128
  • 256-256255255
  • 00255255
  1. 在 C++ 中,以下代码的输出是什么?( )

    int a = -5;
    unsigned int b = a;
    cout << b;
    

{{ select(7) }}

  • 5-5
  • 55
  • 42949672914294967291
  • 编译错误
  1. 下列程序的作用是( )。

    int main() {
        int decimal = 25;
        cout << oct << decimal;
        return 0;
    }
    

{{ select(8) }}

  • 将十进制数转换成八进制数
  • 将八进制数转换成十进制数
  • 将二进制数转换成八进制数
  • 将八进制数转换成 1616 进制数
  1. 下面程序是将十进制转十六进制,横线处应该填入的是( )。

    #include <iostream>
    using namespace std;
    
    int main() {
        int decimal = 255;
        __________________
        return 0;
    }
    

{{ select(9) }}

  • cout << oct << decimal;
  • cout << decimal << decimal;
  • cout << hex << decimal;
  • 不能正确执行
  1. 以下代码的说法正确的是什么?( )

    #include <iostream>
    using namespace std;
    
    int main() {
        int a = 0b1101;
        int b = 0b1011;
        cout << (a ^ b);
        return 0;
    }
    

{{ select(10) }}

  • 进行的是整体异或运算
  • 进行的是按位同或运算
  • 进行的是按位与运算
  • 进行的是按位异或运算
  1. 下面枚举法查找最大值索引程序中,横线处应该填写的是( )。

    #include <iostream>
    using namespace std;
    
    int main() {
        int arr[] = {3, 7, 2, 9, 5};
        int maxIndex = 0;
        for (int i = 1; i < 5; i++) {
            ______________________
            {
                maxIndex = i;
            }
        }
        cout << maxIndex;
        return 0;
    }
    

{{ select(11) }}

  • if (arr[maxIndex] > arr[i])
  • if (arr[i]-1 > arr[maxIndex])
  • if (arr[i]+1 > arr[maxIndex])
  • if (arr[i] > arr[maxIndex])
  1. 以下代码的功能是将数组中的奇数和偶数分别放在数组的前半部分和后半部分,横线处应该填入的是( )。

    #include <iostream>
    using namespace std;
    
    int main() {
        int arr[] = {1, 2, 3, 4, 5};
        int left = 0, right = 4;
        while (left < right) {
            while (arr[left] % 2 == 1 && left < right) left++;
            ______________________
            if (left < right) {
                swap(arr[left], arr[right]);
            }
        }
        for (int i = 0; i < 5; i++) {
            cout << arr[i] << " ";
        }
        return 0;
    }
    

{{ select(12) }}

  • while (arr[left] % 2 == 0 && left < right) right--;
  • while (arr[right] % 2 == 0 && left < right) left--;
  • while (arr[right] % 2 != 0 && left < right) right--;
  • while (arr[right] % 2 == 0 && left < right) right--;
  1. 下面程序最后能够得到 HelloC++ 的是( )。

    int main() {
        string str = "HelloWorld";
        ___________________
        cout << str;
        return 0;
    }
    

{{ select(13) }}

  • str.replace(0, 5, "C++");
  • str.replace(5, 5, "C++");
  • str.replace(1, 5, "C++");
  • str.replace(4, 5, "C++");
  1. 想要得到字符串 world,下面程序横线处应该填入的是( )。

    #include <iostream>
    #include <string>
    using namespace std;
    
    int main() {
        string str = "HelloC++";
        _________________
        _________________
        return 0;
    }
    

{{ select(14) }}

  • str.insert(4, "World");
    cout << str.substr(4, 4);
    
  • cout << str.substr(5, 5);
    
  • str.insert("World");
    cout << str.substr(5, 5);
    
  • str.insert(5, "World");
    cout << str.substr(5, 5);
    
  1. nn 个正整数,假设一个正整数是美丽数字当且仅当该正整数是 99 的倍数但不是 88 的倍数。下面的程序是编写计算 nn 个正整数中美丽数字的数量,横线处应该填入的是( )。

    for (int i = 1; i <= n; i++) {
        cin >> a;
        __________________________
        cnt++;
    }
    

{{ select(15) }}

  • if (a % 9 != 0 && a % 8 != 0)
  • if (a % 9 == 0 & a % 8 == 0)
  • if (a % 9 == 0 && a % 8 != 0)
  • if (a % 9 == 0 & a % 8 != 0)

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

  1. 判断一个三角形是否成立的条件只有:任意两边长度之和大于第三条边的长度。( )

{{ select(16) }}

  • 正确
  • 错误
  1. 这段程序进行的是判断一个从键盘输入的字符的 ASCII 是否是奇数,若是,输出 YES,否则,输出 NO。( )

    int main()
    {
        char x;
        scanf("%c", &x);
        int ASCII = (int)x;
        cout << (x & 1 ? "YES" : "NO") << '\n';
        return 0;
    }
    

{{ select(17) }}

  • 正确
  • 错误
  1. 闰年的定义:

    • 普通闰年:公历年份是 44 的倍数,且不是 100100 的倍数的,为闰年(如 20042004 年、20202020 年等就是闰年)。
    • 世纪闰年:公历年份是整百数的,必须是 400400 的倍数才是闰年(如 19001900 年不是闰年,20002000 年是闰年)。

    下面程序是判断是否是闰年的正确程序。( )

    cin >> n;
    cout << ((n % 4 == 0 && n % 100 != 0) || (n % 400 == 0)) ? 1 : 0;
    return 0;
    

{{ select(18) }}

  • 正确
  • 错误
  1. C++ 语句 cout << (n % 15 == 0 ? "YES" : "NO"); 能够判断一个整数能否被 3355 同时整除。( )

{{ select(19) }}

  • 正确
  • 错误
  1. nn 个同学,从中抽取任意个人数来参加学校组织的大合唱,共有 22nn 次幂个方法。( )

{{ select(20) }}

  • 正确
  • 错误
  1. 若将一个正整数化为二进制数,在此二进制数中,我们将数字 11 的个数是偶数的这类二进制数称为 A 类数,否则就称其为 B 类数。

    例如:

    • (13)10=(1101)2(13)10 =(1101)2,其中 11 的个数为 33 则称此数为 B 类数;
    • (10)10=(1010)2(10)10 =(1010)2,其中 11 的个数为 22,称此数为 A 类数;

    判断 (2025)10(2025)10 化为二进制后,11 的个数为偶数个,因此 20252025 为 A 类数。( )

{{ select(21) }}

  • 正确
  • 错误
  1. 该段程序将 nn 不停地除以 22,并输出此时的商和余数,直到 n=0n=0 为止。( )

    long long n;
    cin >> n;
    while(n != 0) {
        cout << n/2 << ' ' << n%2 << '\n';
        n /= 2;
    }
    

{{ select(22) }}

  • 正确
  • 错误
  1. 两个 1313 进制的数 AABB,在 1010 进制下分别表示 10101111(A+B)13=(18)13(A+B)13=(18)13,也就是说 1313 进制数 AA 加上 1313 进制数 BB,和是 1313 进制数 1818。( )

{{ select(23) }}

  • 正确
  • 错误
  1. kk 进制,逢 kk 进第二位,k2k^2 进百位,k3k^3 进千位。( )

{{ select(24) }}

  • 正确
  • 错误
  1. CCF(\tt CCF(十九进制)=21AC(\tt) = 21AC(十三进制))(不区分大小写)。( )

{{ select(25) }}

  • 正确
  • 错误