佛大附属信奥 在线评测 · 分级学习
登录

GESP C++ 四级 · 2025 年 3 月认证理论卷

登录 后作答才能记录成绩

一、单选题(每题 2 分)

1. 关于下述代码,说法错误的是( )。 ```cpp int multiply(int x, int y); int main() { int a = 4; int b = 5; int result = multiply(a, b); std::cout << "The result is: " << result << std::endl; return 0; } int multiply(int x, int y) { return x * y; } ```
2. 执行下述代码将输出( )。 ```cpp int x = 10; void func() { int x = 20; std::cout << x; } int main() { func(); std::cout << x; return 0; } ```
3. 执行下述代码后,变量a的值为( )。 ```cpp int a = 10; int* p = &a; *p = 20 ```
4. 以下哪种参数传递方式可以避免拷贝大型对象?
5. 执行下述代码,将输出( )。 ```cpp void swap(int a, int &b) { int temp = a; a = b; b = temp; } int main() { int x = 1, y = 2; swap(x, y); std::cout << x << y; return 0; } ```
6. 下面的描述中,( )正确定义一个名为Person的结构体并正确初始化了一个Person结构体的变量p。
7. 给定如下代码, ```cpp struct Person { std::string name; int age; struct Address { std::string street; std::string city; }; Address address; }; ``` 下面描述错误的是( )。
8. 假设int arr[2][3] = {{1,2,3},{4,5,6}};,则arr[1][2]的值是( )。
9. 下面( )正确定义了二维数组。
10. 小杨正在爬楼梯,需要爬n阶才能到达楼顶。如果每次可以爬1个或2个台阶,下面代码采用递推算法来计算一共有多少种不同的方法可以爬到楼顶,则横线上应填写( )。 ```cpp int f(int n) { if (n == 1 || n == 2) return n; int f1 = 1; int f2 = 2; int res = 0; for (int i = 3; i <= n; i++) { ________________________________ // 在此处填入代码 } return res; } ```
11. 给定如下算法,其时间复杂度为( )。 ```cpp bool f(int arr[], int n, int target) { for (int i = 0; i < (1 << n); i++) { int sum = 0; for (int j = 0; j < n; j++) { if (i & (1 << j)) { sum += arr[j]; } } if (sum == target) return true; } return false; } ```
12. 下面关于排序稳定性的描述,正确的是( )。
13. 对数组arr[]={5, 3, 8, 1}进行升序排序,执行第一轮冒泡排序后数组arr中的内容为( )。
14. 运行下面的代码,将出现( )。 ```cpp double hmean(double a, double b) { if (a == -b ) throw runtime_error("Runtime error occurred."); return 2.0*a*b/(a + b); } int main() { double x = 10; double y = -10; try { int result = hmean(x, y); cout << "hmean: " << result << endl; } catch (const runtime_error& e) { cout << "Caught: " << e.what() << endl; } catch (...) { cout << "Caught an unknown exception." << endl; } return 0; } ```
15. 下面哪种方式不能实现将字符串"Happy Spring!"输出重定向到文件log.txt( )。

二、判断题(每题 2 分)

1. 函数是C++中的核心概念,用于封装可重用的代码块。 ( )
2. 在C++中,函数的返回类型可以省略,默认为int。 ( )
3. 结构体的成员默认是public访问权限。 ( )
4. 假设整数数组arr[4]= {0, 1, 2, 3};的第一个元素在内存中的地址为0x7ffee4065820, 经过int* p = arr; p += 1;后,指针p的值是1。 ( )
5. 二维数组作为函数参数时,必须显式指定所有维度的大小。 ( )
6. 递推是一种通过已知的初始值和递推公式,逐步求解目标值的算法。 ( )
7. 考虑最坏情况下冒泡排序算法的时间复杂度,n为待排序数字的数目为$O(n^2)$的复杂度,则其递推关系式为T(n) = T(n-1) + n - 1,T(1) = 0。 ( )
8. 插入排序在最好情况(已有序)下的时间复杂度是$O(n)$。 ( )
9. 对数组arr[]={4, 3, 1, 5, 2}进行升序排序,执行第一轮选择排序后数组arr中的内容是{1, 4, 3, 5, 2}。 ( )
10. 未捕获异常会调用std::terminate终止程序。 ( )