您好,欢迎访问三七文档
C++总复习题一、单项选择题1.说明虚函数的关键字是()。A.inlineB.virtualC.defineD.static2.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()。A.mainB.MAINC.nameD.function3.cout是某个类的标准对象的引用,该类是()。A.ostreamB.istreamC.stdoutD.stdin4.如果在类外有函数调用CPoint::func();则函数func()是类CPoint的()。A.私有静态成员函数B.公有非静态成员函数C.公有静态成员函数B.友元函数5.如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()。A.publicB.protectedC.privateD.static6.一个类的所有对象共享的是()。A.私有数据成员B.公有数据成员C.保护数据成员D.静态数据成员7.动态联编所支持的多态性称为()。A.虚函数B.继承C.编译时多态性D.运行时多态性8.定义类模板时要使用关键字()。A.constB.newC.deleteD.template9.对虚基类的定义()。A.不需要使用虚函数B.必须使用虚函数C.必须使用privatD.必须使用public10.类型转换函数()。A.不能带有参数B.只能带一个参数C.只能带2个参数D.只能带3个参数参考答案:1.B2.A3.A4.C5.C6.D7.D8.D9.A10.A1.下面有关重载函数的描述中,正确的是()。A)重载函数必须具有不同的返回值类型B)重载函数形参个数必须不同C)重载函数必须具有不同的形参表D)重载函数名可以不同2.假定MyCIass为一个类,那么下列的函数说明中,()为该类的析构函数。A)void~MyClass();B)~MyClass(intn);C)MyClass();D)~MyClass();3.()是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。A)模板B)类C)对象D)函数4.下面关于静态成员函数的途术中错语的是()。A.静态成员函数可以有返回值B.this指针可以指向静态成员函数C.静态成员函数可以具有指针参数D.静态成员函数可有具有返回值类型5.定义类模板时要使用关键字()。A.privateB.publicC.deleteD.template6.下列是重载乘法运算符的函数原型声明,其中错误的是()。A)MyClassoperator*(double,double);B)MyClassoperator*(double,MyClass);C)MyClassoperator*(MyClass,double);D)MyClassoperator*(MyClass,MyClass);7.以下()成员函数表示纯虚函数。A)virtualintfun(int)B)voidfun(int)=0C)virtualvoidfun()=0D)virtualvoidfun(int){}8.关于纯虚函数,下列表述中正确的是()。A)纯虚函数的声明总是以=0结束B)含有纯虚函数的类可以定义对象C)含有纯虚函数的类是抽象类D)上面都是错误的9.()解决二义性问题。A.只能使用作用域分辨操作符B.只能使用虚基类C.使用作用域分辨操作符或虚基类D.上面都不能10.实现编译时的多态性要使用()。A)重载函数B)析构函数C)构造函数D)虚函数参考答案:1.C2.D3.A4.B5.D6.A7.C8.C9.C10.A1.下列关于C++函数的说明中,正确的是()。A)内联函数就是定义在另一个函数体内部的函数B)函数体的最后一条语句必须是return语句C)调用一个函数之前,如果还没有定义这个函数,必须先声明其原型D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式2.假定MyCIass为一个类,那么下列的函数说明中,()为该类的无参构造函数。A)voidMyClass();B)~MyClass(intn);C)MyClass();D)~MyClass();3.下列叙述中,错误的是()。A)派生类可以使用private派生B)对基类成员的访问必须是无二义性的C)基类成员的访问能力在派生类中维持不变D)赋值兼容规则也适用于多继承的组合4.当一个类的某个函数被说明为virtual时,该函数在该类及其所有派生类中()。A.都是虚函数B.只有被重新说明为vittual时才是虚函数C.都不是虚函数D.上面都不正确5.派生类的构造函数的成员初始化表中,不能包含()。A)基类的构造函数B)派生类中子对象的初始化C)基类中子对象的初始化D)派生类中一般数据成员的初始化6.下列是重载加法运算符的函数原型声明,其中错误的是()。A)MyClassoperator+(double,double);B)MyClassoperator+(double,MyClass);C)MyClassoperator+(MyClass,double);D)MyClassoperator+(MyClass,MyClass);7.派生类中的成员不能直接访问基类中的()成员。A)publicB)privateC)virtualD)protected8.实现运行时的多态性要使用()。A)重载函数B)析构函数C)构造函数D)虚函数9.如果在类MyClass的外面使用函数调用MyClass::f();则函数f()是类MyClass的()。A.静态成员函数B.非静态成员函数C.友元函数D.前面都不正确10.由于常对象不能被更新,因此()。A)通过常对象只能调用它的常成员函数B)通过常对象只能调用静态成员函数C)常对象的成员都是常成员D)通过常对象可以调用任何不改变对象值的成员函数参考答案:1.C2.C3.C4.A5.C6.A7.B8.D9.A10.A1.下列对类的构造函数和析构函数描述正确的是()。A)构造函数可以重载,析构函数不能重载B)构造函数不能重载,析构函数可以重载C)构造函数可以重载,析构函数可以重载D)构造函数不能重载,析构函数不能重载2.在函数定义前加上关键字“inline”,表示该函数被定义为()。A)重载函数B)内联函数C)成员函数D)普通函数3.下面有关重载函数的说明中,()是正确的。A)重载函数必须具有不同的返回值类型B)重载函数形参个数必须不同C)重载函数必须具有不同的形参列表D)重载函数名可以不同4.下列有关类与对象的说法中,()是不正确的。A)对象是类的一个实列B)任何一个对象只能属于一个具体的类C)一个类只能有一个对象D)类和对象的关糸和数椐类型与变量的关糸类似5.已知:Print()函数是一个类的常成员函数,它无返回值,下列表示中,正确的是()。A)voidPrint()const;B)constvoidPrint();C)voidconstPrint();D)voidPrint(const)6.假定Myclass为一个类,那么下列的函数说明中()为该类的析构函数。A)void~Myclass();B)~Myclass(intn);C)Myclass();D)~Myclass()7.下面类的定义中有()处错误。classmyclass{inti=0;public:voidmyclass(){};~myclass(value);};A)1B)2C)3D)48.说明虚函数的关键字是()。A.inlineB.virtualC.defineD.static9.cout是某个类的标准对象的引用,该类是()。A.ostreamB.istreamC.stdoutD.stdin10.如果class类中的所有成员在定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()。A.publicB.protectedC.privateD.static11.定义类模板时要使用关键字()。A.constB.newC.deleteD.template12一个类的所有对象共享的是()。A.私有数据成员B.公有数据成员C.保护数据成员D.静态数据成员13.静态成员函数没有()。A.返回值B.this指针C.指针参数D.返回类型14.解决多重继承中二义性问题的方法有()。A.只能使用作用域分辨操作符B.使用作用域分辨操作符或赋值兼容规则C.使用作用域分辨操作符或虚基类D.使用虚基类或赋值兼容规则15.如果在类CTest的外面函数调用CTest::f();则函数f()是类CTest的()。A.静态成员函数B.非静态成员函数C.友元函数D.前面都不正确参考答案:1.A)2.B)3.C)4.C)5.A)6.D)7.C)8.B)9.A)10.C)11.D)12.D)13.B)14.C)15.A)1.类的析构函数的作用是()。A)作为类的一般成员函数B)类的初始化C)对象的初始化D)对象的删除2.一个类的友元函数或友元类可以访问该类的()。A)私有成员B)保护成员C)公有成员D)所有成员3.下列关于成员函数特征的描述中,()是错误的。A)成员函数一定是内联函数B)成员函数可以重载C)成员函数可以设置参数的默认值D)成员函数可以是静态的4.下列函数中,()不是类的成员函数。A)构造函数B)析构函数C)友元函数D)拷贝构造函数5.下列对派生类的描述中,()是错误的。A)一个派生类可以作为另一个派生类的基类B)派生类至少有一个基类C)派生类的成员除了它自己的成员外,还包含了它的基类的成员D)派生类中继承的基类成员的访问权限到派生类中保持不变6.下列的描述中,()是错误的。A)公有继承时基类中的public成员在派生类中仍是public的B)公有继承时基类中的private成员在派生类中仍是private的C)公有继承时基类中的protected成员在派生类中仍是protected的D)私有继承时基类中的public成员在派生类中仍是private的7.下列虚基类的声明中正确的是()。A)classvirtualB:publicAB)virtualclassB:publicAC)classB:publicAvirtualD)classB:virtualpublicA8.若类A和类B的定义如下:classA{inti,j;public:A(intm,intn):i(m),j(n){}intGeti(){returni;}};classB:publicA{intk;public:B(intm,intn,intu):A(m,n),k(u){}voidMake(){k=i*j;}};intmain(){Bb(1,2,3);return0;}则上述定义中,()是非法的表达式.A)k=i*j;B)intk;C)returni;D)voidMake()9.若有以下程序:#includeiostreamusingnamespacestd;classA{public:inta;A(){a=10;}};classA1:publicA1.{public:A1(){a=a+1;}\};classA2:publicA{public:A2(){a=a+2;}};classB:publicA1,publicA2{public:B(){}voidPrint(){coutaendl;}};intmain(){Bobj;obj.Print();return0;}则程序运行后的输出结果为:A)产生语法错误B)13C)12D)1010.在下面的4个关键字中,()是用来说明虚函数的。A)virtualB)publicC)protectedD)private11.实现运行时的多态要使用()。A)重载函数B)析构函数C)构造函数D)虚函数12.如果一个类至少有一个纯虚函数,那么该类称为()。A)抽象类B)虚基类C)派生类D)以上都不对13.cin是某个类的标准对象,该类是()。A)ostreamB)istreamC)stdoutD)stdin14
本文标题:C++复习题+答案
链接地址:https://www.777doc.com/doc-3591375 .html