郑州大学《面向对象程序设计》1-12章在线测试题库

更新时间:2024-04-05 00:05:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《面向对象程序设计》第02章在线测剩余时间: 试 59:56 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、在关键字public后面定义的成员为类的( )成员。 A、私有 C、保护 B、公用 D、任何 2、当一个类对象结束它的生存期的时侯,系统自动调用该类的( )。 A、无参构造函数 C、拷贝构造函数 B、带参构造函数 D、析构函数 3、类的构造函数被自动调用执行的情况是在定义该类的 ( ) A、成员函数时 C、对象时 B、数据成员时 D、友元函数时 4、假定AB为一个类,则执行“AB *p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。 A、0 C、2 B、1 D、3 5、假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为( )。 A、0 C、n B、1 D、n+1 第二题、多项选择题(每题2分,5道题共10分) 1、下面有关类说法正确的是(A,B,D ) A、一个类可以有多个构造函数

B、一个类只有一个析构函数 C、析构函数需要指定参数

D、在一个类中可以说明具有类类型的数据成员

2、关于封装,下列说法中正确的是( )。

A、通过封装,对象的全部属性和操作结合在一起,形成一个整体 B、通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见) C、通过封装,每个对象都成为相对独立的实体 D、通过封装,对象的属性都是不可见的

3、定义析构函数时,错误的说法是 ( ) 。

A、其名与类名完全相同 B、返回类型是 void 类型 C、无形参,也不可重载

D、函数体中必须有 delete 语句

4、假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的语句错误的是()。

A、x.a B、x.a()

C、x->GetValue() D、x.GetValue()

5、下面关于成员函数的说法错误的是()

A、类定义中只能说明函数成员的函数头,不能定义函数体 B、类中的函数成员可以在类体中定义,也可以在类体之外定义 C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中

D、在类体之外定义的函数成员不能操作该类的私有数据成员 第三题、判断题(每题1分,5道题共5分) 1、 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为x->a。 正确 错误 2、 所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类以外的函数对它们的访问都是非法的。 正确 错误 3、 某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。 正确 错误 4、 建立类的对象时,先调用各个对象成员的构造函数,初始化相应的对象成员,然后才执行类的构造函数,初始化类中其他成员。 正确 错误 5、 this是一个隐含于每一个类的成员函数的特殊指针,它是一个指向正在被某个成员函数操作的对象的指针。 正确 错误 交卷

恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第02章在线测试的得分为 20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取最高分。

测试结果如下:

1.1 [单选] [对] 在关键字public后面定义的成员为类的( )成员。 ? 1.2 [单选] [对] 当一个类对象结束它的生存期的时侯,系统自动调用该类的( )。

? 1.3 [单选] [对] 类的构造函数被自动调用执行的情况是在定义该类的 ( )

? 1.4 [单选] [对] 假定AB为一个类,则执行“AB *p=new AB(1,2);”语句时共调用该类构造函数的次数为( )。

?

?

? ? ? ?

? ? ? ? ?

?

1.5 [单选] [对] 假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“delete []px;”语句时共调用该类析构函数的次数为( )。

2.1 [多选] [对] 下面有关类说法正确的是(A,B,D )

2.2 [多选] [对] 关于封装,下列说法中正确的是( )。 2.3 [多选] [对] 定义析构函数时,错误的说法是 ( ) 。

2.4 [多选] [对] 假定AA为一个类,a为该类私有的数据成员,GetValue()为该类公有函数成员,它返回a的值,x为该类的一个对象,则访问x对象中数据成员a的语句错误的是()。

2.5 [多选] [对] 下面关于成员函数的说法错误的是()

3.1 [判断] [对] 假定AA为一个类,a为该类公有的数据成员,x为该类的一个对象,则访问x对象中数据成员a的格式为x->a。

3.2 [判断] [对] 所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类以外的函数对它们的访问都是非法的。

3.3 [判断] [对] 某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。

3.4 [判断] [对] 建立类的对象时,先调用各个对象成员的构造函数,初始化相应的对象成员,然后才执行类的构造函数,初始化类中其他成员。

3.5 [判断] [对] this是一个隐含于每一个类的成员函数的特殊指针,它是一个指向正在被某个成员函数操作的对象的指针。

面向对象程序设计》第03章在线测试 剩余时间: 59:56 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、假定AB为一个类,则执行 “AB r1=r2;”语句时将自动调用该类的( )。 A、无参构造函数 C、赋值重载函数 B、带参构造函数 D、拷贝构造函数 2、假定 ab 为一个类,则执行 ab x ;语句时将自动调用该类的 ( ) 。 A、有参构造函数 C、拷贝构造函数 B、无参构造函数 D、赋值构造函数 3、类的构造函数被自动调用执行的情况是在定义该类的 ( )

A、成员函数时 C、对象时

B、数据成员时 D、友元函数时

4、一段程序的定义如下,在函数f()中将动态对象的成员n的值改为34的语句应该为 ( ) class A { int n; public: setn(int nl) {n=nl;} A(int x) {n = x; } } int f() {A * ptr = new A(45);... }

A、A.n=34; C、ptr->setn(34);

B、ptr.setn(34); D、setn(34);

5、假定AB为一个类,px为指向该类的一个含有n个对象的动态数组的指针,则执行“del_ete []px;”语句时共调用该类析构函数的次数为( )。

A、0 C、n

B、1 D、n+1

第二题、多项选择题(每题2分,5道题共10分) 1、下列可以作为类的成员的是( )

A、自身类对象的指针 B、自身类对象 C、自身类对象的引用 D、另一个类的对象

2、下面关于成员函数的说法错误的是( )

A、类定义中只能说明函数成员的函数头,不能定义函数体 B、类中的函数成员可以在类体中定义,也可以在类体之外定义 C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中 D、在类体之外定义的函数成员不能操作该类的私有数据成员

3、下面关于静态数据成员的说法错误的是( )

A、静态数据成员是类的所有对象所共有的

B、静态数据成员要在构造函数内初始化 C、类的每个对象有自己的静态数据成员 D、静态数据成员不能通过类的对象调用

4、假定AB为一个类,则执行 “AB *s=new AB(a,5);”语句的结果是

A、动态生成对象AB赋值给变量s B、动态生成对象s

