选择题 共14道

01 02 03 04 05 06 07 08 09 10 11 12 13 14


判断题 共10道

16 17 18 19 20 21 22 23 24 25


编程题 共2道

26 27

776 202506GESPC++四级试卷-考试
选择题 共14道
01

在C++中,声明一个指向整型变量的指针的正确语法是( )。

2分
登录后查看选项
02

下面的函数接收一个 行 列的二维数组并输出其中元素,则横线上不能填写( )。

void printArray(________) {

for (int i = 0; i < 3; ++i)

for (int j = 0; j < 4; ++j)

std::cout << arr[i][j] << " ";

}

2分
登录后查看选项
03

在C++中, int arr[3][4] 和 int* arr = new int[12] 均可模拟一个 行 列的二维数组。关于这两种方式,下面说法错误的是( )。

2分
登录后查看选项
04

关于以下 C++代码,说法正确的是( )。

int main() {

   greet();

   return 0;

}


void greet() {

   cout << "Hello!" << endl;

}

2分
登录后查看选项
05

在C++中,如果希望通过函数修改传入的结构体对象的内容,应该使用哪种参数传递方式?

2分
登录后查看选项
06

以下哪个选项正确描述了C++中形参和实参的区别?

2分
登录后查看选项
07

运行如下代码会输出( )。

int value = 100;


void print1() {

   int value = 50;

   cout << value << " ";

   cout << ::value << " ";

}


   void print2() {

       cout << value << " ";

}


print1();

print2();

2分
登录后查看选项
08

小杨在整理一副扑克牌的所有红心扑克牌,使其从小到大排列。他的做法是:最开始抓到第1张扑克牌被认为已经排好序;然后抓第2张扑克牌,将其插入至有序部分的正确位置;不断循环步骤,每次将新抓到扑克牌插入至有序部分,直至抓完所有扑克牌,这样抓牌结束时就完成了扑克牌的排序。小杨这种整理扑克牌的方式与( )排序的方式最接近。

2分
登录后查看选项
09

以下哪种情况是使用插入排序的合适场景?

2分
登录后查看选项
10

以下关于递推算法基本思想的描述,正确的是( )。

2分
登录后查看选项
11

给定如下算法,其时间复杂度为( )。

bool f(int arr[], int n, int target) {

   for (int i = 0; i < 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;

}

2分
登录后查看选项
12

下述斐波那契数列计算的时间复杂度是( )。

int fibonacci(int n) {

   if (n == 0) return 0;

   if (n == 1) return 1;

   return fibonacci(n - 1) + fibonacci(n - 2);

}

2分
登录后查看选项
13

关于下面 C++ 程序的描述,( )最准确。

ifstream in("data.txt");

string line;

while (getline(in, line)) {

       cout << line << endl;

}

2分
登录后查看选项
14

在C++中,异常处理机制(try-catch块)的主要目的是( )。

2分
登录后查看选项
判断题 共10道
16

下面C++代码正确声明了一个返回 int 类型、接受两个 int 参数的函数。

int add(int, int);

2分
登录后查看选项
17

下面C++代码的输出是 15 。

void foo(int x) {

   x += 5;

}

int main() {

   int a = 10;

   foo(a);

   cout << a << endl;

}

2分
登录后查看选项
18

下面c++代码在一个结构体中又定义了别的结构体。这种结构嵌套定义的方式语法不正确。

#include <string>

#include <vector>


using namespace std;


struct Library {

       struct Book {

               struct Author {

                       string name;

                       int birthYear;

               };


               string title;

               int year;

               Author author;

       };


       string name;

       vector<Book> books;

};

2分
登录后查看选项
19

在C++中,相比于值传递,使用引用传递作的优点可以直接操作和修改原始变量,避免数据拷贝,提高效率。

2分
登录后查看选项
20

下面这段代码不合法,因为每一行都必须显式初始化 个元素。

int arr[2][3] = {{1, 2}, {3}};

2分
登录后查看选项
21

以下程序中使用了递推方式计算阶,计算结果正确。

int factorial(int n) {

       int res = 1;

       for (int i = 0; i < n; ++i) {

               res *= i;

       }

       return res;

}

2分
登录后查看选项
22

无论初始数组是否有序,选择排序都执行O(n^2)次比较。

2分
登录后查看选项
23

以下C++代码,尝试对有 n 个整数的数组 arr 进行排序。这个代码实现了选择排序算法。

for (int i = 0; i < n - 1; ++i) {

       int minIndex = i;

       for (int j = i + 1; j < n; ++j) {

               if (arr[j] < arr[minIndex])

                       minIndex = j;

       }

       if (minIndex != i)

               swap(arr[i], arr[minIndex]);

}

2分
登录后查看选项
24

如果一个异常在 try 块中抛出但没有任何 catch 匹配,它将在编译时报错。

2分
登录后查看选项
25

下面C++代码实现将 Hello 写入 data.txt 。

ofstream out("data.txt");

out << "Hello";

out.close();

2分
登录后查看选项
编程题 共2道
26

25分
登录后作答
27

25分
登录后作答