GESP C++ 真题 · 逐题精解
首页C++六级真题 › 2023年9月 › 第7题

GESP 2023年9月 C++六级 单选题 第7题

C++六级单选题2023年9月第7题

所属知识点:队列与循环队列 难度要求:— 考频:—

下面代码定义了基于数组实现的 ManyData 类(含 push()/pop())。关于该代码的说法,正确的是:
#include <iostream>
using namespace std;
class ManyData {
    int * __data;
    int head, tail, capacity;
public:
    ManyData(int cap) {
        capacity = cap;
        __data = new int[capacity];
        head = tail = 0;
    }
    void push(int val) {
        __data[tail++] = val;
    }
    int pop() {
        return __data[--tail];
    }
    int size() {
        return tail - head;
    }
};
int main() {
    auto myData = ManyData(100);
    myData.push(1);
    myData.push(2);
    myData.push(3);
    cout << myData.size() << endl;
    cout << myData.pop() << endl;
    return 0;
}

正确答案:D

题目解析
push/pop 未做数组越界判断,存在越界风险,应增加异常处理,选 D。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习