当前位置:文档之家› 太原理工大学复试题 面向对象

太原理工大学复试题 面向对象

1.面向对象程序设计将数据与A放在一起,作为一个相互依存、不可分割的整体来处理。

A.对数据的操作 B. 信息 C. 数据隐藏 D. 数据抽象2.下面关于对象概念的描述中,A是错误的。

A. 对象就是C语言中的结构体变量B. 对象代表这正在创建的系统中的一个实体C. 对象是一个状态和操作(或方法)的封装体D. 对象之间的信息传递是通过消息进行的3.C++对C语言作了很多改进,从面向过程变成为面向对象的主要原因为D。

A. 增加了一些新的运算符B. 允许函数重载,并允许设置缺省参数C. 规定函数说明符必须用原型D. 引进了类和对象的概念4. 在下列关键字中,用以说明类中公有成员的是A。

A. publicB. privateC. protectedD. friend5. D是一个类的多个对象共享的。

A. 公有数据成员B. 私有数据成员C. 保护数据成员D. 静态数据成员6.对定义重载函数的下列要求中, D 是错误的。

A. 要求参数的个数不同B. 要求参数中至少有一个类型不同C. 要求参数个数相同是,参数类型不同D. 要求函数的返回值不同7. 关于成员函数特征的下述描述中,____A____是错误的。

A.一定是内联函数B.可以重载C.可以设置缺省参数D.可以是静态的8.下列的各类函数中,C不是类的成员函数。

A. 构造函数B. 析构函数C. 友元函数D. 拷贝初始化构造函数9. 下列不能作为类的成员的是B。

A. 自身类对象的指针B. 自身类对象C.自身类对象的引用D.另一个类的对象10. 下述静态成员的特性中,D是错误的。

A. 说明静态数据成员时前面要加修饰符staticB. 静态数据成员要在类体外进行初始化C. 引用静态数据成员,要在静态数据成员名前加<类名>和作用域运算符D. 静态数据成员不是所有对象所共用的11.已知类Sample中的一个成员函数说明如下:void set(Sample &a); 其中,Sample &a 的含义是C 。

A. 指向类Sample的指针aB. 将a的地址值赋给变量setC. a是类Sample的对象引用,用来作函数set()的形参D. 变量Sample与a按位相与作为函数set()的参数12、下列表示引用的方法中,A 是正确的。

已知:int m=10;A. int &x=m;B. int &y=10;C. int &z;D. float &t=&m;13、关于delete运算符的下列描述中,( C )是错误的。

A.它必须用于new返回的指针;B.它也适用于空指针;C.对一个指针可以使用多次该运算符;D.指针名前只有一对方括号符,不管所删除数组的维数。

14、一个类的友元函数能够访问该类的D。

A. 私有成员B. 保护成员C. 公有成员D. 所有成员15.下列析构函数的特征是___A__。

