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

合集下载

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

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

《面向对象程序设计》第05章在线测试A class Complex { Complex operator +();}B+(Complex &);}C class Complex { Complex operator+(Complex, Complex);}DA BC D如果表达式是作为普通函数重载的运算符,A BC D、双目运算符的调用格式是(A右运算对象BC右运算对象D、一个程序中数组int a[5][10],k;”,且程序中包含有语句“A BC DC、.D、,2、下面运算符可以重载的是()A、*B、.*C、?:D、->*3、关于运算符重载,下列说法错误的是()。

A、重载时,运算符的优先级可以改变。

B、重载时,运算符的结合性可以改变。

C、重载时,运算符的功能可以改变。

D、重载时,运算符的操作数个数可以改变。

4、下面关于逗号运算符的说法正确的是()A、逗号运算符是多目运算符B、逗号运算符的表达式为“左运算数,右运算数”,返回值为右运算数的值。

C、逗号运算符可以重载为成员函数,形参只带右运算数。

D、逗号运算符的返回值为左运算数的值。

5、下面关于函数调用运算符正确的说法是()A、重载函数调用运算符只能说明为类的非静态成员函数B、重载了的函数调用运算符可以带多个形参,也可以带缺省参数C、重载函数调用运算符的作用与重载函数的作用相同D、重载函数的一般格式为:类名::operator();第三题、判断题(每题1分,5道题共5分)1、对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数。

正确错误正确错误、重载运算符为成员函数和友元函数时的关键区别在于成员函数具有正确错误+=运算符与标准数据类型的=运算作用完全相同。

正确错误、下标运算符重载函数只能作为类的成员函数,不能作为类的友元函数。

正确错误。

面向对象程序设计样卷

面向对象程序设计样卷

面向对象程序设计样卷一、选择题( 本大题共10小题, 每题2分, 共20分)4.在下列定义的引用中, ( B )是错误的。

A. int i;B. int i;int &j = i; float &j=i;C. float i;D. char d;float &j = i; char &e = d;5. 假定BB为一个类,则执行BB y;语句时将自动调用该类的( B )A. 有参构造函数B. 无参构造函数C. 拷贝构造函数D. 赋值重载函数7.下列对派生类的描述中, ( C )是错误的。

A. 一个派生类能够作为另一个派生类的基类B.派生类至少应有一个基类C. 基类中成员访问权限继承到派生类中都保持不变D.派生类成员除了自己定义的成员外, 还包含了它的基类成员10.控制输出格式的控制符中, ( D )是设置输出宽度的。

A.wsB.endsC. setfill()D.setw()二、填空题( 本大题共10小题, 每题2分, 共20分)1.以/*开始, 以*/结束, 在/*和*/之间的部分即为注释。

2.重载函数在参数类型或参数个数上不同, 但函数名和类名_相同。

3. 假如一个类的名称为MyClass, 使用这个类的一个对象初始化该类的另一个对象时, 能够调用__拷贝______构造函数来完成此功能。

4.当删除对象时, 程序自动调用析构函数。

5. 对于每一个类的非静态成员函数, 都有一个隐含的_this_______指针。

8. 抽象类是指类里有一个函数, 是纯嘘函数。

三、改错题( 下面程序或程序段中有一处错误, 请用注释标明错误所在行的出错原因。

本大题共5小题, 每题2分, 共10分) 1. #include<iostream>using namespace std;int main(){ cout<<"This is a program."<<endl;return 0;}2. #include<iostream>using namespace std;int main(){x=3;int y=x*x;cout<<"y="<<y<<"\n";return 0;}3. #include<iostream>using namespace std;class Aa{public:Aa(int i=0){a=i; cout<<"Constructor "<<a<<endl; } ~Aa(){ cout<<"Destructor "<<a<<endl; }void print( ){cout<<a<<endl;}private:int a;};int main(){Aa al(1),a2(2);al.print();cout<<a2.a<<endl;return 0;}4.class A{int a,b;public:A(int aa,int bb=78){a=aa;b=bb;} };int main(){A x(2), y(4,9);return 0;}5. #include<iostream>using namespace std;class Test{public:static int x;};int Test :: x=20;int main(){cout<<Test::x;return 0;}四、程序分析题( 分析程序, 写出运行结果。

面向对象程序设计-模拟测试

面向对象程序设计-模拟测试

《面向对象程序设计》课程模拟测试一、选择题1、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是()A.面向过程B.面向对象C.安全性D.复用性2、关于虚函数的描述中,正确的是()A.虚函数是一个static类型的成员函数B.虚函数是一个非成员函数C.基类中说明了虚函数后,派生类中将其对应的函数可不必说明为虚函数D.派生类的虚函数与基类的虚函数具有不同的参数个数和类型3、下列关于构造函数的描述中,错误的是()A.构造函数可以设置默认参数;B.构造函数在定义类对象时自动执行C.构造函数可以是内联函数;D.构造函数不可以重载4、在以下关于C++语言的注释的叙述中,不正确的是()A.C++程序中,注释可用“/*”、“*/”形式表示,也可用“//”形式表示B.C++编译器在编译一个程序时,将跳过注释,不对其进行处理C.C++编译器在编译一个程序时,可发现注释中的单词拼写错误D.程序中注释的多少不会影响所生成的可执行文件的长度5、C++语言的跳转语句中,对于break和continue说法正确的是()A.break语句只应用于循环体中B.continue语句只应用于循环体中C.break是无条件跳转语句,continue不是D.break和continue的跳转范围不够明确,容易产生问题6、下列关于C++函数的说明中,正确的是()A.内联函数就是定义在另一个函数体内部的函数B.函数体的最后一条语句必须是return语句C.标准C++要求在调用一个函数之前,必须先声明其原型D.编译器会根据函数的返回值类型和参数表来区分函数的不同重载形式7、在下面的一维数组定义中,哪一个有语法错误。

()A.int a[ ]={1,2,3} B.int a[10]={0}C.int a[ ] D.int a[5]8、面向对象系统不具有()特性A. 继承性B. 封装性C. 过程性D. 多态性9、下列静态数据成员的特性中,错误的是()A.说明静态数据成员前边加staticB.静态数据成员要在类体外初始化C.引用静态数据成员时,要在静态数据成员前加<类名>和作用域运算符D.静态数据成员不是一个类所有对象共享的10、若用数组名作为函数调用时的实参,则实际上传递给形参的是()A.数组首地址B.数组的第一个元素值C.数组中全部元素的值D.数组元素的个数二、填空题1、C++语言中的每条基本语句以作为结束符,每条复合语句以作为结束符。

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

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

封面作者:PanHongliang仅供个人学习《面向对象程序设计》第04章在线测试剩余时间:59:57答题须知:1、本卷满分20分。

2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷的成绩。

3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。

第一题、单项选择题(每题1分,5道题共5分)1、若B类为A类的友元类,则下面的说法正确的是()A、B类的所有成员函数都是A类的友元函数B、B类指定的成员函数才是A类的友元C、A类的所有成员函数可以访问B类的成员D、B类的私有成员函数不能可以访问A类的私有成员2、一个类的友元不是该类的成员,与该类的关系密切,所以它()。

A、有this指针,有默认操作的对象B、没有this指针,可以有默认操作的对象C、有this指针,不能执行默认操作D、没有this指针,也就没有默认操作的对象3、下面的语句中能将类 B 定义为类A的友元类的是()A、friend class B。

B、class A{ friend B}。

C、class A{ friend class B。

}。

D、class friend B class A。

4、如果类 B 是类A的友元类,n是类A的私有数据成员,函数f(A tmp)是类B的公有成员函数,a是类A的对象, b是B类的对象,下面语句正确的是()A、main(){ f(a)。

}B、main(){ b.f。

}。

C、main(){ a.n。

}。

D、main(){ b.f(a)。

}。

5、下面对于友元函数描述正确的是A、友元函数的实现必须在类的内部定义B、友元函数是类的成员函数C、友元函数破坏了类的封装性和隐藏性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、如果友元函数是某个类的成员函数,在定义这个友元函数的时候要使用类前缀。

17秋学期北理工《面向对象程序设计》在线作业5

17秋学期北理工《面向对象程序设计》在线作业5

北理工《面向对象程序设计》在线作业试卷总分:100 得分:100一、单选题 (共 38 道试题,共 76 分)1. 若有如下函数声明:voidFun(int);,则下列()不能与该函数进行重载。

A. void Fun(int,int);B. void Fun(double);C. int Fun(int);D. void Fun(int) const满分:2 分正确答案:C2. 有如下类声明:classMyClass{public:MyClass(){cout<<1;}};执行语句MyClassa,b[2],*p[2];后,程序的输出结果是()。

A. 11B. 111C. 1111D. 11111满分:2 分正确答案:B3. 派生类对象对它的基类成员中()是可以访问的。

A. 公有继承的私有成员B. 公有继承的保护成员C. 公有继承的公有成员D. 私有继承的公有成员满分:2 分正确答案:C4. 下列关于友元的描述中,错误的是()。

A. 友元破坏了类的封装性B. 友元提高了程序的运行效率C. 友元可以在类外声明和定义D. 友元能够访问类中的私有成员满分:2 分正确答案:C5. 下列关于运算符重载的描述中,______是正确的。

A. 运算符重载可以改变运算数的个数;B. 运算符重载可以改变优先级;C. 运算符重载可以改变结合性;D. 运算符重载不可以改变语法结构。

满分:2 分正确答案:D6. 假定p指向的字符串为”string”,若要输出这个字符串的地址值,则使用()。

A. cout<<*pB. cout<<pC. cout<<pD. cout<<p满分:2 分正确答案:D34. 下列关于类成员的描述中,正确的是()。

A. 友元函数是类的成员函数B. 类成员的默认访问权限是私有的C. 类成员函数必须声明为公有的D. 类的静态数据成员不能是常成员满分:2 分正确答案:B6. 执行下列程序后的输出结果是()。

面向对象程序设计第06章在线测试

面向对象程序设计第06章在线测试
正确r
错误
5、函数模板每个
a
卜模板类型参数前面都必须用关键字class或
正确 广
戈typename修饰。
错误
《面向对象程序设计》第06章在线测试
厂B、模板非类型参数前不需要说明类型
"C每一个函数模板参数在函数参数表中都必须岀现
“D模板类型参数名可以用来制定函数模板的返回类型
2、 下面关于模板的说法正确的是( )
臣A、模板是C++软件复用的功能之一
臣B、C++提供了ቤተ መጻሕፍቲ ባይዱ种模板机制:类模板和函数模板
臣C模板体现了函数或类的参数多态性
臣D模板抽象了类或函数
3、 关于函数模板的说法正确的是( )
疋A、函数模板是一组函数的描述
厂B、函数模板编译后产生相应的执行代码
臣C函数模板实现类型参数化后能以同样的代码对不同类型的数据进行处理
臣D与函数模板相匹配的函数调用有编译系统生成模板函数
4、 关于函数模板的实例化正确的说法是( )
臣A、模板函数在实例化之前要先声明
第三题、判断题(每题1分,5道题共5分)
1、在C+冲,当存在一个与模板函数同名的普通函数时,调用的顺序是模板函数优先。
r
2、类模板中不能
正确菸
电带有静态成员。
错误
r
正确*
错误
3、类模板中可以使用无类型参数,所谓无类型参数就是值没有参数。
广正确 金
错误
4、模板参数名在同一模板参数表中只能使用一次,但可在多个函数模板声明或定义之间重复使用。
口B、模板类型可以进行隐式的类型转化
臣C模板函数是函数模板的特例
臣D函数模板实例化生成的函数模板是重载函数

001017[面向对象程序设计]5天大在线考试题库及答案

001017[面向对象程序设计]5天大在线考试题库及答案

001017[面向对象程序设计]5天大在线考试题库及答案面向对象程序设计复习题一、单项选择题1、基类中的保护成员在其私有派生类中的访问属性是(答案是A )。

A.私有B.公有C.保护D.不确定2、在类的非静态成员函数中,不可以直接访问的数据成员是(答案是D )。

A.本类的私有成员B.本类的保护成员C.本类的公有成员D.本类的所有非静态成员3、下列标示符中,不符合C++标示符命名规则的是(C)。

A.x10B. _totalC.πD.www4、下列整型常数中,不符合C++语法的是(C)。

A.12uB.-67lC.059D.0X11ff5、下列常量中,不符合C++语法的是(答案是D )。

A.”\\0”B.‘*’C.“”D.“It’s an array!”6、下列数组的初始化形式中,不符合C++语法的是(答案是A )。

A.int s1[3]={1,2,3,4}B.int s2[3]={0}C.char s3[3]={‘a’,’x’,’d’}D.char s4[]=“asd”7、如果说明语句为:int a[4]={10,20,30,40,50}, *p=&a[2];则*p的值是(答案是 B )。

A.a[2]的地址B.30C.20D.不确定8、已知:int a[3][3];下列表示数组元素a[0][0]的方法中,不符合C++语法的是(C)。

A.**aB.*a[0]C.a[0]D.*(*a[1]-1)9、已知:int a=3,b=5,下列表达式中,值为0的表达式是(答案是 B )。

A.a%5-5B.a/bC.!a||bD.a&&b10、C++中字符常数的定界符是(答案是 B )。

A.”B.‘C.#D.\\11、已知:int a=9,sum=0;下列循环中,不构成死循环的是(答案是 A )。

A.for(;a;a++) sum+=a--B.do{sum+=a--}while(--a);C.while(a=1) sum+=a--;D.do{sum+=a}while(a-1);12、如果定义一个函数时未指定该函数的返回值类型,则函数返回值类型应是(答案是 B )。

面向对象程序设计试卷

面向对象程序设计试卷

面向对象程序设计试卷一、选择题(每题2分,共20分)1. 面向对象程序设计中的三大特征是:A. 封装、继承、多态B. 抽象、封装、继承C. 封装、继承、封装D. 继承、多态、封装2. 下列哪个不是面向对象程序设计的优点?A. 代码重用B. 易于维护C. 程序复杂度低D. 可扩展性好3. 在Java中,哪个关键字用于定义类?A. classB. structC. interfaceD. type4. 以下哪个是Java中不允许的类名?A. MyClassB. 2MyClassC. MyClass2D. MyClass_5. 在面向对象程序设计中,以下哪个概念不是用于实现封装?A. 私有成员B. 公有方法C. 访问控制D. 继承6. 下列哪个不是Java的访问控制修饰符?A. publicB. privateC. protectedD. global7. 以下哪个是Java中不允许的方法名?A. myMethodB. _myMethodC. my_methodD. myMethod_8. 在Java中,哪个关键字用于实现继承?A. extendsB. inheritC. deriveD. base9. 以下哪个不是Java的多态性实现方式?A. 接口B. 抽象类C. 重载D. 重写10. 在Java中,哪个关键字用于定义接口?A. interfaceB. protocolC. abstractD. type二、简答题(每题10分,共30分)1. 简述面向对象程序设计中封装的概念,并给出一个封装的简单示例。

2. 解释什么是多态性,并说明多态性在面向对象程序设计中的重要性。

3. 描述继承在面向对象程序设计中的作用,并举例说明如何使用继承来提高代码的复用性。

三、编程题(每题25分,共50分)1. 定义一个名为`Student`的类,包含以下属性:- 姓名(String类型)- 学号(String类型)- 年龄(int类型)并为该类实现以下方法:- 一个构造函数,用于初始化姓名、学号和年龄。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

封面
作者:PanHongliang
仅供个人学习
3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。

第一题、单项选择题(每题1分,5道题共5分)
1、若B类为A类的友元类,则下面的说法正确的是()
A、B类的所有成员函数都是A类的友元函

B、B类指定的成员函数才是A类的友元
C、A类的所有成员函数可以访问B类的成员
D、B类的私有成员函数不能可以访问A类的私有成员
2、一个类的友元不是该类的成员,与该类的关系密切,所以它()。

A、有this指针,有默认操作的对象
B、没有this指针,可以有默认操作的对象
C、有this指针,不能执行默认操作
D、没有this指针,也就没有默认操作的对象
3、下面的语句中能将类B 定义为类A的友元类的是()
A、friend class B。

B、class A{ friend B}。

C、class A{ friend class B。

}。

D、class friend B class A。

4、如果类B 是类A的友元类,n是类A的私有数据成员,函数f(A tmp)是类B的公有成员函数,a是类A的对象, b是B类的对象,下面语句正确的是()
A、main(){ f(a)。

}
B、main(){ b.f。

}。

C、main(){ a.n。

}。

D、main(){ b.f(a)。

}。

5、下面对于友元函数描述正确的是
A、友元函数的实现必须在类的内部定义
B、友元函数是类的成员函数
C、友元函数破坏了类的封装性和隐藏性
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、友元函数可以访问多个类的私有成员和保护成员
恭喜,交卷操作成功完成!你本次进行的《面向对象程序设计》第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 [判断] [对] 一个函数可以是多个类的友元函数。

版权申明
本文部分内容,包括文字、图片、以及设计等在网上搜集整理。

版权为潘宏亮个人所有
This article includes some parts, including text, pictures, and design. Copyright is PanHongliang's personal ownership.
用户可将本文的内容或服务用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯本网站及相关权利人的合法权利。

除此以外,将本文任何内容或服务用于其他用途时,须征得本人及相关权利人的书面许可,并支付报酬。

Users may use the contents or services of this article for personal study, research or appreciation, and other
non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service of this article is used for other purposes, written permission and remuneration shall be
obtained from the person concerned and the relevant obligee.
转载或引用本文内容必须是以新闻性或资料性公共免费信息为
使用目的的合理、善意引用,不得对本文内容原意进行曲解、修改,并自负版权等法律责任。

Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.。

相关文档
最新文档