智慧树知到面向对象程序设计-智慧树-知到-题库零氪完整答案

日期:2022-06-25 15:32:26

第一章测试

1、( )是子类自动共享父类数据结构和方法的机制,这是类之间的一种关系。
    A、抽象性
    B、封装性
    C、继承性
    D、多态性

2、编译时的多态性是通过( )来实现的。
    A、重载
    B、组合
    C、继承
    D、多态

3、运行时的多态性是通过( )来实现的。
    A、友元函数
    B、虚函数
    C、纯虚函数
    D、静态函数

4、( )是对一组具有共同属性特征和行为特征的对象的抽象。
    A、对象
    B、类
    C、成员函数
    D、静态函数

5、( )是一个类所描述的一个具体的对象。
    A、类
    B、对象
    C、实例
    D、成员函数

6、( )就是从众多的事物中抽取出共同的、本质性的特征,舍弃其非本质的特征。
    A、继承
    B、封装
    C、抽象
    D、多态

7、子类继承了多个父类的数据结构和方法,则称为( )。
    A、单继承
    B、封装
    C、抽象
    D、多重继承

8、面向对象设计中,对象就是( ),它是把数据结构和操作这些数据的方法紧密地结合在一起所构成的模块。
    A、方法
    B、操作
    C、模块
    D、抽象

9、把面向对象思想应用于软件开发过程中,指导开发活动的系统方法,简称( )方法。
    A、面向对象
    B、面向过程
    C、面向应用
    D、其它都不对

10、面向对象程序设计所涉及的术语有类、对象、方法、( )和重载。
    A、实例
    B、属性
    C、消息
    D、数据

第二章测试

1、大多数C++程序通常包含( )头文件,它包含了所有输入/输出操作所需要的信息。
    A、ostream.h
    B、istream.h
    C、iostream.h
    D、string.h

2、运算符<<左边的操作数是( )类的一个对象,右边可以是C++的合法表达式。
    A、ofstream
    B、istream
    C、ostream
    D、ifstream

3、( )表示标准错误输出(非缓冲方式)导出程序错误信息。
    A、cin
    B、cout
    C、cerr
    D、clog

4、( )表示标准错误输出(缓冲方式),导出程序错误信息。
    A、cin
    B、cout
    C、cerr
    D、clog

5、命名空间成员的访问格式为( )。
    A、命名空间标识符.成员名
    B、命名空间标识符:成员名
    C、命名空间标识符::成员名
    D、命名空间标识符->成员名

6、ifstream从( )派生而来,把文件绑定到程序输入。
    A、ofstream
    B、istream
    C、ostream
    D、其它都不是

7、ofstream从( )派生而来,把文件绑定到程序输出。
    A、ofstream
    B、istream
    C、ostream
    D、其它都不是

8、fstream从( )派生而来,把文件绑定到程序输入/输出。
    A、ofstream
    B、istream
    C、iostream
    D、ifstream

9、( )是标准输入流。
    A、cin
    B、cout
    C、cerr
    D、clog

10、下面4个选项中,专门用于读取单个字符的是( )。
    A、cin.read()
    B、cin.get()
    C、cin.put()
    D、cin.getline()

第三章测试

1、( )的功能是释放一个对象,在对象删除之前,用它来做一些内存释放等清理工作,它的功能与构造函数的功能正好相反。
    A、析构函数
    B、静态函数
    C、友元函数
    D、构造函数

2、在堆中创建的数据对象称为( )。
    A、静态对象
    B、堆对象
    C、全局对象
    D、其它都不是

3、在C++语言程序中,对象之间的相互通信通过调用( )函数实现。
    A、成员
    B、静态
    C、析构
    D、构造

4、析构函数和构造函数两者的调用次序( )。
    A、相同
    B、相反
    C、随机
    D、其它都不对

5、如果不定义析构函数,系统会自动生成一个默认的( )。
    A、析构函数
    B、静态函数
    C、友元函数
    D、构造函数

6、以下程序的输出结果为( ) #include <iostream.h> class Sample { int x; public: Sample(){cout<<(x=0);} Sample(int i){cout<<(x=i);} ~Sample(){cout<<x<<endl;} void disp(){cout<<x;} }; void main() { Sample s(3); int i=0; if(i=0) { Sample s; s.disp (); } }
    A、34
    B、33
    C、22
    D、24

