#X1004. CSP初赛营2-语法补强

CSP初赛营2-语法补强

  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
  • 19
  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};
  1. 以下对数组的描述中,错误的是?

{{ 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) }}

  • 没有错误
  • 缺少对负数的处理
  • 可能会导致栈溢出
  • 计算结果可能不准确
  1. 以下关于 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