#G1159. 客观题

客观题

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

  1. 20242024101088 日,诺贝尔物理学奖 “意外地” 颁给了两位计算机科学家约翰·霍普菲尔德(John J. Hopfield\tt John\ J.\ Hopfield)和杰 弗·顿(Geoffrey E. Hinton\tt Geoffrey\ E.\ Hinton)。这两位科学家的主要研究向是( )。

{{ select(1) }}

  • 天体物理
  • 流体力学
  • 人工智能
  • 量理理论
  1. 计算机系统中存储的基本单位用 B\tt B 来表示,它代表的是( ),比如某个照片大小为 3 MB3\ \tt MB

{{ select(2) }}

  • Byte\tt Byte
  • Block\tt Block
  • Bulk\tt Bulk
  • Bit\tt Bit
  1. C\tt C++ 语句 cout << (3 + 3 % 3 * 2 - 1) 执行后输出的值是( )。

{{ select(3) }}

  • 1-1
  • 44
  • 5656
  • 22
  1. 下面 C\tt C++ 代码执行后其输出是( )。

    for (int i = 0; i < 10; i++)
        printf("%d", i);
    

{{ select(4) }}

  • 123456789123456789
  • 01234567890123456789
  • 1234567891012345678910
  • 012345678910012345678910
  1. 下面 C\tt C++ 代码的相关说法中,正确的是( )。

    int tnt;
    for (int i = 0; i < 10; i++)
        tnt += i;
    cout << tnt;
    

