地大《面向对象程序设计(新)》在线作业二
1.[单选题] 有如下定义:int a[5]={1,3,5,7,9},*p=a;下列表达式中不能得到数值5 的是()
A.a[2]
B.a[3]
C.*(p+2)
D.*p+4
答:——B——
2.[单选题] 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()
A.派生类的对象可以赋给基类的对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员
D.派生类的对象的地址可以赋给指向基类的指针
答:——C——
3.[单选题] 有如下类和对象的定义:
class Constants{
public;
static double getPI(){return 3.1416;}
};
Constants constants;
下列各组语句中,能输出3.1416 的是()
A.coutgetPI();和cout< B.cout< C.coutgetPI();和coutgetPI();
D.cout< 答:——D——
4.[单选题] 有如下程序:
#include
class BASE{
char c;
public:
BASE(char n):c(n){}
virtual~BASE(){cout< };
class DERIVED:public BASE{
char c;
public:
DERIVED(char n):BASE(n+1),c(n){}
A.XY
B.YX
C.X
D.Y
答:————
5.[单选题] 有如下类定义:
class MyClass{
Int value;
public;
MyClass(int n): value (n) {}
int gerValue()const{ return value;}
};
则类MyClass 的构造函数的个数是()
A.1 个
B.2 个
C.3 个
D.4 个
答:————
6.[单选题] 下列运算符中 重载的时候参数个数正确的是()
A.?:不能
B.,两个
C.<< 两个
D.() 多个
答:————
7.[单选题] 在下列关键字中,不能用来表示继承方式的是()
A.private
B.static
C.public
D.protected
答:————
8.[单选题] 已知函数f 的原型是void f(int *a, long & b);,变量v1、v2 的定义是:int v1; loong v2;下列调用语句中正确的是
A.f(v1, &v2);
B.f(v1, v2);
C.f(&v1, &v2);
D.f(&v1, v2);
答:————
9.[单选题] 设int f(int);和int g(int);是函数f和g的原形,以下将f作为语句调用的是()
A.g(f(3));
B.f(g(3));
C.g(f(3)+2);
D.p= f(g(3)+1);
答:————
10.[单选题] 下列程序的运行结果为()。#include
void print(double a)
{
cout<<++a;
}
void print(int a,int b)
{
cout< }
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.[单选题] 已知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);
答:————地大答案q599792222 或请进 opzy.net
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.[单选题] 在每个C++程序中都必须包含有这样一个函数,该函数的函数名为()
A.main
B.MAIN
C.name
D.Function
答:————
14.[单选题] 假定AB为一个类,则该类的拷贝构造函数的声明语句为
A.AB?&(AB??x)
B.AB(AB??x)
C.AB(AB??&)
D.AB(AB?*?x)
答:————
15.[单选题] 考虑函数原型void test(int a,int b=7,char=”*”),下面的函数调用中,属于不合法调用的是()
A.test(5);
B.test(5,8);
C.test(6,”#”)
D.test(0,0.”*”);
答:————
16.[多选题] 关于异常和C++提供的异常处理机制正确的说法是()
A.若程序员预见到程序中的异常,则一定可以通过修改程序代码来避免异常出现
B.使用dynamic_cast操作符可能会产生异常
C.异常可以用catch进行捕获处理
D.异常可以是对象,也可以是普通整数
答:————
17.[多选题] 下列运算符中,在C++语言中能重载的是()
A.*
B.)>=
C.::
D./
答:————
18.[多选题] 类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;
答:————
19.[多选题] 关于类中重载赋值运算符的正确说法是()
A.由编译器提供的缺省赋值函数具有public访问性并且执行按位赋值
B.在重载派生类的赋值操作时,不但要实现派生类中数据成员的赋值,还要负责基类中数据成员的赋值
C.只有在类中含有指针数据成员或引用数据成员时,才需要重载类的赋值操作
D.通过修改类A的声明或定义,可以禁止用户在类A对象间进行任何赋值操作
答:————
20.[多选题] 关于公共静态数据成员,下面说法正确的是()
A.在main函数之前创建
B.跟某个具体对象无关
C.可以用类名和成员名直接访问
D.需要在类体外初始化
答:————
21.[判断题] 多态的实现分为两类:编译时的多态和运行时的多态
A.错误
B.正确
答:————
22.[判断题] 函数体内声明的静态变量,至多只会被初始化一次
A.错误
B.正确
答:————
23.[判断题] 设int fp(char a,int b=0,double c=100.0);,则可以定义重载函数 int fp(char,int);
A.错误
B.正确
答:————
24.[判断题] 面向对象程序设计中,消息应该包含如何做的信息
A.错误
B.正确
答:————
25.[判断题] 抽象类不可以继承,只能派生
A.错误
B.正确
答:————