全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
某程序中,基类 Device 的析构函数声明为 virtual ~Device(),其析构时输出 "D";派生类 Camera 公有继承 Device,其析构函数输出 "C" 且未再写 virtual 关键字。主函数中执行:Device* p = new Camera; delete p; 则程序输出 ____。若将 Device 的析构函数改为非虚函数,同样的代码输出 ____(先写前一种情况,再写后一种情况,中间用分号隔开)。
登录后查看答案
定义类 Reading,成员为页数 pages 与标题 title。现要求从输入流中读取标题(可含空格)和页数,并使 `std::cin >> r1` 成立;提取运算符声明为 `friend std::istream& operator>>(____);`。填写形参列表,要求先读入标题、再读入页数,并保持两个成员均能被修改。
设基类 Base 含有公有成员。现需定义 `class Open : ___ Base {};`,使 Base 的公有成员在 Open 中仍为公有;并定义 `struct Vault : ___ Base {};`,使 Base 的公有成员在 Vault 中成为私有。两个空依次应填入什么继承方式?
在 C++ 中,若通过基类指针删除派生类对象(如 Base* p = new Derived; delete p;),为使 delete 时能正确调用派生类的析构函数,基类 Base 的析构函数应声明为____函数(填写关键字)。
设有代码:int x = 3, y = 7; const int* p = &x; int* const q = &y; 现依次执行以下四个语句:① *p = 10; ② p = &y; ③ *q = x; ④ q = &x; 其中能通过编译(即语句合法)的有 ____ 个。
已声明 `int quota = 9;`。现需定义指针变量 `p`,使随后执行 `*p = 23;` 能将 `quota` 改为 23,且 `p` 仍指向 `quota`。请在空白处填写初始化表达式:`int* p = ____;`
已有变量 `double temperature = 21.5;`,请显式写出类型,声明名为 `reading` 的引用,使其与 `temperature` 表示同一对象:____
若一维整型数组名为 level,要求 level[14] 恰好引用该数组的最后一个元素,则定义语句 int level[____]; 中空格处应填什么?
已知 int a=2, b=7, c=7; 按 C++ 中关系运算符、逻辑运算符的优先级与结合规则,表达式 a < b || b == c && a == c 的值为 ____。
定义类 Num: class Num { int n; public: Num(int x) : n(x) {} int value() const { return n; } }; 主函数中有: Num a[5] = { Num(2), Num(4), Num(6), Num(8), Num(10) }; Num* p = a + 2; cout << (p - 1)->value() << ' ' << p[2].value(); 程序输出为 ____。
将含 5 个整数的一维数组命名为 score,并在语句中引用其第一个元素。补全:定义语句 int score[____]; 引用表达式 score[____]。
有如下C++程序: class X { public: int v; X(int n){ v = n; } }; int main(){ X a[3] = { X(2), X(5), X(8) }; X *p = a; p++; cout << p->v << endl; p++; cout << (*p).v << endl; p = a; cout << (p+1)->v << endl; } 程序第一个输出是____,第二个输出是____,第三个输出是____。
定义 `class Module { public: int id; Module(int x) : id(x) {} };`,并创建对象数组 `Module slots[3] = {Module(21), Module(34), Module(55)};`。现要声明对象指针 `p`,使其指向数组中 `id` 为 34 的那个对象,且声明后可用 `p->id` 访问该成员。请填入完整声明:____
已包含 <fstream> 和 <iostream>,并使用命名空间 std。下面代码要用 fail() 成员函数判断 data.txt 是否打开失败,空处应填:ifstream fin("data.txt"); if (____) cout << "打开失败";
设 vector<int> v={4,7,9,12},迭代器 it 指向 v.begin()。依次执行 ++it、it++、--it 后,it 指向的元素值为____。
在C++程序中,若需存储键值对并通过键快速查找对应值,应选用STL容器中的 ____ 容器;若需频繁在任意位置插入和删除元素,可选用 ____ 容器。
在 C++ 中,类 Device 声明了纯虚函数 virtual void start() = 0;,且未定义该函数的实现。Device 是____,不能直接创建 Device 类型的对象。
阅读代码,空格处应填写什么,才能定义 `Parcel` 类的析构函数? ```cpp class Parcel { public: Parcel() { } ____ { } }; ```
执行以下代码后,尚未释放的动态分配块数为____。 ```cpp int* p = new int[4]; int* q = new int; delete[] p; p = new int; delete q; ```
已有变量 `int count = 6;`,要声明 `count` 的引用 `alias`,使 `alias` 与 `count` 表示同一对象,填入:`int ____ alias = count;`