7、以下选项中是下列程序的输出结果的是( ) 2.png
    A、0
    B、4
    C、5
    D、3

8、下面选项中是以下程序输出结果的是( ) #include <iostream.h> int add(int x, int y = 8); void main() { int a = 6; cout << add(a, add(a)) << endl; } int add(int x, int y) { return x + y; }
    A、20
    B、14
    C、12
    D、16

9、下面程序的输出结果为( ) #include <iostream.h> int p(int x = 4, int y = 5, int z = 6) { return x + y + z; } void main() { int a = 3, b = 4, c = 5; c = p(b, a); cout << c; }
    A、12
    B、13
    C、11
    D、15

10、请选择出下面程序的输出结果( ) #include <iostream.h> float f(float x, float y) { return x+y; } int f(int x, int y) { return x+y; } void main() { float a, b, c; a = b = 50.5; c = f(a, b); cout << c; }
    A、101
    B、100
    C、50.5
    D、100.5

第四章测试

1、( )是指两个或两个以上的函数具有相同的函数名,但参数类型不一致或参数个数不同。
    A、函数模板
    B、函数重载
    C、友元函数
    D、默认参数

2、成员函数重载的一个很重要的应用就是重载( )。
    A、析构函数
    B、静态函数
    C、友元函数
    D、构造函数

3、在函数调用时,若某个参数省略,则其后的参数皆应省略而采用( )。
    A、模板
    B、重载
    C、默认值
    D、默认参数

4、在类内给出函数体定义的成员函数被默认为( )。
    A、构造函数
    B、内联函数
    C、友元函数
    D、静态函数

5、内联函数的关键字是( )。
    A、static
    B、inline
    C、throw
    D、friend

6、函数重载是指两个或两个以上的函数具有( )的函数名,但参数类型不一致或参数个数不同。
    A、相同
    B、不同
    C、随意
    D、其它都可以

7、函数重载是指两个或两个以上的函数具有相同的函数名,但参数类型不一致或( )不同。
    A、参数个数
    B、参数名称
    C、返回值类型
    D、其它都不对

8、一个类的友元函数能够访问该类的( )
    A、私有成员
    B、保护成员
    C、公有成员
    D、所有成员

9、函数重载是C++对C语言的扩展,包括( )重载。
    A、非成员函数
    B、静态
    C、成员函数
    D、友元

10、在内联函数体中不能含有如下哪些语句( )。
    A、switch语句
    B、while语句
    C、赋值语句
    D、其它都是

第五章测试

1、如执行语句以下语句之后,x的值为( )。int x=5,*y=&x;int* &z=y; z++;
    A、3
    B、4
    C、5
    D、6

2、如执行语句以下语句之后,x的值为( )。int a[5]={1,2,3},&x=a[2];int *y=&x; y++;
    A、3
    B、4
    C、5
    D、6

3、已知:const int x = 23;定义指针q指向x,语句是( )
    A、const int *q=x;
    B、int * const q=&x;
    C、const int *q=&x;
    D、int * const q=x;

4、常对象只能调( )函数。
    A、静态
    B、成员
    C、友元
    D、常成员

5、一旦一个引用被初始化为指向一个对象,它就( )被改变为对另一个对象的引用。
    A、能
    B、不能
    C、不确定
    D、没有正确选项

6、定义q为一个指向int类型的变量i的常指针语句( )
    A、const int *q=&i;
    B、int * const q=i;
    C、const int *q=i;
    D、int * const q=&i;

7、引用是通过变量的别名( )访问变量。
    A、间接
    B、随机
    C、直接
    D、其它都不对

8、在类里创建一个const数据成员时不能赋初值,只能在( )里对其赋初值。
    A、析构函数
    B、静态函数
    C、构造函数
    D、友元函数

9、引用作为函数参数时,函数实参与形参之间的传递是( )传递。
    A、双向
    B、单向
    C、随机
    D、所有选项都对

10、关于拷贝构造函数的描述正确的是( )。
    A、通常的拷贝构造函数的参数是对象的指针类型
    B、如果不自定义拷贝构造函数,系统提供默认的拷贝构造函数
    C、如果有自定义的构造函数,系统就不再提供拷贝构造函数
    D、如果需要用已有对象为新创建的对象初始化时,就必须自定义拷贝构造函数

第六章测试

