《C++复习题+答案》由会员分享,可在线阅读,更多相关《C++复习题+答案(51页珍藏版)》请在金锄头文库上搜索。
1、C+总复习题一、单项选择题1说明虚函数的关键字是()。A. inlineB. virtualC. defineD. static2在每个C+程序中都必须包含有这样一个函数,该函数的函数名为()。A. main B. MAIN C. name D. function3cout是某个类的标准对象的引用,该类是()。A. ostream B. istream C. stdout D. stdin4如果在类外有函数调用CPoint:func();则函数func()是类CPoint的()。A.私有静态成员函数B. 公有非静态成员函数C. 公有静态成员函数B. 友元函数5. 如果class类中的所有成员在
2、定义时都没有使用关键字public、private或protected,则所有成员缺省定义为()。A. public B. protected C. private Dstatic 6一个类的所有对象共享的是()。A. 私有数据成员B. 公有数据成员C. 保护数据成员D.静态数据成员7动态联编所支持的多态性称为()。A. 虚函数B. 继承C. 编译时多态性D.运行时多态性8定义类模板时要使用关键字()。A. constB. newC. deleteD. template9对虚基类的定义()。A.不需要使用虚函数B. 必须使用虚函数C. 必须使用privatD. 必须使用public10类型转换
3、函数()。A. 不能带有参数B. 只能带一个参数C. 只能带2个参数D. 只能带3个参数参考答案:1B2A3A 4C 5C 6D7D8D9A10A1下面有关重载函数的描述中,正确的是()。A)重载函数必须具有不同的返回值类型B)重载函数形参个数必须不同C)重载函数必须具有不同的形参表D)重载函数名可以不同2假定MyCIass为一个类,那么下列的函数说明中,()为该类的析构函数。A)voidMyClass();B)MyClass(int n);C)MyClass( );D)MyClass( );3()是以一种完全通用的方法来设计函数或类而不必预先说明将被使用的每个对象的类型。A)模板B)类C)对
4、象D)函数4下面关于静态成员函数的途术中错语的是()。A. 静态成员函数可以有返回值B. this指针可以指向静态成员函数C. 静态成员函数可以具有指针参数D. 静态成员函数可有具有返回值类型5定义类模板时要使用关键字()。A. privateB. publicC. deleteD. template6下列是重载乘法运算符的函数原型声明,其中错误的是()。A)MyClass operator*(double,double);B)MyClass operator*(double,MyClass);C)MyClass operator*(MyClass,double);D)MyClass oper
5、ator*(MyClass,MyClass);7以下()成员函数表示纯虚函数。A)virtual int fun(int)B)void fun(int)=0C)virtual void fun()=0D)virtual void fun(int)8关于纯虚函数,下列表述中正确的是()。A)纯虚函数的声明总是以=0结束B)含有纯虚函数的类可以定义对象C)含有纯虚函数的类是抽象类D)上面都是错误的9()解决二义性问题。A. 只能使用作用域分辨操作符B. 只能使用虚基类C. 使用作用域分辨操作符或虚基类D. 上面都不能10实现编译时的多态性要使用()。A)重载函数B)析构函数C)构造函数D)虚函数参
6、考答案:1C2D3A4B5D 6A7C8C 9C 10A1下列关于C+函数的说明中,正确的是()。A)内联函数就是定义在另一个函数体内部的函数 B)函数体的最后一条语句必须是return语句C)调用一个函数之前,如果还没有定义这个函数,必须先声明其原型D)编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式2假定MyCIass为一个类,那么下列的函数说明中,()为该类的无参构造函数。A)void MyClass();B)MyClass(int n);C)MyClass( );D)MyClass( );3下列叙述中,错误的是()。A)派生类可以使用private派生B)对基类成员的访问必
7、须是无二义性的C)基类成员的访问能力在派生类中维持不变D)赋值兼容规则也适用于多继承的组合4当一个类的某个函数被说明为virtual时,该函数在该类及其所有派生类中()。A. 都是虚函数B. 只有被重新说明为vittual时才是虚函数 C. 都不是虚函数D. 上面都不正确5派生类的构造函数的成员初始化表中,不能包含()。A)基类的构造函数B)派生类中子对象的初始化C)基类中子对象的初始化D)派生类中一般数据成员的初始化6下列是重载加法运算符的函数原型声明,其中错误的是()。A)MyClass operator+(double,double);B)MyClass operator+(double
8、,MyClass);C)MyClass operator+(MyClass,double);D)MyClass operator+(MyClass,MyClass);7派生类中的成员不能直接访问基类中的()成员。A)public B)private C)virtualD)protected8实现运行时的多态性要使用()。A)重载函数B)析构函数C)构造函数D)虚函数9如果在类MyClass的外面使用函数调用MyClass:f();则函数f()是类MyClass的()。A. 静态成员函数B. 非静态成员函数C. 友元函数D. 前面都不正确10由于常对象不能被更新,因此()。A)通过常对象只能调用
9、它的常成员函数B)通过常对象只能调用静态成员函数C)常对象的成员都是常成员D)通过常对象可以调用任何不改变对象值的成员函数参考答案:1C2C3C4A5C6A7B8D9A10A1下列对类的构造函数和析构函数描述正确的是()。A)构造函数可以重载,析构函数不能重载B)构造函数不能重载,析构函数可以重载C)构造函数可以重载,析构函数可以重载D)构造函数不能重载,析构函数不能重载2在函数定义前加上关键字“inline”,表示该函数被定义为()。A)重载函数 B)内联函数C)成员函数 D)普通函数3下面有关重载函数的说明中,()是正确的。A)重载函数必须具有不同的返回值类型B) 重载函数形参个数必须不同
10、C) 重载函数必须具有不同的形参列表D) 重载函数名可以不同4下列有关类与对象的说法中,( ) 是不正确的。A)对象是类的一个实列B) 任何一个对象只能属于一个具体的类C) 一个类只能有一个对象D) 类和对象的关糸和数椐类型与变量的关糸类似5已知: Print( )函数是一个类的常成员函数,它无返回值,下列表示中,正确的是 ( )。A)void Print( ) const; B) const void Print( ); C) void const Print( ); D) void Print(const)6假定Myclass为一个类,那么下列的函数说明中( )为该类的析构函数。A) vo
11、id Myclass( ); B) Myclass( int n);C) Myclass( ); D) Myclass( )7下面类的定义中有 ( ) 处错误。class myclassint i=0; public: void myclass( );myclass(value); ; A) 1 B)2 C)3 D)48说明虚函数的关键字是()。A. inlineB. virtualC. defineD. static9cout是某个类的标准对象的引用,该类是()。A. ostreamB. istream C. stdout D. stdin10如果class类中的所有成员在定义时都没有使用关
12、键字public、private或protected,则所有成员缺省定义为()。 A. public B. protected C. private Dstatic 11定义类模板时要使用关键字()。A. constB. newC. deleteD. template12一个类的所有对象共享的是()。A. 私有数据成员B. 公有数据成员C. 保护数据成员D. 静态数据成员13静态成员函数没有()。A. 返回值B. this指针 C. 指针参数D. 返回类型14解决多重继承中二义性问题的方法有()。A. 只能使用作用域分辨操作符B. 使用作用域分辨操作符或赋值兼容规则C. 使用作用域分辨操作符或
13、虚基类D. 使用虚基类或赋值兼容规则15如果在类CTest的外面函数调用CTest:f( );则函数f( )是类CTest的()。A. 静态成员函数B. 非静态成员函数C. 友元函数D. 前面都不正确参考答案:1A)2B)3C) 4C)5A)6D)7C)8B)9A)10C) 11D)12D)13B) 14C) 15A)1类的析构函数的作用是( )。 A) 作为类的一般成员函数B) 类的初始化C) 对象的初始化D) 对象的删除2一个类的友元函数或友元类可以访问该类的( )。A) 私有成员 B) 保护成员 C) 公有成员 D) 所有成员3下列关于成员函数特征的描述中,( ) 是错误的。A) 成员函
14、数一定是内联函数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下列虚基类的声明中正