面向对象程序设计-试卷2

合集下载

面向对象程序设计练习题库与答案

面向对象程序设计练习题库与答案

面向对象程序设计练习题库与答案一、单选题(共36题,每题1分,共36分)1.下列关于静态内部类的说法,错误的是()A、静态内部类不能直接访问外部类的非静态成员B、静态内部类只能访问外部类的静态成员C、创建静态内部类的对象时,必须要先创建外部类的对象D、静态内部类,就是使用static关键字修饰的成员内部类正确答案:C2.以下选项中,哪个是FileInputStream的父类()A、FileB、FileOutputC、OutputStreamD、InputStream正确答案:D答案解析:FileInputStream是用来读取文件的字节流,属于InputStream类的子类。

3.下面关于FileInputStream和FileOutputStream的说法中,错误的是()A、FileInputStream是InputStream的子类,它是操作文件的字节输入流B、FileOutputStream是OutputStream的子类,它是操作文件的字节输出流C、如果使用FileOutputStream向一个已存在的文件中写入数据,那么写入的数据会被追加到该文件原先的数据后面D、使用FileInputStream读取文件数据时,必须保证要读取的文件存在并且是可读的正确答案:C答案解析:如果使用FileOutputStream向一个已存在的文件中写入数据,如果构造函数FileOutputStream的参数append的值是true,那么写入的数据才会追加到原先数据之后,否则的话,原先的数据会被清空,然后再写入新的数据。

4.下列关于类的说法中,错误的是()A、Java中创建类的关键字是class。

B、类中可以有属性与方法,属性用于描述对象的特征,方法用于描述对象的行为。

C、Java中对象的创建,首先需要定义出一个类。

D、一个类只能创建一个对象。

正确答案:D答案解析:类是对象的模板,对象是类的实例,一个类是可以创建多个对象的。

江苏大学大一计算机专业Java语言与面向对象程序设计考试试卷及参考答案2

江苏大学大一计算机专业Java语言与面向对象程序设计考试试卷及参考答案2

江苏大学Java语言与面向对象程序设计考试试卷及参考答案2一、单项选择题(5’)1.下列语句序列执行后,b的值是()。

int a=2,b=4; if(a<--b)a*=a;A、5B、3C、15D、10答案:B2.下列程序段执行后b3的结果是()。

boolean b1=true,b2=true,b3; b3=!b2?b2:!b2;A、0B、1C、trueD、false答案:D3.为了使包sos中的所有类在当前程序中可见,可以使用的语句是()。

A、import sos.*;B、package sos.*;C、sos import;D、sos package;答案:A4.在编写Java Application程序时,若需要使用到标准输入输出语句,必须在程序的开头写上()语句。

A. import java.awt.*B. import java.io.*C. import java.applet.AppletD. import java.awt.Graphics答案:B5.在Java中,一个类可同时定义许多同名的方法,这些方法的形式参数的个数、类型或顺序各不相同,传回的值也可以不相同。

这种面向对象程序特性称为()。

A. 隐藏B. 覆盖C. 重载D. Java不支持此特性答案:C6.下列关于修饰符混用的说法,错误的是()。

A、abstract不能与final并列修饰同一个类B、abstract类中不可以有private的成员C、abstract方法必须在abstract类中D、staic方法中能处理非static的属性答案:D7.执行下面程序段后,b,x,y的值分别是()。

int x=6,y=8;boolean b;b=x>y&&++x==--y;A、true,6,8B、false,7,7C、true,7,7D、false,6,8答案:D8.在Java中,开发图形用户界面的程序需要使用一个系统提供的类库,这个类库就是()包。

河南电大面向对象程序设计期末复习题2(历年考试题)

河南电大面向对象程序设计期末复习题2(历年考试题)

1.设x和y均为bool量,则x||y为假的条件是( C )。

A.它们均为真 B.其中一个为真C.它们均为假 D.其中一个为假2.假定一个二维数组的定义语句为“int a[3][4]={{3,4},{2,8,6}}”,则元素a[1][2]的值为( C )。

A.2 B.4 C.6 D.83.假定P是具有int* *类型的指针变量,则给P赋值的正确语句为( B )。

A.p=new int B.p=new int* C.p=new int** D.p=new int[10]4.软件产品在需求发生变化、运行环境发生变化或发现软件产品本身的错误或不足时进行相应的软件更新的难易程度叫做软件的( A )。

A.可维护性 B.可复用性 C.兼容性 D.正确性5.若需要把一个类外定义的成员函数指明为内联函数,则必须把关键字( B )放在函数原型或函数头的前面。

A.in B.inline C.inLine D.InLiner .6.在一个用数组实现的队列类中,假定数组长度为MS,队首元素位置为first,队列长度为length,则队尾的后一个位置为( D )。

A.1ength+1 B first+length C.(first+1ength—1)%MS D.(first+length)%MS7.假定一个类的构造函数为“A(int aa,int bb){a=aa;b=aa*bb;)”,则执行“A x(4,5);”语句后,X.a和x.b的值分别为( C )。

A.4和5 B.5和4 C.4和20 D.20和5 8.假定AB为一个类,则执行“AB*p=new AB(1,2);”语句时共调用该类构造函数的次数为( B )。

A.0 B.1 C.2 D.39.一个类的成员函数也可以成为另一个类的友元函数,这时的友元声明( A )类域的限定。

