全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
在 C++ 中,重载运算符既可以用成员函数形式,也可以用友元函数形式。若将加法运算符重载为 Complex 类的成员函数,其函数在类中声明的原型为 Complex operator+(Complex &c2);,此时该运算符函数的参数个数为____个;若改用友元函数形式重载同一运算符,则在类中声明时应在函数原型前加关键字____。
登录后查看答案
判断:在 C++ 中,若基类 B 的析构函数声明为 public virtual ~B(),派生类 D 未显式写出 virtual 的析构函数;执行 B* p = new D; delete p; 时,由于 D 的析构函数未显式声明为虚函数,因此只调用 B 的析构函数。
已知类 Counter 中重载了前置自增运算符:Counter& operator++(){ ++value; return *this; }。若对象 c 的 value 为 5,执行语句 ++c; 后,value 的值是( ) A. 4 B. 5 C. 6 D. 7
在 C++ 中,若定义 class B : private A,则 A 的公有成员在 B 中仍保持公有,外部可通过 B 对象直接访问。判断该表述是否正确。
在 C++ 中,若一个类中含有至少一个纯虚函数(声明形如 virtual 返回类型 函数名(参数表) = 0;),则该类称为抽象类,抽象类____(填:能/不能)实例化对象。现有代码:class Base { public: virtual double area() const = 0; }; class Derived : public Base { public: double area() const override { return 0; } };,则 Derived 中纯虚函数的个数为____,语句 Derived d; 是否合法(填:合法/不合法)____。
判断下列说法的正误:在 C++ 中,若类 B 以 private 方式继承类 A,则 A 中的 public 成员在 B 类内部仍可被直接访问,但在 B 的派生类和类外代码中均不能通过 B 的对象访问这些成员。
某程序定义了基类 Store,并分别声明 `class Cache : ___ Store {};` 与 `struct View : ___ Store {};`,两处均未显式写出继承方式。请依照 C++ 对 class 与 struct 的默认继承方式,依次填入两个关键字。
在 C++ 中,若类 Shape 中声明了函数 virtual double area() const = 0; 则该函数是____函数,Shape 是____类,此类____(填“能”或“不能”)直接定义对象。若派生类 Circle 未重写该函数,则 Circle____(填“是”或“不是”)抽象类。
有如下C++代码:class Base { public: virtual void show() { cout << "Base"; } }; class Derived : public Base { public: void show() override { cout << "Derived"; } };。主函数中执行 Base* p = new Derived(); p->show();,程序输出结果是什么? A. Base B. Derived C. 编译错误 D. 运行时崩溃
阅读以下 C++ 代码片段: int x, s = 0; switch (x % 4) { case 0: s += 1; case 1: s += 2; break; case 2: s += 3; break; default: s += 4; } 若执行后 s 的值为 3,且 x 为正整数,则 x 的最小值是( )。 A. 1 B. 2 C. 3 D. 4
判断:执行下列程序时,a 与 b 均在同一作用域内构造;离开该作用域时,析构函数先对 a 执行,再对 b 执行。 ```cpp class Mark { public: Mark() {} ~Mark() {} }; int main() { Mark a; Mark b; } ```
判断:C++ 中,类的 private 成员只能在类内(成员函数或友元中)访问,在类外通过对象使用「对象名.私有成员」的方式直接访问是非法的,必须通过公有的成员函数间接访问,这正是封装的体现。
某类 Locker 将口令成员声明为 private,并提供 public 成员函数修改口令。下列说法正确的是哪一项? A. 类外代码可直接读取口令成员 B. 类外代码不能直接访问口令成员,但可调用公有成员函数 C. private 成员只能由构造函数访问 D. 将成员设为 private 后,类内成员函数也不能访问它
已声明函数 int route(int x, int y = 2); 和 int route(double x);。下列哪个调用会选择参数类型为 double 的重载? A. route(3) B. route(3.0) C. route(3, 4) D. route()
给定程序: ```cpp int a[3][3] = {{4, -2, 7}, {3, 5, 1}, {-6, 8, 2}}; int s = 0; for (int i = 0; i < 3; ++i) for (int j = 0; j < 3; ++j) if (i != j) s += a[i][j]; ``` 程序运行后,变量 `s` 的值为 ____。
阅读以下 C++ 代码,程序输出是什么? int level = 2, fee = 0; if (level == 1) fee = 10; else fee = 20; switch (level) { case 1: cout << fee << "A"; break; case 2: cout << fee << "B"; break; default: cout << fee << "C"; } A. 10A B. 20A C. 20B D. 20C
判断:在 C++ 中,switch 语句的每个 case 分支末尾若不写 break,程序会继续向下执行后续 case 分支的语句,因此若需要在匹配某个 case 后跳出 switch,通常应写 break;而 if-else 结构本身不需要 break 来结束分支。
在 Windows 中,文件属性里的____属性用于限制对文件进行修改。
阅读程序,填写最后输出的数值。 ```cpp int count = 0; for (int row = 1; row <= 4; row++) { for (int col = 1; col <= 2; col++) { count++; } } cout << count; ``` 程序输出:___
阅读下列 C++ 代码,程序运行后输出的数值是 ____。 int total = 0; for (int i = 2; i <= 5; ++i) { int j = i; while (j > 1) { ++total; j -= 2; } } cout << total;