1、C++中只能重载C++语言中( )的运算符。
    A、所有
    B、新创建的
    C、原先已定义
    D、其他选项均不对

2、前置单目运算符重载为类的成员函数时,其参数表有( )个参数。
    A、0
    B、1
    C、2
    D、任意

3、用构造函数完成类类型的转换,类内至少定义一个( )的构造函数。
    A、只带两个参数
    B、可带任意个参数
    C、无参数
    D、只带一个参

4、双目运算符重载为类的成员函数时,其参数表有( )个参数。
    A、0
    B、1
    C、2
    D、任意

5、对赋值运算符进行重载时,应声明为( )函数。
    A、静态成员
    B、构造
    C、非静态成员
    D、析构

6、将一个char型数据转换为String类型(用户自定义类型)的数据时,可以用( )函数完成类类型转换。
    A、友元
    B、构造
    C、静态
    D、析构

7、如何只带一个参数(或其他参数都带有默认值)的( )函数都可以认为是一种转换构造函数。
    A、静态
    B、析构
    C、友元
    D、构造

8、下列关于运算符重载的描述中,错误的是( )。
    A、运算符重载不可以改变优先级
    B、运算符重载不可以改变结合性
    C、运算符重载不可以改变运算符的操作数个数
    D、加法运算符"+"和赋值运算符"="都重载之后,意味着"+="也被重载了

9、下列运算符中,必须使用成员函数进行重载的是( )。
    A、==
    B、=
    C、>>
    D、++

10、大多数的运算符重载可以重载为类的( )。
    A、成员函数
    B、非成员函数
    C、构造函数
    D、友元函数

第七章测试

1、( )函数和全局函数不能声明为虚函数。
    A、非静态成员
    B、析构
    C、静态成员
    D、所有都可以

2、在派生类的声明中,如果只有一个基类名,则这种继承方式称为( )。
    A、单继承
    B、多继承
    C、组合继承
    D、抽象继承

3、普通对象调用虚函数,系统仍然以( )方式调用函数。
    A、动态绑定
    B、继承
    C、静态绑定
    D、派生

4、抽象类只能用做其他类的( )类,不能建立抽象类对象。
    A、子
    B、基
    C、派生
    D、其它都可以

5、如果派生类没有给出全部纯虚函数的实现,这时的派生类仍然是一个( )类。
    A、抽象
    B、基
    C、派生
    D、其它都可以

6、必须在派生类的( )函数中调用初始化虚基类的构造函数。
    A、友元
    B、析构
    C、纯虚
    D、构造

7、如果一个类带有纯虚函数,则此类称为( )类。
    A、子
    B、抽象
    C、派生
    D、虚基

8、抽象类用做提供( )类的接口,不能声明对象。
    A、基
    B、抽象
    C、派生
    D、虚基

9、关于虚函数和抽象类描述错误的是( )。
    A、纯虚函数是一种特殊的函数,它没有具体实现
    B、抽象类是指具有纯虚函数的类
    C、一个基类中声明有纯虚函数,则它的派生类一定不再是抽象类
    D、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出

10、在派生类中重新定义虚函数时,除了( ),其他方面都必须与基类中相应的虚函数保持一致。
    A、参数个数
    B、参数类型
    C、函数名称
    D、函数体

第八章测试

1、把模板参数实例化后,由函数模板产生的函数称为( ),它是函数模板的具体实例。
    A、函数模板
    B、友元函数
    C、模板函数
    D、内联函数

2、类模板代表了一类( ),模板类表示某一具体的类。
    A、类
    B、对象
    C、函数
    D、模板

3、使用函数模板的方法与使用普通函数类似,即使用( )代替模板参数并调用。
    A、形参
    B、类
    C、声明
    D、实参

4、类模板的使用实际上是将类模板实例化成为一个具体的( )。
    A、类
    B、对象
    C、函数
    D、模板类

5、如果一个模板声明列出了多个参数,则每个参数之间必须使用逗号隔开,每个参数都须重复使用关键字( )。
    A、const
    B、static
    C、void
    D、class

6、一个( )允许用户为类定义一种模式,使得类中的某些数据成员及某些成员函数的返回值能取任意类型。
    A、类模板
    B、模板类
    C、函数模板
    D、模板函数