A.需加上 B.不需加上 C.可加可不加 D.取消10.队列具有( A )的操作特性。

面向对象程序设计(Java)期末试卷

面向对象程序设计(Java)期末试卷

昆明理工大学《面向对象程序设计(Java)》期末试卷年级:专业:姓名:一、单项选择题(每小题2分,共30分)1.下列不是JAVA的关键字的是( )。

A.constB.nullC.falseD.this2. 在编写异常处理的Java程序中,每个catch语句块都应该与( )语句块对应,使得用该语句块来启动Java的异常处理机制。

A.if-elseB.switchC.tryD.Throw3.在编写Java Application程序时,若需要使用到标准输出语句,必须在程序的开头写上的语句是:( )A.import java:awt.*B.import java:applet.AppletC.import java:io.*D.import java:awt.Graphics4. 编译一个自定义一类,提示:jav(A):lang. NoSuchMethodError;最有可能的错误原因是( )。

A.变量没有找到B.没有引入某个包或者引入的包的版本不对C.编译环境设置不正确D.包路径名不正确5.设a = 3,则表达式a<<a的值为:( )。

A.16B.8C.24D.126.编译一个自定义一类,提示:ng. NoSuchMethodError;最有可能的错误原因是( )。

A.变量没有找到B.没有引入某个包或者引入的包的版本不对C.编译环境设置不正确D.包路径名不正确7.下列叙述错误的是:( )。

A.父类不能替代子类B.子类能够替代父类C.子类继承父类D.父类包含子类8.在下述Java语言语句中,错误的创建数组的方法是( )。

A.int intArray [ ]; intArray=new int[5];B.int intArray [ ]=new int[5];C.int [ ] intArray ={1,2,3,4,5};D.int intArray [5]={1,2,3,4,5};9.Java应用程序中,程序执行的总入口方法是:( )A.init()B.start()C.run()D.main()10.构造ArrayList类的一个实例,下面哪个方法是正确的:( )A.ArrayList myList = newObject();B.ArrayList myList = newArrayList();C.myList = newObject();D.myList=new ArrayList();11.表达式:(x>y)? w:z:(其中x=5,y=9,z=1,w=9)的值为:( )A.5B.8C.1D.912.字符串是Java已定义的类型,关于它的构造函数,下面不正确的是:( )A.String(char[] value, int offset, intcount);B.String(int[] codePoints, int offset,int count);C.String(Stringoriginal);D.String(StringBuffer buffer);13.指出正确的表达式:( )A.byte=128;B.Boolean=null;C.long l=0xfffL;D.double=0.9239d;14.要从文件" file.dat"文件中读出第10个字节到变量C中,下列哪个方法适合?( )A.FileInputStream in=newFileInputStream("file.dat"); in.skip(9); int c=in.read();B.FileInputStream in=newFileInputStream("file.dat"); in.skip(10); intc=in.read();C.FileInputStream in=newFileInputStream("file.dat"); int c=in.read();D.RandomAccessFile in=newRandomAccessFile("file.dat"); in.skip(9); intc=in.readByte();15.编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( )A.javaB.classC.htmlD.exe二、判断题(对的打“√”,错的打“×”,每小题2分,共20分)16.一个JAVA类可以有多个父类。

面向对象程序方案模拟历年考试二

面向对象程序方案模拟历年考试二

