地大《面向对象程序设计(新)》在线作业二-0009
试卷总分:100 得分:0
一、 单选题 (共 15 道试题,共 60 分)
1.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为
A.ios::in
B.ios::out
C.ios::int | ios::out
D.没有
正确答案:D
2.下列有关函数重载的叙述中,错误的是()
A.函数重载就是用相同的函数名定义多个函数
B.重载函数的参数列表必须不同
C.重载函数的返回值类型必须不同
D.重载函数的参数可以带有默认值
正确答案:C
3.设void f1(int * m,long & n);int a;long b;则以下调用合法的是()
A.f1(a,b);
B.f1(&a,b);
C.f1(a,&b);
D.f1(&a,&b);
正确答案:B
4.类的析构函数的作用是()
A.一般成员函数的初始化
B.类的初始化
C.对象的初始化
D.删除类创建的对象
正确答案:D
5.假定AB为一个类,则该类的拷贝构造函数的声明语句为
A.AB?&(AB??x)
B.AB(AB??x)
C.AB(AB??&)
D.AB(AB?*?x)
正确答案:C
6.下列程序的执行结果为()。 #include void main() { int a=3,b=0; int*p=&a: b=+a++; cout<<*P<<”,”< B.4,3 C.3,4 D.4,4 正确答案:B 7.如果有如下语句 char str[20]; cin >> str; cout << str; 执行时输入的是“this is a test line!”,则输出的内容是() A.this is a test line! B.this is a test line C.this is atest D.this 正确答案:D 8.类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么() A.类C的继承方式只能采用public继承 B.可改用单继承的方式实现类C的同样功能 C.类A和类B至少有一个是抽象类 D.类A和类B至少有一个是虚基类 正确答案:B 9.下列有关模板的叙述中,正确的是() A.函数模板不能含有常规形参 B.函数模板的一个实例就是一个函数定义 C.类模板的成员函数不能是模板函数 D.用类模板定义对象时,绝对不能省略模板实参 正确答案:B 10.下列程序的运行结果为()。#include void print(double a) { cout<<++a; } void print(int a,int b) { cout<A.1.2?34 B.2.2?34 C.1.2?43 D.2.2?43 正确答案:D 11.类B是通过public继承方式从类A派生而来的,且类A和类B都有完整的实现代 码,那么下列说法正确的是() A.类B中具有pubic可访问性的成员函数个数一定不少于类A中public成员函数的个数 B.一个类B的实例对象占用的内存空间一定不少于一个类A的实例对象占用的内存空间 C.只要类B中的构造函数都是public的,在main函数中就可以创建类B的实例对象 D.类A和类B中的同名虚函数的返回值类型必须完全一致 正确答案:B 12.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是() A.友元函数 B.虚函数 C.构造函数 D.析构函数 正确答案:C 13.下面描述中,表达错误的是() A.公有继承时基类中的public成员在派生类中仍是public的 B.公有继承是基类中的private成员在派生类中仍是private的 C.公有继承时基类中的protected成员在派生类中仍是protected的 D.私有继承时基类中的public成员在派生类中是private的 正确答案:B 14.在下面的函数声明中,存在着语法错误的是 A.void??BC(int??a?,?int) B.void??BD(int?,?int) C.void??BE(int?,?int=5) D.int??BF(int??x?;?int??y) 正确答案:D 15.设int * p2=&x,* p1=a;p2= *b;则a和b的类型分别是() A.int * 和int B.int * 和int ** C.int 和int * D.int * 和int * 正确答案:B 二、 多选题 (共 5 道试题,共 20 分) 1.关于公共静态数据成员,下面说法正确的是() A.在main函数之前创建 B.跟某个具体对象无关 C.可以用类名和成员名直接访问 D.需要在类体外初始化 正确答案:ABCD 2.类A中有唯一的一个公有成员函数f,对于类A的一个对象a,执行语句 a.f(100);成功,那么f 的函数原型可以为 A.A& f( int, int=50); B.void f(int&) const; C.const A * f(const int ); D.A f( const int&) const; 正确答案:ACD 3.关于构造函数说法正确的是() A.函数名只能是类名 B.返回类型可以是任意的 C.参数个数和类型可以是任意的 D.在对象创建时自动调用 正确答案:ACD 4.模板定义中的类型参数可以用作() A.局部变量类型 B.函数参数类型 C.函数返回值类型 D.数据成员类型 正确答案:ABCD 5.关于类中重载赋值运算符的正确说法是() A.由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值 B.在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值 C.只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作 D.通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作 正确答案:ABD 三、 判断题 (共 5 道试题,共 20 分) 1.静态成员变量所有的对象拥有一份拷贝 A.错误 B.正确 正确答案:B 2.显式类型转换可以把一个变量转换成另外一种数据类型 A.错误 B.正确 正确答案:B 3.多态的实现分为两类:编译时的多态和运行时的多态 A.错误 B.正确 正确答案:B 4.C++程序的执行只能从main()函数开始,并在main()中结束 A.错误 B.正确 正确答案:B 5.虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体 A.错误 B.正确 正确答案:B 因篇幅问题不能全部显示,请点此查看更多更全内容