全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
设类 Temp 的提取运算符重载声明为友元函数:friend std::istream& operator>>(____); 现要求语句 std::cin >> t1 >> t2;(其中 t1、t2 为 Temp 类对象)能够正确连续输入两个对象的数据。请补全该函数声明的形参列表。
登录后查看答案
某程序中,基类 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>>(____);`。填写形参列表,要求先读入标题、再读入页数,并保持两个成员均能被修改。
判断下列说法是否正确: #include <iostream> using std::cout; struct Base { virtual void f() { cout << "B"; } }; struct Derived : Base { void f() override { cout << "D"; } }; int main() { Derived d; Base* p = &d; p->f(); } 程序执行时,表达式 p->f() 调用 Base::f,因为指针 p 的静态类型是 Base*。
设基类 Base 含有公有成员。现需定义 `class Open : ___ Base {};`,使 Base 的公有成员在 Open 中仍为公有;并定义 `struct Vault : ___ Base {};`,使 Base 的公有成员在 Vault 中成为私有。两个空依次应填入什么继承方式?
现有基类 `Record`,要求定义派生类 `Report`,并使 `Record` 以公有方式被继承。以下哪项声明符合要求? A. `class Report : public Record {};` B. `class Report : protected Record {};` C. `class Report : private Record {};` D. `class Report : Record {};`
在 C++ 中,若通过基类指针删除派生类对象(如 Base* p = new Derived; delete p;),为使 delete 时能正确调用派生类的析构函数,基类 Base 的析构函数应声明为____函数(填写关键字)。
有如下 C++ 代码段: int x = 3, y = 9; int *p = &x, *q = &y; int *t = p; p = q; q = t; *p = *p + 1; 执行上述代码后,x 与 y 的值依次是多少? A. 3 和 10 B. 4 和 9 C. 10 和 3 D. 9 和 3
判断:若基类含有纯虚函数,派生类即使为该函数提供了匹配的覆盖实现,也仍然必定是抽象类。
设有代码: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 = ____;`
设有声明:int x = 10; int *p = &x; int **pp = &p; 下列哪一项操作后,x 的值变为 30 且 p 仍指向 x? A. *pp = 30; B. **pp = 30; C. pp = 30; D. *p = *pp;
判断以下说法的正误:设有 int a = 7; const int* p = &a; 则语句 *p = 9; 是合法的,因为对象 a 本身并不是 const 类型。
已有变量 `double temperature = 21.5;`,请显式写出类型,声明名为 `reading` 的引用,使其与 `temperature` 表示同一对象:____
执行以下代码后,变量 value 的值是多少? int value = 16; int* p = &value; *p = 23; A. 16 B. 23 C. p 的地址 D. 编译错误
已知 string s = "planet";,执行语句 s += "ar"; 后,s 的值为( ) A. arplanet B. planetar C. planet D. planer
判断:设有声明 int x = 5; const int* p = &x; 与 int& r = x; 其中语句 *p = 8; 无法通过编译,而 r = 8; 可以通过编译并使 x 变为 8,两个说法都正确。
若一维整型数组名为 level,要求 level[14] 恰好引用该数组的最后一个元素,则定义语句 int level[____]; 中空格处应填什么?
已知 int a=2, b=7, c=7; 按 C++ 中关系运算符、逻辑运算符的优先级与结合规则,表达式 a < b || b == c && a == c 的值为 ____。
假设类 Point 有可访问的默认构造函数。在 C++ 中,语句 Point p[3]; 会创建 3 个 Point 对象并调用 3 次默认构造函数;语句 Point* q = new Point[3]; 也会创建 3 个 Point 对象并调用 3 次默认构造函数。因此 p 和 q 都是指向 Point 对象的指针,二者完全等价,都可以用 p[i] 或 q[i] 访问第 i 个对象,也都可以用 delete p; 或 delete[] q; 释放。该说法正确吗?