全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
在 C++ 中,基类 Sensor 的析构函数未声明为 virtual,派生类 HeatSensor 的析构函数负责关闭其成员句柄并释放堆内存。函数中依次执行:Sensor *s = new HeatSensor; delete s; 之后程序继续运行若干秒后出现资源泄漏。下列关于该现象原因的分析,唯一正确的是哪一项?A. 析构函数未声明为 virtual,通过基类指针 delete 只调用了 Sensor 的析构函数,HeatSensor 的析构函数未被调用,导致其资源未被释放 B. new HeatSensor 时构造函数调用顺序错误导致资源未初始化 C. delete 后指针 s 未置空导致二次释放 D. Sensor 类必须同时把构造函数也声明为 virtual 才能正确释放资源
登录后查看答案
现有基类 `Record`,要求定义派生类 `Report`,并使 `Record` 以公有方式被继承。以下哪项声明符合要求? A. `class Report : public Record {};` B. `class Report : protected Record {};` C. `class Report : private Record {};` D. `class Report : Record {};`
有如下 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 = 10; int *p = &x; int **pp = &p; 下列哪一项操作后,x 的值变为 30 且 p 仍指向 x? A. *pp = 30; B. **pp = 30; C. pp = 30; D. *p = *pp;
执行以下代码后,变量 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
阅读下列关于类成员的说法,正确的是哪一项? A. 非静态成员函数中的 this 指针指向当前调用对象,静态数据成员由该类的所有对象共享 B. 静态成员函数中的 this 指针指向调用它的对象 C. 每个对象都拥有一份独立的静态数据成员 D. 静态数据成员只能通过对象名访问
下列关于C++类模板的叙述中,正确的是: A. 类模板定义时用 template 声明类型参数,实例化时须用如 Stack<int> 的形式指定具体类型 B. 类模板在使用时不需要指定类型参数,编译器会自动推导出所有成员类型 C. 类模板实例化后生成的类不能再创建对象 D. 类模板中不能包含成员函数
阅读以下 C++ 程序段,若程序运行后输出为 13,则变量 N 的值是( )。 int cnt = 0; for (int i = 1; i <= N; ++i) { for (int j = i; j <= 9; j += 2) { if ((i + j) % 3 != 0) { ++cnt; } } } cout << cnt << endl; A. 4 B. 5 C. 6 D. 7
有如下C++程序: class Demo { public: Demo() { cout << "C"; } ~Demo() { cout << "D"; } }; int main() { Demo d; cout << "M"; return 0; } 执行该程序时,屏幕上的输出是( ) A. CMD B. CDM C. MCD D. MDC
已知 `int level = 18;`,需要定义指针变量 `p` 并通过 `p` 将 `level` 改为 27,且操作后 `p` 仍指向 `level`。哪段代码满足要求? A. `int* p = &level; *p = 27;` B. `int* p = level; *p = 27;` C. `int* p = &level; p = 27;` D. `int p = &level; *p = 27;`
有如下C++递归函数:int f(int n){ if(n<=1) return 2; return f(n-1)+f(n-3); } 则调用 f(7) 的返回值是: A. 18 B. 20 C. 26 D. 30
设有定义 int a[5] = {1, 2, 3, 4, 5};,数组名 a 在表达式中可看作指向数组首元素的指针,则 *a 的值是( ) A. 1 B. 2 C. 5 D. a[0] 的地址
已定义函数 `int choose(int first, int second) { return second; }`。调用 `choose(17, 29)` 的返回值是多少? A. 17 B. 29 C. 46 D. 0
已定义函数 int report(int value) { return value; },下列哪条语句正确调用该函数并将返回值存入变量 result? A. int result = report(7); B. int result = report; C. report int result(7); D. int result = report();
设有定义 int a[2][3] = {{9, 3}, {7}};,并执行如下循环:for(int i = 0; i < 2; i++) for(int j = 0; j < 3; j++) if(i == j) a[i][j] = a[j][i]; 执行完毕后 a[1][1] 的值是( ) A. 3 B. 7 C. 0 D. 9
要定义一个含 7 个元素的一维整型数组,并用下标表达式引用其最后一个元素,哪项正确? A. int v[7]; v[7] B. int v[7]; v[6] C. int v[6]; v[6] D. int v[8]; v[6]
有如下 C++ 程序段,执行后输出的内容是什么? int a[] = {5, 2, 8, 3, 9, 6}; for (int x : a) { if (x == 2) continue; if (x == 9) break; cout << x << ' '; } A. 5 8 3 B. 5 8 3 6 C. 5 2 8 3 D. 5 8 3 9
有如下 C++ 程序段: for (int i = 1; i <= 3; i++) { for (int j = 1; j <= i; j++) { cout << '*'; } cout << endl; } 程序运行后共输出星号 * 的个数是 A. 6 B. 7 C. 9 D. 10
在符合标准的 C++ 程序中,执行 `int a = 7; double b = 2.8; int c = a / 2 + b;` 后,变量 `c` 的值是多少? A. 3 B. 5 C. 5.8 D. 6