#L0009. GESP 四级 模拟赛 R1——客观题
GESP 四级 模拟赛 R1——客观题
1 单选题(每题 2 分,共 30 分)
- 下列代码中,函数声明正确的是( )。{{ select(1) }}
-
int add(int a, int b); -
add(int a, int b); -
int add(a, b); -
void add(int a, int b) { return a + b; }
- 定义一个包含姓名和年龄的结构体(默认已使用
using namespace std;),正确的是( )。{{ select(2) }}
struct Person { string name; int age; };struct Person { char name[20]; int age; };struct Person { std::string name; int age; };- 以上均正确
- 执行以下代码,输出结果是( )。
#include <iostream>
using namespace std;
void calc(int x, int& square, int& cube) {
square = x * x;
cube = x * x * x;
}
int main() {
int a = 5, b = 0, c = 0;
calc(a, b, c);
cout << b << " " << c;
return 0;
}
{{ select(3) }}
- 0 0
- 5 5
- 25 125
- 编译错误
- 下列指针操作中,符合代码规范的是( )。{{ select(4) }}
int a = 10; int* p = &a; *p = 20;int* p; *p = 10;int a[5]; int* p = a; p = p + 10;int* p = new int; delete p; *p = 5;
- 递推算法的核心是( )。{{ select(5) }}
- 递归调用
- 分而治之
- 通过前项推导后项
- 通过未知量推导已知量
- 以下函数的功能是( )。
int f(int n) {
int s = 0;
for (int i = 1; i <= n; i++) s += i;
return s;
}
{{ select(6) }}
- 求 1 到 n 的和
- 求 n 的阶乘
- 求 n 的平方
- 求 n 到 1 的差
- 下列排序算法中,不稳定且时间复杂度为(O(n^2))的是( )。 {{ select(7) }}
- 插入排序
- 冒泡排序
- 选择排序
- 归并排序
- 下列关于指针和引用的说法,错误的是( )。 {{ select(8) }}
- 指针可以为空,引用必须绑定有效对象
- 指针可以重新指向其他对象,引用一旦绑定不可改变
- 引用的声明可以不进行初始化,之后再绑定对象
- 指针需要解引用操作,引用直接使用
- 以下代码的时间复杂度是( )。
#include <iostream>
using namespace std;
int main() {
int n, sum = 0;
cin >> n;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
sum++;
cout << sum;
return 0;
}
{{ select(9) }}
- O(n)
- O(n^2)
- O(n log n)
- O(2^n)
- 下面是一个排序代码的实现,说法正确的是()。
void sort(int arr[], int n) {
for (int i = 1; i < n; i++) {
int key = arr[i];
int j = i-1;
while (j >= 0 && arr[j] < key) {
arr[j+1] = arr[j];
j--;
}
arr[j+1] = key;
}
}
{{ select(10) }}
- 实现了升序选择排序
- 实现了降序选择排序
- 实现了升序插入排序
- 实现了降序插入排序
- 下列代码的目的是实现文件写入,正确的是( )。
#include <fstream>
int main() {
std::ofstream file("data.txt");
file << "GESP";
file.close();
return 0;
}
{{ select(11) }}
- 发生错误,缺少头文件
iostream - 发生错误,应使用
ifstream - 发生错误,应提前创建文件
data.txt - 正确写入文件
- 下列C++中异常处理的相关说法,正确的是( )。{{ select(12) }}
catch可以捕获特定类型的异常catch可以不与try配合使用- 一个
try后不可以有多个catch - 异常处理可以替代错误检查
- 执行以下代码,输出结果是( )。
#include <iostream>
using namespace std;
int main() {
int arr[2][3] = {{1, 2, 3}, {4, 5, 6}};
int* p = &arr[0][0];
cout << *(p + 3);
return 0;
}
{{ select(13) }}
- 3
- 4
- 5
- 编译错误
- 以下代码执行后,输出结果是( )。
#include <iostream>
using namespace std;
struct Point {
int x, y;
};
int main() {
Point p = {3, 4};
cout << p.x + p.y;
return 0;
}
{{ select(14) }}
- 3
- 4
- 7
- 34
- 二维数组作为函数参数时,正确的声明是( )。 {{ select(15) }}
void func(int arr[][], int rows, int cols)void func(int arr[][5], int rows)void func(int* arr[], int rows)void func(int* arr, int rows, int cols)
2 判断题(每题 2 分,共 20 分)
- 结构体变量可以作为函数参数值传递。( ){{ select(16) }}
- 正确
- 错误
- 递推算法可以在运行过程中调用自身。(){{ select(17) }}
- 正确
- 错误
- 所有的排序算法都可以在内存中直接完成,不需要借助外部存储。( ) {{ select(18) }}
- 正确
- 错误
- 冒泡排序在最好情况下的时间复杂度为 O(n)。( ){{ select(19) }}
- 正确
- 错误
- 如此定义并初始化二维数组
int arr[][4] = {{1,2}, {3}};会导致编译错误。( ) {{ select(20) }}
- 正确
- 错误
- 以下代码中,两次
cnt的输出不同。( )
#include <iostream>
using namespace std;
int cnt = 1;
void func() {
cnt++;
}
int main() {
int cnt = 0;
func();
cout << cnt;
func();
cout << cnt;
return 0;
}
{{ select(21) }}
- 正确
- 错误
- C++ 中可以使用
ifstream类的对象从文件中读取数据。( ) {{ select(22) }}
- 正确
- 错误
- 函数的形参在函数调用时才会分配内存。( ) {{ select(23) }}
- 正确
- 错误
throw语句可以抛出任意类型的对象,包括自定义结构体。( ) {{ select(24) }}
- 正确
- 错误
- C++ 中可以使用
freopen函数将标准输入输出重定向到文件。( ){{ select(25) }}
- 正确
- 错误
相关
在下列比赛中: