21年春地大《面向对象程序设计(新)》在线作业一[答案]

作者:奥鹏作业答案 字体:[增加 减小] 来源:中国地质大学 时间:2021-07-29 07:07

地大《面向对象程序设计(新)》在线作业一-0010 试卷总分:100 得分:100 一、单选题 (共 15 道试题,共 60 分) 1.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属

21年春地大《面向对象程序设计(新)》在线作业一[答案]

21年春地大《面向对象程序设计(新)》在线作业一[答案]满分答案

地大《面向对象程序设计(新)》在线作业一-0010

试卷总分:100  得分:100

一、单选题 (共 15 道试题,共 60 分)

1.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是

A.公有类型

B.私有类型

C.保护类型

D.友元类型

正确答案:-----

 

2.有如下定义:int a[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值5 的是()

A.a[2]

B.a[3]

C.*(p+2)

D.*p+4

正确答案:-----

 

3.下面关于new?和delete操作符的说法,哪个是不正确的()

正确答案:-----

A.使用new操作符,可以动态分配全局堆中的内存资源

B.若p的类型已由A*强制转换为void?*,那么执行语句delete?p;时,类A的析构函数不会被调用

正确答案:-----

C.实现全局函数时,new和delete通常成对地出现在由一对匹配的花括号限定的语句块中

正确答案:-----

D.执行语句A?*?p=new?A[100];时,类A的构造函数只会被调用1次

正确答案:-----

 

4.下面对静态数据成员的描述中,正确的是()

A.静态数据成员可以在类体内进行初始化

B.静态数据成员不可以被类的对象调用

C.静态数据成员不能受private控制符的作用

D.静态数据成员可以直接用类名调用

正确答案:-----

 

5.下列程序的输出结果为()#include void main() { char,a[]={”hello",”the",”world”}; char**pa=a: pa++; cout<<*pa< }

正确答案:-----

A.hello

B.the

C.world

D.hellotheworld

正确答案:-----

 

6.已知Value 是一个类,Value 是Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()

A.Value operator+(Value v, int i);

B.Value operator+(Value v=value, int i);

C.Value operator+(Value vint i=0);

D.Value operator+(Value v=value, int i=0);

正确答案:-----

 

7.在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()

A.main

B.MAIN

C.name

D.Function

正确答案:-----

 

8.设int x;,则经过( )后,语句*px=0;可将x值置为0

A.int * px;

B.int const * px=&x;

C.int * const px=&x;

D.const int * px=&x;

正确答案:-----

 

9.当使用fstream流类定义一个流对象并打开一个磁盘文件时,文件的隐含打开方式为

A.ios::in

B.ios::out

C.ios::int | ios::out

D.没有

正确答案:-----

 

10.下列程序的运行结果为()。#include void print(double a) { cout<<++a; } void print(int a,int b) { cout<<b<<a } void main() { print(1.2); cout<<” ”; print(3,4); }

正确答案:-----

A.1.2?34

B.2.2?34

C.1.2?43

D.2.2?43

正确答案:-----

 

11.假定要对类AB定义加号操作符重载成员函数,实现两个AB类对象的加法,并返回相加结果,则该成员函数的声明语句为()

A.AB operator+(AB & a , AB & b)

B.AB operator+(AB & a)

C.operator+(AB a)

D.AB & operator+( )

正确答案:-----

 

12.在下面的函数声明中,存在着语法错误的是

A.void??BC(int??a?,?int)

正确答案:-----

B.void??BD(int?,?int)

正确答案:-----

C.void??BE(int?,?int=5)

正确答案:-----

D.int??BF(int??x?;?int??y)

正确答案:-----

 

13.假定AB为一个类,则该类的拷贝构造函数的声明语句为

A.AB?&(AB??x)

B.AB(AB??x)

C.AB(AB??&)

D.AB(AB?*?x)

正确答案:-----

 

14.下面程序的运行结果为()。 #include class A { public: A(){cout<<”1”;} ~A(){cout<<”2”;} } class B:public A { public: B(){cout<<”3”;} ~B(){cout<<”4”;} } void main()

正确答案:-----

A.1234

B.1324

C.1342

D.3142

正确答案:-----

 

15.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流状态的操作函数名称是()

A.fail

B.eof

C.bad

D.good

正确答案:-----

 

21年春地大《面向对象程序设计(新)》在线作业一[答案]多选题答案

二、多选题 (共 5 道试题,共 20 分)

16.下面关于指针变量和引用变量的说法正确的是

A.指针变量存放的是内存地址,并且可以置为0

B.定义引用变量时,必须同时指明具体被引用的对象或变量

C.使用取地址操作符,可以取得指针变量自身的地址,但取不到引用变量自身的地址

D.类中的数据成员可以是指针变量,但不能是引用变量

正确答案:-----

 

17.在类的静态成员函数的实现体中,可以访问或调用()

A.本类中的静态数据成员

B.本类中非静态的常量数据成员

C.本类中其它的静态成员函数

D.本类中非静态的成员函数

正确答案:-----

 

21.关于类中重载赋值运算符的正确说法是()

A.由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值

B.在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值

C.只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作

D.通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作

正确答案:-----

 

19.关于构造函数说法正确的是()

A.函数名只能是类名

B.返回类型可以是任意的

C.参数个数和类型可以是任意的

D.在对象创建时自动调用

正确答案:-----

 

20.类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;

正确答案:-----

 

三、判断题 (共 5 道试题,共 20 分)

21.重载函数在编译时时静态联编,而虚函数在运行时是动态联编

 

22.多态的实现分为两类:编译时的多态和运行时的多态

 

23.设int fp(char a,int b=0,double c=100.0);,则可以定义重载函数 int fp(char,int);

正确答案:-----

 

24.面向对象程序设计通过继承和重载两种机制实现多态

 

25.对于同一个类中的两个非静态成员函数,它们的函数的名称、参数类型、参数个数、参数顺序以及返回值的类型不能完全相同

 

21年春地大《面向对象程序设计(新)》在线作业一[答案]历年参考题目如下:




地大《面向对象程序设计(新)》在线作业一-0007

试卷总分:100    得分:0

一、 单选题 (共 15 道试题,共 60 分)

1.C++语言对C语言做了很多改进,C++语言相对于C语言的最根本的变化是()

A.增加了一些ABC运算符

B.允许函数重载,并允许设置缺省参数

C.规定函数说明符必须用原型

D.引进了类和对象的概念

 

 

2.下列程序的运行结果为()。#include void print(double a) { cout<<++a; } void print(int a,int b) { cout<<b<<a } void main() { print(1.2); cout<<” ”; print(3,4); }

A.1.2?34

B.2.2?34

C.1.2?43

D.2.2?43

 

 

3.由C++目标文件连接而成的可执行文件的缺省扩展名为

A.cpp

B.exe

C.obj

D.Lik

 

 

4.判断一个ofstream类对象file打开文件是否失败,应该判断()

A.创建文件流对象时是否抛出异常

B.open成员函数的返回值

C.feof成员函数的返回值

D.! file 是否为真

 

 

5.有如下程序:   #include   class BASE{     char c;   public:     BASE(char n):c(n){}     virtual~BASE(){cout<<C;}   };   class DERIVED:public BASE{     char c;   public:     DERIVED(char n):BASE(n+1),c(n){}     ~DERIVED(){cout

A.XY

B.YX

C.X

D.Y

 

 

6.用cin为整型变量输入数据时,如果从键盘输入的不是数字,输入后整型变量中的结果会是()

A.0

B.负数

C.正数

D.不确定

 

 

7.类C是以多重继承的方式从类A和类B继承而来的,类A和类B无公共的基类,那么()

A.类C的继承方式只能采用public继承

B.可改用单继承的方式实现类C的同样功能

C.类A和类B至少有一个是抽象类

D.类A和类B至少有一个是虚基类

 

 

8.下列程序的执行结果为()。 #include void main() { int a=3,b=0; int*p=&a: b=+a++; cout<<*P<<”,”<<endl }

A.3,4

B.4,3

C.3,4

D.4,4

 

 

9.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是()

A.友元函数

B.虚函数

C.构造函数

D.析构函数

 

 

10.使用流控制符需要头文件()

A.endl

B.hex

C.setw

D.left

 

 

11.设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);

 

 

12.如果有如下语句 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

 

 

13.有如下类和对象的定义: class Constants{ public; static double getPI(){return 3.1416;} }; Constants constants; 下列各组语句中,能输出3.1416 的是()

A.cout<<constants->getPI();和cout<<Constants::gerPI();

B.cout<<constants.getPI();和cout<<Constants.getPI();

C.cout<<constants->getPI();和cout<<Constants->getPI();

D.cout<<constants.getPI();和cout<<Constants::getPI();

 

 

14.如果在try块中用 throw "error";语句抛出一个异常,则参数类型是 B 的catch块能够捕获这个异 常()

A.char *

B.const char * //throw "error"字符串常量 catch块要匹配

C.char

D.const char

 

 

15.下列程序的输出结果为()#include void main() { char,a[]={”hello",”the",”world”}; char**pa=a: pa++; cout<<*pa< }

A.hello

B.the

C.world

D.hellotheworld

 

 

二、 多选题 (共 5 道试题,共 20 分)

1.关于类中重载赋值运算符的正确说法是()

A.由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值

B.在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值

C.只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作

D.通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作

 

 

2.模板定义中的类型参数可以用作()

A.局部变量类型

B.函数参数类型

C.函数返回值类型

D.数据成员类型

 

 

3.类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;

 

 

4.关于异常和C++提供的异常处理机制正确的说法是()

A.若程序员预见到程序中的异常,则一定可以通过修改程序代码来避免异常出现

B.使用dynamic_cast操作符可能会产生异常

C.异常可以用catch进行捕获处理

D.异常可以是对象,也可以是普通整数

 

 

5.关于公共静态数据成员,下面说法正确的是()

A.在main函数之前创建

B.跟某个具体对象无关

C.可以用类名和成员名直接访问

D.需要在类体外初始化

 

 

三、 判断题 (共 5 道试题,共 20 分)

1.内联inline函数表示编译器一定会将函数体直接插入到调用此函数的地方,这样可以加快程序的运行速度。

A.错误

B.正确

 

 

2.C++程序的执行只能从main()函数开始,并在main()中结束

A.错误

B.正确

 

 

3.虽然抽象类的析构函数可以是纯虚函数,但要实例化其派生类对象,仍必须提供抽象基类中析构函数的函数体

A.错误

B.正确

 

 

4.显式类型转换可以把一个变量转换成另外一种数据类型

A.错误

B.正确

 

 

5.若在类Base和派生类Derived中,分别声明一个同名的整型成员变量int x; ,那么通过Derived类的实例对象,不可能输出基类Base中的变量x的值

A.错误

B.正确

 

作业咨询:
点击这里给我发消息

论文咨询:
点击这里给我发消息

合作加盟:
点击这里给我发消息

服务时间:
8:30-24:00(工作日)

Baidu
map