您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 招聘面试 > 2014级软工C++综合测试(含答案)
2013级软件工程专业C++综合测试2014年5月19日星期一班级:学号:姓名:成绩:评阅人:一、选择题(15*2分=30分)1、C++语言具有的三大特性是()A.继承、派生、重载B.多态、重载、抽象C.封装、多态、继承D.选择、循环、分支2、下列选项中均是C++合法标识符的是()A.Ifabc_123m_numberB.sizeofa*_ba12niceC._ssum1_abcs#2D.xyzadvery_goodv’1x13、下列描述中正确的是()A.类的成员既可以是其他类的对象也可以是类自身的对象B.构造函数和析构函数均由编译系统自动调用,且都不能被重载C.静态多态的实现方式主要借助虚函数D.在涉及到多继承的层次结构中,析构函数调用时遵循的大的原则(顺序)是:先自身,再子对象,最后基类4、下列说法错误的是()A.C++实现异常处理机制的三个关键字是try-throw-catchB.拷贝构造函数的主要作用是一个已存在的对象来创建一个同类的对象,与普通的构造函数相同,都不需要人为显式调用C.当一个函数的返回类型是类对象的引用或者指针时,在执行函数返回语句时,拷贝构造函数将会被调用D.如果类中没有声明拷贝构造函数,编译器会自动生成一个默认的拷贝构造函数,此时采用的是浅拷贝5、下面说法正确的是()A.静态成员函数只能访问类的静态数据成员B.友元函数必须通过类对象来操作类的数据成员C.派生类的构造函数在实现时必须显式调用基类的构造函数D.如果在虚基类中只定义了带参数的构造函数,那么只需在其直接派生类的构造函数实现时显式地列出对虚基类构造函数的调用。6、假设有inta=1,b=2,则下面操作正确的是()A.constint*p=&a;*p=10;B.int*constp=&a;p=&b;C.constint*constp=&a;*p=10;D.constint*p=&b;p=&a;7、关于常成员函数的说法错误的是()A.只有常成员函数才能操作常对象B.常成员函数的声明形式形如voidprint()const;C.在实现常成员函数时关键字const可以省略D.被const修饰的数据成员为常数据成员,它们只能在实现构造函数时通过成员初始化列表进行初始化8、关于继承的说法正确的是()A.使用继承可以很好地解决代码重用问题B.继承可以分为单继承和多继承,其中多继承指的是一个父类有多个派生类C.派生类自动继承基类所有的成员D.只有在公有继承时,派生类才可以访问基类的私有数据9、下面说法正确的是()A.算法是连接容器和迭代器的桥梁/纽带B.容器可以分为顺序容器、容器适配器以及关联容器,其中前两者统称为第一类容器C.使一个输入文件流istream的对象与一个指定的文件相“绑定”,既可以通过istream类的构造函数,也可以通过它的成员函数openD.若类A被声明为类B的友元,则类B的所有成员函数都是类A的友元函数10、下列说法错误的是()A.类的构造函数与析构函数名字是相同,均无需人为调用B.假设A是虚基类,B和C是A的直接派生类,D则由B和C共同派生,在构造派生类D的对象时,虚基类的构造函数也只会被调用一次C.为类对象所分配的空间既包含了普通数据成员所需的空间也包含静态数据成员的空间D.可以使用friend关键字声明友元函数和友元类,且友元不具有传递性和对称性11、下面说法正确的是()A.可以通过*this可以判断当前是哪个对象在调用成员函数或重新指定对象B.运算符既可以重载为类的静态成员函数也可以重载为类的友元函数C.intf1(int)与voidf1(intx)互为重载函数D.动态关联和静态关联分别是在运行时和编译时确定该调用哪一个具体的函数12、关于this指针说法错误的是()A.this指针仅能被类的非静态成员函数所能访问B.当一个对象调用非静态成员函数时,编译器先将对象的地址赋给this指针,然后调用成员函数。C.可以通过*this可以判断是哪个对象来调用该成员函数或重新指定对象。D.this指针可以被类的任何成员函数所访问13、下列关于模板说法正确的是()A.模板可以分为函数模板和类模板,而且类模板中的成员函数都是模板函数B.函数模板和类模板是可以直接使用的函数或类C.在使用函数模板和类模板时,编译系统会根据传递进来的具体类型,自动生成相应的模板函数和模板类D.类模板中的成员函数的定义只能放在类模板的声明之中14、下列关于异常说法正确的是()A.函数A抛出异常后,必须在其内部对抛出的异常进行处理B.可以通过在函数A中抛出不同数值(即throw后的表达式的值不同),实现多种不同异常的抛出C.编程过程中通常将可能发生异常的操作放在到try语句块中D.依据catch的多少,可以分为单路捕获和多路捕获。其中,在多路捕获中为了更好地处理异常,应当将catch(…){}这个语句块用作try后面的第一个catch语句块15、下列关于文件操作的相关说法错误的是()A.打开文件时,如果没有定义为二进制格式打开时,文件的默认打开方式为文本格式打开方式B.文件流的构造函数和成员函数open都可用于打开文件,而其析构函数和成员函数close都可用于关闭文件C.在进行文件读和写时,如果被操作文件不存在,系统将自动创建该文件D.istream和ostream对象打开文件文件默认的打开方式分别为ios::in和ios::out16、关于派生类构造函数说法正确的是()A.派生类的构造函数在实现时必须显式调用基类的构造函数B.如果一个派生类有多个基类,通常情况下基类构造函数调用的顺序与继承顺序一致,而与派生类构造函数实现时的初始化列表中的顺序无关C.若果类A中包含多个其他类的对象,在A类构造函数实现时必须使用初始化列表的形式对所有子对象进行初始化,子对象构造函数调用顺序与初始化顺序一致D.在创建派生类对象时,先调用派生类的构造函数,最后调用基类的构造函数17、关于构造函数与析构函数比较说法错误的是()A.类的构造函数与析构函数名字是相同B.两者均无需人为调用C.构造函数与析构函数均可以被重载D.构造顺序与析构顺序完全相反18、关于虚基类的说法错误的是()A.如果在虚基类中只定义了带参数的构造函数,那么只需在其直接派生类的构造函数实现时显式地列出对虚基类构造函数的调用。B.引入虚基类的主要目的是为了解决二义性C.使用关键字virtual来声明虚继承方式D.假设A是虚基类,B和C是A的直接派生类,D则由B和C共同派生,在构造派生类D的对象时,虚基类的构造函数也只会被调用一次二、填空题(每空1分,共30分)1、类成员的三种访问属性分别是__public___、protected__、和___private__,其中,缺省为___private____________.2、可以通过在派生类中_定义同名的成员__来屏蔽那些从基类中继承得到的不起作用的成员。3、假设类A继承父类B并包含类C的对象,则在创建A类对象时构造函数的执行顺序为____B____==____C_____==____A______。4、简答列出构造函数与析构函数的三个共同点:___无需人为调用___、__没有返回值__、____与类名同名_____。5、在为类对象所分配的空间中不包括____静态______数据成员所占用的空间。6、根据文件的存储形式可以将其分为_ASCII码文件(文本文件)和二进制文件,其中_ASCII码文件(文本文件)采用每一个字节存放一个字符的ASCII这种形式进行存储。7、C++进行文件操作可以分为四个大的步骤,依次为创建流对象、建立流对象与文件的关联、读/写文件、关闭文件。8、STL的代码从广义上可以分为三类,分别是算法、容器、和迭代器。其中,容器中的顺序容器和关联容器被合称为第一类容器。9、C++的异常处理的基本思想是将异常的检测与处理相分离,并实现跨越函数的异常处理,这种处理机制建立在_try__、___throw___以及__catch___三个关键字的基础上。10、假设有如下的类模板定义templateclassT1,classT2classXY{……voidtest();……};成员函数test的实现放在类模板声明的外面,其实现写法应写成_templateclassT1,classT2voidXYT1,T2::test(){}11、类模板和函数模板实例化后将分别生成_模板类和__模板函数______三、写程序输出结果(共65分,其中1-3每题5分,4-8每题10分)a1!=a2(x,y)is(0,0)(x,y)is(5,7)(x,y)is(10,12)x=6x=6x=6xis6
本文标题:2014级软工C++综合测试(含答案)
链接地址:https://www.777doc.com/doc-3013784 .html