C、如果对象AB中有公有成员a,则s->a可以访问该成员 D、动态生成对象AB,该对象的地址赋值给变量s

5、下面关于常对象的说法正确的是()

A、在定义常对象时必须进行初始化。 B、常对象的数据成员不能被更新。 C、常对象不能作为类的成员。

D、通过常对象可以调用该对象的成员函数。

第三题、判断题(每题1分,5道题共5分)

1、若Sample类中的一个成员函数说明如下: Void set(Sample &a) 其中Sample &a表示的含义是.a是类Sample的对象引用,用来作函数Set()的形参。

正确

错误

2、所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类以外的函数对它们的访问都是非法的。

正确

错误

3、某类中的友元类的所有成员函数可以存取或修改该类中的私有成员。

正确

错误

4、静态成员函数允许访问类的数据成员。

正确

错误

5、建立类的对象时,先调用各个对象成员的构造函数,初始化相应的对象成员,然后才执行类的构造函数,初始化类中其他成员。

正确 错误 交卷

恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第03章

的得分为 20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取

测试结果如下:

? ? ? ?

? ? ? ? ? ? ? ? ? ? ?

1.1 [单选] [对] 假定AB为一个类,则执行 “AB r1=r2;”语句时将自动调用该

1.2 [单选] [对] 假定 ab 为一个类,则执行 ab x ;语句时将自动调用该类

1.3 [单选] [对] 类的构造函数被自动调用执行的情况是在定义该类的 ( ) 1.4 [单选] [对] 一段程序的定义如下,在函数f()中将动态对象的成员n的的语句应该为 ( ) class A { int n; public: setn(int nl) {n=nl;} A(i= x; } } int f() {A * ptr = new A(45);... } 1.5 [单选] [对] 假定AB为一个类,px为指向该类的一个含有n个对象的动态针,则执行“del_ete []px;”语句时共调用该类析构函数的次数为( )。 2.1 [多选] [对] 下列可以作为类的成员的是( )

2.2 [多选] [对] 下面关于成员函数的说法错误的是( ) 2.3 [多选] [对] 下面关于静态数据成员的说法错误的是( )

2.4 [多选] [对] 假定AB为一个类,则执行 “AB *s=new AB(a,5);”语句2.5 [多选] [对] 下面关于常对象的说法正确的是()

