#G1111. 客观题

客观题

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

  1. 小杨父母带他到某培训机构给他报名参加 CCF\tt CCF 组织的 GESP\tt GESP 认证考试的第 11 级,那他可以选择的认证语言有几种?( )

{{ select(1) }}

  • 11
  • 22
  • 33
  • 44
  1. 下面流程图在 yryr 输入 20242024 时,可以判定 yryr 代表闰年,并输出 2月是29天,则图中菱形框中应该填入( )。

{{ select(2) }}

  • (yr%400==0) || (yr%4==0)
  • (yr%400==0) || (yr%4==0 && yr%100!=0)
  • (yr%400==0) && (yr%4==0)
  • (yr%400==0) && (yr%4==0 && yr%100!=0)
  1. C\tt C++ 中,下列不可做变量的是( )。

{{ select(3) }}

  • five-Star
  • five_star
  • fiveStar
  • _fiveStar
  1. C\tt C++ 中,与 for (int i = 0; i < 10; i++) 效果相同的是( )。

{{ select(4) }}

  • for (int i = 0; i < 10; i += 1)
  • for (int i = 1; i <= 10; i++)
  • for (int i = 10; i > 0; i--)
  • for (int i = 10; i < 1; i++)
  1. C\tt C++ 中,cout << (5 % 2 && 5 % 3) 的输出是( )。

{{ select(5) }}

  • 11
  • 22
  • true\tt true
  • false\tt false
  1. 执行下面的 C\tt C++ 代码时输入 11,则输出是( )。

    int month;
    
    cin >> month;
    
    switch(month){
        case 1:
            cout << "Jan ";
        case 3:
            cout << "Mar ";
            break;
        default:
            ;
    }
    

{{ select(6) }}

  • Jan\tt Jan
  • Mar\tt Mar
  • Jan  Mar\tt Jan\ \ Mar
  • 以上均不对
  1. 执行下面 C\tt C++ 代码后,有关说法错误的是( )。

    int a, b;
    cin >> a >> b;
    if (a && b)
        cout << "1";
    else if (!(a || b))
        cout << "2";
    else if (a || b)
        cout << "3";
    else
        cout << "4";
    

{{ select(7) }}

  • 如果先后输入 1111,则将输出 11
  • 如果先后输入 0011 或者 1100,则将输出 33
  • 如果先后输入 0000,则将输出 22
  • 如果先后输入 0000,则将输出 44
  1. 某货币由 55 元,22 元和 11 元组成。输入金额(假设为正整数),计算出最少数量。为实现其功能,横线处应填入代码是( )。

    int N;
    cin >> N;
    
    int M5, M2, M1;
    M5 = N / 5;
    M2 = ______________;
    M1 = ______________;
    printf("5*%d+2*%d+1*%d", M5, M2, M1);
    

{{ select(8) }}

  • 11 横线处应填入:N / 2;第 22 横线处应填入:N - M5 - M2
  • 11 横线处应填入:(N - M5 * 5) / 2;第 22 横线处应填入:N - M5 * 5 - M2 * 2
  • 11 横线处应填入:N - M5 * 5 / 2;第 22 横线处应填入:N - M5 * 5 - M2 * 2
  • 11 横线处应填入:(N - M5 * 5) / 2;第 22 横线处应填入:N - M5 - M2
  1. 下面 C\tt C++ 代码执行后的输出是( )。

    int loopCount = 0;
    for (int i = 0; i < 10; i++)
        for (int j = 1; j < i; j++)
            loopCount += 1;
    cout << loopCount;
    

{{ select(9) }}

  • 5555
  • 4545
  • 3636
  • 2828
  1. 下面 C\tt C++ 代码执行后的输出是( )。

    int loopCount = 0;
    for (int i = 0; i < 10; i++) {
        for (int j = 0; j < i; j++)
            if (i * j % 2)
                break;
        loopCount += 1;
    }
    cout << loopCount;
    

{{ select(10) }}

  • 2525
  • 1616
  • 1010
  • 99
  1. 假设下面 C\tt C++ 代码执行过程中仅输入正负整数或 00,有关说法错误的是( )。

    int N, Sum = 0;
    cin >> N;
    while (N) {
        Sum += N;
        cin >> N;
    }
    cout << Sum;
    

{{ select(11) }}

  • 执行上面代码如果输入 00,将终止循环
  • 执行上面代码能实现所有非 00 整数的求和
  • 执行上面代码第一次输入 00,最后将输出 00
  • 执行上面代码将陷入死循环,可将 while (N) 改为 while (N == 0)
  1. 执行下面的 C\tt C++ 代码,有关说法正确的是( )【质数是指仅能被 11 和它本身整除的正整数】。

    int N;
    cin >> N;
    bool Flag = true;
    for ( int i = 2; i < N; i++) {
        if (i * i > N)
            break;
        if (N % i == 0) {
            Flag = false;
            break;
        }
    }
    if (Flag)
        cout << N << "是质数" << endl;
    else
        cout << N << "不是质数" << endl;
    

