全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
阅读代码,a.value() 在内层作用域结束后返回什么? class Item { int n; static int alive; public: Item(int x) : n(x) { ++alive; } ~Item() { --alive; } int value() const { return this->n + alive; } }; int Item::alive = 0; int main() { Item a(6); { Item b(9); } // 此处调用 a.value() } A. 6 B. 7 C. 8 D. 9
登录后查看答案
有如下 C++ 代码段: int a = 5, b = 8; int *p = &a, *q = &b; *p = *q; q = p; *q = 12; 执行完该代码段后,变量 a 和 b 的值分别为( ) A. a=12,b=8 B. a=12,b=12 C. a=5,b=12 D. a=8,b=12
某程序通过 `int* p = new int[11];` 动态分配了一个含 11 个 `int` 元素的数组。数组使用完毕后,要正确释放整块动态存储空间,应在空格处填写:____
设 x 是一个非 const 的整型对象,声明 const int& r = x 后,x 也因此不能再通过其他非 const 名称修改。判断该说法是否正确。
阅读下列程序,判断正确说法。(假设已包含 <iostream>,并使用 std 命名空间) inline int token(); int main() { std::cout << token(); } inline int token() { return 7; } A. 程序不能通过编译,因为调用前只有函数原型 B. 程序能通过编译并输出 7;函数原型允许先调用后定义,inline 不保证调用处一定展开 C. 程序能通过编译并输出 7;函数原型本身已定义了 token D. 程序不能通过编译,因为 inline 函数的定义必须出现在函数原型之前
设有如下声明:int a = 7; int *p = &a; int *&r = p; 若执行 *r = 25; 后,再用 cout << *p << " " << a; 输出,则结果为____;若随后又执行 p = nullptr;,则此时 r 的值是____(填"空指针"或"a 的地址")。
设有两个整型对象 m、n,声明并初始化指针 int* const p = &m。下列填空:p 所指对象可以通过 p 修改,但 p ____ 改为指向 n。
已有变量 `int x = 8;`。若要定义 `r`,使其成为 `x` 的引用,并且之后可通过给 `r` 赋值来修改 `x`,应选择哪项? A. `int& r = x;` B. `int r = x;` C. `const int& r = x;` D. `int& r;`
下列关于指针与 const 的声明,哪一项表示“指针所指对象不能通过该指针修改,但指针本身可以改为指向其他对象”? A. const int* p B. int* const p C. const int* const p D. int& p
有如下 C++ 递归函数:int f(int n){ if(n<=0) return 1; return n*f(n-2); } 则调用 f(7) 的返回值是:A. 5040 B. 105 C. 945 D. 16
定义 int a[3][3] = {{6}, {2, 9}, {4, 1, 8}}; 按二维数组的行、列下标规则,(a[0][2], a[1][1]) 的值是哪一项? A. (0, 9) B. (6, 2) C. (0, 2) D. (6, 9)
判断:对于 `string s = "harbor";`,调用 `s.substr(4, 20)` 会因第二个参数超过从位置 4 开始的剩余字符数而抛出 `out_of_range` 异常。
在 C++ 函数内有如下三条语句:① int m = 5; ② int n(m); ③ int p = m + n; 执行完后,变量 p 的值为 ____;此时若再执行语句 n = 12;,则 p 的值变为 ____;语句③中变量 p 的初始化方式称为 ____ 初始化(填'复制'或'直接')。
判断:在 C++ 中,若循环体执行 continue,for 循环会跳过迭代表达式并重新判断循环条件;while 循环则直接重新判断循环条件。
阅读下列 C++ 代码,程序运行后输出的数值是( ) int n = 25, count = 0; while (n != 1) { if (n % 2 == 0) n /= 2; else n = 3 * n + 1; ++count; } cout << count; A. 21 B. 22 C. 23 D. 24
在 C++ 中执行定义语句 `double a = 5;` 后,变量 a 的类型为____,其初始值为____;若改用列表初始化写作 `double a{5};`,其类型与初始值将____(填:相同 / 不同)。
判断:执行下列程序段后,输出为 6,3。 int i = 0, n = 0; while (i < 7) { ++i; if (i == 2 || i == 5) continue; if (i == 6) break; ++n; } printf("%d,%d", i, n);
判断:以下变量定义与初始化语句均合法,且 c 的初值为 7:double a = 7.9; const double b = a; int c{b};
在C++中,与标准错误输出设备相关联的两个流对象是 cerr 和 clog,其中不受缓冲(信息立即输出)的是____,而cerr配合插入运算符____完成数据输出;若程序需从标准输入设备读入数据,应使用的流对象是____。
在 C++ 函数体内执行语句 `int level;` 后,变量 `level` 已被定义,但尚未获得确定的初始值;因此,不能据此认为它的值为 0。判断该表述是否正确。