版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
国家开放大学《C++语言程序设计》形考任务1-4参考答案(2026年秋季学期)【课程与形考说明】1.本文件按国家开放大学2026年秋季学期《C++语言程序设计》(课程代码00005)现行一网一平台形成性考核题库整理,共4次形考任务,合计184题。2.题型为客观题:单项选择题与判断题;判断题统一以A=对(正确)、B=错(错误)标注。3.题目序号按阿拉伯数字顺序连续标出;每题均给出完整选项,答案以加粗【答案】标注在选项之后。4.形考任务1覆盖C++基础语法、类与对象、构造与析构函数、静态成员、友元、引用;任务2覆盖运算符重载、继承与派生、构造函数与类型转换;任务3覆盖多态与虚函数、函数模板与类模板、STL容器与算法、迭代器;任务4覆盖C++11新特性(右值引用、智能指针、多线程)、输入输出流、文件操作与异常处理。5.部分题目在题库中存在答案分歧或题干录入错误,已在题下以【注】标出,请以平台显示题干与判分为准。形考任务1一、单项选择题(第1—25题,共25题)1.C++语言可执行程序从()开始执行。A.程序中第一条可执行语句B.变量声明语句C.程序中的main函数D.包含文件中的第一个函数【答案】C2.一个类的析构函数通常被定义为该类的()成员。A.公用B.保护C.私有D.友元【答案】A3.类的析构函数可以带有()个参数。A.0B.1C.2D.任意【答案】A4.在C++中,源程序变为可执行程序的正确顺序应该是()。A.编辑、链接、编译、执行B.编辑、编译、链接、执行C.编译、编辑、链接、执行D.编译、链接、编辑、执行【答案】B5.对类对象成员的初始化是通过构造函数中给出的()实现的。A.函数体B.初始化表C.参数表D.初始化表或函数体【答案】B6.在C++语言里,一条语句以()字符作为结束符。A.,B.;C..D.无符号【答案】B7.在C++中,使用new分配内存后,如果要释放空间,则应该使用()运算符释放?A.freeB.deleteC.autoD.malloc【答案】B8.设”inta=15,b=26;”,则”cout<<(a,b);”的输出结果是()。A.15B.26,15C.15,26D.26【答案】D9.下列扩展名中,哪个是C++程序的头文件扩展名?()A..hB..cppC..cD.exe【答案】A10.假定AB为一个类,则()为该类的拷贝构造函数的原型说明。()A.AB(ABx);B.AB(AB&x);C.voidAB(AB&x);D.AB(intx);【答案】B11.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的()。A.只能是公有成员B.只能是保护成员C.只能是除私有成员之外的任何成员D.具有任何权限的成员【答案】D12.在C++语言中,自定义的标识符()。A.能使用关键字并且不区分大小写B.不能使用关键字并且不区分大小写C.能使用关键字并且区分大小写D.不能使用关键字并且区分大小写【答案】D13.C++语言程序的基本单位是()。A.程序行B.语句C.函数D.字符【答案】B14.当一个类对象离开它的作用域时,系统自动调用该类的()。A.无参构造函数B.带参构造函数C.拷贝构造函数D.析构函数【答案】D15.C++程序中主函数的名字为()。A.mainB.MAINC.MainD.任意标识符【答案】A16.C++标准输入输出的头文件是()。A.cmathB.iostreamC.stringD.algorithm【答案】B17.为了避免在嵌套的条件语句if…else中产生歧义,C++规定的if…else语句的匹配原则是()。A.else子句与所排位置相同的if配对B.else子句与其之前最近的if配对C.else子句与其之后最近的if配对D.else子句与同一行上的if配对【答案】B18.设px是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的()。A.无参构造函数B.带参构造函数C.析构函数D.拷贝构造函数【答案】C19.静态数据成员的初始化是在()中进行的。A.构造函数B.任何成员函数C.所属类D.全局区【答案】D20.cout是I/O流库预定义的()。A.类B.对象C.包含文件D.常量【答案】B21.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为()。A.1和0B.1和4C.4和1D.4和0【答案】D22.关于静态成员,下列描述中错误的是()。A.静态成员不属于对象,是类的共享成员B.静态数据成员要在类外初始化C.静态成员函数拥有this指针D.非静态成员函数也可以操作静态数据成员【答案】C23.一个类的静态数据成员所表示属性()。A.是类的或对象的属性B.只是对象的属性C.只是类的属性D.类和友元的属性【答案】C24.关于面向对象程序设计方法,下列说法中正确的是()。A.在数据处理过程中,采用的是自顶向下、分而治之的方法B.将整个程序按功能划分为几个可独立编程的子模块C.以“对象”和“数据”为中心D.数据和处理数据的过程代码是分离的、相互独立的实体【答案】C25.引入友元的主要目的是为了()。A.增强数据安全性B.提高程序的可靠性C.提高程序的效率和灵活性D.保证类的封装性【答案】C二、判断题(第26—50题,共25题)26.友元关系是单向的,即类A是类B的友元,但B不是A的友元。A.对(正确)B.错(错误)【答案】A(对)27.在C++程序中,可以对枚举变量重新赋值。A.对(正确)B.错(错误)【答案】A(对)28.计算类的大小时包含static成员变量。A.对(正确)B.错(错误)【答案】B(错)29.完成类对象初始化的成员函数是构造函数。A.对(正确)B.错(错误)【答案】A(对)30.定义了构造函数之后,类不再提供默认的构造函数。A.对(正确)B.错(错误)【答案】A(对)31.函数重载指的是函数名相同,参数个数或参数类型不同。A.对(正确)B.错(错误)【答案】A(对)32.对于static修饰的对象和全局对象,只有在程序结束时编译器才会调用析构函数。A.对(正确)B.错(错误)【答案】A(对)33.C++中的命名空间能够对作用域进行划分,避免命名冲突。A.对(正确)B.错(错误)【答案】A(对)34.类的常成员函数可以调用类的非常成员函数。A.对(正确)B.错(错误)【答案】B(错)35.类中定义的普通函数可以通过对象调用,也可以使用类调用。A.对(正确)B.错(错误)【答案】B(错)36.在编程中若要限制函数传入参数为只读,使用的关键字是const。A.对(正确)B.错(错误)【答案】A(对)37.友元关系可以被继承。A.对(正确)B.错(错误)【答案】B(错)38.输出流对象cout与运算符“>>”结合使用可用于向控制台输出信息。A.对(正确)B.错(错误)【答案】B(错)39.输入流对象cin与运算符“<<”结合使用可用于读取用户输入。A.对(正确)B.错(错误)【答案】B(错)40.使用函数重载时,若使用默认参数应当避免二义性出现。A.对(正确)B.错(错误)【答案】A(对)41.C++的引用是某一变量的一个别名,用“&”符号标识。A.对(正确)B.错(错误)【答案】A(对)42.析构函数必须要有返回值。A.对(正确)B.错(错误)【答案】B(错)43.类的友元函数通过friendly关键字定义。A.对(正确)B.错(错误)【答案】B(错)44.C++中的引用是对一个对象起了别名,且必须初始化。A.对(正确)B.错(错误)【答案】A(对)45.在C++中,可以使用namespace关键字自定义命名空间。A.对(正确)B.错(错误)【答案】A(对)46.C++中没有逻辑变量,只能用非0表示真,用0表示假。A.对(正确)B.错(错误)【答案】B(错)47.类的友元函数不能访问类的私有成员。A.对(正确)B.错(错误)【答案】B(错)48.在C++中,可以使用free运算符释放内存。A.对(正确)B.错(错误)【答案】B(错)49.C++中基本类型转换可以使用static_cast<>运算符完成。A.对(正确)B.错(错误)【答案】A(对)50.在C++中,可以使用new运算符动态分配内存。A.对(正确)B.错(错误)【答案】A(对)形考任务2一、判断题(第1—20题,共20题)1.C++中不仅能重载已有的运算符,还能创建新的运算符。A.对(正确)B.错(错误)【答案】B(错)2.在继承关系中,可以使用公有派生类对象为基类引用赋值。A.对(正确)B.错(错误)【答案】A(对)3.重载运算符不能改变原有运算符的语义。A.对(正确)B.错(错误)【答案】A(对)4.所有C++运算符都可以重载。A.对(正确)B.错(错误)【答案】B(错)5.在继承关系中,如果基类与派生类有同名成员函数,则使用派生类对象调用同名成员函数时,调用的是派生类成员函数。A.对(正确)B.错(错误)【答案】A(对)6.派生类中继承的基类成员的访问权限到派生类保持不变。A.对(正确)B.错(错误)【答案】B(错)7.派生类可以选择性地继承基类的部分成员。A.对(正确)B.错(错误)【答案】B(错)8.C++有垃圾回收机制,不需要自己编程实现内存资源的释放。A.对(正确)B.错(错误)【答案】B(错)9.仿函数指的是在类中重载“()”运算符后,这个类的对象可以像函数一样使用。A.对(正确)B.错(错误)【答案】A(对)10.一个派生类指针也可以指向基类对象。A.对(正确)B.错(错误)【答案】B(错)11.运算符重载就是在自定义数据类型中(如类)对运算符进行重新定义,赋予运算符新的功能,使自定义数据类型对象也可以直接使用运算符完一定的操作运算。A.对(正确)B.错(错误)【答案】A(对)12.基类的protected成员在派生类中仍然是protected。A.对(正确)B.错(错误)【答案】B(错)13.输入输出运算符只能重载为类的友元函数。A.对(正确)B.错(错误)【答案】A(对)14.公有继承的基类中的private成员在派生类中仍是private的。A.对(正确)B.错(错误)【答案】B(错)15.继承关系只是能单继承,即一个派生类只能继承自一个基类。A.对(正确)B.错(错误)【答案】B(错)16.转换构造函数可以将一个标准类型数据转换为类对象。A.对(正确)B.错(错误)【答案】A(对)17.在虚继承中,派生类对象中都会增加一个隐藏的虚基类指针。A.对(正确)B.错(错误)【答案】A(对)18.类型转换函数只能重载为类的成员函数。A.对(正确)B.错(错误)【答案】A(对)19.关系运算符不能重载。A.对(正确)B.错(错误)【答案】B(错)20.如果基类指针指向派生类对象,则通过基类指针可以调用派生类成员函数。A.对(正确)B.错(错误)【答案】B(错)二、单项选择题(第21—50题,共30题)21.下列有关函数参数的描述,错误的是()。A.设置默认值的参数右边不允许出现没有指定默认值的参数B.参数默认值的设置顺序从参数表的右端开始C.参数默认值可以设置在定义语句中,也可以在声明语句中D.参数默认值可以是数值也可以是表达式【答案】C22.C++程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用()符号作为分隔符。A.空格或逗号B.逗号或回车C.逗号或分号D.空格或回车【答案】D23.当一个类对象离开它的作用域时,系统自动调用该类的()。A.无参构造函数B.带参构造函数C.拷贝构造函数D.析构函数【答案】D24.为了避免在嵌套的条件语句if…else中产生歧义,C++规定的if…else语句的匹配原则是()。A.else子句与所排位置相同的if配对B.else子句与其之前最近的if配对C.else子句与其之后最近的if配对D.else子句与同一行上的if配对【答案】B25.cout是I/O流库预定义的()。A.类B.对象C.包含文件D.常量【答案】B26.下列选项中,哪一项不是使用string类创建对象的正确方式?()A.stringstr(“OK”);B.stringstr=“OK”;C.stringstr;D.strintstr=‘OK’;【答案】D27.一个类的构造函数通常被定义为该类的()成员。A.公用B.保护C.私有D.友元【答案】A28.假定一个类的构造函数为“A(intaa=1,intbb=0){a=aa;b=bb;}”,则执行“Ax(4);”语句后,x.a和x.b的值分别为()。A.1和0B.1和4C.4和1D.4和0【答案】D29.假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为()。A.AB(){a=0;}B.AB(intaa=0):a(aa){}C.AB(intaa):a(aa){}D.AB(){}【答案】D30.设”inta=15,b=26;”,则”cout<<(a,b);”的输出结果是()。A.15B.26,15C.15,26D.26【答案】D31.在C++中,使用new分配内存后,如果要释放空间,则应该使用()运算符释放?A.freeB.deleteC.autoD.malloc【答案】B32.对类对象成员的初始化是通过构造函数中给出的()实现的。A.函数体B.初始化表C.参数表D.初始化表或函数体【答案】B33.类的析构函数可以带有()个参数。A.0B.1C.2D.任意【答案】A34.C++语言可执行程序从()开始执行。A.程序中第一条可执行语句B.变量声明语句C.程序中的main函数D.包含文件中的第一个函数【答案】C35.下列选项中,()是不合法的标识符。A.ProgramB.Obj23C.doubleD.B_C_D【答案】C36.假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为()。A.AB(){}B.AB():a(0){}C.AB(intaa=0){a=aa;}D.AB(intaa){}【答案】C37.关于面向对象程序设计方法,下列说法中正确的是()。A.在数据处理过程中,采用的是自顶向下、分而治之的方法B.将整个程序按功能划分为几个可独立编程的子模块C.以“对象”和“数据”为中心D.数据和处理数据的过程代码是分离的、相互独立的实体【答案】C38.在C++语言里,一条语句以()字符作为结束符。A.,B.;C..D.无符号【答案】B39.关于封装,下列说法中不正确的是()。A.通过封装,对象的全部属性和操作结合在一起,形成一个整体B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C.通过封装,每个对象都成为相对独立的实体D.通过封装,对象的属性都是不可见的【答案】D40.假定AB为一个类,则执行“ABx(a,5);”语句时将自动调用该类的()。A.带参构造函数B.无参构造函数C.拷贝构造函数D.赋值重载函数【答案】A41.C++源程序文件的扩展名为()。A..CPPB..CC..DLLD..EXE【答案】A42.用逻辑表达式表示“大于10而小于20的数”,正确的是()。A.10<x<20B.x>10||x<20C.x>10&x<20D.!(x<=10||x>=20)【答案】D43.循环语句“for(inti=0;i<n;i++)cout<<i*i<<’’;”中循环体执行的次数为()。A.1B.n-1C.nD.n+1【答案】C44.C++标准输入输出的头文件是()。A.cmathB.iostreamC.stringD.algorithm【答案】B45.设px是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的()。A.无参构造函数B.带参构造函数C.析构函数D.拷贝构造函数【答案】C46.类的构造函数可以带有()个参数。A.0B.1C.2D.任意【答案】D47.当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的()。A.只能是公有成员B.只能是保护成员C.只能是除私有成员之外的任何成员D.具有任何权限的成员【答案】D48.关于友元,下列说法中正确的是()。A.类可以定义友元函数和友元类B.友元函数只能调用类的成员函数,不能访问类的成员变量C.友元类只能访问类的成员变量,不能调用类的成员函数D.以上说法都不对【答案】A49.要把高级语言编写的源程序转换为目标程序,需要使用()。A.编辑程序B.驱动程序C.调试程序D.编译程序【答案】D50.静态成员函数对类的数据成员访问()。A.是不允许的B.只允许是静态数据成员C.只允许是非静态数据成员D.可允许是静态数据成员或非静态数据成员【答案】B形考任务3一、单项选择题(第1—16题,共16题)1.下列选项中,哪一项是可变序列算法()。A.for_each()B.sort()C.accumulate()D.find()【答案】B2.关于多态,下列说法中错误的是()。A.继承中的多态是动态多态B.多态的本质是指函数的多种实现形态C.由重载函数实现的多态是编译时多态D.动态多态是由纯虚函数实现的【答案】D3.关于迭代器,下列说法错误的是()。A.删除容器中的元素,可能会使原有迭代器失效B.反向迭代器可以从容器末尾向容器首部进行迭代C.vector容器的iterator迭代器是随机迭代器D.迭代器就是指针【答案】D4.关于虚函数的实现多态的机制,下列说法中错误的是()。A.虚函数是通过动态绑定实现多态的B.在编译包含虚函数的类时,编译器会在类中添加一个隐藏的虚函数指针,指向虚函数表C.创建对象时,虚函数指针不占用对象内存空间D.在继承时,派生类会继承基类的虚函数指针【答案】C5.关于虚函数,下列说法中错误的是()。A.虚函数是运行时多态B.声明虚函数的方法就是在成员函数原型前添加virtual关键字C.虚函数只能是类中的成员函数,但不可以是静态成员函数D.派生类对基类虚函数重写时,可以不必与基类中虚函数的原型完全一致【答案】D6.关于类模板的模板参数,下列说法错误的是()。A.可以作为数据成员类型B.可以作为成员函数的返回类型C.可以作为成员函数的参数类型D.以上说法都正确【答案】D7.以下()成员函数表示虚函数。A.virtualintvf(int);B.voidvf(int)=0;C.virtualvoidvf()=0;D.virtualvoidvf(int){};【答案】D8.下列模板声明中,正确的是()。A.template<typenameT1,T2>B.template<classT1,T2>C.template<T1,T2>D.template<typenameT1,typenameT2>【答案】D9.关于queue容器适配器,下列描述正确的是()。A.queue具有先入后出的特点B.queue可以一次删除多个元素C.queue不支持迭代器操作D.queue不支持pop方法【答案】C10.关于array容器,下列描述错误的是()。A.array容器初始化后,大小固定,不可修改B.array容器中元素不可以进行修改C.array容器和数组类型一样不进行边界检查D.array容器可以调用fill()函数进行初始化【答案】B11.下列选项中不属于vector容器操作方法的是()。A.emplace_backB.pop_backC.insertD.push_front【答案】D12.如果一个类至少有一个纯虚函数,那么就称该类为()。A.抽象类B.虚函数C.派生类D.以上都不对【答案】A13.关于虚函数的描述中,正确的是()。A.虚函数是一个静态成员函数B.虚函数是一个非成员函数C.虚函数即可以在函数说明定义,也可以在函数实现时定义D.派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型【答案】D14.关于纯虚函数和抽象类的描述中,错误的是()。A.纯虚函数是一种特殊的虚函数,它没有具体的实现B.抽象类是指具体纯虚函数的类C.一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出【答案】C15.下面4个选项中,()是用来声明虚函数的。A.virtualB.publicC.usingD.false【答案】A16.类模板的使用实际上是将类模板实例化成为一个()。A.函数B.对象C.类D.抽象类【答案】C二、判断题(第17—42题,共26题)17.虚函数可以声明为类的静态成员函数。A.对(正确)B.错(错误)【答案】B(错)18.一个类中,只要有一个函数模板则这个类是类模板。A.对(正确)B.错(错误)【答案】B(错)19.类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化。A.对(正确)B.错(错误)【答案】A(对)20.STL是由微软开发出来的。A.对(正确)B.错(错误)【答案】B(错)21.函数模板必须由程序员实例化为可执行的模板函数。A.对(正确)B.错(错误)【答案】B(错)22.deque是两端开口的,支持从两端插入、删除数据,并支持元素的随机访问。A.对(正确)B.错(错误)【答案】A(对)23.纯虚函数是一种特殊的虚函数,它没有具体的实现。A.对(正确)B.错(错误)【答案】A(对)24.模板的特化包括偏特化、全特化两种形式。A.对(正确)B.错(错误)【答案】A(对)25.虚函数即可以在函数说明定义,也可以在函数实现时定义。A.对(正确)B.错(错误)【答案】B(错)26.类模板派生时需要指定模板形参类型,根据模板形参类型创建具体的类作为基类。A.对(正确)B.错(错误)【答案】A(对)27.构造函数可以声明为虚函数。A.对(正确)B.错(错误)【答案】B(错)28.函数重载也是C++中的一种多态实现形式。A.对(正确)B.错(错误)【答案】A(对)29.编译时的多态性可以通过使用虚函数和指针获得。A.对(正确)B.错(错误)【答案】B(错)30.set与multiset都是集合,都是存储一组相同数据类型的元素。A.对(正确)B.错(错误)【答案】A(对)31.STL中的容器适配器包括stack、queue、priority_queue三种。A.对(正确)B.错(错误)【答案】A(对)32.multiset用来存储一组无重复的元素,而set允许存储有重复的元素。A.对(正确)B.错(错误)【答案】B(错)33.当删除双端队列中的元素时,由于不需要发生元素的移动,因此效率也是非常高的。A.对(正确)B.错(错误)【答案】A(对)34.声明了纯虚函数的类可以创建对象。A.对(正确)B.错(错误)【答案】B(错)35.把普通函数声明为类模板的友元函数,这样的友元函数称为非模板友元函数。A.对(正确)B.错(错误)【答案】A(对)36.类模板的派生类对象初始化与普通类一致。A.对(正确)B.错(错误)【答案】A(对)37.函数模板中声明的对象或变量不能与模板形参同名。A.对(正确)B.错(错误)【答案】A(对)38.函数模板可以像函数一样进行重载。A.对(正确)B.错(错误)【答案】A(对)39.关键字template用于声明模板。A.对(正确)B.错(错误)【答案】A(对)40.STL中的for_each()算法用于对指定区间的元素执行同一种操作。A.对(正确)B.错(错误)【答案】A(对)41.抽象类是指具有纯虚函数的类。A.对(正确)B.错(错误)【答案】B(错)【注】按C++标准,含有纯虚函数的类即抽象类,该说法通常判为“正确”;本题库标注答案为“错”,作答时以平台显示为准。42.迭代器是泛化的指针,STL算法利用迭代器对容器中的元素序列进行操作,迭代器提供了访问容器中每个元素的方法。A.对(正确)B.错(错误)【答案】A(对)形考任务4一、单项选择题(第1—16题,共16题)1.关于mutex类模板的成员函数,下列哪一个选项中是非阻塞上锁函数?()A.lock()B.try_lock()C.unlock()D.yield()【答案】B2.关于断言,下列说法中错误的是()。A.断言是调试程序的一种手段B.static_assert是静态断言,即在程序编译时期检测错误C.宏assert()用来在运行阶段实现断言D.static_assert可以使用变量作为参数【答案】D3.关于移动构造函数,下列说法中错误的是()。A.移动构造函数提高了临时对象的效率问题B.移动构造函数通过右值引用实现C.移动构造函数要使用一个右值引用对象作为参数D.移动构造函数的右值引用对象参数可以使用const修饰【答案】D4.下列关于标准输入输出流的说法中,错误的是()。A.输出流提供的put()函数用于单个字符的输出B.write()函数一次可以输出一个字符串C.输入流提供的get()函数在遇到‘\n’时会结束读取D.getline()一次可以读取一个字符串【答案】C5.下列关于文件的打开与关闭的说法中,错误的是()。A.ifstream类、ostream类和fstream类都提供了成员函数open()用于打开文件B.ifstream类打开文件的默认方式是ios::in,ostream类打开文件的默认方式是ios::outC.文件流使用完毕后,析构函数会自动释放资源,不用手动调用close()函数关闭文件D.文件的打开方式可以组合使用【答案】C6.下列选项中,哪一个模板是表示条件变量的模板?()A.condition_variableB.atomicC.mutexD.unique_lock【答案】A7.下列选项中,可以清除输入流错误状态的函数是()。A.clear()B.fail()C.put()D.eof()【答案】A8.下列选项中,只能用于检测文件读取操作的函数是()。A.fail()B.eof()C.bad()D.good()【答案】B9.关于标准库异常,下列说法中错误的是()。A.logic_error类表示那些可以在程序中被预先检测到的异常B.异常基类exception定义在头文件exception中C.exception类接口中的函数都有一个noexcept关键字,这表示exception类成员函数不会抛出任何异常D.runtime_error类不能被继承【答案】D10.下列选项中,哪一个是C++11标准新增的时间库?()A.tupleB.chronoC.regexD.thread【答案】B11.下列选项中,哪一项不是刷新缓冲区的方式()。A.执行flush()函数B.执行endl语句C.关闭文件D.等上5s时间编译器自动刷新【答案】D12.关于C++异常处理的流程,下列说法中错误的是()。A.对某段可能产生异常的代码或函数使用try结构进行检测B.如果在执行try结构期间没有引起异常,则跟在try后面的catch结构不会执行C.如果在执行try结构期间发生异常,在异常发生的位置使用throw抛出异常,一个异常对象将被创建D.本层try语句抛出了异常,只能由本层的catch语句处理【答案】D13.关于右值引用,下列语句正确的是()。A.int&&a=100;B.inta=10,b=9;int&&x=a-b;C.int&&a=10+6;D.inta=100;int&&b=a;【答案】D【注】按C++11标准,A、B、C三种写法均可通过编译,D项把右值引用绑定到左值属非法;题库答案为D,原题干疑为“错误的是”,作答时请对照平台题干。14.关于栈解旋,下列说法中正确的是()。A.栈解旋时,对象的析构顺序与构造顺序相同B.栈解旋只能释放栈上的对象C.栈解旋可以释放堆上的对象D.try语句块之外的对象也可以通过栈解旋释放【答案】B15.关于函数声明“floatfunc(inta,intb)throw;”,下列描述中正确的是()。A.表明函数抛出float类型异常B.表明函数可抛出任何类型异常C.表明函数不抛出任何类型异常D.表明函数可能抛出异常【答案】C16.下列选项中,哪一项不是C++11标准提供的智能指针?()A.unique_ptrB.shared_ptrC.auto_ptrD.weak_ptr【答案】C二、判断题(第17—42题,共26题)17.文件流对象无法使用>>、<<运算符传输数据。A.对(正确)B.错(错误)【答案】B(错)18.getline()函数用于从输入流中读取一行字符串,作用是从输入流中读取指定个数的字符存储到指定的内存空间。A.对(正确)B.错(错误)【答案】A(对)19.使用静态断言,程序可以在编译时检测错误。A.对(正确)B.错(错误)【答案】A(对)20.C++不支持文件的随机读写。A.对(正确)B.错(错误)【答案】B(错)21.在C++中,宏定义static_cast表示静态断言。A.对(正确)B.错(错误)【答案】A(对)【注】表示静态断言的关键字是static_assert(不是static_cast),按题意该说法应为“错”;题库标注为“对”,作答时以平台为准。22.线程之间可以进行拷贝、复制操作。A.对(正确)B.错(错误)【答案】B(错)23.创建一个子线程,如果使主线程等待子线程结束任务,则调用join()函数。A.对(正确)B.错(错误)【答案】A(对)24.C++标准异常库以exception类为根基类。A.对(正确)B.错(错误)【答案】A(对)25.C++标准异常类中,logic_error类表示运行时异常。A.对(正确)B.错(错误)【答案】A(对)【注】logic_error表示逻辑错误(可在程序中被预先检测),runtime_error才表示运行时错误;该说法按标准应为“错”,题库标注为“对”,作答时以平台为准。26.auto关键字是C++11标准新增的关键字。A.对(正确)B.错(错误)【答案】B(错)27.C++11标准中,表示原子类型的类模板为atomic。A.对(正确)B.错(错误)【答案】A(对)28.lock_guard用于管理mutex对象,可以自动为共享资源上锁、解锁。A.对(正确)B.错(错误)【答案】B(错)【注】lock_guard正是通过构造函数上锁、析构函数解锁,该说法按标准应为“对”;题库标注为“错”,作答时以平台为准。29.栈解旋会把try语句块中的所有对象都释放,包括堆内存上的对象。A.对(正确)B.错(错误)【答案】B(错)30.在ios类库中,基类ios直接派生了两个类,分别是istream、ostream。A.对(正确)B.错(错误)【答案】A(对)31.istream类提供的成员函数getline(),默认以‘\0’作为结束符。A.对(正确)B.错(错误)【答案】B(错)32.try…catch语句可以分开,单独使用。A.对(正确)B.错(错误)【答案】B(错)33.cout、cerr和clog是ostream类的对象,cout用于处理标准输出(屏幕输出)。A.对(正确)B.错(错误)【答案】A(对)34.代码intx=10;int&&a=x;可以编译通过。A.对(正确)B.错(错误)【答案】B(错)35.cin是istream类的对象,用于处理标准输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年食品饮料行业线上品牌创新研究报告
- 2026年房地产行业技术革新优势报告
- 骨科快速康复外科护理
- 2026年G3锅炉水处理考试练习题及答案
- 2026年G1工业锅炉司炉考试练习题库(含答案)
- 2026年化妆品原料行业报告:市场动态与供应商分析
- 骨转移瘤合并高钙血症护理查房
- 566安全生产教育指南讲解
- 2026年包装行业原材料供应风险报告及应对策略分析
- 2026年安全防护技术发展趋势与市场前景报告
- Unit 3 Our animal friends-B Start to read 课件(内嵌视频)2026-2027学年人教PEP版英语三年级上册
- JJF(京)181-2025 漏磁检测仪校准规范
- 眩晕病人护理课件
- 人教版八年级物理上册《光学》单元作业设计
- 语文试卷【高一】湖南省炎德英才名校联考联合体2025年秋季高一第二次(期中)联考(11.11-11.12)
- 未来五年火电设备工程行业市场营销创新战略制定与实施分析研究报告
- 国企党委意识形态工作责任制度
- 2025~2026学年浙江省杭州市上城区杭州中学八年级上学期期中考试数学试卷
- 《深度学习与神经网络》全套教学课件
- T-ZZB 2708-2022 化妆品包装用玻璃瓶
- 村沟渠清淤施工方案
评论
0/150
提交评论