(1)C++语言对C语言做了很多改进
    一、选择题
    (1) C++语言对C语言做了很多改进。与C语言相比,C++语言最根本的变化是a)添加了一些新的运算符
    b)允许函数重载,并允许设置缺省参数c)规定函数说明符必须用原型d)引进了类和对象的概念
    (2) 类成员的访问权限是通过设置成员的访问控制属性来控制的。以下不是访问控制属性
    a)公有类型b)私有类型c)保护类型d)友元类型
    (3) 在类的定义中,用于为对象分配内存空间、初始化类的数据成员和执行其他内部管理操作的函数是a)友元函数B)虚拟函数c)构造函数d)析构函数
    (4)类的析构函数的作用是a)一般成员函数的初始化b)类的初始化c)对象的初始化d)删除类创建的对象(5)下列说法正确的是
    a) 内联函数在运行时调用函数的每个位置插入函数的目标代码b)内联函数在编译时调用函数的每个位置插入函数的目标代码C)类的内联函数必须在类体中定义
    d)类的内联函数必须在类体外通过加关键字inline定义(6)下面对静态数据成员的描述中,正确的是a)静态数据成员可以在类体内进行初始化b)静态数据成员不可以被类的对象调用
    c) 静态数据成员不受专用控制器的影响。D) 静态数据成员可以用类名直接调用。(7) 下面对友元函数的描述是正确的:a)友元函数的实现必须在类内部定义。B) 友元函数是类的成员函数
    c)友元函数破坏了类的封装性和隐藏性d)友元函数不能访问类的私有成员
    (8) 在公共派生的情况下,关于派生类对象和基类对象之间的关系,以下描述是不正确的:a)派生类的对象可以分配给基类的对象;b) 派生类的对象可以初始化基类的引用
    c)派生类的对象可以直接访问基类中的成员
    d) 派生类对象的地址可以分配给指向基类(9)的指针。以下程序的运行结果是#includeclassa{
    public:a(){cout<
多态性与虚函数    B类:publica{
    public:
    b(){cout<
    voidmain(){bb;}a)1234b)1324c)1342d)3142(10)下列关于虚基类的描述,错误的是a)设置虚基类的目的是为了消除二义性b)虚基类的构造函数在非虚基类之后调用
    c) 如果在同一层中有多个虚拟基类,则会按照它们描述的顺序调用这些虚拟基类的构造函数
    d)若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数(11)下列关于多态性的描述,错误的是
    a) C++语言中的多态性可分为编译时多态性和运行时多态性。B) 编译时多态性可以通过函数重载来实现
    c)运行时的多态性可通过模板和虚函数实现d)实现运行时多态性的机制称为动态绑定
    (12) 使用ifstream stream类定义流对象并打开磁盘文件时,文件的隐式打开方法是a)IOS::inb)IOS::out
    c)ios::in|ios::outd)以上都不对
    (13) 以下课程的结果是#includeclassa{
    inta;public:
    a(){a=0;}a(intaa){a=aa;cout<
    voidmain(){
    ax,y(2),z(3);Cout<a)00B)23c)34d)25(14)对虚拟函数的调用()a)必
须使用动态绑定b)必须使用动态绑定C)必须使用静态绑定d)不一定使用动态绑定(15)下面的程序错误声明① #包括② 空总管()③ {④ int*P=newint[1];⑤ P=9;⑥ 在C++语言中,数据封装的问题是a)标准化数据B)促进数据转换C)避免数据丢失d)防止不同模块之间非法访问数据(17)正确描述类的构造函数和析构函数a)构造函数可以重新加载,析构函数不能重新加载b)构造器不能重新加载,C)构造函数可以重载,析构函数也可以重载d)构造函数不能重载,析构函数不能重载(18)以下程序的运行结果是#includeClasssa{intnum;public:a(inti){num=I;}a(a&a){num=a.num++;}voidprint(){cout<voidmain(){aa(1),b(a);a.print();b.print();}a) 11b)12C)21d)22(19)在以下静态数据成员的描述中,a)静态数据成员是由类的所有对象共享的数据B)类的每个对象都有自己的静态数据成员C)类的不同对象有不同的静态数据成员值D)不能通过类的对象调用静态数据成员(20)如果类a被描述为类B的朋友,然后a)类a的成员是类B的成员B)类B的成员是类a的成员C)类a的成员函数不能访问类B的成员D)类B不一定是类a的朋友(21)可以访问派生类对象P的基类成员a,形式是类外的P,其中a是a)私有继承的公共成员b)公有继承的私有成员C)公有继承的保护成员d)公有继承的公共成员(22)当建立派生类对象时,三个构造函数是a(基类的构造函数),B(成员对象的构
造函数)C(派生类的构造函数)这三个构造函数的调用顺序是a)ABCB)ACBC)CABD)CBA(23)下面对虚函数的描述。错误是a)在成员函数声明之前添加虚拟修改,以将函数声明为虚拟函数。B) 在基类中描述虚函数之后,派生类中的相应函数也必须被描述为虚函数。C) 虚函数可以是另一个类的友元函数,但不能是静态成员函数。D) 基类中描述的纯虚函数必须在任何派生类中实现。(24)下面对模板的描述,错误是a)函数模板和类模板的参数可以是任何数据类型,b)类模板不能直接使用。必须先将其实例化为相应的模板类,然后才能使用模板类的对象。C) 函数模板不能直接使用,需要将其实例化为模板函数才能使用。D) 类模板的成员函数都是streamf(\\\\IOS::binary)的模板函数(25)语句;的功能是创建一个流对象F,并尝试打开文件salary DAT并与其连接,a)如果文件存在,则将文件写入指针定位在文件末尾;如果文件不存在,创建新文件B)如果文件存在,将其设置为空文件;如果文件不存在,则打开失败。C) 如果文件存在,请在文件开头到文件写入指针;如果文件不存在,创建新文件d)如果文件存在,打开失败;如果文件不存在,创建一个新文件(26)。以下程序的运行结果是#includeWidMain(){intnum=1;int&ref=num;ref=ref+2;cout<cout<a)13b)16c)36d)33(27);Void main(){AA,B[3],*C;C=B;cout<(28)以下对C++语言的描述是错误的:a)C++语言支持数据封装
B)C++语言中引入好友不会破坏封装C)C++语言允许函数名和运算符重载d)C++语言支持动态绑定(29)函数的函数并不太复杂,但需要频繁调用。A) 内联函数B)重载函数c)递归函数d)嵌套函数(30)为了使类的对象不能通过成员运算符访问类中的成员,成员的访问权限不能在c++语言程序中定义为A)public B)protected c)private)static(31),对象之间的相互通信是通过a)继承b)调用成员函数c)封装d)函数重载(32)何时调用类的析构函数?a) 创建类时,b)创建对象时,c)删除对象时,d)不要自动调用(33)复制构造函数的参数通常是a)对象名,b)对象的成员名,c)对象的引用名,d)对象的指针名