浙江电大C++语言程序设计形考1-4.docx

上传人:夺命阿水 文档编号:1236198 上传时间:2024-04-07 格式:DOCX 页数:38 大小:57.65KB
返回 下载 相关 举报
浙江电大C++语言程序设计形考1-4.docx_第1页
第1页 / 共38页
浙江电大C++语言程序设计形考1-4.docx_第2页
第2页 / 共38页
浙江电大C++语言程序设计形考1-4.docx_第3页
第3页 / 共38页
浙江电大C++语言程序设计形考1-4.docx_第4页
第4页 / 共38页
浙江电大C++语言程序设计形考1-4.docx_第5页
第5页 / 共38页
点击查看更多>>
资源描述

《浙江电大C++语言程序设计形考1-4.docx》由会员分享,可在线阅读,更多相关《浙江电大C++语言程序设计形考1-4.docx(38页珍藏版)》请在课桌文档上搜索。

1、浙江电大C+语言程序设计形考1-0001单选题(共25题,共50分)1. (2分)C+语言可执行程序从(C)开始执行。A、程序中第一条可执行语句B、变量声明语句C、程序中的main函数D、包含文件中的第一个函数2. (2分)一个类的析构函数通常被定义为该类的(八)成员。A、公用B、保护C、私有D、友元3. (2分)类的析构函数可以带有(A)个参数。A、0B、1C、2D、任意4. (2分)在C+中,源程序变为可执行程序的正确顺序应该是(B)oA、编辑、链接、编译、执行B、编辑、编译、链接、执行C、编译、编辑、链接、执行D、编译、链接、编辑、执行5. (2分)对类对象成员的初始化是通过构造函数中给

2、出的(B)实现的。A、函数体B、初始化表C、参数表D、初始化表或函数体6. (2分)在C+语言里,一条语句以(B)字符作为结束符。A、,B、;C、.D、无符号7. (2分)在C+中,使用new分配内存后,如果要释放空间,则应该使用(B)运算符释放?A、 freeB、 deleteC、 autoDmalloc8. (2分)设“inta=15,b=26,则coutalgorithm17. (2分)为了避免在嵌套的条件语句if-else中产生歧义,C+规定的ifelse语句的匹配原则是(B)0A、else子句与所排位置相同的if配对B、else子句与其之前最近的if配对C、else子句与其之后最近的

3、if配对D、else子句与同一行上的if配对18. (2分)设PX是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的(C)oA、无参构造函数B、带参构造函数C、析构函数D、拷贝构造函数19. (2分)静态数据成员的初始化是在(D)中进行的。A、构造函数B、任何成员函数C、所属类D、全局区20. (2分)CoUt是IO流库预定义的(B)0A、类B、对象C、包含文件D、常量21. (2分)假定一个类的构造函数为A(intaa=l,intbb=0)a=aa;b=bb;,则执行“Ax(4);”语句后,x.a和x.b的值分别为(D)。A、1和0B、1和4C、4和1D、4和0

4、22. (2分)关于静态成员,下列描述中错误的是(C)oA、静态成员不属于对象,是类的共享成员B、静态数据成员要在类外初始化C、静态成员函数拥有this指针D、非静态成员函数也可以操作静态数据成员23. (2分)一个类的静态数据成员所表示属性(C)oA、是类的或对象的属性B、只是对象的属性C、只是类的属性D、类和友元的属性24. (2分)关于面向对象程序设计方法,下列说法中正确的是(C)oA、在数据处理过程中,采用的是自顶向下、分而治之的方法B、将整个程序按功能划分为几个可独立编程的子模块C、以“对象”和“数据”为中心D、数据和处理数据的过程代码是分离的、相互独立的实体25. (2分)引入友元

