#1188. GESP C++ 四 级 2026年9月真题 · 判断题

GESP C++ 四 级 2026年9月真题 · 判断题

GESP C++ 四 级 2026年9月真题(120 分钟,总分 100 分)

判断题(共 10 题,每题 2 分,共 20 分)

1. 执行下面程序后,变量 a 的值为 15。

int a = 10;
int *p = &a;
*p += 5;

{{ select(1) }}

  • 正确
  • 错误

2. 一个函数必须在调用之前既声明又定义。

{{ select(2) }}

  • 正确
  • 错误

3. 下面二维数组在内存中按行优先连续存储,因此 *(*(a + 1) + 0) 的值为 5。

int a[2][4] = {{1, 2, 3, 4}, {5, 6, 7, 8}};

{{ select(3) }}

  • 正确
  • 错误

4. 执行下面程序后会输出 20。

void change(int x) {
    x = 20;
}

int main() {
    int x = 10;
    change(x);
    cout << x;
    return 0;
}

{{ select(4) }}

  • 正确
  • 错误

5. 下面结构体初始化语句是合法的。

struct Point {
    int x;
    int y;
};

Point p{3, 4};

{{ select(5) }}

  • 正确
  • 错误

6. 对于按升序实现的稳定插入排序,移动元素的条件通常应为 a[j] >= key,这样能够保证相等元素的相对顺序不变。

while (j >= 0 && a[j] >= key) {
    a[j + 1] = a[j];
    j--;
}

{{ select(6) }}

  • 正确
  • 错误

7. 下面递推程序计算n!。当 n = 4 时,返回值为 24。

int factorial(int n) {
    int result = 1;
    for (int i = 1; i <= n; i++) {
        result *= i;
    }
    return result;
}

{{ select(7) }}

  • 正确
  • 错误

8. 下面两层循环的时间复杂度是 O (n²)。

for (int i = 0; i < n; i++) {
    for (int j = 1; j < n; j *= 2) {
        cout << i + j;
    }
}

{{ select(8) }}

  • 正确
  • 错误

9. 假设文件能够正常打开,下面程序会把 Welcome 写入 log.txt。

int main() {
    ofstream fout("log.txt");
    fout << "Welcome";
    fout.close();
    return 0;
}

{{ select(9) }}

  • 正确
  • 错误

10. 执行下面程序时,catch (int e) 能够捕获由 throw "Error" 抛出的异常,因此程序输出 Caught。

int main() {
    try {
        throw "Error";
    } catch (int e) {
        cout << "Caught";
    }
    return 0;
}

{{ select(10) }}

  • 正确
  • 错误