面向对象程序设计模拟试卷二一、单项选择题.从下列各题四个备选答案选出一个正确答案,并将其代号填在题干前地括号内.答案选错或未作选择者,该题不得分.每小题1分,共10 分.1.以下有关析构函数地叙述,选择正确地填入括号内()A. 可以进行重载可以定义为虚函数B. 不能进行重载可以定义为虚函数C. 可以进行重载不能定义为虚函数D. 不能进行重载不能定义为虚函数2.以下有关函数缺省参数地出现位置,选择正确地叙述填入括号内()A. 必须全部出现在函数参数表地左部B. 必须全部出现在函数参数表地右部C. 必须全部出现在函数参数表地中间D. 都不对3.关于两个同名函数重载地叙述,选择最为正确地填入括号内()A. 两个函数地参数个数不同B. 两个函数对应地参数类型不同C. 两个函数地参数个数不同或对应地参数类型不同D. 都不对4.关于inline 保留字地用途,选择正确地叙述填入括号内()A. 只能用于定义成员函数B. 只能用于定义非成员函数C. 可以定义成员函数及非成员函数D. 都不对5.关于类地构造函数地定义位置,将最为正确地叙述填入括号内()A. 只能在private 下定义B. 只能在protected 下定义C. 只能在public 下定义D. 定义位置没有限制6.如下修饰类体中函数地返回类型,将正确地用法填入括号内()A. 同时使用static 和friendB. 同时使用static 和virtualC. 同时使用friend 和virtualD. 不同时使用上述三个保留字中地任意两个7.在如下关于继承地叙述中,选择正确地填入括号内()A. 私有继承用于实现类之间地ISA 关系B. 保护继承用于实现类之间地ISA 关系C. 公有继承用于实现类之间地ISA 关系D. 都不对8.对于用union 定义地类A,选择正确地叙述填入括号内()A. 类A 可以作为某个类地基类B. 类A 可以作为某个类地派生类C. 类A 既不能作基类又不能作派生类D. 类A 既可以作基类又可以作派生类9.有关在类中声明友元函数地叙述,将正确地答案填入括号内()A. 只能在private 下声明B. 只能在protected 下声明C. 只能在public 下声明D. 声明位置没有限制10.在构造派生类A 地对象时,选择正确地叙述填入括号内()A. 最先构造派生类A 地基类B. 最先构造派生类A 地虚基类C. 最先构造派生类A 地数据成员对象D. 都不对二、多项选择题.从下列各题四个备选答案选出二至四个正确答案,并将其代号填在题干前地括号内.答案选错或未选全者,该题不得分.每小题2 分,共10 分.11.将符号为分隔符地编号填入括号内()A. mB. +C. {D. =12. 将用于定义类地保留字地编号填入括号内()A. classB. structC. intD. union13. 将用于释放p=new int[8]地内存地编号填入括号内()A. free (p)B. delete pC. delete []pD. sizeof p14. 将派生类成员函数可访问地基类成员编号填入括号内()A. privateB. protectedC. publicD. 所有成员15.将不能重载地运算符函数地编号填入括号内()A. ? :B. ::C. %D. <<三、填空题.阅读以下程序并填空.每题1 分,共10 分.16.对于main ,对象a 地私有成员为___________________________.17.对于main ,对象a 地保护成员为___________________________.18.对于main ,对象a 地公有成员为___________________________.19.对于main ,对象b 地私有成员为___________________________.20.对于main ,对象b 地保护成员为___________________________.21.对于main ,对象c 地保护成员为___________________________.22.对于main ,对象c 地公有成员为___________________________.23.对于main ,对象d 地保护成员为___________________________.24.对于main ,对象d 地公有成员为___________________________.25.main 应使用语句x=__________取对象d 地基类C 地成员c 地值.四、名词解释.每小题3 分,共15 分.26.标识符:27.重载:28.异常:29.类型强制:30.抽象类:class A{ int a; protected: int b; public: int c; }a; class B: protected A{ int d; protected: int e; public: A::c; int f; }b; class C: A{ int g; protected: int h; public: int c; }c; class D: B, C{ int j; protected: B::b; }d; void main( ){ int x; }五、判断改错题.阅读以下程序并判断各题是否正确,对正确地就在其题号前打√,错误地在其题号前打×,并在题干后地括号内更正.每小题3 分,共15 分.#include <iostream.h>struct A{A( ){ cout<<'A';}};struct B{B( ){ cout<<'B';}};struct C: A{C( ){ cout<<'C';}};struct D: virtual B, C{D( ){ cout<<'D';}};struct E: A {C c;E( ): c( ){ cout<<'E';}};struct F: virtual B, C, D, E{F( ){ cout<<'F';}};void main( ){ /*……*/ }( ) 31. 如main 定义A a,则输出为A()( ) 32. 如main 定义C c, 则输出为BAC()()33. 如main 定义D d, 则输出为BACD()( )34. 如main 定义E e, 则输出为AACE()( )35.如main 定义F f,则输出为BCDEF()六、计算题.阅读如下程序并计算执行结果. 共20 分.int x=2, y=x+30;struct A{static int x;int y;public:operator int( ){ return x+y; }A operator ++(int){ return A(x++, y++); }A(int x=::x+2, int y=::y+3){ A::x=x; A::y=y; }int &h(int &x);};int &A::h(int &x){for(int y=1; y!=1 || x<201; x+=11, y++)if(x>200) { x-=21; y-=2;}return x-=10;}int A::x=23;void main( ){A a(54, 3), b(65), c;int i, &z=i, A::*p=&A::y;i=b.x; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯①z=a.x; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯②i=c.*p; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯③i=a++; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯④i=::x+c.y; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⑤i=a+b; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⑥b.h(i)=7; //⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⑦}36.语句①执行结束后i=()2 分?37.语句②执行结束后i=()3 分?38.语句③执行结束后i=()3 分?39.语句④执行结束后i=()3 分?40.语句⑤执行结束后i=()3 分?41.语句⑥执行结束后i=()3 分?42.语句⑦执行结束后i=()3 分?七、设计题.20 分.43.如下复数类说明了五个成员函数,请详细定义这五个函数地函数体.每个定义4 分. class COMPLEX{ //real, imag 分别为复数地实部和虚部double real, imag; //若x=3+5i,则x.real=3,x.imag=5public:COMPLEX(double r=0, double i=0);COMPLEX& operator += (const COMPLEX &c);COMPLEX& operator ++ ( ); //复数地实部和虚部加1COMPLEX operator – ( ) const; //将实部和虚部地符号求反COMPLEX operator + (const COMPLEX &c) const;};版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理.版权为个人所有This article includes some parts, including text, pictures, and design. Copyright is personal ownership.p1Ean。

11-12面向对象程序设计(二)试卷(A)final (2)

11-12面向对象程序设计(二)试卷(A)final (2)

华侨大学面向对象程序设计(二)试卷(A)系别考试日期2012年06月27日姓名学号成绩一、填空题(15分,空1分)(1).类的变量称为__。

(2).同一个类的两个对象,其数据成员是不同的,但__是共享的。

(3).设p是指向一个类动态对象的指针变量,则执行"delete p;"语句时,将自动调用该类的__。

(4).重载运算符函数所使用的保留字是__,它和运算符一起组成该运算符函数的函数名。

(5).类的__数据成员是被类的所有对象共享的成员。

(6).类的构造函数的主要作用是。

(7).如果类A继承了类B,则类A称为__,类B称为__。

(8).友元函数的声明可以放在类的__部分,也可以放在类的__部分,它们是没有区别的.(9).在私有继承关系下,基类的公有成员和保护成员将成为派生类中的成员,它们只能由来访问。

(10).面向对象的三大要素(基石)分别为:__、__、__。

二、选择填空题(20分,每小题2分)(1).下列函数中是不能重载的。

A) 成员函数B) 非成员函数C) 析构函数D)构造函数(2).假定Student为一个类,则该类的拷贝构造函数的声明语句为。