5、的主要目的是为了(OoA、增强数据安全性B、提高程序的可靠性C、提高程序的效率和灵活性D、保证类的封装性判断题(共25题,共50分)26. (2分)友元关系是单向的,即类A是类B的友元,但B不是A的友元。(J)X27. (2分)在C+程序中,可以对枚举变量重新赋值。(J)28. (2分)计算类的大小时包含StatiC成员变量。(X)X29. (2分)完成类对象初始化的成员函数是构造函数。(J)30. (2分)定义了构造函数之后,类不再提供默认的构造函数。(Q31. (2分)函数重载指的是函数名相同,参数个数或参数类型不同。(J)X32. (2分)对于static修饰的对象和全局对象,只有在程序

6、结束时编译器才会调用析构函数。(J)33. (2分)C+中的命名空间能够对作用域进行划分,避免命名冲突。(J)X34. (2分)类的常成员函数可以调用类的非常成员函数。(X)35. (2分)类中定义的普通函数可以通过对象调用,也可以使用类调用。(X)X36. (2分)在编程中若要限制函数传入参数为只读,使用的关键字是const。()37. (2分)友元关系可以被继承。(X)38. (2分)输出流对象CoUt与运算符“”结合使用可用于向控制台输出信息。(X)X39. (2分)输入流对象Cin与运算符结合使用可用于读取用户输入。(X)40. (2分)使用函数重载时,若使用默认参数应当避免二义性出现

7、。(J)X41. (2分)C+的引用是某一变量的一个别名,用符号标识。(J)42. (2分)析构函数必须要有返回值。(X)X43. (2分)类的友元函数通过friendly关键字定义。(X)44. (2分)C+中的引用是对一个对象起了别名,且必须初始化。(Q45. (2分)在C+中,可以使用namespace关键字自定义命名空间。(J)46. (2分)C+中没有逻辑变量,只能用非O表示真,用O表示假。(X)47. (2分)类的友元函数不能访问类的私有成员。()48. (2分)在C+中,可以使用free运算符释放内存。(X)49. (2分)C+中基本类型转换可以使用StatiJCaSt运算符完成

8、。(J)50. (2分)在C+中,可以使用new运算符动态分配内存。(J)浙江电大C+语言程序设计形考2-0001判断题(共20题,共40分)2. (2分)C+中不仅能重载已有的运算符,还能创建新的运算符。(X)3. (2分)在继承关系中,可以使用公有派生类对象为基类引用赋值。(J)X4. (2分)重载运算符不能改变原有运算符的语义。(J)5. (2分)所有C+运算符都可以重载。(X)X5. (2分)在继承关系中,如果基类与派生类有同名成员函数,则使用派生类对象调用同名成员函数时,调用的是派生类成员函数。(J)6. (2分)派生类中继承的基类成员的访问权限到派生类保持不变。(X)X7. (2分

9、)派生类可以选择性地继承基类的部分成员。(X)8. (2分)C+有垃圾回收机制,不需要自己编程实现内存资源的释放。(X)9.(2分)仿函数指的是在类中重载“()”运算符后,这个类的对象可以像函数一样使用。()10. (2分)一个派生类指针也可以指向基类对象。(X)11.(2分)运算符重载就是在自定义数据类型中(如类)对运算符进行重新定义,赋予运算符新的功能,使自定义数据类型对象也可以直接使用运算符完一定的操(J)作运算。12. (2分)基类的ProteCted成员在派生类中仍然是protectedo(X)X13. (2分)输入输出运算符只能重载为类的友元函数。(J)14. (2分)公有继承的基

10、类中的private成员在派生类中仍是private的。(X)15. (2分)继承关系只是能单继承,即一个派生类只能继承自一个基类。(X)X16. (2分)转换构造函数可以将一个标准类型数据转换为类对象。(J)17. (2分)在虚继承中,派生类对象中都会增加一个隐藏的虚基类指针。(J)X18. (2分)类型转换函数只能重载为类的成员函数。(J)19. (2分)关系运算符不能重载。(X)X20. (2分)如果基类指针指向派生类对象,则通过基类指针可以调用派生类成员函数。(X)单选题(共30题,共60分)21. (2分)下列有关函数参数的描述,错误的是(OoA、设置默认值的参数右边不允许出现没有指

11、定默认值的参数B、参数默认值的设置顺序从参数表的右端开始C、参数默认值可以设置在定义语句中,也可以在声明语句中D、参数默认值可以是数值也可以是表达式22. (2分)C+程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用(D)符号作为分隔符。A、空格或逗号B、逗号或回车C、逗号或分号D、空格或回车23. (2分)当一个类对象离开它的作用域时,系统自动调用该类的(D)oA、无参构造函数B、带参构造函数C、拷贝构造函数D、析构函数24. (2分)为了避免在嵌套的条件语句if-else中产生歧义,C+规定的ifelse语句的匹配原则是(B)0A、else子句与所排位置相同的if配对B、else

12、子句与其之前最近的if配对C、else子句与其之后最近的if配对Delse子句与同一行上的if配对25. (2分)CoUt是IO流库预定义的(B)oA、类B、对象C、包含文件D、常量26. (2分)下列选项中,哪一项不是使用String类创建对象的正确方式?(D)A、stringStr(“OK”);8、 stringstr=OK”;Cstringstr;Dstrintstr=*0K,;27. (2分)一个类的构造函数通常被定义为该类的(八)成员。A、公用B、保护C、私有D、友元28. (2分)假定一个类的构造函数为A(intaa=l,intbb=O)a=aa;b=bb;”,则执行“Ax(4);

13、语句后,x.a和x.b的值分别为(D)。A、1和0B、1和4C、4和1D、4和029. (2分)假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为(D)oA、ABOa=0;BnAB(intaa-0):a(aa)C、AB(intaa):a(aa)D、ABO30. (2分)设“inta=15,b=26,则cout(a,b);的输出结果是(D)。A、15B、26,15C、15,26D、2631. (2分)在C+中,使用new分配内存后,如果要释放空间,则应该使用(B)运算符释放?A、 freeBndeleteC、 autoD、 malloc32. (2

14、分)对类对象成员的初始化是通过构造函数中给出的(B)实现的。A、函数体B、初始化表C、参数表D、初始化表或函数体33. (2分)类的析构函数可以带有(八)个参数。A、0B、1C、2D、任意34. (2分)C+语言可执行程序从(O开始执行。A、程序中第一条可执行语句B、变量声明语句C、程序中的main函数D、包含文件中的第一个函数35. (2分)下列选项中,(C)是不合法的标识符。A、 ProgramB、 Obj23CdoubleD、B_C_D36. (2分)假定一个类AB只含有一个整型数据成员a,用户为该类定义的带参构造函数可以为(C)oA、ABOB、AB():a(0)C、AB(intaa=0

15、)a=aa;D、AB(intaa)37. (2分)关于面向对象程序设计方法,下列说法中正确的是(C)oA、在数据处理过程中,采用的是自顶向下、分而治之的方法B、将整个程序按功能划分为几个可独立编程的子模块C、以“对象”和“数据”为中心D、数据和处理数据的过程代码是分离的、相互独立的实体38. (2分)在C+语言里,一条语句以(B)字符作为结束符。A、,B、;C、.D、无符号39. (2分)关于封装,下列说法中不正确的是(D)oA、通过封装,对象的全部属性和操作结合在一起,形成一个整体B、通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)C、通过封装,每个对象都成为相对独立的实体D、通过封

16、装,对象的属性都是不可见的40. (2分)假定AB为一个类,贝微行“ABx(a,5);”语句时将自动调用该类的(八)。A、带参构造函数B、无参构造函数C、拷贝构造函数D、赋值重载函数41. (2分)C+源程序文件的扩展名为(A)oA、 .CPPB、 .CC、 .DLLD、 .EXE42. (2分)用逻辑表达式表示“大于10而小于20的数”,正确的是(D)oA、 10X10IX10&X20D、 !(x=20)43. (2分)循环语句for(inti=0;in;i+)couti*i,中循环体执行的次数为(C)oA、1B、n-1C、nD、n+144. (2分)C+标准输入输出的头文件是(B)oAcm

17、athB、 iostreamC、 stringD、 algorithm45. (2分)设PX是指向一个类对象的指针变量,则执行“deletepx;”语句时,将自动调用该类的(OoA、无参构造函数带参构造函数C、析构函数D、拷贝构造函数46. (2分)类的构造函数可以带有(D)个参数。A、0B、1C、2D、任意47. (2分)当将一个类A或函数f()说明为另一个类B的友元后,类A或函数f()能够直接访问类B的(D)oA、只能是公有成员B、只能是保护成员C、只能是除私有成员之外的任何成员D、具有任何权限的成员48. (2分)关于友元,下列说法中正确的是(A)oA、类可以定义友元函数和友元类B、友元

18、函数只能调用类的成员函数,不能访问类的成员变量C、友元类只能访问类的成员变量,不能调用类的成员函数D、以上说法都不对49. (2分)要把高级语言编写的源程序转换为目标程序,需要使用(D)oA、编辑程序B、驱动程序C、调试程序D、编译程序50. (2分)静态成员函数对类的数据成员访问(B)oA、是不允许的B、只允许是静态数据成员C、只允许是非静态数据成员D、可允许是静态数据成员或非静态数据成员浙江电大C+语言程序设计形考3-0001单选题(共16题,共48分)1. (3分)下列选项中,哪一项是可变序列算法(B)oA、for_each()B、sort()CaccumulateOD、findO2.

19、(3分)关于多态,下列说法中错误的是(D)oA、继承中的多态是动态多态B、多态的本质是指函数的多种实现形态C、由重载函数实现的多态是编绎时多态D、动态多态是由纯虚函数实现的3. (3分)关于迭代器,下列说法错误的是(D)oA、删除容器中的元素,可能会使原有迭代器失效B、反向迭代器可以从容器末尾向容器首部进行迭代C、VeCtor容器的iterator迭代器是随机迭代器D、迭代器就是指针4. (3分)关于虚函数的实现多态的机制,下列说法中错误的是(C)oA、虚函数是通过动态绑定实现多态的B、在编译包含虚函数的类时,编译器会在类中添加一个隐藏的虚函数指针,指向虚函数表C、创建对象时,虚函数指针不占用

20、对象内存空间D、在继承时,派生类会继承基类的虚函数指针5. (3分)关于虚函数,下列说法中错误的是(D)oA、虚函数是运行时多态B、声明虚函数的方法就是在成员函数原型前添加VirtUal关键字C、虚函数只能是类中的成员函数,但不可以是静态成员函数D、派生类对基类虚函数重写时,可以不必与基类中虚函数的原型完全一致6. (3分)关于类模板的模板参数,下列说法错误的是(D)oA、可以作为数据成员类型B、可以作为成员函数的返回类型C、可以作为成员函数的参数类型D、以上说法都正确7. (3分)以下(D)成员函数表示虚函数。A、 virtualintvf(int);B、 voidvf(int)=0;C、v

21、irtualvoidvf()=0;D、virtualvoidvf(int);8. (3分)下列模板声明中,正确的是(D)oA、 templateB、 templateC、 templateD、 template9. (3分)关于queue容器适配器,下列描述正确的是(C)。A、queue具有先入后出的特点B、queue可以一次删除多个元素C、queue不支持迭代器操作D、queue不支持POP方法10. (3分)关于array容器,下列描述错误的是(B)。A、array容器初始化后,大小固定,不可修改B、array容器中元素不可以进行修改C、array容器和数组类型一样不进行边界检查D、arr

22、ay容器可以调用fill。函数进行初始化11. (3分)下列选项中不属于VeCtor容器操作方法的是(DA、 emplace_backB、 pop_backC、 insertD、 push_front12. (3分)如果一个类至少有一个纯虚函数,那么就称该类为(A)oA、抽象类B、虚函数C、派生类D、以上都不对13. (3分)关于虚函数的描述中,正确的是(D)0A、虚函数是一个静态成员函数B、虚函数是一个非成员函数C、虚函数即可以在函数说明定义,也可以在函数实现时定义D、派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型14.(3分)关于纯虚函数和抽象类的描述中,错误的是(OoA、纯虚

23、函数是一种特殊的虚函数,它没有具体的实现B、抽象类是指具体纯虚函数的类C、一个基类中说明有纯虚函数,该基类派生类一定不再是抽象类D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出15. (3分)下面4个选项中,(A)是用来声明虚函数的。A、 virtualB、 publicC、 usingD、 false16. (3分)类模板的使用实际上是将类模板实例化成为一个(OoA、函数B、对象C、类D、抽象类判断题(共26题,共52分)17. (2分)虚函数可以声明为类的静态成员函数。(X)X18. (2分)一个类中,只要有一个函数模板则这个类是类模板。(X)19. (2分)类模板的成员函数都是

24、函数模板,类模板实例化后,成员函数也随之实例化。()20. (2分)STL是由微软开发出来的。(X)21. (2分)函数模板必须由程序员实例化为可执行的模板函数。(X)22. (2分)deque是两端开口的,支持从两端插入、删除数据,并支持元素的随机访问。()23. (2分)纯虚函数是一种特殊的虚函数,它没有具体的实现。(J)24. (2分)模板的特化包括偏特化、全特化两种形式。(J)25. (2分)虚函数即可以在函数说明定义,也可以在函数实现时定义。()26. (2分)类模板派生时需要指定模板形参类型,根据模板形参类型创建具体的类作为基类。()27. (2分)构造函数可以声明为虚函数。(X)

25、28. (2分)函数重载也是C+中的一种多态实现形式。(J)29. (2分)编译时的多态性可以通过使用虚函数和指针获得。(X)30. (2分)Set与multiset都是集合,都是存储一组相同数据类型的元素。(J)31. (2分)STL中的容器适配器包括StaCk、queuePriOrity_queue三种。(J)32. (2分)multiset用来存储一组无重复的元素,而set允许存储有重复的元素。(X)33. (2分)当删除双端队列中的元素时,由于不需要发生元素的移动,因此效率也是非常高的。(J)34. (2分)声明了纯虚函数的类可以创建对象。(X)35. (2分)把普通函数声明为类模板的

26、友元函数,这样的友元函数称为非模板友元函数。()36. (2分)类模板的派生类对象初始化与普通类一致。(J)37. (2分)函数模板中声明的对象或变量不能与模板形参同名。(J)38. (2分)函数模板可以像函数一样进行重载。(J)39. (2分)关键字template用于声明模板。(J)40. (2分)STL中的f。JeaCh()算法用于对指定区间的元素执行同一种操作。(J)41. (2分)抽象类是指具有纯虚函数的类。(X)42. (2分)迭代器是泛化的指针,STL算法利用迭代器对容器中的元素序列进行操作,迭代器提供了访问容器中每个元素的方法。(J)浙江电大C+语言程序设计形考4-0001单选

27、题(共16题,共48分)1. (3分)关于mutex类模板的成员函数,下列哪一个选项中是非阻塞上锁函数?(B)A、IockOB、try_lock()C、unlock()D、yield()2. (3分)关于断言,下列说法中错误的是(D)oA、断言是调试程序的一种手段B、StatiJaSSert是静态断言,即在程序编译时期检测错误C、宏assert。用来在运行阶段实现断言D、StatiJaSSert可以使用变量作为参数3. (3分)关于移动构造函数,下列说法中错误的是(D)oA、移动构造函数提高了临时对象的效率问题B、移动构造函数通过右值引用实现C、移动构造函数要使用一个右值引用对象作为参数D、移

28、动构造函数的右值引用对象参数可以使用ConSt修饰4. (3分)下列关于标准输入输出流的说法中,错误的是(OoA、输出流提供的put()函数用于单个字符的输出B、Write()函数一次可以输出一个字符串C、输入流提供的get()函数在遇到n时会结束读取D、getline()一次可以读取一个字符串5. (3分)下列关于文件的打开与关闭的说法中,错误的是(C)oA、ifstream类、OStream类和fstream类都提供了成员函数OPen()用于打开文件ifstream类打开文件的默认方式是ios:in,OStream类打开文件的默认方式是ios:UtC、文件流使用完毕后,析构函数会自动释放资

29、源,不用手动调用CloseO函数关闭文件D、文件的打开方式可以组合使用6. (3分)下列选项中,哪一个模板是表示条件变量的模板?(A)A、condition_variab1eatomicC、 mutexD、 unique_lock7. (3分)下列选项中,可以清除输入流错误状态的函数是(A)oA、clear()B、fail()Cput()Deof()8. (3分)下列选项中,只能用于检测文件读取操作的函数是(B)oA、fail()B、eof()C、bad()D、good()9. (3分)关于标准库异常,下列说法中错误的是(D)oA、IOgiJerrOr类表示那些可以在程序中被预先检测到的异常B

30、、异常基类exception定义在头文件exception中Caexception类接口中的函数都有一个noexcept关键字,这表示exception类成员函数不会抛出任何异常D、runtime_error类不能被继承10. (3分)下列选项中,哪一个是C+11标准新增的时间库?(B)A、 tupleB、 chronoC、 regexDthreadH.(3分)下列选项中,哪一项不是刷新缓冲区的方式(D)oA、执行flush。函数B、执行endl语句C、关闭文件D、等上5s时间编译器自动刷新12. (3分)关于C+异常处理的流程,下列说法中错误的是(D)oA、对某段可能产生异常的代码或函数使用

31、try结构进行检测B、如果在执行try结构期间没有引起异常,则跟在ay后面的CatCh结构不会执行C、如果在执行try结构期间发生异常,在异常发生的位置使用throw抛出异常,一个异常对象将被创建D、本层try语句抛出了异常,只能由本层的CatCh语句处理13. (3分)关于右值引用,下列语句正确的是(D)oA、int&a=100;inta=10,b=9;int&x=ab;C、 int&a-10+6;D、 inta-100;int&b=a;关于栈解旋,下列说法中正确的是(B)oA、栈解旋时,对象的析构顺序与构造顺序相同B、栈解旋只能释放栈上的对象C、栈解旋可以释放堆上的对象D、try语句块之外

32、的对象也可以通过栈解旋释放15. (3分)关于函数声明floatfunc(inta,intb)throw;,下列描述中正确的是(C)oA、表明函数抛出float类型异常B、表明函数可抛出任何类型异常C、表明函数不抛出任何类型异常D、表明函数可能抛出异常16. (3分)下列选项中,哪一项不是C+11标准提供的智能指针?(C)A、 unique_ptB、 shared_ptrCauto_ptrDweak_ptr判断题(共26题,共52分)17. (2分)文件流对象无法使用、*运算符传输数据。(X)18. (2分)getline()函数用于从输入流中读取一行字符串,作用是从输入流中读取指定个数的字符

33、存储到指定的内存空间。(J)使用静态断言,程序可以在编译时检测错误。(J)20. (2分)C+不支持文件的随机读写。(X)21. (2分)在C+中,宏定义StatiJCaSt表示静态断言。(J)22. (2分)线程之间可以进行拷贝、复制操作。(X)23. (2分)创建一个子线程,如果使主线程等待子线程结束任务,则调用join()函数。()24. (2分)C+标准异常库以exception类为根基类。(J)X25. (2分)C+标准异常类中,IOgijerror类表示运行时异常。(J)aut。关键字是C+11标准新增的关键字。(X)27. (2分)C+11标准中,表示原子类型的类模板为atomi

34、c。()28. (2分)IocLguard用于管理mutex对象,可以自动为共享资源上锁、解锁。(X)29. (2分)栈解旋会把try语句块中的所有对象都释放,包括堆内存上的对象。(X)30. (2分)在ios类库中,基类ios直接派生了两个类,分别是istream、OStreamo()31. (2分)istream类提供的成员函数getline(),默认以作为结束符。(X)32. (2分)tryCatCh语句可以分开,单独使用。(X)33. (2分)CoUt、CerrOr和CIOg是OStream类的对象,Cout用于处理标准输出(屏幕输出)。()34. (2分)代码intX=10;int&

35、a二x;可以编译通过。(义)35. (2分)Cin是istream类的对象,用于处理标准输入(键盘输入)。(J)36. (2分)C+中的输入输出流可以分为标准I/O流、文件流和字符串流三类。(J)37. (2分)move()函数可以将一个左值强制转换为右值引用。(J)38. (2分)try语句块中代码抛出异常后,如果异常被正确处理,抛出异常代码后面的程序会继续执行。(义)X39. (2分)C+中,抛出异常的关键字是throw。()在C+流类库中,iOS根基类是一个抽象类。(Q41. (2分)在原生字符串中,所有具有特殊意义的字符都不再起作用。(Q42. (2分)Weak_ptr提供的成员函数IoCk()返回一个auto_ptr对象。(X)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 在线阅读 > 生活休闲


备案号:宁ICP备20000045号-1

经营许可证:宁B2-20210002

宁公网安备 64010402000986号