{{ select(5) }}

  • 上述代码执行后其输出相当于求 1101\sim 10 的和(包含 1010
  • 上述代码执行后其输出相当于求 1101\sim 10 的和(不包含 1010
  • 上述代码执行后其输出相当于求 0100\sim 10 的和(不包含 1010
  • 上述代码执行后将输出不确定的值
  1. 下面 C\tt C++ 代码执行后输出是( )。

    int i;
    
    for (i = 1; i < 10; i++)
        if (i % 2)
            continue;
        else
            break;
    
    cout << i;
    

{{ select(6) }}

  • 11
  • 22
  • 99
  • 1010
  1. 下面 C\tt C++ 代码执行后的输出是( )。

    for (i = 0; i < 10; i++) {
        if (i % 3)
            continue;
        printf("0#");
    }
    if (i >= 10)
        printf("1#");
    

{{ select(7) }}

  • 0#0#0#0#0#0#0#1#
  • 0#0#0#0#0#0#1#
  • 0#0#0#0#1#
  • 0#0#0#0#
  1. 下面 C\tt C++ 代码用于输出 01000\sim 100 之间(包含 100100)能被 77 整除但不能被 33 整除的数,横线处不能填入的代码是( )。

    for (i = 0; i < 100; i++)
        if (_____________)
            cout << i << endl;
    

{{ select(8) }}

  • i % 7 == 0 && i % 3 != 0
  • !(i % 7) && i % 3 != 0
  • i % 7 && i % 3
  • i % 7 == 0 && !(i % 3 == 0)
  1. 下面 C\tt C++ 代码用于求正整数各位数字之和,横线处不应填代码是( )。

    int tnt, N;
    printf("请输入正整数:");
    cin >> N;
    tnt = 0;
    while (N != 0) {
        ________________
        N /= 10;
    }
    cout << tnt;
    

{{ select(9) }}

  • tnt = tnt + N % 10
  • tnt += N % 10
  • tnt = N % 10 + tnt
  • tnt = N % 10
  1. 下面的 C\tt C++ 程序执行后的输出是( )。

    for (i = 0; i < 5; i++)
        for (j = 0; j < i; j++)
            cout << j;
    

{{ select(10) }}

  • 00101201230010120123
  • 0101201230123401012012301234
  • 001012012301234001012012301234
  • 0101201230123401234501012012301234012345
  1. 下面 C\tt C++ 代码用于实现图示的九九乘法表。相关说法错误的是( )。

    /*
    1*1=1
    1*2=2 2*2=4
    1*3=3 2*3=6 3*3=9
    1*4=4 2*4=8 3*4=12 4*4=16
    1*5=5 2*5=10 3*5=15 4*5=20 5*5=25
    1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36
    1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49
    1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64
    1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81
    */
    for (int Hang=1; Hang<10; Hang++) {
        for (int Lie=1; Lie<Hang+1; Lie++) {
            if (Lie * Hang > 9)
                printf("%d*%d=%d ", Lie, Hang, Lie*Hang);
            else
                printf("%d*%d=%d ", Lie, Hang, Lie*Hang);
            // L2
        }
    
        printf("\n"); // L1
    }
    

{{ select(11) }}

  • L1\tt L1 注释的 printf("\n") 移到 L2\tt L2 注释所在行,效果相同
  • L1\tt L1 注释的 printf("\n") 修改为 print("%c", '\n') 效果相同
  • Lie * Hang > 9 修改为 Lie * Hang >= 10 效果相同
  • Lie * Hang > 9 修改为 Hang * Lie > 9 效果相同
  1. 在数学中 N!N!NN 的阶乘,即 11NN 的乘积,如 3!=1×2×33!=1\times 2\times 3。下面的 C\tt C++ 用于求 1N1\sim N 的阶乘之和,如 NN33,则是 1!+2!+3!1!+2!+3!。下面代码段补充选项后用于实现上述功能,其中不能实现阶乘和的选项是( )。

    int N;
    
    cin >> N;
    
    int tnt=0, nowNum = 1; //tnt保存求和之值,当前N的阶乘
    
    for (int i = 1; i < N + 1; i++) {
        ______________ // 基于上一个计算出当前数的阶乘
        ______________ // 从1到i每个数阶乘之和
    }
    
    cout << tnt;
    

{{ select(12) }}

  • nowNum *= i;
    tnt += nowNum;
    
  • nowNum = nowNum * i;
    tnt = tnt + nowNum;
    
  • nowNum *= i;
    tnt = nowNum + tnt;
    
  • nowNum = nowNum + i;
    tnt *= nowNum;
    
  1. 下面 C\tt C++ 代码用于输出 NNMM 之间(可以包括 NNMM)的孪生素数。孪生素数是指间隔为 22 的两个数均为素数,如 11111313 分别是素数,且间隔为 22isPrime(N) 用于判断 NN 是否为素数的函数。为完成上述功能,横线处应填上的代码是( )。

    int N, M;
    
    //本题假设N小于M
    cin >> N >> M;
    
    for (int i = N; i < __________; i++)
        if (isPrime(i) && isPrime(i + 2))
            printf("%d %d\n", i, i + 2);
    

{{ select(13) }}

  • M - 2
  • M - 1
  • M
  • M + 1
  1. 下面 C\tt C++ 代码实现输出如下图形,横线应填入的代码是( )。

    /*
    高度:5
        *
       ***
      *****
     *******
    *********
    */
    int height;
    cout << "高度: ";
    
    //获取用户输入的高度
    cin >> height;
    for (i = 0; i < height; i++) {
        //打印每行前面的空格
        for (j = 0; j < _______________; j++)
            cout << " ";
        //打印每行的星号
        for (k = 0; k < _______________; k++)
            cout << "*";
        //输出一行后,换行
        cout << endl;
    }
    

{{ select(14) }}

  • height - i
    2 * i
    
  • height
    2 * i
    
  • height - i
    2 * i + 1
    
  • height - i - 1
    2 * i + 1
    
  1. 下面 C\tt C++ 代码执行后的输出是 3030,则横线处不能填入( )。

    int a=10,b=20,c=30;
    
    cout << _____________________ << endl;
    
    cout << endl;
    

{{ select(15) }}

  • max(max(a, b), c)
  • min(a+b, c)
  • sqrt(a+b+c)
  • (a+b+c) / 2

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

  1. Windows\tt Windows 的资源管理器中为已有文件 A\tt A 建立副本的操作是 Ctrl+C\tt Ctrl+C,然后 Ctrl+V\tt Ctrl+V。( )

{{ select(16) }}

  • 正确
  • 错误
  1. C\tt C++ 代码中,假设 NN 为正整数,则 cout << (N - N / 10 * 10) 将获得 NN 的个位数。( )

{{ select(17) }}

  • 正确
  • 错误
  1. C\tt C++ 语句 cout << (10 <= N <= 12) 中,假设 NN1212,则其输出为 11。( )

{{ select(18) }}

  • 正确
  • 错误
  1. 如果 C\tt C++ 表达式 int(sqrt(N)) * int(sqrt(N)) == N 的值为 True\tt True,则说明 NN 为完全平数,如 44992525 等。( )

{{ select(19) }}

  • 正确
  • 错误
  1. 下面 C\tt C++ 代码执行后将输出 2*3=6。( )

    int a = 2, b = 3;
    printf("%%a*%%b=%d", a*b);
    

{{ select(20) }}

  • 正确
  • 错误
  1. 以下 C\tt C++ 代码因为循环变量为 _ 将导致错误,即 _ 不能作为变量名称,不符合 C\tt C++ 变量命名规范。( )

    for (int _ = 0; _ < 10; _++)
        continue;
    

{{ select(21) }}

  • 正确
  • 错误
  1. 下面 C\tt C++ 代码执行后因为有 break,将输出 00。( )

    int i;
    for (i = 0; i < 10; i++) {
        continue;
        break;
    }
    cout << i;
    

{{ select(22) }}

  • 正确
  • 错误
  1. 下面的 C\tt C++ 代码执行后将输出 1818OK。( )

    int i, j;
    for (i = 8; i > 2; i -= 2)
        for (j = 0; j < i; j++)
            printf("OK\n");
    

{{ select(23) }}

  • 正确
  • 错误
  1. 将下面 C\tt C++ 代码中的 i = 1 调整为 i = 0 的输出结果相同。( )

    int i;
    int cnt = 0;
    for (i = 1; i < 5; i++)
        if (i % 2) cnt += 1;
    cout << cnt;
    

{{ select(24) }}

  • 正确
  • 错误
  1. 下面两段 C\tt C++ 代码都是用于求 1101\sim 10 的和,其运行结果相同。通常说来,for 循环都可以用 while 循环实现。( )

    int tnt;
    int i;
    
    tnt = 0;
    for (i = 1; i < 10 + 1; i++)
        tnt += i;
    cout << tnt << endl;
    
    int tnt;
    int i;
    
    tnt = 0;
    i = 1;
    while (i <= 10) {
        tnt += i;
        i += 1;
    }
    cout << tnt << endl;
    

{{ select(25) }}

  • 正确
  • 错误