A) Student&(Student x);B) Student(Student x);C) Student(const Student& x);D) Student(const Student *x);(3).下面关于类的函数的描述中,错误的是_____。

A)成员函数是类的操作的实现B)成员函数之间不能互相调用C)成员函数既可以在类的内部声明(定义)亦可在类的外部声明D)成员函数是类的一部分,不能独立存在(4).下面关于include指令的叙述中,正确的是。

A) include指令是头文件卫士B) include指令不能嵌套C) include用来指示编译器如何取舍编译内容D) include用来包含系统头文件和程序员定义的头文件(5).下列运算符中,运算符在C++中不能重载。

面向对象程序设计期末综合练习2(填空题)

面向对象程序设计期末综合练习2(填空题)

面向对象程序设计期末综合练习二(填空题)填空题1.以面向对象方法构造的系统,其基本单位是____对象_____。

2.每个对象都是所属类的一个____实例______。

3.对象将其大部分实现细节隐藏起来,这种机制称为___封装_______。

4.基类和派生类的关系称为____继承______。

5.复杂对象可以由简单对象构成,这种现象称为_______聚合___。

6.对象是对问题域中客观事物的_抽象_,它是一组属性和在这些属性上操作的_封装体______。

7.特殊类的对象拥有其一般类的全部属性与操作,称特殊类____继承____了一般类。

8.如果一个派生类的基类不止一个,则这种继承称为_____多继承_______。

9.如果一个派生类只有一个唯一的基类,则这样的继承关系称为____单继承______。

10.C++支持两种多态性:____编译_____时的多态性和_____运行_____时的多态性。

11.在C++中,编译时的多态性是通过_____重载_____实现的,而运行时的多态性则是通过______虚函数____实现的。

12.面向对象软件开发的生命周期分为三个阶段,即分析、____设计__和___实现____。

13.面向对象的分析包括_____问题域_____分析和____应用__分析两步。

14.类定义中,既包含数据成员,也包含____函数____成员。

15.类中的数据成员的访问属性通常被指明为___private_____。

16.类中的供外部调用定义的函数成员,其访问属性通常被定义为_____public___。

17.对于类中定义的任何成员,其隐含访问权限为____ private_____。

18.对于结构中定义的任何成员,其隐含访问权限为_____ public____。

19.为了使类中的成员不能被类外的函数通过成员操作符访问,则应把该成员的访问权限定义为___ private______。

20.若在类的定义体中给出了一个成员函数的完整定义,则该函数属于___内联_____函数。

C++面向对象程序设计模拟试题2

