全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
判断:执行 `string s = "cobalt"; s.replace(1, 3, "UV"); s.erase(s.find('l'));` 后,`s` 的内容为 `"cUVl"`。
登录后查看答案
在 C++ 中,同一个命名空间可以在多个不同的源文件中分别定义,链接时这些定义会被合并为同一个命名空间。判断该说法正误。
在 C++ 函数内有语句 `int n = 3.9;`,该语句合法,编译器将浮点常量赋给整型变量时会发生截断(直接舍弃小数部分,不做四舍五入)。执行该语句后,变量 n 的初值为 ____;若将同一条语句改为列表初始化 `int n{3.9};`,由于列表初始化禁止窄化转换,则该语句将导致 ____(填“编译错误”或“运行错误”)。
已知有定义:int a = 3; double b = 1.5; char c = 'A';(字符 'A' 的 ASCII 码为 65)。C++ 中 char 参与算术运算时先被提升为 int。求表达式 a + b + c / 10 的结果类型与值:结果类型是____,值为____。
按标准 C++ 规则,执行下列语句后,变量 d 的值是多少? int i = -2.8; double d = i + 4.25; A. 1.25 B. 2.25 C. 2.45 D. 3.25
判断:在 C++ 中,将有限的 double 值 -3.8 隐式转换为 int 时,转换结果按最接近的整数舍入,因此结果为 -4。
某大型工程中有头文件 utils.h,为防止其内容被重复包含,文件开头写有 #ifndef UTILS_H,随后一行写 ____,文件末尾写 #endif。请写出此处应填写的完整预处理指令。
某日志分析程序执行以下语句序列:cin >> key; cout << key; cerr << "错误"; clog << "日志"。已知 cerr 不使用缓冲区(内容立即送达标准错误设备),clog 使用缓冲区。下列关于这四个流对象的说法,唯一正确的是( ) A. cin 和 cout 均默认关联标准输出设备 B. cerr 与 clog 都关联标准错误设备,区别仅在是否带缓冲 C. clog 因无缓冲而最适于即时报错 D. cout 与 cerr 输出内容必然按语句先后顺序显示在同一设备上
程序中定义了 `namespace cache { int size = 8; }`,随后在全局作用域写入 `using namespace cache;`。有人认为,这条 using 指令会把 `cache::size` 复制成全局变量,因此即使删除命名空间定义,后续使用 `size` 仍然有效。判断该说法正误。
下列 4 条 C++ 变量定义与初始化语句中,编译无法通过(即存在错误)的共有几条? ① int a = 3.9; ② const int b; ③ int c{3.9}; ④ double d{3}; A. 1 条 B. 2 条 C. 3 条 D. 4 条
设有如下定义: struct Tick { int n; Tick(int x) : n(x) {} Tick& operator++() { ++n; return *this; } Tick operator++(int) { Tick old = *this; ++n; return old; } int value() const { return n; } }; 执行 Tick t(6); int a=(t++).value(); int b=(++t).value(); 后,(a,b,t.value()) 的值是: A. (6,7,7) B. (6,8,8) C. (7,8,8) D. (6,7,8)
判断:执行下列程序时,屏幕输出为 ABTBCCA。 ```cpp #include <iostream> using namespace std; class Mark { char id; public: Mark(char x) : id(x) { cout << id; } ~Mark() { cout << id; } }; int main() { Mark a('A'); { Mark b('B'); Mark('T'); } Mark c('C'); } ```
阅读以下程序,空位应填入什么? ```cpp #include <iostream> using namespace std; class Beacon { int mark; static int shared; public: Beacon(int mark) : mark(mark) { shared += mark; } int tune(int mark) { this->mark = mark; return this->mark + shared; } }; int Beacon::shared = 2; int main() { Beacon a(3), b(4); cout << a.tune(6); } ``` 程序输出:____
在 C++ 类定义中,若成员不写任何访问限定符,则使用 class 定义的类中该成员默认为____访问属性,而使用 struct 定义的类中默认为____访问属性;要实现封装、禁止类外直接访问数据成员,通常将这些成员放在____访问限定符之后。
设有声明 const int a = 10; int b = 20; 以及 int* p = &b;。现判断以下说法的正误:语句 p = &a; 在任何情况下都不能通过编译,因此不存在任何指针类型既能指向 a 又能指向 b;而引用 const int& r = b; 是合法的,且通过 r 不能修改 b 的值,但直接通过 b 仍可修改其值。
阅读程序: ```cpp #include <iostream> using namespace std; class Item { char name; public: Item(char n) : name(n) { cout << '+' << name; } ~Item() { cout << '-' << name; } }; int main() { Item a('a'); { Item b('b'); Item c('c'); } Item d('d'); } ``` 程序运行时输出的字符序列是什么? A. +a+b+c-c-b+d-d-a B. +a+b+c-b-c+d-d-a C. +a+b+c-c-b+d-a-d D. +a+b+c-c-b-d+d-a
阅读代码,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 名称修改。判断该说法是否正确。