20秋学期(1709、1803、1809、1903、1909、2003、2009)《面向对象程序设计》在线作业
1.[单选题] 已知“int a=10,*p;int *&r=p; r=&a;*p=20;cout<
A.10
B.20
C.不确定值
D.程序有错误
答:——B——
2.[单选题] 可以用p.a的形式访问派生类对象p的基类成员a其中a是( )。
A.私有继承的公有成员
B.公有继承的私有成员
C.公有继承的保护成员
D.公有继承的公有成员
答:——D——
3.[单选题] 下列关于虚函数的说明中,正确的是()。
A.从虚基类继承的函数都是虚函数
B.虚函数不得是静态成员函数
C.只能通过指针或引用调用虚函数
D.抽象类中的成员函数都是虚函数
答:——B——
4.[单选题] 在一个string类对象表示的字符串中查找子串,应该使用string类的()函数。
A.assign
B.insert
C.swap
D.find
答:————
5.[单选题] 执行语句“string str(“abc”);”时,系统会自动调用string类的构造函数()。
A.string()
B.string(const char *s)
C.string(const string &str)
D.string(size_type n, char c)
答:————
6.[单选题] 下面说法中正确的是( )。
A.一个类只能定义一个构造函数,但可以定义多个析构函数
B.一个类只能定义一个析构函数,但可以定义多个构造函数
C.构造函数与析构函数同名,只要名字前加了一个求反符号(~)
D.构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以
答:————
7.[单选题] 已知函数原型:void f(int a, int b=3,char c=’*’); 则下面的函数调用中,不合法的调用是()。
A.f(5)
B.f(5,8)
C.f(6, , ‘#’)
D.f(0,0, ‘#’)
答:————
8.[单选题] ( )是析构函数的特征。
A.析构函数可以有一个或多个参数
B.析构函数定义只能在类体内
C.析构函数名与类名不同
D.一个类中只能定义一个析构函数
答:————
9.[单选题] 已知“int a=10;int &r=a; r=r+20;cout< A.10
B.20
C.30
D.不确定值
答:————
10.[单选题] 关于下面程序段说法正确的是( )
class X
{
private:
int n;
public:
X(X&);
};
X::X(X&x) {n=x.n}
X obj1,obj2(obj1);
A.语句obj2(obj1);的功能是用对象obj1初始化具有相同类类型的对象obj2
B.语句obj2(obj1);的功能是用对象obj2初始化具有相同类类型的对象obj1
C.X(X&x)中的&符号可以删除
D.X(X&x)函数中不能访问对象的私有成员
答:————
11.[单选题] 类aClass的定义如下:
class aClass
{public:
aClass(){}
aClass(int i){value=new int(i);}
int *value;
}
若要对类中的value赋值,则下面的语句中,正确的是()。
A.aClass my; my.value=10;
B.aClass my; *my.value=10;
C.aClass my; my.*value=10;
D.aClass my(10);
答:————
12.[单选题] 包含类fstream定义的头文件是( )。
A.fstream
B.ofstream
C.ifstream
D.iostream
答:————
13.[单选题] 如果类A被说明成类B的友元,则()。
A.类A的成员函数不得访问类B的所有成员
B.类A的成员函数可以访问类B的所有成员
C.类A的成员即类B的成员
D.类B的成员即类A的成员
答:————
14.[单选题] 进行文件操作时需要包含_
()头文件。
A.iostream
B.fstream
C.stdio
D.stdlib
答:————
15.[单选题] 派生类中的成员不能访问基类中的()。
A.私有成员
B.公有成员
C.保护成员
D.以上都可以
答:————
16.[单选题] 下列关于类的继承描述中,( )是错误的。
A.派生类可以访问基类的所有数据成员,也能调用基类的所有成员函数
B.派生类也是基类,但基类不一定具有派生类的全部属性和方法
C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法
D.一个基类可以有多个派生类,一个派生类可以有多个基类
答:————南开答案q599792222 或请进 opzy.net
17.[单选题] 要求打开文件 d:\file.dat,可写入数据,正确的语句是( )。
A.ifstream infile(“d:\file.dat”, ios::in);
B.ifstream infile(“d:\\file.dat”, ios::in);
C.ofstream infile(“d:\file.dat”, ios::out);
D.fstream infile(“d:\\file.dat”, ios::in| ios::out);
答:————
18.[单选题] 空类的声明( )是正确的。
A.class类名;
B.class类名{};
C.class类名{}
D.class类名
答:————
19.[单选题] 对于多重继承,有( )。
A.一个派生类只能有一个基类
B.一个基类只能产生一个派生类
C.一个基类必须产生多个派生类
D.一个派生类可有多个基类
答:————
20.[单选题] ( )的功能是对对象进行初始化。
A.析构函数
B.数据成员
C.构造函数
D.静态数据成员
答:————
21.[单选题] 在C++中,要实现动态联编,可以使用( )调用虚函数。
A.类名
B.派生类指针
C.对象名
D.基类指针
答:————
22.[单选题] 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是()。
A.派生类的对象可以直接访问基类的所有成员
B.派生类的对象可以初始化基类的引用
C.派生类的对象不可以直接访问基类中的私有成员
D.派生类的对象的地址可以赋给指向基类的指针
答:————
23.[单选题] 下列关于C++类的描述中错误的是( )。
A.类与类之间可以通过一些手段进行通信和联络
B.类用于描述事物的属性和对事物的操作
C.类与类之间必须是平等的关系,而不能组成层次关系
D.类与类之间可以通过封装而具有明确的独立性
答:————
24.[单选题] 已知X类.则当程序执行到语句X *array=new X[2];时,调用了( )次构造函数。
A.0
B.1
C.2
D.3
答:————
25.[单选题] 下列关于构造函数调用顺序的描述中,正确的是()。
A.创建派生类对象时,先调用基类的构造函数,后调用派生类的构造函数
B.创建基类对象时,先调用基类的构造函数,后调用派生类的构造函数
C.创建派生类对象时,先调用派生类的构造函数,后调用基类的构造函数
D.创建基类对象时,先调用派生类的构造函数,后调用基类的构造函数
答:————
26.[单选题] 对基类和派生类的描述中错误的是( )。
A.派生类是基类的具体化
B.基类继承了派生类的属性
C.派生类是基类定义的延续
D.派生类是基类的特殊化
答:————
27.[单选题] 声明一个类的对象时,系统自动调用( )函数。
A.成员函数
B.构造函数
C.析构函数
D.普通函数
答:————
28.[单选题] 在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是()。
A.派生类的对象可以赋给基类对象
B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类的成员
D.派生类的对象的地址可以赋给指向基类的指针
答:————
29.[单选题] 在使用类创建对象时,系统会自动调用该对象的()完成对象中数据成员的初始化等操作。
A.友元函数
B.虚函数
C.构造函数
D.析构函数
答:————
30.[单选题] 下列关于构造函数的描述中,错误的是( )。
A.构造函数可以设置默认参数
B.构造函数在说明类变量时自动执行
C.构造函数可以对静态数据成员进行初始化
D.构造函数可以重载
答:————
31.[单选题] 下列引用的定义中,( )是错误的。
A.int i; int &j=i;
B.int i; int &j; j=i;
C.float i; float &j=i;
D.char d; char &k=d;
答:————
32.[单选题] 在C++中,类与类之间的继承关系具有( )。
A.自反性
B.对称性
C.传递性
D.反对称性
答:————
33.[单选题] 下面关于类的成员函数描述不正确的是()。
A.静态成员函数内可以直接访问类的非静态成员数据
B.静态成员函数内可以直接访问类的静态成员数据
C.非静态成员函数可以直接访问类的非静态成员数据
D.非静态成员函数可以直接访问类的静态成员数据
答:————
34.[单选题] 在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值( )。
A.不同
B.相同
C.相容
D.部分相同
答:————
35.[单选题] 用于类中虚成员函数说明的关键字( )。
A.virtual
B.public
C.protected
D.private
答:————
36.[判断题] 以app方式打开文件时,当前的读指针和写指针都定位于文件尾。
A.对
B.错
答:————
37.[判断题] 派生类对基类继承的成员函数进行重定义后,则通过派生类对象和基类对象调用的都是重定义后的成员函数。
A.对
B.错
答:————
38.[判断题] C++的I/O系统通过流的机制实现文件和控制台的输入输出操作。
A.对
B.错
答:————
39.[判断题] 定义重载函数时,应保证函数类型有所不同。
A.对
B.错
答:————
40.[判断题] 在一个类中最多只能定义1个构造函数和1个析构函数。
A.对
B.错
答:————
41.[判断题] 派生类是从基类派生出来,它不能再生成新的派生类。
A.对
B.错
答:————
42.[判断题] C语言中scanf命令在c++中改用cin。
A.对
B.错
答:————
43.[判断题] 预定义的提取符和插入符是可以重载的。
A.对
B.错
答:————
44.[判断题] 对象数组的元素可以是不同类的对象。
A.对
B.错
答:————
45.[判断题] 在一个类中声明了某个静态数据成员,并在类外给出其定义和初始化后,若未定义该类的对象,该静态数据成员则不存在。
A.错误
B.正确
答:————
46.[判断题] cin是输出流的一个对象,处理标准输出。
A.对
B.错
答:————
47.[判断题] 说明或定义对象时,类名前面不需要加class关键字。
A.对
B.错
答:————
48.[判断题] 编程是将所设计的算法转换成计算机能够运行的代码的过程。
A.对
B.错
答:————
49.[判断题] 定义模板的关键字是template。
A.对
B.错
答:————
50.[判断题] 程序设计过程是指编写程序的过程。
A.对
B.错
答:————