7、函数模板代表了一类函数,是对一类函数的抽象,它以( )类型为参数。
    A、自定义
    B、int
    C、char
    D、其它都不是

8、模板函数与函数重载相同,可以互相取代。

9、类模板的成员函数都是模板函数。

10、类模板本身在编译中会生成额外的代码。

第九章测试

1、要通过“<<”输出自定义的类类型,则必须重载该运算符为( )函数。
    A、析构
    B、静态
    C、友元
    D、构造

2、要从文件中输入数据,则必须定义( )类的对象。
    A、ofstream
    B、istream
    C、ifstream
    D、ostream

3、控制格式输入输出的操作中,函数( )是用来设置填充字符。要求给出函数名和参数类型。
    A、setbase
    B、fill
    C、setw
    D、setfill

4、在C++ 的流对象中,( )表示标准输入的istream类对象。
    A、cout
    B、cin
    C、in
    D、out

5、下列关于getline( )函数的叙述中,错误的是( )。
    A、getline( )函数仅用于从键盘而不能从文件读取字符串
    B、getline( )函数读取字符串长度是受限制的
    C、getline( )函数读取字符串时,遇到终止符就停止
    D、getline( )函数中所使用的终止符默认是换行符,也可指定其他终止符

6、打开文件的方式中,( )以追加方式打开文件。
    A、ios::in
    B、ios::out
    C、ios::app
    D、ios::trunk

7、以下程序的输出结果为( ) #include <iostream> #include <iomanip> using namespace std; ostream &myoutput(ostream& stream) { stream<<hex<<setw(7)<<setfill('*')<<left; return stream; } int main() { int i=91; cout<<i<<","<<myoutput<<i<<endl; return 0; }
    A、91,5B
    B、91,完整答案

*
    C、91,5B*****
    D、其它都不对

8、以下程序的输出结果为( ) #include <iostream> #include <fstream> using namespace std; int main() { ofstream outf("data.dat"); int i; for(i=0;i<10;i++) { outf<<i; if(i%3==0) outf<<endl; } outf.close(); ifstream inf("data.dat"); while(!inf.eof()) { inf>>i; cout<<i<<","; } inf.close(); return 0; }
    A、0,123,456,789,789,
    B、0,
    C、0,123,456,789,
    D、其它都不对

9、以下程序的输出结果为( ) #include <iostream> #include <iomanip> using namespace std; ostream &myoutput(ostream& stream) { stream<<setw(10)<<setfill('#')<<left; return stream; } int main() { int i=123; cout<<i<<","<<myoutput<<i<<endl; return 0; }
    A、123,123#######
    B、123,#######123
    C、123,##########
    D、123,123

10、根据数据的组织形式,文件分为( )。
    A、文本文件
    B、二进制文件
    C、十进制
    D、十六进制文件

第十章测试

1、异常处理不仅提供了程序的容错性,还提供了各种( )的方法。
    A、继承
    B、抽象
    C、友元
    D、捕获异常

2、如不想在异常抛出时退出函数,可在函数内创建一个( ),用于测试各种错误。
    A、特殊块
    B、空语句
    C、死循环
    D、其它都可以

3、在try之后,根据异常的不同情况,相应的处理方法由关键字( )引导。
    A、test
    B、try
    C、catch
    D、throw

4、异常处理部分必须( )放在测试块之后。
    A、直接
    B、间断
    C、随意
    D、其它都不对

5、如果找到类型匹配的catch语句,进行捕获,其参数被初始化为( )对象,执行相应catch内的语句模块。
    A、随机
    B、指向异常
    C、任意
    D、其它都不对

6、如果任意层的异常处理器都没有捕获到异常(没有指定相应的catch块),称为( )。
    A、没有异常
    B、异常捕获
    C、未捕获异常
    D、其它都不对

7、C++语言提供了异常接口声明语法,利用它可以清晰地告诉使用者异常抛出的( )。
    A、类型
    B、函数
    C、功能
    D、其它都不对

8、如果发生异常,则根据throw抛出的异常对象类型来匹配一个( )语句。
    A、test
    B、try
    C、catch
    D、throw

9、如有异常抛出,可以使用( )类型变量作为参数。
    A、自定义
    B、预定义
    C、int
    D、其它都不是

10、给定void f( ) throw( ); 则该函数f能抛出( )异常。
    A、int
    B、自定义类型
    C、float
    D、其它都不对