{{ select(12) }}

  • 如果输入正整数,上面代码能正确判断 NN 是否为质数
  • 如果输入整数,上面代码能正确判断 NN 是否为质数
  • 如果输入大于等于 00 的整数,上面代码能正确判断 NN 是否质数
  • 如将 Flag = true 修改为 Flag = N>=2 ? true : false 则能判断所有整数包括负整数、00、正整数是否为质数
  1. 下面 C\tt C++ 代码用于实现如下图所示的效果,其有关说法正确的是( )。

    1
    2 4
    3 6 9
    4 8 12 16
    5 10 15 20 25
    
    for (int i = 1; i < 6; i++) { // L1
        for (int j = 1; j < i+1; j++) //L2
            cout << i*j << " ";
        cout << endl;
    }
    

{{ select(13) }}

  • 当前代码能实现预期效果,无需调整代码
  • 如果 cout << endl; 移到循环 L2\tt L2 内部,则可实现预期效果
  • 如果 cout << endl; 移到循环 L1\tt L1 外部,则可实现预期效果
  • 删除 cout << endl; 行,则可实现预期效果
  1. 下面 C\tt C++ 代码执行后,输出是( )。

    int cnt1 = 0, cnt2 = 0;
    for (int i = 0; i < 10; i++) {
        if (i % 2 == 0)
            continue;
        if (i % 2)
            cnt1 += 1;
        else if (i % 3 == 0)
            cnt2 += 1;
    }
    cout << cnt1 << " " << cnt2;
    

{{ select(14) }}

  • 5  2\tt 5\ \ 2
  • 5  0\tt 5\ \ 0
  • 0  2\tt 0\ \ 2
  • 0  0\tt 0\ \ 0
  1. 在下面的 C\tt C++ 代码中,NN 必须是小于 1010 大于 11 的整数,MM 为正整数(大于 00)。如果 MMNN 整除则 MM 为幸运数,如果 MM 中含有 NN 且能被 NN 整除,则为超级幸运数,否则不是幸运数。程序用于判断 MM 是否为幸运数或超级幸运数或非幸运数。阅读下面代码,有关说法正确的是( )。

    int N, M;
    cout << "请输入幸运数字:";
    cin >> N;
    cout << "请输入正整数:";
    cin >> M;
    
    bool Lucky;
    if (M % N == 0)
        Lucky = true;
    else
        Lucky = false;
    while (M) {
        if (M % 10 == N && Lucky) {
            printf("%d是%d的超级幸运数!", M, N);
            break;
        }
        M /= 10;
    }
    if (M == 0)
        if (Lucky)
            printf("%d是%d的幸运数!", M, N);
        else
            printf("%d非%d的幸运数!", M, N);
    

{{ select(15) }}

  • 如果 NN 输入 33MM 输入 3636 则将输出:36是3的超级幸运数!
  • 如果 NN 输入 77MM 输入 2121 则将输出:21是7的幸运数!
  • 如果 NN 输入 88MM 输入 3636 则将输出:36非8的超级幸运数!
  • 如果 NN 输入 33MM 输入 6363 则将输出:63是3的超级幸运数!

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

  1. 执行 C\tt C++ 代码 cout << '9'+'1'; 的输出为 1010。( )

{{ select(16) }}

  • 正确
  • 错误
  1. C\tt C++ 表达式 -12 % 10 的值为 22。( )

{{ select(17) }}

  • 正确
  • 错误
  1. C\tt C++ 表达式 int(12.56) 的值为 1313。( )

{{ select(18) }}

  • 正确
  • 错误
  1. C\tt C++ 的整型变量 NN 被赋值为 1010,则语句 cout << N / 3 << "-" << N % 3 执行后输出是 31\tt 3-1。( )

{{ select(19) }}

  • 正确
  • 错误
  1. C\tt C++ 代码中,不可以将变量命名为 scanf\tt scanf,因为 scanf\tt scanfC\tt C++ 语言的关键字。( )

{{ select(20) }}

  • 正确
  • 错误
  1. 下面 C\tt C++ 代码执行后将导致死循环。( )

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

{{ select(21) }}

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

    int cnt = 0;
    for (int i = 0; i < 10; i++)
        for (int j = 0; j < i; j++) {
            cnt += 1;
            break;
        }
    cout << cnt;
    

{{ select(22) }}

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

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

{{ select(23) }}

  • 正确
  • 错误
  1. 下面 C\tt C++ 代码能实现正整数各位数字之和。( )

    int N, Sum = 0;
    cin >> N;
    while (N){
        Sum += N % 10;
        N /= 10;
    }
    cout << Sum;
    

{{ select(24) }}

  • 正确
  • 错误
  1. GESP\tt GESP 测试是对认证者的编程能力进行等级认证,同一级别的能力基本上与编程语言无关。( )

{{ select(25) }}

  • 正确
  • 错误