全部来自 AI 原创生成并经逐题审校的题目,带 精品 标记的为 AI 复审通过。整卷生成请去组卷。
程序先成功打开并向整数文件 nums.dat 写入两个整数 24 和 51,随后关闭文件,再成功打开该文件读取。读取前两次均成功后,第三次尝试读取整数;若第三次读取失败,程序应输出“读取失败”。请补全条件表达式:if (____) cout << "读取失败";
登录后查看答案
假设程序开始时 cin 状态正常,输入缓冲区内容为“R 8x”。依次执行 cin.get(c)、cin >> n、cin >> m,其中 c 为 char 型,n、m 为 int 型,且不调用 clear()。执行完毕后,按 cin.eof()、cin.fail()、cin.good() 的顺序填写其返回值:____。
设 list<int> lst={2,5,8,11,14},迭代器 it 初始指向 lst.begin()。依次执行三次 ++it 后,再执行两次 it-- ,此时 *it 的值为____;若接着执行 ++(++it),*it 变为____。
某团队需要通过网络传送含敏感信息的文件,希望即使传输内容被截获,未获授权者也无法直接读懂。最符合这一要求的网络安全防范措施是____。
某大学生拟将一张标注为「CC BY-NC 4.0」的摄影作品用于校园文创封面,在产品上注明原作者与许可协议后定价销售。该行为虽满足署名要求,但违反了许可中“NC”所对应的____要求。请填写其中文含义。
有如下程序片段: double a[5] = {1.1, 2.2, 3.3, 4.4, 5.5}; ofstream fout("data.dat", ios::binary); fout.____((char*)a, sizeof(a)); fout.close(); (1)二进制方式写入时应使用的成员函数是____; (2)在 64 位 Linux 系统下(double 占 8 字节),生成的 data.dat 文件大小为____字节。
某二进制文件恰含1024字节,字节按从文件开头起的顺序编号为1至1024。程序以二进制方式打开该文件,先执行 seekg(-16, ios::end),读取6字节;再执行 seekg(-3, ios::cur),读取1字节。最后读取的这个字节编号是____。
阅读程序: #include <iostream> template<class T> T combine(T a, T b) { return a + b; } int main() { std::cout << combine<double>(2, 3.5); } 调用时显式指定模板实参为 double,两个实参均可转换为该类型。程序输出 ____。
某类 Meter 定义了:Meter& operator++(){ v += 10; return *this; } 与 Meter operator++(int){ Meter t(*this); v += 3; return t; },其中成员 v 初值为 5,且类未重载 operator--。执行语句 Meter a(5); Meter b = ++a; Meter c = a++; 后,b.v = ____ ,c.v = ____ ,a.v = ____ 。
某类 Step 重载了自增运算符:前置版本为 Step& operator++(){ x += 3; return *this; },后置版本为 Step operator++(int){ Step t(*this); x -= 2; return t; }。设对象 s 初始时 x = 10,依次执行语句 Step a = s++; Step b = ++s; 则 a.x = ____,b.x = ____。
阅读代码:struct Base { int level = 7; }; struct Derived : Base { int level = 11; }; Derived d; Base& r = d; d.level = 20; d.Base::level = 30; 按顺序填写表达式 d.level、r.level、d.Base::level 的值:___。
设有类 Timer,其中重载了自增运算符:Timer& operator++(){ seconds++; return *this; } 与 Timer operator++(int){ Timer t(*this); seconds++; return t; }。请填写:上述第一个函数重载的是____(填“前置”或“后置”)自增运算符,第二个函数参数中的 int 起到____(填“区分前置与后置”或“参与加法运算”)的作用;若执行 ++t1,则调用的运算符函数返回值类型为____。
在 C++ 中,基类 Base 的析构函数未声明为 virtual,派生类 Derived 的析构函数中包含释放堆内存的语句。程序中执行语句 Base *p = new Derived; 后调用 delete p;,此时通过基类指针删除派生类对象,由于析构函数不是虚函数,实际只会执行____类的析构函数,导致派生类中申请的资源未被释放。为使 delete 通过基类指针时能正确调用派生类析构函数,应在基类析构函数声明前加上关键字____。因此,当一个类作为多态基类使用时,其析构函数应当声明为____。
某程序中定义类 A:其静态成员 int A::count = 0;构造函数体执行 ++count;,析构函数体执行 --count;。主函数中有语句:A arr[3]; A *p = arr; p++; A *q = new A; delete q;。则执行到 delete q; 之后,count 的值为____;程序结束时,析构函数总共被调用的次数为____。
阅读以下C++程序,写出屏幕输出的完整内容(按顺序写出每个字符,不留空格)。已知:全局对象在main函数之前构造,静态局部对象在首次执行到定义处时构造、在main函数结束后于自动局部对象之后析构,局部对象按构造的逆序析构。 #include <iostream> using namespace std; class T { int num; public: T(int n):num(n){ cout<<"+"<<num; } ~T(){ cout<<"-"<<num; } }; T g(1); int main(){ T a(2); static T b(3); { T c(4); } return 0; } 则程序输出的完整内容为____。
在 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 的结果类型与值:结果类型是____,值为____。
某大型工程中有头文件 utils.h,为防止其内容被重复包含,文件开头写有 #ifndef UTILS_H,随后一行写 ____,文件末尾写 #endif。请写出此处应填写的完整预处理指令。
阅读以下程序,空位应填入什么? ```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 定义的类中默认为____访问属性;要实现封装、禁止类外直接访问数据成员,通常将这些成员放在____访问限定符之后。