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

合集下载

《面向对象程序设计》第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、对每个可重载的运算符来讲,它既可以重载为友元函数,又可以重载为成员函数。

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

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

正确错误。

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

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

《面向对象程序设计》第05章在线测试A BC D、如果表达式a+b”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为(A BC D、如果表达式a++中的“”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为(A BC D、双目运算符的调用格式是(A BC D、一个程序中数组”,且程序中包含有语句“A BC DD、重载时,运算符的操作数个数可以改变。

2、在重载一个运算符时,其参数表中没有任何参数,这表明该运算符不可能是()。

A、作为友元函数重载的1元运算符B、作为成员函数重载的1元运算符C、作为友元函数重载的2元运算符D、作为成员函数重载的2元运算符3、下面不是运算符new重载的正确格式的是()A、void *类名::operator new(size_t size, int x, int y);B、int *类名::operator new(size_t size, int x, int y);C、void *类名::operator new(size_t size);D、void *类名::operator new(int x, int y,size_t size);4、类A中重载运算符new为成员函数的定义如下: void * operator new ( size_t size, int x, int y){…} 则使用重载new的方法错误的是:()A、new A;B、new (1,2,3);C、new (1,2,3)A;D、new A (1,2,3);5、下面关于类型转换运算符正确的说法是()A、重载类型转换运算符没有实际意义,因为C++中有强制类型转换机制。

B、重载类型转换运算符为类的成员函数的时候,没有返回值,也没有形参。

C、重载类型转换运算符可以实现任意两种对象之间的转换。

D、重载类型转换运算符可以把类对象转换为一般数据变量。

第三题、判断题(每题1分,5道题共5分)1、重载单目运算符为类成员函数的时候,重载运算符函数没有形参。

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

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

封面作者: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、如果友元函数是某个类的成员函数,在定义这个友元函数的时候要使用类前缀。

《面向对象程序设计基础》自测题参考答案

《面向对象程序设计基础》自测题参考答案

《面向对象程序设计基础》自测题一、单项选择题1.在以下代码段中,正确的选项是【1】。

DA. ClassTestPrivate xAsIntegerEndClassPublicClassFrom1⋯⋯DimtAsNewTestt.x=10⋯⋯EndClassB.ClassTest PublicxAsIntegerEndClassPublicClassFrom1DimtAsTest( 缺Newt.x=5⋯⋯EndClassC.ClassTest Protected xAsIntegerEndClassPublicClassFrom1⋯⋯DimtAsNewTestt.x=10⋯⋯EndClassD.ClassTestPublicxAsIntegerEndClassPublicClassForm1⋯⋯DimtAsNewTestt.x=5⋯⋯EndClass2.在以下对于结构函数的说法中,错误的选项是2。

【】D A.结构函数本质上是名称为New的Sub过程B.一个类中能够有多个结构函数C.结构函数在对象实例化时由系统自动调用,程序不可以直接调用D.用户在定义类时一定在此中定义结构函数3.在下边的程序代码中,正确的选项是【3】。

C A.ClassTestPrivatexAsDoublePublicPropertyxx(AsDoubleGetReturnxEndGetSet(ByValValue 需加‘AsDoublex=ValueEndSetEndPropertyEndClassB.ClassTestPrivatexAsDoublePublicPropertyxx(‘不带ReadOnly或WriteOnly说明符的属性一定同时供给“Get”和“Set”Set(ByValValueAsDoublex=ValueEndSetEndPropertyEndClassC.ClassTestPrivatexAsDoublePublicReadOnlyPropertyxx(AsDouble GetReturnxEndGetEndPropertyEndClassD.ClassTestPrivatexAsDoublePublicPropertyxx(AsDouble ‘不带ReadOnly或WriteOnly说明符的属性一定同时提供“Get”和“Set”Set(ByValValueAsDoublex=ValueEndSetEndPropertyEndClass4.在以下对于继承的说法中,错误的选项是【4】。

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

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

A B C D
A B C D A、共享所有数据成员,每个对象还包含基类的所有B
C、不共享任何数据成员,但每个对象还包含基类的
D A B C D A B C D
B、能够通过成员运算符访问
C、仍然是基类的私有成员
D、变为派生类的私有成员
3、当保护继承时,下面说法正确的是()
A、基类的成员的访问权限在派生类中不变
B、在类作用域外能够通过派生类的对象来直接访问基类的公有成员
C、基类的保护成员和私有成员在派生类中的访问权限为受保护的
D、基类的公有成员在派生类中的访问权限为受保护的
4、当派生类中有和基类一样名字的成员时,下面说法错误的是()。

A、将产生二义性
B、派生类的同名成员将覆盖基类的成员
C、是不能允许的
D、基类的同名成员将覆盖派生类的成员
5、含有虚基类的派生类的构造函数调用次序错误的是()
A、虚基类,基类,派生类,对象成员
B、基类,派生类,对象成员,虚基类
C、对象成员,基类,虚基类,派生类
D、基类,虚基类,对象成员,派生类
第三题、判断题(每题1分,5道题共5分)
1、基类的保护成员在派生类中仍然是保护成员。

正确错误
2、基类的保护成员不能被派生类的对象访问。

正确错误
3、私有继承时基类中的public成员在派生类中是private的。

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

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

正确错。

(完整版)《面向对象程序设计》答案

(完整版)《面向对象程序设计》答案

实验一熟悉VC++IDE开发环境一、实验目的1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。

2、掌握如何编辑、编译、连接和运行一个C++程序。

3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。

二、实验要求1、分析下列程序运行的结果。

程序一:#include <iostream.h>int add(int x,int y=8);void main(){ int x=4;cout<<add(x)<<",";cout<<add(x,add(add(x,add(x))))<<endl;}int add(int x,int y){ return x+y;}//12,28程序二:#include <iostream.h>void main(){ int *p,i;i=5;p=&i;i=*p+10;cout<<"i="<<i<<endl;}//i=15程序三:#include <iostream.h>void main(void){ int i=10;int &r=i;r++;cout<<"i="<<i<<", r="<<r<<'\n';i=88;cout<<"i="<<i<<", r="<<r<<'\n';}//i=11,r=11i=88,r=88程序四:#include <iostream.h>int f(int i){ static int k=1;for(;i>0;i--)k +=i;return k;}void main(){ int i;for(i=0;i<5;i++)cout<<f(i)<<" ";}// 1 2 5 11 21程序五:#include <iostream.h>void func();int n=1;void main(){ static int a;int b= -9;cout <<"a:"<<a<<" b:"<<b<<" n:" <<n<<endl;b+=4;func();cout <<"a:"<<a<<" b:"<<b<<" n:"<<n<<endl;n+=10;func();}void func(){ static int a=2; int b=5;a+=2;n+=12;b+=5;cout <<"a:" <<a<<" b:" <<b<<" n:" <<n <<endl;}// a:0 b:-9 n:1a:4 b:10 n:13a:0 b:-5 n:13a:6 b:10 n:35实验二C++对C的扩充一、实验目的1、了解在面向对象程序设计过程中C++对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。

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

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

《面向对象程序设计》第12章在线测试
A B
C D
A B
C D
A B
C D
A B
C D
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、面向对象设计可直接继承分析阶段的类图和交互图等分析结果,然后确定每个类内部的数据和方法,以及每个方法的处理算法、过程和接口等。

正确错误正确错误正确错误正确错误。

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

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

《面向对象程序设计》第02章在线测试
A B
C D
public
A B
C D
为一个类,则执行”语句时将自动调用该类的( )。

A B
C D
一段程序的定义如下,的语句应该为
A B
C D
为一个类,个对象的动态数组的指针,则执行
A B
C D
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、静态成员函数允许访问类的数据成员。

正确错误
的声明中将类之间是一种
正确错误
静态数据成员不从属于任何一个具体对象,所以必须在构造函数对它初始化。

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

正确错误。

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

《面向对象程序设计》第10章在线测试
《面向对象程序设计》第10章在线测试
《面向对象程序设计》第10章在线测试 剩余时间:5 9:39 答题须知:1、本卷满
分20分。 2、答完题后,请一定要单击下面的“交卷”按钮交卷,否则无法记录本试卷
的成绩。 3、在交卷之前,不要刷新本网页,否则你的答题结果将会被清空。 第一题、
单项选择题(每题1分,5道题共5分) 1、下面哪些情况不会造成异常( ) A、内存耗尽
C、除数为0 B、再次打开文件 D、数组越界访问 2、关于异常对象的说法正确的是( )
B、以传值方式传递异常对象时,抛出的是局部临时对象 C、以引用方式传递异常对象时,
抛出的是局部静态对象 3、关于catch块的说明正确的是( ) A、一个catch块相当于
一个以类型为单一参数的函数 C、在catch块中可以声明变量,该变量可以在块外使用 4、
C++中异常处理的默认模式是( ) A、终止模式 C、挂起模式 A、异常对象需要先建立,
再抛出 D、以指针方式传递异常对象时,抛出的是全局临时对象 B、抛出异常类型与
catch异常类型声明不同时也可以捕捉 D、catch子句的异常类型说明只能是类型,不能
是数值 B、恢复模式 D、暂停模式 5、为保证程序中的全局变量不与开发商提供的全局变
量重名,可以采取的措施是( ) A、查阅手册,不起同样的名字 C、避开不用 B、引入
命名空间 D、让开发商改名 第二题、多项选择题(每题2分,5道题共10分) 1、下面
的说法正确的是( ) A、异常处理是指允许C++程序非正常结束 B、异常处理是指C++程
序在出错的情况下有正确合理的表现 C、C++程序绝对不能出现错误

D、异常处理使C++程序在出现错误的情况下仍能继续运行
2、下面说法正确的是( )
A、C++程序中可以存在多个名字空间
B、不同的名字空间中不能出现名字相同的变量 C、名字空间能避免名字冲突 D、C++
程序中也可以不定义名字空间

3、关于异常处理的说法正确的是()
A、将异常的检测与处理分离 B、异常就是错误 C、异常由函数调用引起
D、在上层调用函数中使用try检测函数调用是否引发异常
4、下面与异常处理相关的关键字有( )
A、Throw B、throw C、try D、Try
5、下面的说法正确的是()
A、引发异常用关键字throw
B、在被调用函数中检测到异常条件用throw都可以引发异常 C、被调用函数只有在
try块中用throw才可以引发异常 D、检测到的异常由catch捕获并处理

第三题、判断题(每题1分,5道题共5分)
1、抛出异常的模块并不负责异常的处理,该异常的处理可以程序中的任何位置。
正确 错误 2、异常处理器根据抛出异常模块的报告来处理异常。 正确 错误 3、异
常信号传递方式有三种:传值方式、引用方式和指针方式。 正确 错误 4、throw(?)表示
函数将会抛出所有类型的异常 正确 错误 5、catch处理程序的出现次序无关紧要。 正确
错误 交卷

感谢您的阅读,祝您生活愉快。

相关文档
最新文档