A. 一个类中只能定义一个析构函数B. 析构函数名与类名无关C. 析构函数的定义只能在类体内D. 析构函数可以有一个或多个参数1.所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是(B)A.类B.对象C.函数体D.数据块2.面向对象的程序设计语言必须具备的关键要素是( C )A.抽象和封装B.抽象和多态性C.抽象、封装、继承和多态性D.抽象、封装和继承性3.类的构造函数被自动调用执行的情况是在定义该类的(C)A.成员函数时B.数据成员时C.对象时D.友元函数时4.设有函数模板template<class Q> Q Sum(Qx,Qy){ return(x)+(y); } 则下列语句中对该函数模板错误..的使用是( D)A.Sum(10,2);B.Sum(5.0,6.7);C.Sum(15.2f,16.0f);D.Sum(″AB″,″CD″);5.已知类A是类B的友元,类B是类C的友元,则(D)A.类A一定是类C的友元B.类C一定是类A的友元C.类C的成员函数可以访问类B的对象的任何成员D.类A的成员函数可以访问类B的对象的任何成员6.如果表达式++i*k中的“++”和“*”都是重载的友元运算符,则采用运算符函数调用格式,该表达式还可表示为(B )A.operator*(i.operator++(),k)B.operator*(operator++(i),k)C.i.operator++().operator*(k)D.k.operator*(operator++(i))7.下列说法中正确的是( B )A.类定义中只能说明函数成员的函数头,不能定义函数体B.类中的函数成员可以在类体中定义,也可以在类体之外定义C.类中的函数成员在类体之外定义时必须要与类声明在同一文件中D.在类体之外定义的函数成员不能操作该类的私有数据成员8.若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的(A)A.私有成员B.公有成员C.保护成员D.保护成员或私有成员9.对基类和派生类的关系描述中,错误的是( B)A.派生类是基类的具体化B.基类继承了派生类的属性C.派生类是基类定义的延续D.派生类是基类的特殊化10.类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A对象的指针,则p->A::func()将( A )A.调用类A中的函数func()B.调用类B中的函数func()C.根据p所指的对象类型而确定调用类A中或类B中的函数func()D.既调用类A中函数,也调用类B中的函数1.下列特性中,C与C++共有的是(D)A.继承B.封装C.多态性D.函数定义不能嵌套2.通常情况下,函数模板中的类型参数个数不能是( A )A.0B.2C.4D.33.在下列成对的表达式中,运算符“+”的意义不相同的一对是(C)A.5.0+2.0和5.0+2B.5.0+2.0和5+2.0C.5.0+2.0和5+2D.5+2.0和5.0+24.类的指针成员的初始化是通过函数完成的,这个函数通常是(B)A.析构函数B.构造函数C.其它成员函数D.友元函数5.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为(D)A.const char *p=“ABCD”;B.char const *p=“ABCD”;C.char *const p=“ABCD”;D.const char * const p=“ABCD”;6.静态成员函数没有(B)A.返回值B.this指针C.指针参数D.返回类型7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中(A)A.都是虚函数B.只有被重新说明时才是虚函数C.只有被重新说明为virtual时才是虚函数D.都不是虚函数8.下面叙述不正确的是(D )A.派生类一般都用公有派生B.对基类成员的访问必须是无二义性的C.赋值兼容规则也适用于多重继承的组合D.基类的公有成员在派生类中仍然是公有的9.在C++中实现封装是借助于(B)A.枚举B.类C.数组D.函数10.所有在函数中定义的变量,都是(B)A.全局变量B.局部变量C.静态变量D.寄存器变量1.在C++中,函数原型不能标识(D)A.函数的返回类型B.函数参数的个数C.函数参数类型D.函数的功能2.在C++程序中,对象之间的相互通信通过(B)A.继承实现B.调用成员函数实现C.封装实现D.函数重载实现3.对于任意一个类,析构函数的个数最多为(B)A.0B.1C.2D.35.友元关系不能(A)A.继承B.是类与类的关系C.是一个类的成员函数与另一个类的关系D.提高程序的运行效率1.面向对象程序设计中的数据隐藏指的是(D)A.输入数据必须输入保密口令B.数据经过加密处理C.对象内部数据和代码合并在一起D.对象内部数据结构的不可访问性2.在C++中,编写一个内联函数Fun,使用int类型的参数,求其平方并返回,返回值也为int类型,下列定义正确的是(B)A.int Fun(int x){return x*x;}B.inline int Fun(int x){return x*x;}C.int inline Fun(int x){return x*x;}D.int Fun(int x){inline return x*x;}3.下面关于重载函数的叙述中正确的是(C)A.重载函数必须具有不同的返回值类型B.重载函数的形参个数必须不同C.重载函数必须有不同的形参列表D.重载函数的函数名可以不同4.若有定义“int x=17;”,则语句“cout<<oct<<x;”的输出结果是(D)A.11B.0x11C.21D.0215.下列关于析构函数的描述中正确的是(B)A. 析构函数可以重载B.析构函数可以是虚函数C.析构函数名与类名相同D.析构函数的返回类型为void6.下列关于纯虚函数的描述中,正确的是(D)A. 纯虚函数是一种特殊的虚函数,它是个空函数B. 具有纯虚函数的类称为虚基类C.一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数D. 具有纯虚函数的类不能创建类对象7.下列关于运算符重载的描述中,正确的是(D)A.可以改变运算符的目数B.可以改变运算符的优先级C.可以改变运算符的结合性D.可以改变运算符的功能8.要将类A说明是类B的虚基类,正确的描述是(B)A. class virtual B: public AB. class B: virtual public AC. virtual class B: public AD. class B: public A virtual9.下面关于静态成员的描述中,正确的是(A)A.静态数据成员是类的所有对象共享的数据B.类的每个对象都有自己的静态数据成员C.类的不同对象有不同的静态数据成员值D.静态数据成员不能通过类的对象访问10.假设Sample是个类,则语句“Sample a[2],*p[3];”调用构造函数的次数为(B )A.0 B.2 C.3 D.5构造函数1构造函数是在(创建对象)时被执行的。

2通过一个构造函数调用虚函数时,c++编译系统对该调用采用(静态链接)3构造函数不能是虚函数。

友元函数1友元函数是独立于当前类的外部函数。

2友元的作用之一是提高程序的执行效率。

3能用友元函数重载的运算符是+析构函数1类的析构函数的作用是(删除对象)2在定义析构函数时不能指定参数3定义析构函数时应注意(无形参,也不可重载)1使用派生类的主要原因是提高代码的可重用性。

2不能将一个声明为指向派生类对象的指针指向其基类的一个对象3声明为指向基类对象的指针,当其指向派生类对象时,只能利用它来直接访问派生类中从基类继承来的成员,不能直接访问公有派生类中特定的成员。

相关主题