3.1 [判断] [对] 若Sample类中的一个成员函数说明如下: Void set(Samp中Sample &a表示的含义是.a是类Sample的对象引用,用来作函数Set()的3.2 [判断] [对] 所谓私有成员是指只有类中所提供的成员函数才能直接使用何类以外的函数对它们的访问都是非法的。

3.3 [判断] [对] 某类中的友元类的所有成员函数可以存取或修改该类中的私3.4 [判断] [对] 静态成员函数允许访问类的数据成员。

3.5 [判断] [对] 建立类的对象时,先调用各个对象成员的构造函数,初始化象成员,然后才执行类的构造函数,初始化类中其他成员。

《面向对象程序设计》第04章在线测剩余时间: 试 59:57 答题须知:1、本卷满分20分。

2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、若B类为A类的友元类,则下面的说法正确的是( ) A、B类的所有成员函数都是A类的友元函数 B、B类指定的成员函数才是A类的友元 D、B类的私有成员函数不能可以访问A类的私C、A类的所有成员函数可以访问B类的成员 有成员 2、一个类的友元不是该类的成员,与该类的关系密切,所以它( )。 A、有this指针,有默认操作的对象 C、有this指针,不能执行默认操作 B、没有this指针,可以有默认操作的对象 D、没有this指针,也就没有默认操作的对象 3、下面的语句中能将类B 定义为类A的友元类的是( ) A、friend class B; C、class A{ friend class B;}; B、class A{ friend B}; D、class friend B class A; 4、如果类B 是类A的友元类,n是类A的私有数据成员,函数f(A tmp)是类B的公有成员函数,a是类A的对象, b是B类的对象,下面语句正确的是( ) A、main(){ f(a);} C、main(){ a.n;}; B、main(){ b.f;}; D、main(){ b.f(a);}; 5、下面对于友元函数描述正确的是 A、友元函数的实现必须在类的内部定义 C、友元函数破坏了类的封装性和隐藏性 B、友元函数是类的成员函数 D、友元函数不能访问类的私有成员 第二题、多项选择题(每题2分,5道题共10分) 1、一个类的友元不是该类的成员,与该类的关系密切,所以下面它的说法错误的是( )。 A、有this指针,有默认操作的对象 B、没有this指针,可以有默认操作的对象

C、有this指针,不能执行默认操作 D、没有this指针,也就没有默认操作的对象

2、下面关于友元的说法正确的是( )

A、友元函数是拥有成员函数一切权利 B、友元是一种成员函数

C、友元可以直接访问类的所有成员 D、友元不能访问类的私有成员

3、下面关于友元函数正确的说法是( )

A、在类中用关键词friend声明友元函数 B、友元函数说明的位置只能在类的public区 C、友元函数的定义只能放在类的外部 D、友元函数不是类的成员函数

4、关于友元函数的说法正确的是( )

A、友元函数可以是普通函数,可以是其他类的成员函数,也可以是本类的成员函数 B、友元函数可以访问多个类的私有成员和保护成员 C、在调用友元函数的时候需要使用“.”运算符

D、如果友元函数是某个类的成员函数,在定义这个友元函数的时候要使用类前缀。

5、下面关于友元函数使用特点的说明正确的是( )

A、友元函数可以绕开成员函数直接访问类的私有和保护成员,避免调用成员函数相关的开销 B、友元函数虽然不是类的成员函数,但是因为友元函数是在类内说明的,所以也带有用this指针 C、友元函数可以以使用类内的所有成员,因此破坏了数据的安全性 D、友元函数的形参如果是类对象,可以用对象名,对象的引用或者对象指针

第三题、判断题(每题1分,5道题共5分)

1、友元只能访问类中的公有成员,不能访问私有成员。 正确 错误 2、友元函数的定义只能放在类的外部,与类的成员函数放在一起。 正确 错误 3、如果函数f()要操作类A和类B的私有成员,可以把f()声明为类A的成员函数,把类A声明为类B的友元类。 正确 错误 4、友元具有传递性,单向性和继承性的特点。 正确 错误 5、一个函数可以是多个类的友元函数。 正确 错误 交卷

恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第04章在线测试的得分为 20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取最高分。

测试结果如下:

? ? ? ?

? ?

1.1 [单选] [对] 若B类为A类的友元类,则下面的说法正确的是( ) 1.2 [单选] [对] 一个类的友元不是该类的成员,与该类的关系密切,所以它( )。

1.3 [单选] [对] 下面的语句中能将类B 定义为类A的友元类的是( )

1.4 [单选] [对] 如果类B 是类A的友元类,n是类A的私有数据成员,函数f(A tmp)是类B的公有成员函数,a是类A的对象, b是B类的对象,下面语句正确的是( )

1.5 [单选] [对] 下面对于友元函数描述正确的是 2.1 [多选] [对] 一个类的友元不是该类的成员,与该类的关系密切,所以下面它的说法错误的是( )。

? ? ? ? ? ? ? ? ?

2.2 [多选] [对] 下面关于友元的说法正确的是( ) 2.3 [多选] [对] 下面关于友元函数正确的说法是( ) 2.4 [多选] [对] 关于友元函数的说法正确的是( )

2.5 [多选] [对] 下面关于友元函数使用特点的说明正确的是( ) 3.1 [判断] [对] 友元只能访问类中的公有成员,不能访问私有成员。 3.2 [判断] [对] 友元函数的定义只能放在类的外部,与类的成员函数放在一起。

3.3 [判断] [对] 如果函数f()要操作类A和类B的私有成员,可以把f()声明为类A的成员函数,把类A声明为类B的友元类。

3.4 [判断] [对] 友元具有传递性,单向性和继承性的特点。 3.5 [判断] [对] 一个函数可以是多个类的友元函数。

《面向对象程序设计》第05章在线测剩余时间: 试 59:56 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、为了实现两个复数类对象c1,c2相加c1+c2,下面的语句正确的是() B、class Complex { Complex operator+(CompA、class Complex { Complex operator+();} lex &);} C、class Complex { Complex operator+(CompD、Complex operator+(Complex &); lex, Complex);} 2、在成员函数中进行双目运算符重载时,其参数表中应带有( )个参数。 A、0 C、2 B、1 D、3 3、双目运算符重载为普通函数时,其参数表中应带有( )个参数。 A、0 C、2 B、1 D、3 4、如果表达式a++中的“++”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。

A、a.operator++() C、operator++(a,1)

B、operator++(a) D、operator++(1,a)

5、如果表达式++a中的“++”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为( )。

A、a.operator++(1) C、operator++(a,1)

B、operator++(a) D、a.operator++()

第二题、多项选择题(每题2分,5道题共10分)

1、在重载一运算符时,若运算符函数的形参表中没有参数,则可能的情况是( )。

A、该运算符是一个单目运算符。

B、该运算符函数有一个隐含的参数this。 C、该运算符函数是类的成员函数。 D、该运算符函数是类的友元函数。

2、关于运算符重载,下列说法错误的是( )。

A、所有的运算符都可以重载。

B、通过重载,可以使运算符应用于自定义的数据类型。 C、通过重载,可以创造原来没有的运算符。 D、通过重载,可以改变运算符的优先级。

3、下面重载类型转换运算符的语句正确的是( )

A、class X {X operator (int);}; B、class X {operator(X, int);}; C、class X {operator Z( );}; D、class X {operator Y( );};

4、下面关于类型转换运算符正确的说法是( )

A、重载类型转换运算符没有实际意义,因为C++中有强制类型转换机制。

B、重载类型转换运算符为类的成员函数的时候,没有返回值,也没有形参。 C、重载类型转换运算符可以实现任意两种对象之间的转换。 D、重载类型转换运算符可以把类对象转换为一般数据变量。 5、下面关于函数调用运算符正确的说法是( ) A、重载函数调用运算符只能说明为类的非静态成员函数 B、重载了的函数调用运算符可以带多个形参,也可以带缺省参数 C、重载函数调用运算符的作用与重载函数的作用相同 D、重载函数的一般格式为: 类名::operator(); 第三题、判断题(每题1分,5道题共5分) 1、多数运算符可以重载,个别运算符不能重载,运算符重载是通过函数定义实现的。 正确 错误 2、对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数。 正确 错误 3、双目运算符重载为成员函数的时候,一个运算对象由this指针给出,另一个运算对象通过重载运算符的形参传递。 正确 错误 4、双目运算符op重载为A类的成员函数后,表达式“ obj1 op obj2”可以解释为:operator op(obj1,obj2)。 正确 错误 5、重载运算符为成员函数和友元函数时的关键区别在于成员函数具有this指针,而友元函数没有this指针。 正确 错误 交卷

恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第05章

的得分为 20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取

测试结果如下:

? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1.1 [单选] [对] 为了实现两个复数类对象c1,c2相加c1+c2,下面的语句正

1.2 [单选] [对] 在成员函数中进行双目运算符重载时,其参数表中应带有(

1.3 [单选] [对] 双目运算符重载为普通函数时,其参数表中应带有( )个1.4 [单选] [对] 如果表达式a++中的“++”是作为普通函数重载的运算符,若符函数调用格式,则可表示为( )。

1.5 [单选] [对] 如果表达式++a中的“++”是作为成员函数重载的运算符,若符函数调用格式,则可表示为( )。

2.1 [多选] [对] 在重载一运算符时,若运算符函数的形参表中没有参数,则况是( )。

2.2 [多选] [对] 关于运算符重载,下列说法错误的是( )。 2.3 [多选] [对] 下面重载类型转换运算符的语句正确的是( ) 2.4 [多选] [对] 下面关于类型转换运算符正确的说法是( ) 2.5 [多选] [对] 下面关于函数调用运算符正确的说法是( )

3.1 [判断] [对] 多数运算符可以重载,个别运算符不能重载,运算符重载是定义实现的。

3.2 [判断] [对] 对每个可重载的运算符来讲,它既可以重载为友元函数,又为成员函数。

3.3 [判断] [对] 双目运算符重载为成员函数的时候,一个运算对象由this另一个运算对象通过重载运算符的形参传递。

3.4 [判断] [对] 双目运算符op重载为A类的成员函数后,表达式“ obj1 可以解释为:operator op(obj1,obj2)。

3.5 [判断] [对] 重载运算符为成员函数和友元函数时的关键区别在于成员函is指针,而友元函数没有this指针。

《面向对象程序设计》第06章在线测剩余时间: 试 59:57 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、通常情况下,函数模板中的类型参数个数 不能 是 ( ) A、0 B、2

C、4

D、3

2、设有函数模板 template<class Q> Q Sum(Q x, Q y){ return(x)+(y); } 则下列语句中对该函数模板错误的使用是 ( )

A、Sum(10,2);

C、Sum(15.2f, 16.0f);

B、Sum(5.0,6.7) ;

D、Sum( ″ AB ″ , ″ CD ″ );

3、模板参数在函数参数表中出现的次数不可能是( )。

A、1 C、0

B、2 D、任意

4、关于函数模板的说法错误的是( )

A、函数模板是一个模板,其中用到通用类型参

B、函数模板是具体的函数,在系统遇到具体函

数调用时生成

C、函数模板是一组函数的抽象

D、函数模板不能执行

5、已经有类模板定义 template <class T, int exp, class T> class Tclass{…}; 下面类模板的实例化语句中正确的是( )

A、Tclass x;

C、Tclass < double, 500, double> x;

B、Tclass < double, 500, double>; D、Tclass < char, ‘a’, char> x;

第二题、多项选择题(每题2分,5道题共10分) 1、关于模板函数的说法正确的是( )

A、模板函数不能直接执行 B、模板函数是一组函数的抽象

C、模板函数的编译系统遇到函数调用时生成的 D、模板函数是重载函数

2、关于类模板的说法正确的是( )

A、类模板是类的抽象 B、类模板是模板类的抽象

C、类模板中用到通用类型参数

D、类模板和普通类一样可以用于定义对象

3、关于函数模板的实例化正确的说法是( )

A、模板函数在实例化之前要先声明 B、模板类型可以进行隐式的类型转化 C、模板函数是函数模板的特例

D、函数模板实例化生成的函数模板是重载函数

4、关于函数模板的说法正确的是( )

A、函数模板生成的模板函数是重载的,但是函数模板不能重载 B、C++程序中函数模板可以同名,但是形参个数和类型应有区别 C、函数模板可以和普通函数重载 D、函数模板不能重载

5、关于类模板的成员函数的说法正确的是( )

A、类模板的成员函数被认为是函数模板,也成为类属函数 B、类模板的成员函数的定义与类的成员函数的定义一样 C、类模板的成员函数通过类模板调用

D、类模板的成员函数可以在类外定义,但要符合函数模板定义的规范

第三题、判断题(每题1分,5道题共5分) 1、类模板中不能带有静态成员。

正确

错误

2、模板类型参数名可以用来指定函数模板的返回类型。

正确

错误

3、模板参数名在同一模板参数表中只能使用一次,但可在多个函数模板声明或定义之间重复使用。

正确 错误 4、类模板中的无类型参数一定是常量。 正确 错误 5、类模板的无类型参数可以是数组或指针。 正确 错误 交卷

恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第06章在线测试的得分为 20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取最高分。

测试结果如下:

? ? ? ? ?

? ? ? ? ? ? ? ? ? ?

1.1 [单选] [对] 通常情况下,函数模板中的类型参数个数 不能 是 ( )

1.2 [单选] [对] 设有函数模板 template<class Q> Q Sum(Q x, Q y){ return(x)+(y); } 则下列语句中对该函数模板错误的使用是 ( ) 1.3 [单选] [对] 模板参数在函数参数表中出现的次数不可能是( )。 1.4 [单选] [对] 关于函数模板的说法错误的是( )

1.5 [单选] [对] 已经有类模板定义 template <class T, int exp, class T> class Tclass{…}; 下面类模板的实例化语句中正确的是( )

2.1 [多选] [对] 关于模板函数的说法正确的是( ) 2.2 [多选] [对] 关于类模板的说法正确的是( )

2.3 [多选] [对] 关于函数模板的实例化正确的说法是( ) 2.4 [多选] [对] 关于函数模板的说法正确的是( )

2.5 [多选] [对] 关于类模板的成员函数的说法正确的是( ) 3.1 [判断] [对] 类模板中不能带有静态成员。

3.2 [判断] [对] 模板类型参数名可以用来指定函数模板的返回类型。 3.3 [判断] [对] 模板参数名在同一模板参数表中只能使用一次,但可在多个函数模板声明或定义之间重复使用。

3.4 [判断] [对] 类模板中的无类型参数一定是常量。 3.5 [判断] [对] 类模板的无类型参数可以是数组或指针。

《面向对象程序设计》第08章在线测

剩余时间:

59:56

答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、当一个类的某个函数被说明为 virtual 时,该函数在该类的所有派生类中 ( ) A、都是虚函数 C、只有被重新说明为 virtual 时才是虚函数 B、只有被重新说明时才是虚函数 D、都不是虚函数 2、对于类定义 class A{ public: virtual void func1( ){ } void func2( ){ } }; class B:public A{ public: void func1( ){cout<< ″ class B func 1 ″ <<END1;}  virtual void func2( ){cout<< ″ class B func 2 ″ <<END1;}  }; 下面正确的叙述是 ( ) A、A::func2( ) 和 B::func1( ) 都是虚函数 C、B::func1( ) 是虚函数,而 A::func2( ) 不是虚函数 B、A::func2( ) 和 B::func1( ) 都不是虚函数 D、B::func1( ) 不是虚函数,而 A::func2( ) 是虚函数 3、在派生类中定义虚函数时,可以与基类中相应的虚函数不同的是( ) A、参数类型 C、函数名称 B、参数个数 D、函数体 4、类A 中定义了虚函数f,类C是类A的派生类,类C中重新定义了虚函数f。声明变量: A a,*p1; B b, *p2; 下面语句实现动态绑定的是( ) A、a.f(); C、p1=&b; p1->f(); B、b.f(); D、p2=&b; p2->f(); 5、下面的说法正确的是( ) A、虚函数是成员函数 C、构造函数和析构函数都可以定义为虚函数 B、虚函数可以是静态成员函数 D、虚函数可以是内联函数 第二题、多项选择题(每题2分,5道题共10分) 1、在派生类中重新定义虚函数时必须在 ( ) 方面与基类保持一致。

A、参数类型 B、参数个数 C、操作内容 D、返回值

2、函数绑定的两种形式是( )

A、静态绑定 B、动态绑定 C、随机绑定 D、混合绑定

3、调用虚函数实现多态的步骤是( )

A、将基类对象地址或派生类对象地址赋给基类指针 B、定义基类指针

C、用派生类对象或基类对象调用虚函数 D、用基类指针调用虚函数

4、关于抽象类的说法正确的是( )

A、抽象类可以生成类对象

B、抽象类不能用作参数类型、函数返回类型或显式转换的类型 C、不能定义抽象类指针和引用 D、抽象类只能作为其他类的基类

5、当一个类的某个函数被说明为 virtual 时,下面说法错误的是( )

A、该函数在该类的所有派生类中都是虚函数

B、该函数在该类的所有派生类中只有被重新说明时才是虚函数

C、该函数在该类的所有派生类中只有被重新说明为 virtual 时才是虚函数

D、该函数在该类的所有派生类中都不是虚函数 第三题、判断题(每题1分,5道题共5分) 1、C++中只要调用虚函数就是动态绑定。 正确 错误 2、构造函数说明为纯虚函数是没有意义的。 正确 错误 3、动态联编是在运行时选定调用的成员函数的。 正确 错误 4、C++的虚函数必须是类的一个成员,而不允许是类的友元。 正确 错误 5、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出。 正确 错误 交卷

恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第08章

的得分为 20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取

测试结果如下:

? ?

? ? ? ? ?

1.1 [单选] [对] 当一个类的某个函数被说明为 virtual 时,该函数在该类的类中 ( )

1.2 [单选] [对] 对于类定义 class A{ public: virtual void func1( ){ nc2( ){ } }; class B:public A{ public: void func1( ){cout<< ″ clc 1 ″ <<END1;}  virtual void func2( ){cout<< ″ class B f<<END1;}  }; 下面正确的叙述是 ( )

1.3 [单选] [对] 在派生类中定义虚函数时,可以与基类中相应的虚函数不同1.4 [单选] [对] 类A 中定义了虚函数f,类C是类A的派生类,类C中重新函数f。声明变量: A a,*p1; B b, *p2; 下面语句实现动态绑定的是( )1.5 [单选] [对] 下面的说法正确的是( )

2.1 [多选] [对] 在派生类中重新定义虚函数时必须在 ( ) 方面与基类保持2.2 [多选] [对] 函数绑定的两种形式是( )

? ? ? ? ? ? ? ?

2.3 [多选] [对] 调用虚函数实现多态的步骤是( ) 2.4 [多选] [对] 关于抽象类的说法正确的是( )

2.5 [多选] [对] 当一个类的某个函数被说明为 virtual 时,下面说法错误3.1 [判断] [对] C++中只要调用虚函数就是动态绑定。 3.2 [判断] [对] 构造函数说明为纯虚函数是没有意义的。 3.3 [判断] [对] 动态联编是在运行时选定调用的成员函数的。

3.4 [判断] [对] C++的虚函数必须是类的一个成员,而不允许是类的友元。3.5 [判断] [对] 抽象类只能作为基类来使用,其纯虚函数的实现由派生类给

《面向对象程序设计》第10章在线测

剩余时间:

59:57

答题须知:1、本卷满分20分。

2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。

第一题、单项选择题(每题1分,5道题共5分) 1、关于没有被捕捉的异常正确的说法是( )

A、在catch块中没有处理的异常

C、如果一个异常没有被捕捉到,将调用termin

B、未被捕捉的异常必然导致系统崩溃

D、忽略它

ate()函数终止程序运行

2、关于catch(。。。)的说法错误的是( )

B、catch(。。。)必须放在所有catch块的后

A、catch(。。。)可以捕捉所有类型的异常

C、catch(。。。)可以避免出现没有被捕捉的

D、catch(。。。)不能单独使用

异常

3、关于异常对象的说法正确的是( )

B、以传值方式传递异常对象时,抛出的是局部

A、异常对象需要先建立,再抛出

临时对象

C、以引用方式传递异常对象时,抛出的是局部

静态对象

D、以指针方式传递异常对象时,抛出的是全局

临时对象

4、关于try, throw和catch使用的说明中,错误的是( )

A、throw必须在try块中 C、程序中catch块可以有多个

B、每一个try块的后面一定要跟着catch块 D、throw抛出的异常与距它最近的cach匹配

5、C++中异常处理的默认模式是( )

A、终止模式 C、挂起模式

B、恢复模式 D、暂停模式

第二题、多项选择题(每题2分,5道题共10分) 1、处理程序中可预料的错误的方法有( )

A、根据函数返回值进行判断处理 B、出现错误转向专门的错误处理程序 C、异常处理 D、没有办法

2、异常处理的优点是( )

A、提高程序可读性

B、程序的控制不会因产生异常而随意跳转 C、正常处理代码和异常处理代码隐式分离 D、与函数调用返回的控制方法一致

3、下面与异常处理相关的关键字有( )

A、Throw B、throw C、try D、Try

4、异常处理的执行过程是( )

A、程序执行try语句块内的保护段,如果发现异常则退出 B、如果在try语句内的程序段抛出异常,程序控制转入try块后的catch块 C、throw抛出的异常对象如果与catch子句异常类型的值一致,则执行对应的异常处理程序 D、如果没有匹配的catch子句,自动调用terminate终止程序 5、下面说法正确的是( ) A、函数声明void f(int i) throw ( int,char)说明函数f会引发int和char类型的异常 B、函数声明void f(int i) throw ( ) 不会引发任何类型的异常 C、函数声明void f(int i) throw ( )和void f(int i)是一样的 D、函数声明void f(int i)说明该函数不会引发异常 第三题、判断题(每题1分,5道题共5分) 1、异常(Exception)是程序运行过程中,由于环境变化、用户操作失误以及其它方面的原因而产生的运行时不正常的情况. 正确 错误 2、异常如果没有要求程序立即进行处理,将会引起程序错误甚至崩溃的现象。 正确 错误 3、异常信号传递方式有三种:传值方式、引用方式和指针方式。 正确 错误 4、throw( )表示函数不会抛出任何类型的异常 正确 错误 5、在C++程序中如果不定义名字空间,就表示没有使用名字空间。 正确 错误 交卷

恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第10章在线测试的得分为 20分(满分20分),本次成绩已入库。若对成绩不满意,可重新再测,取最高分。

测试结果如下:

1.1 [单选] [对] 关于没有被捕捉的异常正确的说法是( ) ? 1.2 [单选] [对] 关于catch(。。。)的说法错误的是( ) ? 1.3 [单选] [对] 关于异常对象的说法正确的是( )

?

? ? ? ? ? ? ? ? ? ? ? ?

1.4 [单选] [对] 关于try, throw和catch使用的说明中,错误的是( )

1.5 [单选] [对] C++中异常处理的默认模式是( )

2.1 [多选] [对] 处理程序中可预料的错误的方法有( ) 2.2 [多选] [对] 异常处理的优点是( )

2.3 [多选] [对] 下面与异常处理相关的关键字有( ) 2.4 [多选] [对] 异常处理的执行过程是( ) 2.5 [多选] [对] 下面说法正确的是( ) 3.1 [判断] [对] 异常(Exception)是程序运行过程中,由于环境变化、用户操作失误以及其它方面的原因而产生的运行时不正常的情况. 3.2 [判断] [对] 异常如果没有要求程序立即进行处理,将会引起程序错误甚至崩溃的现象。

3.3 [判断] [对] 异常信号传递方式有三种:传值方式、引用方式和指针方式。

3.4 [判断] [对] throw( )表示函数不会抛出任何类型的异常

3.5 [判断] [对] 在C++程序中如果不定义名字空间,就表示没有使用名字空间。

1章

第一题、单项选择题(每题1分,5道题共5分) 1、下面不属于C++语言的特点的是

A、C++支持数据封装 B、C++支持继承性 C、C++支持动态绑定 D、C++不允许破环封装

2、下面的步骤不属于C++程序开发步骤的是 A、编辑程序 B、编译程序 C、连接程序 D、程序分析

3、执行完下列语句后,a、b、c三个变量的值为多少?( ) a = 30; b = a++; c = ++a;

A、a:32 ; b:30 ; c:32; B、a:30 ; b:31 ; c:32; C、a:32 ; b:31 ; c:30; D、a:31 ; b:32 ; c:30; 4、VC项目中可以添加的文件类型不可以是 A、.CPP B、.C C、.H D、.LIB

5、下列关于条件语句的描述中,错误的是

A、if语句中只有一个else子句 B、if语句中可以有多个else if子句 C、if 语句中if体内不能是开关语句

D、if语句的if体内可以是循环语句 答案:DDADC

第二题、多项选择题(每题2分,5道题共10分) 1、C++的输出可以使用 BC

A、scanf B、printf C、cout D、out 2、以下语句循环次数为无限次的是 BCD

A、for ( y=0,x=1;x>++y;x=I++) I=x; B、for(;;x++=I); C、while(1){x++;}

D、for(I=10;;I--)sum+=I; 3、关于重载函数正确的说法是 ABD

A、函数重载指在同一作用域内多个函数使用相同的函数名 B、重载函数的参数必须不同 C、重载函数的返回值类型必须不同 D、两个功能相似的操作可以重载函数得到

4、下面函数声明正确的是 ABD A、void f1(int a,int b);

B、void f2(int a,int c,int b=-1); C、void f3(int a ,int b=-1, int c); D、int f4(?);

5、C++程序中声明变量 int *p1 , *p2 ,m=5, n;下面错误的语句是 ABD

A、p1=&m; p2=&p1; B、p1=&m; p2=&n;*p1=*p2 C、p1=&m;p2=p1; D、p1=&m;*p2=*p1;

第三题、判断题(每题1分,5道题共5分)

1、if ( x = 3 ) 和 if (x = = 3) 这两条语句的作用是一样的。

错误

2、对内联函数不能进行异常接口声明。 正确

3、重载的函数的函数名是相同的,但它们的参数的个数和数据类型不同。 正确

4、重载的函数的函数名是相同的,但它们的参数的个数、参数数据类型或返回值类型中至少应有一种是不同的。

错误

5、在for循环设置条件的第一个\前,可以用“,”分隔不同的赋值表达式。

正确 7章

第一题、单项选择题(每题1分,5道题共5分) 1、下面叙述不正确 的是 ( ) A、派生类都用公有派生产生

B、对基类成员的访问必须是无二义性的 C、赋值兼容规则也适用于多重继承的组合

D、基类的公有成员在派生类中仍然是公有的

2、在公有继承的情况下,基类成员在派生类中的访问权限( ) A、受限制 B、保持不变 C、受保护 D、不受保护

3、可以用 p.a 的形式访问派生类对象 p 的基类成员 a ,其中 a 是 ( )

A、私有继承的公有成员 B、公有继承的私有成员 C、公有继承的保护成员

D、公有继承的公有成员

4、C++的继承性允许派生类继承基类的( )。

A、部分特性,并允许增加新的特性或重定义基类的特性 B、部分特性,但不允许增加新的特性或重定义基类的特性 C、所有特性,并允许增加新的特性或重定义基类的特性 D、所有特性,但不允许增加新的特性或重定义基类的特性

5、对于公有继承,基类的公有和保护成员在派生类中将( )成员。 A、全部变成公有 B、全部变成保护 C、全部变成私有

D、仍然相应保持为公有和保护 答案ABDDD

第二题、多项选择题(每题2分,5道题共10分)

1、在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是 ( ) AC

A、派生类的对象可以赋给基类的对象 B、派生类的对象可以初始化基类的引用 C、派生类的对象可以直接访问基类中的成员

D、派生类的对象的地址可以赋给指向基类的指针

2、对于公有继承,基类中的私有成员在派生类中将 ( )。AC A、不能够直接使用成员名访问 B、能够通过成员运算符访问 C、仍然是基类的私有成员 D、变为派生类的私有成员

3、当保护继承时,下面说法正确的是( ) CD A、基类的成员的访问权限在派生类中不变

B、在类作用域外能够通过派生类的对象来直接访问基类的公有成员 C、基类的保护成员和私有成员在派生类中的访问权限为受保护的 D、基类的公有成员在派生类中的访问权限为受保护的

4、当派生类中有和基类一样名字的成员时,下面说法错误的是( )。 ACD A、将产生二义性

B、派生类的同名成员将覆盖基类的成员 C、是不能允许的 D、基类的同名成员将覆盖派生类的成员

5、含有虚基类的派生类的构造函数调用次序错误的是( ) BCD A、虚基类,基类,派生类, 对象成员 B、基类,派生类,对象成员,虚

基类 C、对象成员,基类,虚基类,派生类 D、基类,虚基类,对象成员,派生类

第三题、判断题(每题1分,5道题共5分) 1、C++语言中,既允许单继承,又允许多继承。 正确

2、派生类的继承方式有两种,公有继承和私有继承。 错误

3、在公有继承中,基类中只有公有成员对派生类是可见的。 错误

4、析构函数不能被继承。 正确

5、多继承情况下,派生类的构造函数的执行顺序取决于定义派生时所指定的各基类的顺序。

正确 9章

第一题、单项选择题(每题1分,5道题共5分) 1

列 ofstream outf( “ salary.dat ” ) ; if(...)cout<< “成功”; else cout<< “失败”;后,如文件打开成功,显示”成功”,否则显示”失败” . 由此可知,上面 if 语句的条件表达式是 ( ) 。

A、!outf 或者 outf.fail() B、!outf 或者 outf.good() C、outf 或者 outf.fail()

D、outf 或者 outf.good()

2、在C++程序中使用的cin标识符是系统类库中定义的( )类中的一个对象。

A、istream B、ostream C、iostream D、fstream

3、相对于文本文件,下列关于二进制文件的说法中,不正确的是(D) A、占用空间小 B、无法用常规的编辑工具看懂 C、执行效率高

D、可移植性好

4、流有一个状态标志字,关于failbit的下列说法中,正确的是(C) A、上次读写操作成功,但流仍可用 B、上次读写操作成功,但流不可使用 C、上次读写操作失败,但流仍可用

D、上次读写操作失败,但流不可使用

5、数字12在二进制流中的表示方式是( ) A、12 B、31H32H C、00001100 D、00010010 答案:DADCC

第二题、多项选择题(每题2分,5道题共10分) 1、下面的说法正确的是( ) AC

A、输入输出流是指变量或者对象与外设之间的输入输出操作。 B、实现输入输出操作的cin和cout是C++的语句

C、流是用流类定义的对象,而流类是用于完成输入输出的类。 D、流是IO设备

2、下面的说法正确的是( ) BD A、缓冲流就是缓冲区

B、缓冲流当缓冲区满时才刷新流的数据 C、非缓冲流不处理数据 D、非缓冲流也要使用缓冲区

3、下面属于标准错误输出的流是( ) CD A、cin B、cout C、clog D、cerr 4、下面关于cout的说法正确的是( ) AD

A、cout是与标准设备链接的预定义输出流 B、运算符>>向cout发送字符 C、一个语句中只能使用一个插入运算符 D、插入运算符是左结合的

5、下面关于cin的说法正确的是( ) AD

A、cin是与标准设备链接的预定义输入流 B、运算符>>向cin发送字符 C、提取运算符读取键盘输入的所有字符,包括空格 D、一个语句中可以使用多个提取运算符

第三题、判断题(每题1分,5道题共5分)

1、文件是指存储在存储器的数据的集合。计算机中的程序、数据、文档通常以文件方式存放。

正确

2、trunc与out参数的作用是相同的。 正确

3、cout通常与显示器相连,cin通常与键盘相连 正确

4、clear(int nState = 0)函数用于清除参数指定的状态 正确

5、调用clear函数后,流就变成可用 正确 11章

第一题、单项选择题(每题1分,5道题共5分) 1、STL中能够保存其他类型的对象的类是( ) A、容器 B、迭代器 C、算法 D、数组

2、双队列(deque)属于( ) A、顺序容器 B、关联容器 C、前向容器 D、双向容器

3、集合(set)属于( )

A、顺序容器 B、关联容器 C、前向容器 D、双向容器

4、多重集(multiset)属于( ) A、顺序容器 B、关联容器 C、前向容器 D、双向容器

5、映射(map)属于( )

A、顺序容器 B、关联容器 C、前向容器

D、双向容器 答案:AABBB

第二题、多项选择题(每题2分,5道题共10分) 1、下面属于适配器容器的是( ) AB A、优先队列 B、堆栈 C、集合 D、映射 2、下面属于容器的头文件是( )ABCD A、vector B、list C、quene D、set

3、下面的说法正确的是( )题太坑!!!对的也显示错误!

A、容器用于存放数据对象 B、算法用于操作容器中的数据对象 C、迭代器是容器的代替 D、迭代器用于链接容器和算法 4、下面关于string类型的说法正确的是( )AD

A、使用string类型前,程序必须包含头文件string B、string类型是C++的一部分

C、string类型与char* 类型的作用一样 D、string相当于一个保存字符的序列容器

5、下面属于顺序容器的是( ) ABD A、向量 B、双队列 C、堆栈 D、列表 第三题、判断题(每题1分,5道题共5分) 1、容器是能够保存其它类型的对象的类。 错误

2、算法就是一个按照一组定义明确的步骤来解决某个问题的处理过程。 正确

3、向量(vector)、双队列(deque)、列表(list)都是顺序容器 正确

4、前向容器是指一种长度可变的容器,直接继承于顺序容器 错误

5、顺序容器是指一种长度可变的容器,它支持高效的数据查询和数据操作。

错误

12章试题

第一题、单项选择题(每题1分,5道题共5分)

1、面向对象的程序设计语言必须具备的关键要素是( ) A、抽象和封装

B、抽象和多态性 C、抽象、封装、继承和多态性 D、抽象、封装和继承性 2、封装性应具有的条件是()

A、有一个清晰的边界 B、有确定的接口 C、受保护的内部实现 D、以上所有

3、OOD的作用是( )

A、提取需求 B、逻辑建模 C、求解域建模 D、分析用例

4、按钮与电梯按钮的关系是( )

A、部分与整体 B、一般与特殊 C、实例连接 D、消息连接

5、面向对象模型不包括( )

A、静态模型 B、对象模型 C、功能模型 D、动态模型 答案 DDBBA

第二题、多项选择题(每题2分,5道题共10分) 1、部分与整体的关系有( )方式 AC A、组合 B、联合 C、聚合 D、整合 2、对象之间存在的关系包括( )AB

A、部分与整体 B、一般与特殊 C、实例连接 D、消息连接 3、关于多态的说法正确的是( ) ABC

A、不同类型的对象接收相同的消息产生不同的行为 B、多态的成员函数需要定义为虚函数 C、在C++中通过基类指针调用虚函数实现多态 D、多态是指对象的多种表现形式

4、关于软件生命周期的说法正确的是( )BD A、开发程序就是直接编码

B、在程序设计之前需要先进行软件设计 C、软件投入使用后软件生命周期结束 D、软件维护也是软件生命周期的一个阶段

5、下面关于面向对象的特征说法正确的是( ) ACD A、每一个对象都具有唯一的标识

B、任何类的划分都是客观的,程序员必须遵守其规定 C、继承性是子类自动共享父类数据结构和方法的机制

D、多态是指相同的操作或函数、过程可作用于多种类型的对象上并获得不同的结果

第三题、判断题(每题1分,5道题共5分)

1、面向对象开发技术分三个阶段:面向对象分析,面向对象设计和面向对象实现。

正确

2、面向对象的要素包括抽象、封装。 错误

3、面向对象的共享性是指在同一个应用中的共享。 错误

4、窗口类与标题栏、菜单条的关系是共享聚集。 错误

5、类的关联关系通常采用函数设计方式。 错误

《面向对象程序设计》第09章在线测试

《面向对象程序设计》第09章在线测试 剩余时间: 51:07 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分)

1、cout是I0流库预定义的:

A、类 C、包含文件

B、对象 D、常量

2、在C++程序中使用的cin标识符是系统类库中定义的( )类中的一个对象。

A、istream C、iostream

B、ostream D、fstream

3、下列项目中,设置十六进制的控制符是( )

A、dec C、hex

B、oct D、ws

4、关于eof()函数的下列说法中,正确的是(C)

A、执行文件打开的操作函数 C、判断文件是否结束的函数

B、用于判断输入输出错误的函数 D、执行文件关闭的函数

5、关于重载插入运算符的说法,正确的是( )

A、函数的返回值必须是对类ostream的引用 B、函数的第一个操作数是“>>”的右操作数 D、函数的第二个参数必须是对类ostream的引

C、函数的第二个操作数是“>>”的左操作数

第二题、多项选择题(每题2分,5道题共10分)

1、对于输入流来说,用于文件读写位置定位的成员函数有( )

A、istream& istream::seekg(streampos);

B、istream& istream::seekg(streamoff,ios::seek_dir); C、streampos istream::tellg();

D、istream& ostream::seekp(streampos);

2、对于输出流来说,用于文件位置定位的成员函数有( ):

A、ostream& ostream::seekg(streampos);

B、oistream& istream::seekg(streamoff,ios::seek_dir); C、ostreampos istream::tellg(); D、ostream& ostream::seekp(streampos);

3、下面提供输入操作的类是( )

A、ios B、istream C、iostream D、ostream

4、 下面的说法正确的是(AC)

A、cerr是标准错误输出流 B、cerr和cout一样是可以缓冲的 C、cerr不能重定向 D、cout也不能重定向

5、 下面的说法正确的是(AD)

A、流读取运算符通常会跳过输入流中的空白字符 B、流的成员函数get与提取运算符的作用是一样的 C、插入运算符可以输出类的成员变量 D、输出字符可以用cout的成员函数put

第三题、判断题(每题1分,5道题共5分)

1、二进制流将字节流的每个字节以二进制方式解释,它在数据传输时不作任何转换,故效率高,可移植性好。

正确

错误

2、C++用“>>”运算符表示提取,称为提取运算符,它定义在类istream

正确

错误

3、为了输入和输出类类型的数据,用户可以重载“<<”和“>>”运算符。 正确 错误 4、trunc与out参数的作用是相同的。 正确 错误 5、调用clear函数后,流就变成可用 正确 错误 交卷 F105B4C0DA1611210600709102232894

《面向对象程序设计》第07章在线测试

《面向对象程序设计》第07章在线测试 剩余时间: 42:37 答题须知:1、本卷满分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、单项选择题(每题1分,5道题共5分) 1、对基类和派生类的关系描述中, 错误 的是 ( ) A、派生类是基类的具体化 C、派生类是基类定义的延续 B、基类继承了派生类的属性 D、派生类是基类的特殊化 2、继承机制的作用是 ( ) A、信息隐藏 C、定义新类 B、数据封装 D、数据抽象 3、下列虚基类的说明中,正确的是( ) A、class virtual B:public A C、virtual class B:public A B、class B:virtual public A D、class B:public A virtual

4、从一个基类派生出的各个类的对象之间( )。

A、共享所有数据成员,每个对象还包含基类的

所有属性

B、共享部分数据成员,每个对象还包含基类的

所有属性

C、不共享任何数据成员,但每个对象还包含基

D、共享部分数据成员和函数成员

类的所有属性

5、C++的继承性允许派生类继承基类的( )。

A、部分特性,并允许增加新的特性或重定义基

类的特性

B、部分特性,但不允许增加新的特性或重定义

基类的特性

C、所有特性,并允许增加新的特性或重定义基

类的特性

D、所有特性,但不允许增加新的特性或重定义

基类的特性

第二题、多项选择题(每题2分,5道题共10分)

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、基类指针可以指向派生类中对象

第三题、判断题(每题1分,5道题共5分) 1、基类的保护成员在派生类中仍然是保护成员。

正确

错误

2、基类的保护成员在私有派生类中是私有成员。

正确

错误

3、在公有继承中,基类中只有公有成员对派生类是可见的。

正确

错误

4、析构函数不能被继承。

正确

错误

5、解决多继承情况下出现的二义性的方法之一是使用成员名限定法。

正确

错误

交卷 39BD35B1671611210600707160251395

本文来源:https://www.bwwdw.com/article/pj5r.html

Top