C++面向对象程序设计模拟试题2
}
int main(void)
{
CGoods oGood1(6);
oGood1.Print();
CGoods oGood2(oGood1);
oGood2.Print();
cout << CGoods::GetTotalWeight();
cout << endl;
{
m_iWeight = iWeight;
m_iTotalWeight = m_iTotalWeight + iWeight;
}
CGoods(const CGoods &oGood)
{
m_iWeight = oGood.m_iWeight;
m_iTotalWeight = m_iTotalWeight + m_iWeight;
return 0;
}
上面程序的输出结果为:
2.阅读下面程序,写出输出结果。
#include <iostream>
using namespace std;
template <class Type>
class CTest
{
public:
CTest(Type m_tArray[], int iSize):m_pArray(m_tArray)
{
public:
CPosition(int iPositionX = 0, int iPositionY = 0):m_iPositionX(iPositionX)
{
m_iPositionY = iPositionY;
}
int GetPositionX() const

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案

《面向对象程序设计JA V A语言程序设计》期末考试试卷及部分答案2一、单选择题(每小题2分,共10分)1、编译Java Application 源程序文件将产生相应的字节码文件,这些字节码文件的扩展名为( B )。

A. .javaB. .classC. .htmlD. .exe2、设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( A )。

A. 3B. 3. 5C. 4D. 53、在Java Applet程序用户自定义的Applet子类中,一般需要重载父类的( D )方法来完成一些画图操作。

A. start( )B. stop( )C. init( )D. paint( )4、不允许作为类及类成员的访问控制符的是( C )。

A. publicB. privateC. staticD. protected5、为AB类的一个无形式参数无返回值的方法method书写方法头,使得使用类名AB作为前缀就可以调用它,该方法头的形式为( A )。

A. static void method( )B. public void method( )C. final void method( )D. abstract void method( )二、填空题(每空格1分,共20分)1、开发与运行Java程序需要经过的三个主要步骤为编辑源程序、编译生成字节码、和解释运行字节码。

2、如果一个Java Applet源程序文件只定义有一个类,该类的类名为MyApplet,则类MyApplet必须是Applet、类的子类并且存储该源程序文件的文件名为MyApplet 。

3、如果一个Java Applet程序文件中定义有3个类,则使用Sun公司的JDK编译器 javac.exe 编译该源程序文件将产生 3 个文件名与类名相同而扩展名为 . class 的字节码文件。

4、在Java的基本数据类型中,char型采用Unicode编码方案,每个Unicode码占用 2 字节内存空间,这样,无论是中文字符还是英文字符,都是占用 2 字节内存空间。

面向对象程序设计试卷

面向对象程序设计试卷

面向对象程序设计试卷一、选择题(每题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. 面向对象程序设计(OOP)的基本概念是什么?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. 以上所有11. 在面向对象程序设计中,什么是类和对象?它们的关系是什么?A. 类是一种抽象的数据类型,而对象是类的实例。

B. 类是用来描述具有相同属性和行为的对象的集合,对象是类的实例。

面向对象2 期末考试试题及参考答案

面向对象2 期末考试试题及参考答案

面向对象程序设计(专科)复习题二一、单选题1.下列关于友元函数的说法,正确的是()。

()A、提高程序的运行效率B、增强类的封装性C、实现数据的隐藏性D、增加成员函数的种类2.下列关于在类中定义的静态数据成员的说法,正确的是()()A、该类的每个对象都有一个静态数据成员B、对象创建时产生C、在类外进行初始化D、既可以在类外初始化,也可以在类内初始化3.有如下类定义:class Point{int x_, y_;public:Point():x_(0), y_(0){}Point(int x, int y = 0):x_(x), y_(y){}};若执行语句:Point a(2), b[3], *c[4]; 则Point类的构造函数被调用的次数是():()A、2次B、3次C、4次D、5次4.若类B公有继承自类A,则定义B类对象和撤销B类对象时,调用构造函数和析构函数的次序为()。

()A、A B; B AB、A B; A BC、B A; A BD、B A; A B5.在公有派生的前提下,下列说法错误的是()。

()A、在一个赋值语句中,等号的左边是一个基类对象时,右边可以是一个派生类对象B、若B是A的派生类,且有默认的构造函数,则语句A &a = *new BC、在一个返回值为基类指针的函数中,可以返回一个派生类对象的地址D、在调用一个形参类型为派生类引用的函数时,可以将一个基类对象作为实参6.类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A 对象的指针,则p->A::func()将()()A、调用类A中的函数func()B、调用类B中的函数func()C、根据p所指的对象类型而确定调用类A中或类B中的函数func()D、既调用类A中函数,也调用类B中的函数7.下列不能作为类的成员的是()。

()A、自身类对象的指针。

西安石油大学《面向对象程序设计》试题2

西安石油大学《面向对象程序设计》试题2

2004年10月面向对象试题一、单选1。

程序设计中,首先在问题域中识别出若干个(b)A。

函数B。

类C。

文件D。

过程2。

定义类模板用关键字(d)A。

const B.new C.delete D.template3。

运算结果类型相同的(a)A. 9.0/2.0 9.0/2B. 9/2.0 9/2C. 9.0/2 9/2D. 9/2 9.0/2.04。

已知f1 f2同一类两个成员函数,但f1不能调用f2,说明(b)a.f1 f2都是静态函数b.f1是静态,f2不是c.f1不是,f2是静态d.f1 f2都不是静态函数5。

调用一成员函数时,使用动态联编的情况是(b)A.通过对象调用一虚函数B。

通过指针或引用调用一虚函数C。

通过对象调用静态函数D。

通过指针或引用调用一静态函数6。

假定一个类构造函数为:“A(int aa=1,int bb=0){a=aa;b=bb;}则执行"A x(4)"后,x.a和x.b值分别是:(c)A。

1,0B。

1,4C。

4,0D。

4,17。

在派生类中能直接访问基类的(d)A。

公有成员,私有成员B。

保护成员,私有成员C。

不可访问成员,私有成员D。

公有成员,保护成员8。

不具访问权限属性的是:(a)A。

非类成员B。

类成员C。

数据成员D。

函数成员9。

类定义中private,protected,public 出现次数为(a)A。

任意多次B。

至多一次C。

public 至少一次D。

至少一次10。

C++鼓励程序员将(c)A。

数据操作分别封装B。

不同类型数据封装C。

数据操作封装在一起D。

不同作用操作封装在一起。

二、填空1。

C++中,最好用(new)代替malloc2。

函数模板中template之后尖括号的类型参数冠以保留字(class)3。

在IOS类中定义的用于格式控制的枚举变量中十、八、十六进制是dec,oct,(hex)4。

如果重载了运算符+,则相应运算函数名是(operator +)5。

面向对象技术练习试卷2(题后含答案及解析)

面向对象技术练习试卷2(题后含答案及解析)

面向对象技术练习试卷2(题后含答案及解析) 题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。

1.根据如图1-7所示的UML类图可知,类Car和类Boat中的move( )方法______。

A.引用了类Transport的move( )方法B.重置了类Transport的move( )方法C.是类Transport的move( )方法的聚集D.是类Transport的move( )方法的泛化正确答案:B解析:在UML类图中,“”表示其相联的两个类之间存在泛化关系,即在图1-7中显示了一个继承结构:类Transport为基类,其子类分别为类Car和类Boat。

同是注意到,在图1-7中的类Transport的名字之下有一个标识&lt;&gt;。

该标识用于说明该类是一个抽象类,类中的方法move( )必须在子类中重新定义的纯虚拟函数。

由图1-7中可以看出,在两个子类中都定义了函数原型完全相同的move( )方法。

在面向对象程序设计中,使用动态多态一一重置(overriding)时需满足3个条件:①类之间具有继承关系、②基类中至少定义一个纯虚拟函数、③在子类中重新定义这个纯虚拟函数。

因此,图1-7给出的UML 类图结构满足了重置的3个条件,说明子类Car和子类Boat中的move( )方法重置了基类Transport的move( )方法。

知识模块:面向对象技术2.用UML建立业务模型是理解企业业务过程的第一步。

业务人员扮演业务中的角色及其交互方式,例如长途汽车站的售票员是业务人员,大型商场的销售员也是业务人员,他们之间的关系是______。

A.AggregationB.CompositionC.GeneralizationD.Association正确答案:C解析:选项A的“聚集关系(Aggregation)”是关联关系(Association)的一种特例,它代表两个类之间的整体和局部关系。

面向对象程序设计原理考核试卷

面向对象程序设计原理考核试卷
A.组合表示部分和整体的生命周期相同
B.聚合表示部分和整体的生命周期可以不同
C.组合是一种强关系
D.聚合是一种弱关系
14.以下哪些操作符可以用于对象的比较?()
A. ==
B. !=
C. equals()
D. compareTo()
15.以下哪些说法关于静态变量和静态方法是正确的?()
A.静态变量属于类,所有实例共享
1.以下哪些是面向对象程序设计的基本原则?()
A.抽象
B.封装
C.继承
D.多态
2.在面向对象程序设计中,类和对象的关系是()
A.类是对象的抽象
B.对象是类的实例
C.类和对象是同一概念
D.类和对象没有关系
3.以下哪些是类的成员?()
A.属性
B.方法
C.构造函数
D.运算符
4.关于继承,以下哪些说法是正确的?()
11.关于抽象类,以下哪些说法是正确的?()
A.抽象类不能被实例化
B.抽象类可以包含抽象方法
C.抽象类可以包含具体实现的方法
D.抽象类只能被继承
12.以下哪些是Java中的访问控制符?()
A. public
B. private
C. protected
D. default
13.以下哪些说法关于组合和聚合是正确的?()
D. super
8.以下哪个方法可以用来隐藏父类的同名方法?()
A. overload
B. override
C. inherit
D. hide
9.以下哪个关键字用于调用父类的构造方法?()
A. this
B. super
C. new
D. extends

完面向对象程序设计期末综合练习二(填空题)

完面向对象程序设计期末综合练习二(填空题)

面向对象程序设计期末综合练习二(填空题)填空题1. C++语言是在_________语言的基础上发展起来的。

2. C++语言的编译单位是扩展名为__________的__________文件。

3. 行尾使用注释的开始标记符为__________。

4. 多行注释的开始标记符和结束标记符分别为__________和__________。

5. 用于输出表达式值的标准输出流对象是_________。

6. 用于从键盘上为变量输入值的标准输入流对象是________。

7. 一个完整程序中必须有一个名为________的函数。

8. 一个函数的函数体就是一条_________语句。

9. 当执行cin 语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。

10. 在C++程序中包含一个头文件或程序文件的预编译命令为__________。

11. 程序中的预处理命令是指以______字符开头的命令。

12. 一条表达式语句必须以______作为结束符。

13. 在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是________定义的头文件。

14. 使用#include 命令可以包含一个头文件,也可以包含一个______文件。

15.一个函数定义由________和________两部分组成。

16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。

17.C++头文件和源程序文件的扩展名分别为______和______。

18.程序文件的编译错误分为________和________两类。

19.当使用_______保留字作为函数类型时,该函数不返回任何值。

20.当函数参数表用______保留字表示时,则表示该参数表为空。

21.从一条函数原型语句“int fun1(void);”可知,该函数的返回类型为______,该函数带有______个参数。

面向对象程序设计C++期末试卷2套(含答案)

面向对象程序设计C++期末试卷2套(含答案)

面向对象程序设计C++ 第一套试卷一、选择题(共32分,每小题2分)1.按照C++标识符的规则,下面( B )是c++的标识符。

A.8_afrB.a_ideC.t-axyD._3?d2.C++中声明常量的关键字是( A )A.constB.externC.publicD.enum3.建立( C )的作用是为变量另起一个名字。

A.指针B.枚举C.引用D.结构4.在( D )情况下适宜采用内联函数。

A.函数体含有循环语句B.函数代码多,频繁调用C.函数体含有递归语句D. 函数代码少,频繁调用5.关于new运算符的下列描述中,错误的是( D )A.它可以用来动态创建对象和对象数组B.使用它创建的对象或对象数组可以使用运算符delete删除C.使用它创建对象时要调用构造函数D.使用它创建对象数组时必须指定初始值6.类成员的访问权限中,( C )只能被本类的成员函数和其友元函数访问。

A.shareB.publicC.privateD.protected7.在下面有关构造函数的描述中,正确的是( B )A.构造函数可以带有返回值B.构造函数名字与类名完全相同C.构造函数必须带参数D.构造函数必须定义,不能默认8.有如下类声明:class A{ private: int x;public: A(int n){ x=n;} };class B: public A{ private: int y;public: B(int a,int b); };在构造函数B的下列定义中,正确的是( C )。

A. B::B(int a,int b): x(a),y(b){ }B. B::B(int a,int b): x(a),B(b){ }C. B::B(int a,int b): A(a),y(b){ }D. B::B(int a,int b): A(a),B(b){ }9.设置虚基类的目的是( B )A.简化程序B.消除二义性C.提高运行效率D.减少目标代码10.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的( C )A.public成员B. protected成员C.private成员D.友元11. 应在下列程序划线处填入的正确语句是( D )#include<iostream>using namespace std;class Base{ public: void fun(){cout<<"Base::fun"<<endl;}};class Derived:public Base{ public: void fun() {cout<<"Derived::fun"<<endl;}};void main(){ Derived obj;_____________ //调用基类的fun函数}A.obj.fun(); B. Base.fun(); C. Base->fun(); D. obj.Base::fun();12. 假定一个类的构造函数为B(int x,int y){a=x;b=a*y;},则执行B obj(3,5); 语句后,obj.a和obj.b的值分别为( C )A.3和5 B.5和3 C.3和15 D.20和513.模板的使用是为了( A )A.提高代码的可重用性B.提高代码的运行效率C.加强类的封装性D.实现多态性14.在下列选项中( A )不是ostream类的对象。

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2

《面向对象程序设计JAVA语言程序设计》期末考试试题及部分答案2

《面向对象程序设计J A V A语言程序设计》期末考试试题及部分答案2------------------------------------------作者------------------------------------------日期年~ 年上学期 《面向对象程序设计♉☺♋❖♋》期末考试试题一、选择题(每道题只有一个正确答案,每小题 分,共 分) 道题、关于☺♋❖♋语言叙述错误的是:(  )✍✍ ✌.☺♋❖♋语言具有跨平台性✍✍ .☺♋❖♋是一种面向对象的语言✍✍ .☺♋❖♋语言中的类可以多继承✍✍ .☺♋❖♋的垃圾收集机制自动回收程序已不再使用的对象、以下叙述正确的是:(  )的确台♋✍✍ ✌.构造方法必须是☐◆♌●♓♍方法✍✍ .❍♋♓⏹方法必须是☐◆♌●♓♍方法✍✍ .☺♋❖♋应用程序的文件名可以是任意的✍✍ .构造方法应该声明为❖☐♓♎类型、关于☺♋❖♋中数据类型叙述正确的是:(  )✍✍ ✌、整型数据在不同平台下长度不同✍✍ .♌☐☐●♏♋⏹类型数据只有 个值,♦❒◆♏和♐♋●♦♏✍✍ .数组属于简单数据类型✍✍ .☺♋❖♋中的指针类型和 语言的一样、设 ♓⏹♦ ⌧♐●☐♋♦ ⍓,则表达式 ⌧  ⍓的值是:(  ) ✌....以上都不是、以下语句有语法错的是:( ✌ )✌.♓⏹♦ ⌧;⍓; .♐☐❒ ☎♓⏹♦ ⌧⍓;⌧;⌧✆.♦♒♓●♏ ☎⌧✆.♐☐❒☎ ✆、关于类和对象的叙述正确的是:( ✌ )✍✍ ✌.☺♋❖♋的类分为两大部分:系统定义的类和用户自定义的类✍✍ .类的静态属性和全局变量的概念完全一样,只是表达形式不同✍✍ .类的成员至少有一个属性和一个方法✍✍ .类是对象的实例化、以下有关构造方法的说法,正确的是:( ✌ )✌.一个类的构造方法可以有多个.构造方法在类定义时被调用.构造方法只能由对象中的其它方法调用.构造方法可以和类同名,也可以和类名不同、以下有关类的继承的叙述中,正确的是:(  )✌.子类能直接继承父类所有的非私有属性,也可通过接口继承父类的私有属性 .子类只能继承父类的方法,不能继承父类的属性.子类只能继承父类的非私有属性,不能继承父类的方法.子类不能继承父类的私有属性、下列属于容器的组件有:(  )✌.☺ ◆♦♦☐⏹.☺ ♋⏹♏. ♋⏹❖♋♦.☺❆♏⌧♦✌❒♏♋、❖☐♓♎ 的含义:(  )✌.方法体为空.定义的方法没有形参.定义的方法没有返回值.方法的返回值不能参加算术运算、关于☺♋❖♋中异常的叙述正确的是:(  )✌.异常是程序编写过程中代码的语法错误.异常是程序编写过程中代码的逻辑错误.异常出现后程序的运行马上中止.异常是可以捕获和处理的、所有的异常类皆继承哪一个类?(  )✌. ♋❖♋♓☐☜⌧♍♏☐♦♓☐⏹. ♋❖♋●♋⏹♑❆♒❒☐♦♋♌●♏. ♋❖♋●♋⏹♑☜⌧♍♏☐♦♓☐⏹. ♋❖♋●♋⏹♑☜❒❒☐❒、下面哪个不是 ♋❖♋语言中的关键字?(  )✌.●☐⏹♑.♦♓♏☐♐.♓⏹♦♦♋⏹♍♏☐♐.♍☐⏹♦♦、为实现进程之间的通信,需要使用下列那种流才合适?( )✌. ♋♦♋ ♦♦❒♏♋❍.☞♓●♏ ♦♦❒♏♋❍. ◆♐♐♏❒♏♎ ♦♦❒♏♋❍. ♓☐♏♎ ♦♦❒♏♋❍、在复选框中移动鼠标,然后单击一选项,要捕获所选项必需实现哪个接口?( )✌.✌♍♦♓☐⏹☹♓♦♦♏⏹♏❒. ☐◆♦♏☹♓♦♦♏⏹♏❒. ☐◆♦♏☐♦♓☐⏹☹♓♦♦♏❒⏹.✋♦♏❍☹♓♦♦♏⏹♏❒二、填空题(每空 分,共 分)、面向对象程序设计所具有的基本特征是:♉♉♉抽象性♉♉♉,♉封装性♉♉♉,♉继承性♉♉,♉多态性♉♉、数组⌧定义如下♓⏹♦ ⌧☯ ☯ ⏹♏♦ ♓⏹♦☯☯则 ⌧●♏⏹♑♦♒ 的值为♉♉♉♉♉♉♉♉♉♉♉♉,⌧☯●♏⏹♑♦♒ 的值为♉♉♉♉♉♉♉♉♉♉♉♉。

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

一、选择题(每题2.5分,共30分)
1、下列的各类函数中,( )不是类的成员函数。

A、构造函数
B、析构函数
C、友员函数
D、拷贝初始化构造函数
2、应在下列程序划线处填入的正确语句是( )。

class Base
{ public:
void fun(){cout<<"Base::fun"<<endl;} };
class Derived:public Base
{ void fun()
{ ____ //显示调用基类的函数fun()
cout<<"Derived::fun"<<endl; } };
A、fun();
B、Base.fun();
C、Base::fun();
D、Base->fun();
3、( )是不可以作为该类的成员的。

A、自身类对象的指针
B、自身类的对象
C、自身类对象的引用
D、另一个类的对象
4、下列描述中,( )是抽象类的特性。

A、可以说明虚函数
B、可以进行构造函数重载
C、可以定义友元函
D、不能定义其对象
5、友员的作用( )。

A、提高程序的运用效率
B、加强类的封装性
C、实现数据的隐藏性
D、增强成员函数的种类
6、在表达式x+y*z中,+ 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。

则operator+ 有( )个参数,operator* 有( )参数。

A、2 2
B、2 1
C、1 2
D、1 1
7、print()函数是一个类的常成员函数,它无返回值,下列表示中,( )是正确的。

A、void print() const
B、const void print( )
C、void const print( )
D、void print (const)
8、下列对派生类的描述中,( )是错的。

A、一个派生类可以作另一个派生类的基类
B、派生类至少有一个基类
C、派生类的成员除了它自己的成员外,还包含了它的基类的成员
D、派生类中继承的基类成员的访问权限到派生类保持不变
9、下面四个选项中,( )是用来声明虚函数的。

A、virtual
B、public
C、include
D、using namespace
10、关于new 运算符的下列描述中,( )是错误的。

A、它可以用来动态创建对象的对象数组
B、使用它创建的对象或对象数组可以使用运算符delete删除
C、使用它创建对象时要调用构造函数
D、使用它创建对象数组时必须指定初始值
11、下列函数中,不能说明为虚函数的是( )。

A、私有成员函数
B、构造函数
C、公有成员函数
D、析构函数
12、当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中( )。

A、都是虚函数
B、只有被重新说明时才是虚函数
C、只有被重新说明为virtual时才是虚函数
D、都不是虚函数
二、填空(每题2分,共20分)
1、在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值____(相同/不同)。

2、类的析构函数____(可以/不可以)是虚函数。

3、要让一个类中的所有对象共享的数据成员,请使用____。

4、面向对象程序设计有四个主要特点,即抽象、封装、____和多态。

5、设置虚基类的目的是____。

6、派生类的对象对它的基类成员中公有继承的____成员是可以访问的。

7、派生类中的成员不能直接访问基类中的____成员。

8、delete的功能是____。

9、运算符重载函数可能是类的____函数,也可以是类的友元函数,还可以是普通函数。

10、用流对象的成员函数控制输出格式时,用于设置字段宽度的流成员函数的名称是____,与之作用相同的控制符名称是setw。

三、读程序写结果(每小题5分,共25分)
1. class Sample
{ int n;
public:
Sample(){}
Sample(int i){n=i;}
Sample &operator=(Sample);
void disp(){cout<<"n="<<n<<endl;} };
Sample &Sample::operator=(Sample s)
{ Sample::n=s.n;
return *this; }
int main()
{ Sample s1(10),s2;
s2=s1;
s2.disp(); }
2. void Swap( int &a, int & b);
void main()
{int x=10, y=7;
cout<<"x="<<x<<" y="<<y<<endl;
Swap( x , y );
cout<<"x="<<x<<" y="<<y<<endl;} void Swap(int & a, int & b)
{ int temp; temp = a ; a=b ; b=temp ; } 3.class Sample
{ int x,y;
public:
Sample(){x=y=0;}
Sample(int a,int b){x=a;y=b;}
void disp()
{ cout<<"x="<<x<<",y="<<y<<endl; } };
int main()
{ Sample s(2,3), *p=&s;
p->disp(); }
4. class myclass
{ int a,b;
static int s;
public:
myclass(int x,int y)。

相关文档
最新文档