#2200. [GESP四级样题] 选择和判断题

[GESP四级样题] 选择和判断题

Description

一、单选题(每题 4 分,共 60 分)

  1. 在 C++中,指针变量的大小(单位:字节)是( ) A. 2 B. 4 C. 8 D. 与编译器有关

  2. 以下哪个选项能正确定义一个二维数组( ) A. int a[][]; B. char b[][4]; C. double c[3][]; D. bool d[3][4];

  3. 在 C++中,以下哪种方式不能用于向函数传递参数( ) A. 值传递 B. 引用传递 C. 指针传递 D. 模板传递

  4. 以下关于 C++函数的形参和实参的叙述,正确的是( ) A. 形参是实参的别名 B. 实参是形参的别名 C. 形参和实参是完全相同的 D. 形参用于函数声明,实参用于函数调用

  5. 排序算法的稳定性是指( ) A. 相同元素在排序后的相对顺序保持不变 B. 排序算法的性能稳定 C. 排序算法对任意输入都有较好的效果 D. 排序算法容易实现

  6. 如果有如下二维数组定义,则a[0][3]的值为( )

    int a[2][2] = {{0, 1}, {2, 3}};
    

    A. 编译出错 B. 1 C. 3 D. 0

  7. 以下哪个选项能正确访问二维数组 array 的元素( ) A. array[1, 2] B. array(1)(2) C. array[1][2] D. array{1}{2}

  8. 以下哪个选项是 C++中正确的指针变量声明( ) A. int *p; B. int p*; C. *int p; D. int* p*;

  9. 在 C++中,以下哪个关键字或符号用于声明引用( ) A. pointer B. & C. * D. reference

  10. 以下哪个递推关系式表示斐波那契数列( ) A. F(n) = F(n-1) + F(n-2) + F(n-3) B. F(n) = F(n-1) + F(n-2) C. F(n) = F(n-1) * F(n-2) D. F(n) = F(n-1) / F(n-2)

  11. 以下哪个函数声明在调用时可以传递二维数组的名字作为参数? A. void BubbleSort(int a[3][4]); B. void BubbleSort(int a[][]); C. void BubbleSort(int * a[]); D. void BubbleSort(int ** a);

  12. 在 C++中,以下哪个关键字用来捕获异常( ) A. throw B. catch C. try D. finally

  13. 在下列代码的横线处填写( ),可以使得输出是“20 10”。

    #include <iostream>
    using namespace std;
    void xchg(________________) { // 在此处填入代码 
        int t = x;
        x = y;
        y = t;
    }
    int main() {
        int a = 10, b = 20;
        xchg(a, b);
        cout << a << " " << b << endl; 
        return 0;
    }
    

    A. int x, int y B. int & x, int & y C. int a, int b D. int & a, int & b

  14. 在下列代码的横线处填写( ),可以使得输出是“21”。

    #include <iostream>
    using namespace std;
    int main() {
        int a[5];
        a[0] = 1;
        for (int i = 1; i < 5; i++)
    	a[i] = a[i – 1] * 2; 
        int sum = 0;
        for (int i = 0; i < 5; ________) // 在此处填入代码 
    	sum += a[i];
        cout << sum << endl;
        return 0; 
    }
    

    A. i++ B. i += 2 C. i += 3 D. i |= 2

  15. 在下列代码的横线处填写( ),完成对有n个int类型元素的数组array 由小到大排序。

    void BubbleSort(int array[], int n) { 
    for (int i = n; i > 1; i--)
        for (____________________) // 在此处填入代码 
    	if (array[j] > array[j + 1]) {
    	    int t = array[j]; 
    	    array[j] = array[j + 1]; 
    	    array[j + 1] = t;
    	} 
    }
    

    A. int j = i – 2; j >= 0; j-- B. int j = i - 1; j >= 0; j-- C. int j = 0; j < i - 1; j++ D. int j = 0; j < i; j++

二、判断题 (每题 4 分,共 40 分,正确填 T,错误填 F) 16. C++语言中的指针变量可以指向任何类型的数据。( )

  1. 在C++语言中,函数的参数默认以地址传递方式进行传递。( )

  2. C++语言中的全局变量在整个程序的生命周期内都是有效的。( )

  3. 递推算法通常有初始值。( )

  4. 冒泡排序是一种稳定的排序算法。( )

  5. C++语言中,如果异常发生,但没有处理异常的代码,则程序会由于一直等 待处理而死机。( )

  6. C++语言中的局部变量在函数调用结束后会被销毁。( )

  7. &和&&都是C++语言的运算符,*和**也都是。( )

  8. 如果希望设计一个函数xchg,实现交换两个int变量的值,则它的声明可 以写为 void xchg(int a,int b); 。( )

  9. 已知数组 a 定义为 int a[100]; ,则赋值语句 a['0'] = 3; 会导致编译 错误。( )

Input Format

一个整数,表示题号 nn1n251\le n\le 25)。

Output Format

一个大写字母,题号对应的答案。

Hint

  • 每题对应一个测试点输入,输入为题号,请使用模板代码作答,只需要将对应cout后面引号中的内容改为你的答案即可。不要动其他代码。
  • 区分大小写
  • 前后不能有空格

Source

GESP四级样题