100 #2007. 初赛营2_语法补强

初赛营2_语法补强

选择题(每题 10 分,共计 100 分)

  1. 以下哪个是选择结构的关键字? {{ select(1) }}
  • for
  • if
  • while
  • do-while
  1. 以下代码段的输出结果是什么?
     int i = 0;
     do {
         printf("%d ", i);
         i++;
     } while (i < 2);
    

{{ select(2) }}

  • 0
  • 0 1
  • 0 1 2
  • 1 2
  1. 以下 C 程序的输出结果是?
 int main() {
     int m = 14, n = 4;
     int p = m / n;
     int q = p + 5;
     printf("%d", q);
     return 0;
 }

{{ select(3) }}

  • 8
  • 8.5
  • 11
  • 9
  1. 以下数组定义中,符合正确的是? {{ select(4) }}
  • int a[5] = {1, 2, 3, 4, 5};
  • int a[2] = {1, 2, 3};
  • int a() = {1, 2, 3, 4, 5};
  • int a[5] = {1, 2, 3, 4, 5, 6};

5.以下对数组的描述中,错误的是? {{ select(5) }}

  • 数组可以存储相同类型的多个元素
  • 数组的下标从 0 开始
  • 数组的大小在定义后不能改变
  • 数组可以存储不同类型的元素
  1. 有以下函数定义,调用该函数正确的是?
    void fun(int a, int b) {
        int c = a + b;
        printf("%d\n", c);
    }
    

{{ select(6) }}

  • fun(1, 2);
  • fun(1);
  • fun();
  • fun(1, 2, 3);
  1. 以下关于递归函数的说法,错误的是? {{ select(7) }}
  • 递归函数必须有一个明确的结束条件
  • 递归函数的执行效率通常比非递归函数高
  • 递归函数在调用自身时,参数会发生变化
  • 递归函数可能会导致栈溢出
  1. 以下递归函数用于计算阶乘,请问下列说法错误的是?
int factorial(int n) {
    if (n == 0)
        return 1;
    else
        return n * factorial(n - 1);
}

{{ select(8) }}

  • n等于0的时候返回边界值
  • 没有用到递归算法
  • 可能会导致栈溢出
  • 计算结果可能不准确

9.以下关于 C++字符串的说法中,错误的是? {{ select(9) }}

  • 可以使用 strlen 函数获取字符串的长度
  • 字符串可以使用 + 运算符进行连接
  • 字符串以 '\0' 作为结束标志
  • 字符串可以直接与整数相乘
  1. 以下代码片段的输出是?
int main() {
    string str = "hello world";
    str.replace(6, 5, "HELLO");
    cout << str << std::endl;
    return 0;
}

{{ select(10) }}

  • hello HELLO
  • hello WORLD
  • helloHELLO
  • helloHHELLO