[南开大学]21秋学期(1709、1803、1809、1903、1909、2003、2009、2103)《面向对象程序设计》在线作业
试卷总分:100 得分:100
第1题,下面关于友元的描述中错误的是
A、友元函数可以访问该类的私有数据成员
B、一个类的友元类中的成员函数都是这个类的友元函数
C、友元可以提高程序的运行效率
D、类与类之间的友元关系可以继承
正确答案:
第2题,有关析构函数的说法正确的是
A、析构函数可以有多个
B、析构函数和构造函数一样可以有形参
C、析构函数的功能是用来释放一个对象
D、析构函数的函数类型为void
正确答案:
第3题,对于类定义classA{publicvirtualvoidfuncl{}voidfunc2{}}classBpublicA{publicvoidfunc1{cout"classBfunc1"endl}virtualvoidfunc2{cout"classBfunc2"endl}}下面正确的叙述是
A、A::func2()和B::func1()都是虚函数
B、A::func2()和B::func1()都不是虚函数
C、B::func1()是虚函数,A::func2()不是虚函数
D、B::func1()不是虚函数,A::func2()是虚函数
正确答案:
第4题,在一个string类对象表示的字符串中查找子串应该使用string类的函数
A、assign
B、insert
C、swap
D、find
正确答案:
答案来源:(www.),有关类和对象的说法不正确的是
A、对象是类的一个实例
B、一个类只能有一个对象
C、任何一个对象只能属于一个具体的类
D、类与对象的关系和数据类型和变量的关系相似
正确答案:
第6题,已知"inta=10b=8int&r=ar=bcouta""b""r"则输出为
A、10,8,10
B、10,8,8
C、8,8,10
D、8,8,8
正确答案:
第7题,面向对象程序设计思想的主要特征中不包括
A、封装性
B、多态性
C、继承性
D、功能分解,逐步求精
正确答案:
第8题,对于多重继承有
A、一个派生类只能有一个基类
B、一个基类只能产生一个派生类
C、一个基类必须产生多个派生类
D、一个派生类可有多个基类
正确答案:
第9题,在C++中打开一个文件就是将这个文件与一个建立关联关闭一个文件就是取消这种关联
A、流
B、类
C、结构
D、对象
正确答案:
答案来源:(www.),有关重载函数的描述正确的是
A、函数名相同的函数就是重载函数
B、函数名相同但返回值类型不同的函数就是重载函数
C、函数名相同但参数个数或类型不同的函数就是重载函数
D、函数功能相同的函数就是重载函数
正确答案:
第11题,类MyClass的定义如下
classMyClass
{
publicMyClass{value=0}SetVariableinti{value=i}
privateintvalue
}
则对下列语句序列正确的描述是MyClass*pmyp=&my
A、语句p=&my;是把对象my赋值给指针变量p
B、语句MyClass *p,my;会调用两次类MyClass的构造函数
C、对语句 *p.SetVariable(5)的调用是正确的
D、语句p-SetVariable(5)与语句my.SetVariable(5)等价
正确答案:
答案来源:(www.),下列关于类和对象的叙述中错误的是
A、一个类只能有一个对象
B、对象是类的具体实例
C、类是某一类对象的抽象
D、类和对象的关系是一种数据类型与变量的关系
正确答案:
第13题,下面函数原型声明中声明了fun为纯虚函数
A、void fun()=0;
B、virtual void fun()=0;
C、virtual void fun();
D、virtual void fun(){};
正确答案:
第14题,若类A和类B的定义如下classA{intijpublicvoidget}classBA//默认为私有派生{intkpublicvoidmake}voidBmake{k=i*j}则上述定义中是非法的表达式
A、void get();
B、int k;
C、void make();
D、k=i*j;
正确答案:
答案来源:(www.),声明一个类的对象时系统自动调用函数
A、成员函数
B、构造函数
C、析构函数
D、普通函数
正确答案:
第16题,假设堆内存分配均成功则下面程序段完全正确的是
A、int *p=new int(3);cout*p;delete p;
B、int *p=new int[5]={1,2,3,4,5};for(int i=0;i5;i++)coutp[i];delete []p;
C、int *p=new int[5];for(int i=0;i5;i++,p++) {*p=i; cout*p;}delete []p;
D、以上程序段均正确
正确答案:
第17题,用于类中虚成员函数说明的关键字
A、virtual
B、public
C、protected
D、private
正确答案:
第18题,下面的叙述不符合赋值兼容规则
A、派生类的对象可以赋值给基类的对象
B、基类的对象可以赋值给派生类的对象
C、派生类的对象可以初始化基类的对象
D、派生类的对象的地址可以赋值给指向基类的指针
正确答案:
第19题,下列虚基类的声明中正确的是
A、class virtual B:public A
B、virtual class B:public A
C、class B: public A virtual
D、class B: virtual public A
正确答案:
答案来源:(www.),有下面类的说明有错误的语句是
classX{
Ainta=2
BX
public
CXintval
D~X
}
A、A
B、B
C、C
D、D
正确答案:
第21题,下面关于构造函数和析构函数的描述错误的是
A、析构函数中调用虚函数采用静态联编
B、对虚析构函数的调用可以采用动态联编
C、当基类的析构函数是虚函数时,其派生类的析构函数也一定是虚函数
D、构造函数可以声明为虚函数
正确答案:
第22题,若一个类中含有纯虚函数则该类称为
A、基类
B、纯基类
C、派生类
D、抽象类
正确答案:
第23题,运算符重载的目的是
A、提高程序的效率
B、提高代码复用能力
C、简化程序,减少目标代码
D、使程序代码直观易读
正确答案:
第24题,在保护继承中基类中的私有成员作为派生类的
A、公有成员
B、私有成员
C、保护成员
D、不可访问
正确答案:
答案来源:(www.),将一个函数声明为某类的友元函数后则在函数中不可以直接访问该类的
A、公有成员
B、私有成员
C、保护成员
D、都可访问
正确答案:
第26题,基类的在私有继承时在派生类中为私有成员函数在公有和保护继承时在派生类中为保护成员函数
A、私有成员函数
B、保护成员函数
C、公有成员
D、保护数据成员
正确答案:
第27题,下列关于虚函数的说明中正确的是
A、从虚基类继承的函数都是虚函数
B、虚函数不得是静态成员函数
C、只能通过指针或引用调用虚函数
D、抽象类中的成员函数都是虚函数
正确答案:
第28题,设置虚基类的目的是
A、简化程序
B、消除二义性
C、提高运行效率
D、减少目标代码
正确答案:
第29题,已知X类中的一个成员函数说明如下
voidSetX*a其中X*a的含义是
A、a是指向X类对象的指针,用来作为Set()的形参
B、将X*a的计算结果传递给Set()函数
C、a是X类对象的引用,用来做为Set()的形参
D、以上都不对
正确答案:
答案来源:(www.),在公有派生情况下有关派生类对象和基类对象的关系下列叙述不正确的是
A、派生类的对象可以直接访问基类的所有成员
B、派生类的对象可以初始化基类的引用
C、派生类的对象不可以直接访问基类中的私有成员
D、派生类的对象的地址可以赋给指向基类的指针
正确答案:
第31题,已知X类则当程序执行到语句X*array=newX[2]时调用了次构造函数
A、0
B、1
C、2
D、3
正确答案:
第32题,在C++中能被派生类继承的函数是
A、成员函数
B、构造函数
C、析构函数
D、拷贝构造函数
正确答案:
第33题,下面对静态数据成员的描述中正确的是
A、静态数据成员可以在类体内进行初始化
B、静态数据成员不可以被该类的对象调用
C、静态数据成员不能受private控制符的作用
D、静态数据成员可以直接用类名访问
正确答案:
第34题,下面描述中错误的是
A、在基类定义的public成员在公有继承的派生类中可见,也能在类外被访问
B、在基类定义的public和protected成员在私有继承的派生类中可见,在类外可以被访问
C、在基类定义的public和protected成员在保护继承的派生类中可见
D、在派生类中不可见的成员要变成可访问的,需要进行访问声明
正确答案:,B
第35题,对于任意一个类构造函数的个数最少为
A、0
B、1
C、2
D、3
正确答案:
第36题,假定AB为一个类有类AB的两个对象a1a2则执行语句AB*a[10]={&a1&a2}时系统自动调用该类的构造函数的次数为2
T、对
F、错
正确答案:F
第37题,打开ASCII码流文件和二进制流文件时打开方式是相同的
T、对
F、错
正确答案:F
第38题,多继承情况下派生类的构造函数中基类构造函数的执行顺序取决于定义派生类时所指定的各基类的顺序
T、对
F、错
更多答案下载:(www.)
第39题,在派生类对象销毁时系统除了会自动调用派生类的析构函数还会自动调用基类的析构函数
A、错误
B、正确
正确答案:
第40题,使用关键字class定义的类中默认的访问权限是私有private的
T、对
F、错
更多答案下载:(www.)
第41题,构造函数不能被派生类继承
A、错误
B、正确
正确答案:
第42题,一个函数模板只生成一个模板函数
T、对
F、错
正确答案:F
第43题,某类中的友元类的所有成员函数可以存取或修改该类中的私有成员
T、对
F、错
更多答案下载:(www.)
第44题,对虚函数的调用系统都是采用动态联编
A、错误
B、正确
正确答案:
第45题,C++语言中模板分为函数模板和类模板两种
T、对
F、错
更多答案下载:(www.)
第46题,为了在对象生存期结束时释放其指针成员所指向的动态存储空间通常需要为该类定义构造函数
T、对
F、错
正确答案:F
第47题,C++语言类定义中默认的访问权限是public
A、错误
B、正确
正确答案:
第48题,类的静态成员函数中不能访问非静态成员
T、对
F、错
更多答案下载:(www.)
第49题,定义模板的关键字是template
T、对
F、错
更多答案下载:(www.)
答案来源:(www.),从现存类中构建其子类可以通过C++语言中的多态机制实现
T、对
F、错
正确答案:F