23春学期(高起本:1709-2103、专升本/高起专:1909-2103)《面向对象程序设计》在线作业-00003
试卷总分:100 得分:100
一、单选题 (共 35 道试题,共 70 分)
1.下列说法中错误的是( )。
A.公有继承时基类中的public成员在派生类中是public的
B.公有继承时基类中的private成员在派生类中是不可访问的
C.私有继承时基类中的public成员在派生类中是private的
D.私有继承时基类中的public成员在派生类中是protected的
2.关于纯虚函数和抽象类的描述中,错误的是()。
A.纯虚函数是一种特殊的虚函数,它没有具体的实现。
B.抽象类是指具有纯虚函数的类。
C.一个基类中有纯虚函数,该类的派生类一定不再是抽象类。
D.抽象类作为基类来使用,其纯虚函数的实现由派生类给出。
3.下面( )的叙述不符合赋值兼容规则。
A.派生类的对象可以赋值给基类的对象
B.基类的对象可以赋值给派生类的对象
C.派生类的对象可以初始化基类的对象
D.派生类的对象的地址可以赋值给指向基类的指针
4.有关重载函数的描述正确的是()。
A.函数名相同的函数就是重载函数
B.函数名相同但返回值类型不同的函数就是重载函数
C.函数名相同但参数个数或类型不同的函数就是重载函数
D.函数功能相同的函数就是重载函数
5.类的默认的无参构造函数()。
A.在任何情况下都存在
B.仅当未定义无参构造函数时存在
C.仅当未定义有参构造函数时存在
D.仅当未定义任何构造函数时存在
6.C++有( )种联编方式。
A.1
B.2
C.3
D.4
7.继承具有(),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
A.规律性
B.传递性
C.重复性
D.多样性
8.类对象占用内存的大小与()有关。
A.数据成员
B.成员函数
C.数据成员和成员函数
D.私有成员
9.假定已定义浮点型变量data,以二进制方式把data的值写入输出文件流对象outfile中去,正确的语句是( )。
A.outfile.write((float *) &data, sizeof(float));
B.outfile.write((float *) &data, data);
C.outfile.write((char *) &data, sizeof(float));
D.outfile.write((char *) &data, data);
10.实现运行时的多态性要使用()。
A.构造函数
B.析构函数
C.重载函数
D.虚函数
11.撤消对象时,系统自动调用( )函数。
A.成员函数
B.构造函数
C.析构函数
D.普通函数
12.下面说法正确的是( )。
A.内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方
B.内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方
C.类的内联函数必须在类体内定义
D.类的内联函数必须在类体外用关键字inline定义
13.下面关于类的成员函数描述不正确的是()。
A.静态成员函数内可以直接访问类的非静态成员数据
B.静态成员函数内可以直接访问类的静态成员数据
C.非静态成员函数可以直接访问类的非静态成员数据
D.非静态成员函数可以直接访问类的静态成员数据
14.类A是类B的友元,类B是类C的友元,则( )是正确的。
A.类B是类A的友元
B.类C是类A的友元
C.类A是类C的友元
D.以上都不对
15.对于多重继承,有( )。
A.一个派生类只能有一个基类
B.一个基类只能产生一个派生类
C.一个基类必须产生多个派生类
D.一个派生类可有多个基类
16.下列类中( )是输入/输出流类iostream的派生类。
A.fstream
B.ofstream
C.ifstream
D.ostream
17.若类中有指针成员变量,则应编写(),使得在对象销毁时能够自动调用该函数释放指针成员变量所指向的内存空间。
A.友元函数
B.虚函数
C.构造函数
D.析构函数
18.对静态成员的不正确描述是( )。
A.静态成员不属于对象,是类的共享成员
B.静态数据成员要在类外定义和初始化
C.调用静态成员函数时要通过类或对象激活,所以静态成员函数拥有this指针
D.非静态成员函数也可以操作静态数据成员
19.下面程序段中,说法正确的是( ) class location{ public : int GetX(); }; class rectangle:private location { public: int GetW(); };
A.类rectangle的私有派生类是location
B.类rectangle中的public成员在类 location中是私有的
C.类location中的public成员在类 rectangle中是不可访问的
D.viod f( ) { Rectangle r; int X=r .GetX( ); } 其中int X = r .GetX( );是非法语句
20.下面关于友元的描述中,错误的是( )。
A.友元函数可以访问该类的私有数据成员
B.一个类的友元类中的成员函数都是这个类的友元函数
C.友元可以提高程序的运行效率
D.类与类之间的友元关系可以继承
21.( )的功能是对对象进行初始化。
A.析构函数
B.数据成员
C.构造函数
D.静态数据成员
22.下面程序段中是内联函数的是( )。 class location { private: int x ,y; public:南开答案请进:opzy.net或请联系微信:1095258436 void init(int initx,int inity) { x=initx; y=inity; } int getx(){return x;} int gety(); }; inline int location::gety() {return y;}
A.init (int initx,int inity)
B.getx(),gety()
C.A和B都是
D.A和getx()
23.在保护继承中,基类中的私有成员作为派生类的()。
A.公有成员
B.私有成员
C.保护成员
D.不可访问
24.下列关于成员函数特征的描述中,错误的是( )。
A.成员函数一定是内联函数
B.成员函数可以重载
C.成员函数可以设置参数的默认值
D.成员函数可以是静态的
25.若一个类中含有纯虚函数,则该类称为( )。
A.基类
B.纯基类
C.派生类
D.抽象类
26.在C++中,关于下列设置参数默认值的描述中,正确的是( )。
A.不允许设置参数的默认值
B.设置参数默认值只能在定义函数时设置
C.设置参数默认值时,应该是先设置右边的再设置左边的
D.设置参数默认值时,应该全部参数都设置
27.由于数据隐藏的需要,静态数据成员通常被说明为( )。
A.私有的
B.公有的
C.保护的
D.不可访问的
28.友元关系不能( )。
A.继承
B.是类与类之间是关系
C.是一个类的成员函数与另一个类的关系
D.提高程序的运行效率
29.动态联编所支持的多态性是( )。
A.虚函数
B.继承
C.编译时的多态性
D.运行时的多态性
30.有下面类的说明,有错误的语句是( )。 class X { A.int a=2; B.X(); public: C.X(int val); D.~X(); };
A.A
B.B
C.C
D.D
31.执行语句“string str(“abc”);”时,系统会自动调用string类的构造函数()。
A.string()
B.string(const char *s)
C.string(const string &str)
D.string(size_type n, char c)
32.一个( )允许用户为类定义一种模式,使得类中的某些数据成员、某些成员函数的参数和返回值可以取任意数据类型。
A.函数模板
B.模板函数
C.类模板
D.模板类
33.已知X类中的一个成员函数说明如下: void Set(X*a); 其中,X*a的含义是( )。
A.a是指向X类对象的指针,用来作为Set()的形参
B.将X*a的计算结果传递给Set()函数
C.a是X类对象的引用,用来做为Set()的形参
D.以上都不对
34.在下列选项中( )不是ostream类的对象。
A.cin
B.cerr
C.clog
D.cout
35.关于对象成员的构造函数的调用顺序,说法正确的是( )。
A.与它们在成员初始化列表中给出的顺序相同
B.与析构函数的调用顺序相同
C.与它们在类中说明顺序相同
D.以上说法都不对
二、判断题 (共 15 道试题,共 30 分)
36.预定义的提取符和插入符是可以重载的。
37.类模板可以生成若干个模板类,每个模板类又可定义若干个对象。
38.cout后面的符号是<<。
39.C++的I/O系统通过流的机制实现文件和控制台的输入输出操作。
40.在面向对象程序设计中,每个对象可以单独设置属性值。
41.C++基类中,不能被派生类继承的有构造函数和析构函数。
42.运算符重载可以改变运算符的优先级。
43.在类内部定义的public数据可以在类外进行存取。
44.面向对象程序设计方法中也会使用结构化程序设计方法。
45.对象成员的访问与结构变量成员的访问相同,使用运算符.或->。
46.以友元方式重载运算符时,形参列表中至少有一个参数必须是自定义数据类型。
47.可以在类的构造函数中对静态数据成员进行初始化。
48.在用class定义一个类时,数据成员和成员函数的默认访问权限是public。
49.遇到一个问题后,应先分析问题、设计算法,然后再编写程序。
50.使用关闭文件函数close()关闭一个文件时,但流对象仍存在。