#L0009. GESP 四级 模拟赛 R1——客观题

GESP 四级 模拟赛 R1——客观题

1 单选题(每题 2 分,共 30 分)

  1. 下列代码中,函数声明正确的是( )。{{ 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; }  
    
  1. 定义一个包含姓名和年龄的结构体(默认已使用 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; };
  • 以上均正确
  1. 执行以下代码,输出结果是( )。
#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
  • 编译错误
  1. 下列指针操作中,符合代码规范的是( )。{{ 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;
  1. 递推算法的核心是( )。{{ select(5) }}
  • 递归调用
  • 分而治之
  • 通过前项推导后项
  • 通过未知量推导已知量
  1. 以下函数的功能是( )。
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 的差
  1. 下列排序算法中,不稳定且时间复杂度为(O(n^2))的是( )。 {{ select(7) }}
  • 插入排序
  • 冒泡排序
  • 选择排序
  • 归并排序
  1. 下列关于指针和引用的说法,错误的是( )。 {{ select(8) }}
  • 指针可以为空,引用必须绑定有效对象
  • 指针可以重新指向其他对象,引用一旦绑定不可改变
  • 引用的声明可以不进行初始化,之后再绑定对象
  • 指针需要解引用操作,引用直接使用
  1. 以下代码的时间复杂度是( )。
#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)
  1. 下面是一个排序代码的实现,说法正确的是()。
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) }}

  • 实现了升序选择排序
  • 实现了降序选择排序
  • 实现了升序插入排序
  • 实现了降序插入排序
  1. 下列代码的目的是实现文件写入,正确的是( )。
#include <fstream>  
int main() {  
  std::ofstream file("data.txt");  
  file << "GESP";  
  file.close();  
  return 0;  
}  

{{ select(11) }}

  • 发生错误,缺少头文件iostream
  • 发生错误,应使用ifstream
  • 发生错误,应提前创建文件data.txt
  • 正确写入文件
  1. 下列C++中异常处理的相关说法,正确的是( )。{{ select(12) }}
  • catch 可以捕获特定类型的异常
  • catch 可以不与 try 配合使用
  • 一个 try 后不可以有多个 catch
  • 异常处理可以替代错误检查
  1. 执行以下代码,输出结果是( )。
#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
  • 编译错误
  1. 以下代码执行后,输出结果是( )。
#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
  1. 二维数组作为函数参数时,正确的声明是( )。 {{ 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 分)

  1. 结构体变量可以作为函数参数值传递。( ){{ select(16) }}
  • 正确
  • 错误
  1. 递推算法可以在运行过程中调用自身。(){{ select(17) }}
  • 正确
  • 错误
  1. 所有的排序算法都可以在内存中直接完成,不需要借助外部存储。( ) {{ select(18) }}
  • 正确
  • 错误
  1. 冒泡排序在最好情况下的时间复杂度为 O(n)。( ){{ select(19) }}
  • 正确
  • 错误
  1. 如此定义并初始化二维数组int arr[][4] = {{1,2}, {3}};会导致编译错误。( ) {{ select(20) }}
  • 正确
  • 错误
  1. 以下代码中,两次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) }}

  • 正确
  • 错误
  1. C++ 中可以使用 ifstream 类的对象从文件中读取数据。( ) {{ select(22) }}
  • 正确
  • 错误
  1. 函数的形参在函数调用时才会分配内存。( ) {{ select(23) }}
  • 正确
  • 错误
  1. throw语句可以抛出任意类型的对象,包括自定义结构体。( ) {{ select(24) }}
  • 正确
  • 错误
  1. C++ 中可以使用 freopen 函数将标准输入输出重定向到文件。( ){{ select(25) }}
  • 正确
  • 错误