Visual_C++面向对象与可视化程序设计期末复习题

Visual_C++面向对象与可视化程序设计期末复习题
Visual_C++面向对象与可视化程序设计期末复习题

《VC程序设计》习题

一、单项选择题1、假定MyClass为一个类,则执行“” MyClass a[3],*p[2];”语句时,自动调用该类构造函数的次数为( B )

A、2

B、3

C、4

D、5

2、对于结构中定义的成员,其隐含访问权限为(C )

A、protected

B、private

C、public

D、static

3、一个类的友元函数或友元类能够通过成员操作符访问该类的( B )

A、私有成员

B、所有成员

C、公用成员

D、保护成员

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

A、构造函数可以重载,析构函数不能重载。

B、构造函数不能重载,析构函数可以重载。

C、构造函数可以重载,析构函数也可以重载。

D、构造函数和析构函数都不可以重载。

5、下列语句的运行结果为( D )

#include

srtuct COMPLEX

{

int x;

int y;

} cNum[2]={1,3,2,7};

void main()

{

cout<< cNum[0].y*cNum[1] x<

}

A、3

B、2

C、21

D、6

6、类CNum的缺省构造函数和析构函数是( A )

A、CNum ( )和~CNum ( )

B、CNum (int)和~CNum( )

C、CNum ( )和~CNum (delete )

D、CNum ( )和int~CNum ( )

7、在C++中,若对函数未加说明,则函数的隐含类型是(A )

A、int

B、double

C、void

D、char

8、已知类A是类B的友元,类B是类C的友元,则(D )

A、类A一定是类C的友元

B、类C一定是类A的友元

C、类C的成员函数可以访问类B的对象的任何成员

D、类A的成员函数可以访问类B的对象的任何成员

9、下列说法中正确的是( B )

A、类定义中只能说明函数成员的函数头,不能定义函数体

B、类中的函数成员可以在类体中定义,也可以在类体之外定义

C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中

D、在类体之外定义的函数成员不能操作该类的私有数据成员

10、以下不属于成员函数的是( B )

A、静态成员函数

B、友元函数

C、构造函数

D、析构函数

11、对于消息队列的描述正确的是( D )

A、在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。

B、系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程序都有自己的消息队列。

C、系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。应用程序的消息对列中存储了程序的所有窗口的全部消息。

D、以上都正确

12、一个视图对象能连接( A )文档对象,一个文档对象能连接()视图对象。

A、一个,多个

B、多个,一个

C、一个,一个

D、多个,多个

13、MFC类库中的类按层次关系可知,CStatic 的直接父类为( B )

A、CObject

B、CWnd

C、CcmdTarget

D、CFrameWnd

14、可以利用控件的(C )属性和Tab键顺序来为控件分组。

A、ID

B、Tab stop

C、Group

D、Caption

15、根据对话框的行为性质,对话框可以分为两类:(B )

A、对话框资源和对话框类

B、模式对话框和非模式对话框

C、对话框资源和对话框模板

D、消息对话框和模式对话框

16、以下控件中,(C )没有Caption属性。

A、按钮

B、群组框

C、编辑控件

D、静态控件

17、菜单项助记符前用( B )引导。

A、%

B、&

C、#

D、$

18、更新菜单状态的消息是(C )。

A、WM_COMMAND

B、UPDATE

C、ON_UPDA TE_COMMAND_UI

D、INVALIDATE

19、关于工具栏、菜单和加速键的关系,正确的说法是( C )。

A、工具按钮与菜单必须一一对应

B、工具按钮与加速键一一对应

C、工具按钮不必与菜单一一对应

D、菜单与加速键一一对应

20、使用GetWindowDC( )和GetDC( )获取的设备上下文在退出时,必须调用( A )释放设备上下文。

A、ReleaseDC( )

B、delete( )

C、DeleteDC( )

D、Detach( )

21、在面向对象编程中,对象的抽象集合称为(C )。

A、对象

B、集合

C、类

D、实例

22、实现运行时的多态性,必须通过( A )来完成。

A、虚函数

B、重载函数

C、构造函数

D、析构函数

23、在类外定义类的成员函数时,应当使用( B )来标识该函数为特定类的成员。

A、:

B、::

C、->

D、this

24、下面( A )是函数重载。

A、void play(int) 和void play(float)

B、play( ) 和~play()

C、void play(int) 和int play(int)

D、void play( ) 和int play( )

25、Windows操作系统主要基本内核元件中,___B____支持与操作系统密切相

关的功能:如进程加载、文本切换、文件I/O以及内存管理、线程管理等。()

A、GDI

B、KERNEL

C、USER

D、以上都不是。

26、所有的控件都是(B ) 类的派生类,都可以作为一个特殊的窗口来处理。

A、CView

B、CWnd

C、CWindow

D、CDialog

27、设置编辑控件的文本内容,可使用函数( A )

A、SetWindowText( )

B、SetSel( )

C、ReplaceSel( )

D、GetWindowText( )

28、MFC中的集合类包括(C )。

A、对象、列表和映射

B、数组、列表和对象

C、数组、列表和映射

D、数组、列表和链表

29、文档负责将数据存储到永久存储介质中,通常是磁盘文件或数据库,存取过程称为(B )。

A、文件访问

B、串行化

C、文件读写

D、格式化

30、下列对模板的声明,正确的是(D )。

A、template

B、template

C、template

D、template

二、填空题

1、VC++开发环境中,int型数据占4个字节,short int占____2___个字节,long int 占____4_____个字节,char型数据占1个字节,double型数据占____8_____个字节。

2、若for循环的“头”为“for(int i=1;i<10;i++)”,并且在循环体中不会修改i的值,则循环体将被重复执行____9________次后结束。

3、两个函数的函数名___相同_____,但参数的个数或对应参数的类型_不同

______时,则称为重载函数。

4、若ch为char型变量,n为int型变量,则下列语句

ch = ’a’; n = 3; ch = ch + n;

cout<<” ch = ”<< ch;

执行的结果是____ch=d______。

5、C++中函数的参数传递一种是按值传递,另一种是地址传递或_引用____传递。

6、C++运行时的多态性通过虚函数来实现,而编译时的多态性通过函数重载来实现。

7 只读成员函数用____const_________关键字标识,内联成员函数用_______inline____关键字标识。

8、class test{

public:

static int x;

};

test t1,t2; t1.x = 25;

程序运行到这里时,t2.x的值为____25________。

9、所有的文档类都派生于___Cdocument_____ _______,所有的视图类都派生于:_____Cview________。

10、为解决多继承中因公共基类而产生的二义性问题,C++语言提供了__虚基类______机制。将公共基类声明为它以后,它在派生类中只产生一个实例。

11、在代码中,使用CWnd::_____ UpdateData _______函数可实现控件与其成员

变量之间的数据的传输。

12、列表框ClistBox类的成员函数___AddString ___________用来向列表框增加列表项,成员函数_____ ResetContent _______用来清除列表项所有项目。13、:______串行化___________ 是指将对象写入永久存储介质或者将对象从永久存储介质中读出的过程。

14、Windows程序中的消息有窗口消息、命令消息和控件通知消息三种类型。

15、MFC中的集合类包括数组、列表、映射。

16、在进行绘图时,画刷用于指定图形的填充样式,_____画笔_______用于指定图形的边框样式。

17、组合框与列表框用途类似,它是由__列表框________和__编辑框________功能组合而成。

18、DC 是Windows应用程序与设备驱动程序和输出设备之间的接口。

19、如果一个类中含有纯虚函数,则称该类为___抽象基类_________

20、如果类的所有对象共享一个成员,则称该成员为__静态成员___________

21、如果类中的成员只能被本类的成员函数和友元函数访问,则这些成员的访问权限为__私有______ _;如果类中的成员能够被类外的函数访问,则这些成员的访问权限为:____公有__ ____。

22、用户按下键盘按键并放开的过程中,将产生至少三条消息:WM_KEYDOWN,WM_CHAR,WM_KEYUP

23、单选按钮初始化要使用函数如下:

void CheckRadioButton(IDC_RADIO1, IDC_RADIOn , IDC_RADIOm)

其功能的具体描述为:_从IDC_RADIO1到IDC_RADIOn,中设置IDC_RADIOm为默认24、列表框分为单选列表框和多选列表框两种,中任一时刻只能选择一项,则可以选取多项。

三选择填空题(每空1分,共15分)

1、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行⑴A 的构造函数,接着执行⑵ C的构造函数,然后执行__ _⑶_B__的构造函数,最后才执行⑷ D的构造函数。

A、基类的对象成员

B、派生类的对象成员

C、基类

D、派生类

2、[5] B代表窗口客户区的显示设备上下文, [6]C代表整个窗口的显示设备上下文。

A、CPaintDC

B、CClientDC

C、CWindowDC

D、CMetaFileDC

3、消息循环的处理过程如下:

⑺A函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后,⑻B 把来自键盘的命令翻译成WM_XXX消息命令形式。⑼E 函数通知Windows把每个消息分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。

A、GetMessage( )

B、translateMessage( )

C、PostMessage( )

D、SendMessage( )

E、DispatchMessage( )

4、常用的CButton类的成员函数中:⑽A 获得一个按钮控件的选中、选择和聚焦状态;⑾D得到一个按钮的选中状态;⑿C 设置一个按钮的

选中状态。

A、GetState( )

B、SetState( )

C、SetCheck( )

D、GetCheck( )

E、GetButtonStyle( )

5、滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使

用⒀ C 函数,设置滚动块的位置使用⒁E函数,获取滚动

块的当前位置使用⒂F函数。

A、SetPos

B、SetRange

C、SetScrollRange

D、GetPos

E、SetScrollPos

F、GetScrollPos

G、GetScrollRange

6、所有的文档类都派生于[5]C ,所有的视图类都派生于 [6]A 。

A、CView

B、C Window

C、CDocument

D、CFormView

7、[7]C包括键盘和鼠标的输入。这一类消息首先放在系统消息队列中,

然后由Windows将它们送入应用程序消息队列中,由程序来处理消息; D [8] 用来与Windows的控制对象,如列表框、按钮、复选框等进行双向通信。当用

户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。

A、系统消息

B、用户消息

C、输入消息

D、控制消息

8、使用[9] B 获取的设备上下文在退出时,必须调用ReleaseDC( )释放设

备上下文。

A、GetWindowRect( )

B、GetDC( )

C、BeginPaint()

D、GetClientRect( )

9、在进行绘图时,[16]A 用于指定图形的填充样式,___[17]_B__用于指定

图形的边框样式。

A、画笔

B、画刷

C、区域

D、位图

10、列表框ClistBox类的成员函数___[18]A__用来向列表框增加列表项,成员

函数___[19]C__用来清除列表项所有项目,成员函数___[20]F__用来返回列表框

的列表项的总数。

A、AddString

B、DeleteString

C、ResetContent

D、FindString

E、GetCurSel

F、GetCount

11、如果类中的成员只能被本类的成员函数和友元函数访问,则这些成员的访问

权限为___[16]B _;如果类中的成员能够被类外的函数访问,则这些成员的访

问权限为:___[17]C__。

A、protected

B、private

C、public

D、static

12、列表框分为[18] B 和[19C] 两种,[20] B 中任一时刻只能选择

一项。

A、组合框

B、单选列表框

C、多选列表框

D、编辑框

六、程序设计题(1题4 分,2题9 分,共13分)

1、简单的计算程序界面如下图所示,操作数1对应编辑框控件的ID为IDC_EDIT1,对应值类型的成员变量m_op1(int);操作数2对应编辑框控件的ID

为IDC_EDIT2,对应值类型的成员变量m_op2(int);计算结果对应的编辑框控件

的ID 为IDC_EDIT3,对应值类型的成员变量m_result(int)。假设输入的数为

整数,加法按钮的功能是将两操作数相加,并将结果在对应的编辑框IDC_EDIT3

显示出来。写出加法按钮对应的代码。

void CExDlg::OnButton1()

{ UpdateDate(TRUE); 1分

m_result = m_op1 + m_op2; 2分

UpdateDate(FALSE); 1分

}

2、为学员信息设计一个类CStudent,包含:学号、姓名、出生日期、家庭住址、班级,并使该类可以实现串行化。请写出可以实现要求的CStudent.h和CStudent.cpp文件的内容

2、 //CStudent.h

class CStudent :public CObject { 1分

public:

CString Num;

CString Name;

CTime Birth;

CString Address;

CString Grade; 2分

DECLARE_SERIAL(CStudent) // 使对象可串行化1分

virtual void Serialize( CArchive & ar ); //重载串行化函数1分};

CStudent.cppIMPLEMENT_SERIAL(CStudent ,CObject, 0) 1分

void CStudent:Serialize(CArchive & ar)

{ CObject::Serialize(ar); 1分

if ( ar.IsStoring() )

{ ar<

}

else

{ ar>>Num>>Name>> Birth >>Address>>Grade; 1分

}

}

3、下列shape类是一个表示形状的抽象类,area( )为求图形面积的函数,total( )则是一个通用的用以求不同形状的图形面积总和的函数。请从shape类派生三角形类(triangle)、矩形类(rectangle)、并给出具体的求面积函数。

class shape{

public:

virtual float area( )=0

};

float total(shape *s[ ],int n)

{ float sum=0.0;

for(int i=0; i

sum=sum+i.area( );

return sum;

}

#include 1分

class triangle:public shape{ 1分

public:

virtual float area( )

{

float s=(a+b+c)/2;

return sqrt(s*(s-a)*(s-b)*(s-c)); 3分

}

private:

float a,b,c; 1分

};

class rectangle:public shape{ 1分

public:

virtual float area( )

{

return a*b; 2分

}

private:

float a,b; 1分

};

4、创建一个记录通讯录内容的新类Caddrlist,包含:姓名、住址、电话、出生日期,并使该类可以实现串行化。请写出可以实现要求的CAddrlist.h和CAddrlist.cpp文件的内容

//Addrlist.h文件内容:

class CAddrlist : public CObject { 1分

public:

CString Name;

CString Address;

CString T el;

CTime Birth;

CAddrlist(); 3分

DECLARE_SERIAL(CAddrlist) // 使对象可串行化1分

virtual void Serialize( CArchive & ar ); //重载串行化函数1分

};

Addrlist.cpp文件内容:IMPLEMENT_SERIAL(CAddrlist,CObject, 0) 1分

void CAddrlist::Serialize(CArchive & ar)

{ CObject::Serialize(ar); 1分

if ( ar.IsStoring() )

{ ar<

}

else

{ ar>>Name>>T el>>Address>>Birth; 1分

}

}

1、(10分)已知点类的定义如下:

class Point{

……

private:

double x,y;

};

分别用成员函数和友元函数实现计算两点间的距离,函数名为distance。

用成员函数实现(5分)

double Point::distance( const Point &a )

{ double dx,dy;

dx = x-a.x;

dy = y-a.y;

return sqrt( dx*dx + dy*dy );

}

用友元函数实现(5分)

double distance( const Point &a, const Point &b )

{ double dx,dy;

dx = a.x-b.x;

dy = a.y-b.y;

return sqrt( dx*dx + dy*dy );

}

5、(15分)要求计算立方体和圆柱2个几何体的表面积和体积。可以抽象出一个公共的基类Base,把它作为抽象类,在该类内定义求表面积和体积的纯虚函数(抽象类本身是没有表面积和体积可言的)。由这个抽象类派生出描述立方体和圆柱的2个具体类,在这2个类中都有计算表面积和体积的函数的自己版本。请用C++语言定义上述类等级。

const double PI=3.14159;

class Base{

public:

virtual double area() const=0;

virtual double volume() const=0;

};

class Cube:public Base{

public:

Cube(double l=10)

{ length=l>0 ? l : 10; }

double area() const

{ return 6*length*length; }

double volume() const

{ return length*length*length; }

private:

double length;

};

class Cylinder:public Base{

public:

Cylinder(double r=10, double h=5)

{ radius=r>0 ? r : 10;

height=h>0 ? h : 5;

}

double area() const

{ return 2*PI*radius*radius+2*PI*radius*height; }

double volume() const

{ return PI*radius*radius*height; }

private:

double radius;

double height;

};

6、(10分)简单计算程序界面如下图所示,x对应编辑框控件的ID为 IDC_EDIT1,对应值类型的成员变量m_x(double);y对应编辑框控件的ID为IDC_EDIT2,对应值类型的成员变量m_y(double);z对应的编辑框控件的ID 为IDC_EDIT3,对应值类型的成员变量m_z(double)。乘法按钮的功能是将x,y相乘,除法按钮的功能是将x,y相除,并将结果在z对应的编辑框IDC_EDIT3显示出来。写出乘法按钮和除法按钮对应的代码。(10分)

void CExDlg::OnButtonMul( ) // 乘法按钮

{ UpdateDate(TRUE);

m_z = m_x * m_y;

UpdateDate(FALSE); }

void CExDlg::OnButtondIV( ) // 除法按钮

{

UpdateDate(TRUE);

if ( m_y == 0 )

{ MessageBox( “除数不能为0!”);

return;

}

m_z = m_x / m_y;

UpdateDate(FALSE);

7、(10分)设计一个基于对话框的应用程序,如下图所示。要求:单击Color 按钮,能弹出通用颜色对话框选取颜色,并用该颜色显示:This is a color example。

已知:Example组合框的ID为:IDC_DISPLAY。

写出Color按钮的BN_CLICKED消息处理函数。

void CXT6_4Dlg::OnColor()

{

// TODO: Add your control notification handler code here

COLORREF m_cTextColor;

CColorDialog Dlg;

if ( Dlg.DoModal()==IDOK )

{

m_cTextColor=Dlg.GetColor();

CWnd * pWnd=GetDlgItem(IDC_DISPLAY);

CDC * pDC=pWnd->GetDC();

CRect rcDisplay;

pWnd->GetClientRect(rcDisplay);

pDC->SetTextColor(m_cTextColor);

CString s="This is a color example";

DC->TextOut(rcDisplay.right/2-80,rcDisplay.bottom/2-5,s);

}

}

8、如何定义ODBC的数据源?试叙述其过程。(5分)

打开控制面板,双击ODBC图标,进入ODBC数据源管理器。定义用户DSN的步骤如下:(1)单击【添加】按钮,弹出“创建新数据源”对话框。

(2)为新的数据源选择数据库驱动程序。并单击【完成】按钮。

(3)在“ODBC Microsoft Access 97 安装”对话框中,应为该数据源起一个简短的名称。并在下一个编辑框中输入对该数据库的说明。

(4)指定数据库的位置。单击【选取】按钮,然后指定所创建的Access数据库。

(5)单击【确定】按钮,刚才创建的用户数据源被添加在“ODBC数据源管理器”

的“用户数据源”列表中。

9、(20分)该应用有4个命令按钮,作为增加项目、删除项目和全部删除项目以及退出程序的按键。另外,还有一个编辑框作为新项目名称输入框IDC_NAME_EDIT对应控件变量为m_Name(类型为CString),1个静态文本用于显示项目数目,列表框用于项目列表对应控件变量为m_List1,1个静态文本用于显示标题。界面下图所示。

根据要求写出代码:

(1)对话框初始化消息处理函数OnInitDialog()里,向列表框添加“China”,“Germany”两项内容。

BOOL CEx6_3Dlg::OnInitDialog()

{

return TRUE;

}

(2)“增加”命令按钮的单击消息处理函数OnAdd() 将新项目名称输入框的

内容增加到列表框中。

void CEx6_3Dlg::OnAdd()

{

}

(3)“删除”按钮的单击消息处理函数OnDel() 将当前列表框中选中的项删除

void CEx6_3Dlg::OnDel()

{

}

(1) BOOL CEx6_3Dlg::OnInitDialog( )

{ m_List1.AddString("China");

m_List1.AddString("Germany");

UpdateData(FALSE);

return TRUE;

}

(2) void CEx6_3Dlg::OnAdd()

{ if ( m_Name.IsEmpty() )

{ MessageBox("项目名不能为空!");

return;

}

m_Name.TrimLeft();

m_Name.TrimRight();

if ( m_List1.FindString(-1,m_Name)!=LB_ERR )

{ MessageBox("列表框中已有相同的项目名,不能添加!");

return;

}

m_List1.AddString(m_Name);

UpdateData(FALSE);

}

(3) void CEx6_3Dlg::OnDel( )

{ int nIndex=m_List1.GetCurSel();

if(nIndex!=LB_ERR)

{ m_List1.DeleteString(nIndex); }

else

MessageBox("当前没有选择项或列表框操作失败");

UpdateData(FALSE);

}

10、下面是一个基于对话框的应用程序,用来求解一元二次方程的根。当用户在

A、B、C 三个编辑框中输入3个参数后,单击【计算】按钮,将显示出该方程的根。(10分)

各控件对应的成员变量见下表:

试写出计算按钮的单击消息处理函数。

void CEx3_4Dlg::OnButton1()

{

}

4、void CEx6_1Dlg::OnButton1()

{

UpdateData();

double disc;

disc=(double)(m_b*m_b-4*m_a*m_c);

if ( fabs(disc)<=1e-6 ) //如果disc等于0

{ m_x1.Format("x1=%6.2f ",-m_b/(2*m_a));

m_x2.Format("x2=%6.2f ",-m_b/(2*m_a));

}

else if ( disc>1e-6 ) //如果disc大于0

{ double x1,x2;

x1=(-m_b-sqrt(disc))/(2*m_a);

x2=(-m_b+sqrt(disc))/(2*m_a);

m_x1.Format("x1=%6.2f",x1);

m_x2.Format("x2=%6.2f",x2);

}

else //如果disc小于0

{

double realpart,imagpart;

realpart=-m_b/(2*m_a);

imagpart=sqrt(-disc)/(2*m_a);

m_x1.Format("x1=%6.2f+%6.2fi",realpart,imagpart);

m_x2.Format("x2=%6.2f-%6.2fi",realpart,imagpart);

}

UpdateData(FALSE);

}

11、简述用MFC进行ODBC的编程过程。(10分)

关键知识点:(1)设计数据库。(2)定义ODBC数据源。(3)创建应用程序外壳。(4)设计主窗体。(5)将控件与数据库字段相关联。(6)编写代码实现添加新记录功能。(7)编写代码实现删除记录功能。(8)编写代码实现对记录排序功能。(9)编写代码实现查找记录功能等。

第4章-Java语言与面向对象作业习题与答案

第4章 Java语言与面向对象作业习题与答案 一、简答题 1.什么是对象?什么是类? 对象是一种抽象数据类型。它包含了事物的静态特征(属性)和动态特征(行为)两大特征。 类是一组同种对象的集合与抽象。即是具有相同属性和方法的一组对象集合。 2.Java语言的单继承是指什么? 一个类可以派生出多个子类,但子类只允许有一个父类,而不允许存在多个父类。 3.在一个共有类中的数据成员及方法成员的访问控制符为缺省,则这个类可供什么样的包引用? 当一个类的访问控制符为public共有时,表明这个类作为整体对其它类是可见和可引用的;但其数据成员和方法成员访问控制符为缺省时,它们只能被包中类(含当前类)引用。 4.抽象类的用途 (1)设计在更高的层次上进行,不考虑具体对象,从而大大简化了处理问题的复杂性; (2)设计出的类也具有更加良好的可扩展性。 5.什么是非静态的成员变量? 非静态成员即为实例成员变量(没有加static修饰的变量)。 6.异常Exception和错误Error有什么不同?Java如何处理它们? 答:错误通常是指程序本身存在非法情形,常常是因为代码存在问题而引起的,如造成系统崩溃、虚拟机粗错、动态失败等,这一类错误无法恢复或不可能捕获,并将导致应用程序中断。 异常表示另外一种“非同寻常”的错误。这种错误通常是不可预测,但可以被捕获且可以恢复。常见的异常情况包括存不足、找不到所需文件等。 对于错误,编程人员可以通过对程序进行更仔细的检查,以避免这种错误。 对于异常,可以使用捕获机制进行捕获,再编写出相应的处理程序。 7.简单述Java的异常处理机制。 答:Java采取“抛出—捕获”的方式,一旦一个异常想象产生,Runnable环境和应用程序会抛出各种标准类型和自己定义的异常,系统就可以捕获这些异常,并一定有相应的机制来处理它,确保不会产生司机、死循环或其它对操作系统的损害,从而保证了整个程序运行的安全性。 8.简单述throw语句和throws关键字之间的差别。 答:throw语句是在一个方法中用来直接抛出异常对象,其格式是: throw 异常对象; throws关键字是用一个方法声明首部,用来指出这个方法中可能产生若干种异常,其格式:[方法修饰符] 返回类型方法名(参数表)throws 异常类型表 { /*方法体*/ } 二、填空题 1.所有Java应用程序都必须包含的一个类方法是 main() 。 2.面向对象程序设计语言的三种重要特性是封装性、继承性和多态性。

《面向对象程序设计》期末复习题及答案2

面向对象程序设计期末复习指导—填空题 1. C++语言的编译单位是扩展名为__________的__________文件。 2.用于输出表达式值的标准输出流对象是_________。 3.当执行cin语句时,从键盘上输入每个数据后必须接着输入一个________符,然后才能继续输入下一个数据。 4. 一条表达式语句必须以______作为结束符。 5.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的______语句。 6.当使用_______保留字作为函数类型时,该函数不返回任何值。 7. 假定x=5,y=6,则执行表达式y+=x--计算后,x和y的值分别为__________和__________。 8. 十进制常数245对应的十六进制的C++表示为__________。 9. float和double类型的数据分别占用_________和________个字节。 10. 字符串”This\’s a book.\n”的长度为__________。 11. 假定x和y为整型,其值分别为16和5,则x%y和x/y的值分别为__________和__________。 12.假定x是一个逻辑量,则x && FALSE的值为__________。 13. 假定x是一个逻辑量,则x && !x的值为__________。 14. 数学算式 y x xy 3 的C++表达式为________________。 15.常数-4.205和6.7E-9分别具有__________和__________位有效数字。 16. 作为语句标号使用的C++保留字case和defaule只能用于________语句的定义体中。 17. 当在程序中执行到________语句时,将结束本层循环类语句或switch语句的执行。 18.在程序执行完________函数调用后,将结束整个程序的执行过程,返回到C++集成开发窗口。 19.存储字符’a’和字符串”a”分别需要占用________和________个字节。 20. 字符串”a:\\xxk\\数据”的长度为________。 21. 一个二维字符数组a[10][20]能够存储________个字符串,每个字符串的长度至多为________。 22. 若需要把一个字符串”aaa”赋值到字符数组a中,则需要执行________函数的调用来实现。 23.如果一个函数只允许同一程序中的函数调用,则应在该函数定义前加上__________C++保留字。 24. 在函数模板的参数中,用class修饰的参数称为__________参数。 25. 如果一个函数定义中使用了__________修饰,则该函数不允许被其它文件中的函数调用。 26.调用系统函数时,要先使用#include命令包含该系统函数的原型语句所在的__________。 27. C++程序运行时的内存空间可以分成全局数据区,堆区,栈区和__________。

面向对象试题(标准答案)

CoreJavaOOP考试题 考试时间:90分钟 考试总分:100分 一、选择题(不定项选择)(22*4=88) 1. 类A,B的定义如下: class A { private int a = 100; A() { System.out.print("A()"); System.out.println(a); } } class B extends A { private int a = 200; B() { System.out.print("B()"); System.out.println(a); } } 运行下面的代码: new B(); 输出的结果是:(A )。 A. A() 100 B() 200 B. A() 200 B() 200 C. B() 200 A() 100 D. B() 200 A() 200

2.下列说法正确的是(D ) A.所有类都必须定义构造方法(构造器) B.构造方法必须初始化类的所有数据成员 C.子类定义了构造器后,不再调用父类的构造器 D.构造方法可以访问类的非静态成员 3.在Java中,哪个关键字使类不能派生子类?, (A ) A : final B : public C : private D : native 4.class Base{ static void test(){ System.out.println(“Base.test()”); } } public class Child extends Base{ static void test(){ System.out.println(“Child.test()”); } public static void main(String[] args){ Base base = new Child(); Child child = new Child(); base.test(); child.test(); } } 程序运行的结果是( C ) A.Child.test() Child.test() B.Child.test() Base.test() C.Base.test() Child.test() D.Base.test() Base.test()

面向对象期末考试答案

一、填空(15分) 1、类之间的静态联系称作关联。 ?在实例化后,由类产生对象,链是关联的实例。 ?在系统实现时,关联采用对象的属性来实现。 2、用例图用于建立需求模型,描述用户的需求。对象图是面向对象分析中的基本模型,属于静态结构模型。 3、顺序图(时序图)、通信图、活动图、状态图用于描述系统的行为方面的特征,属于动态结构模型。 4、时序图构成:参与者、相互协作的对象、对象的生命线、参与者与对象之间发送的消息、执行规约 5、表示 [可见性] 属性名[:类型][ =初始值] 可见性分为+表示:(公有的)、#表示:(受保护的)、-表示:(私有的)、~(包,只有在同一包中声明的类能够使用这一属性)。 二、名词解释(15分) 1、面向对象方法:是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。 2、类:是具有相同属性和操作的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和操作务两个主要部分。类的作用是用来创建对象,对象是类的一个实例。 3、抽象:指从事物中舍弃个别的、非本质的、与问题域无关的特征,而抽取共同的、本质特征的、相关的做法。 4、多态性:在具有继承关系的类层次结构中可以定义同名的操作或属性,但这些属性或操作具有不同的含义,即具有不同的数据类型或表现出不同的行为。(“同名不同参”或“同名不同类”) 5、OOA模型:就是通过面向对象的分析所建立的系统分析模型。 用况:一个用况是对参与者使用系统的一项功能的描述,是一组动作序列的描述,是一项请求与响应。(

三、简答(45分) 1、继承和泛化关系 特殊类拥有其一般类的全部属性与操作,称作特殊类对一般类的继承。 一般类对特殊类的抽象关系叫泛化关系(简称泛化)。 2、聚合与组合有区别,请说明他们间的区别,并指出下图中哪图是聚合? 聚合刻画了现实事物之间的构成关系,体现“整体——部分”关系。而关联没有组成关系或拥有关系。如例题中的c图 3、简述下图中体现的面向对象的基本思想

面向对象程序设计期末复习题及答案

C++面向对象程序设计复习 试题类型1、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。15题,每小题2分,共30分) [主要从作业题目中抽出来] 2. 填空题。(10题,每小题3分,共30分) 3、阅读程序,写出程序运行结果。【也称计算题】(3题,每小题5分,共15分) 4、程序编制题【也称综合分析题】。(第1、2题每题8分,第3题9分,共 25分) 重点复习内容 打*号是重点,打▲号是编程题出题范围 * 基本概念,对象,消息,类。 面向对象系统特性,封装性,继承性,多态性。 *▲C++类的构成,类与对象,构造与析构,动态存储,类嵌套。 静态成员,对象数组,友元。 *函数重载。 运算符重载。 *引用定义与引用参数 * 基类与派生类的定义。 * 基类及派生类的访问权(含派生类对基类的访问、通过派生类对象对基类的访问)和初始化。

多继承与虚基类。 *多态性与虚函数。 纯虚函数、抽象类。 *▲函数模板。 *▲使用类来定义对象并在程序中的应用题型样题 填空题 1. 假定AB为一个类,则执行“AB a[10];”语句时,系统自动调用该类的构造函数的次数为_________。 答案:10 2.可以用p.a的形式访问派生类对象P的基类成员a,其中a是_________。答案:公有继承的公有成员 3.能作为重载函数的调用的依据是_________。 答案:参数个数、参数类型 4.在进行完任何C++流的操作后,都可以用C++流的有关成员函数检测流的状态;其中只能用于检测输入流是否结束状态的操作函数名称是_________ 答案:eof 5.函数重载是指_________。 答案:两个或两个以上的函数取相同的函数名,但形参的个数或类型不同 6.在派生类中重新定义虚函数时必须在_________ 方面与基类保持一致。 答案:参数个数 阅读程序例题【计算题】 1.分析以下程序的执行结果 #include class Sample

面向对象面试题

面向对象面试题 1、什么是面向对象 面向对象OO = 面向对象的分析OOA + 面向对象的设计OOD + 面向对象的编程OOP; 通俗的解释就是万物皆对象,把所有的事物都看作一个个可以独立的对象(单元),它们可以自己完成自己的功能,而不是像C那样分成一个个函数; 现在纯正的OO语言主要是java和C#,C++也支持OO,C是面向过程的。 2、简述private、protected、public、internal 修饰符的访问权限。 private : 私有成员, 在类的内部才可以访问。 protected : 保护成员,该类内部和继承类中可以访问。 public : 公共成员,完全公开,没有访问限制。 internal: 当前程序集内可以访问。 3、https://www.360docs.net/doc/4a4285739.html,中的五个主要对象 Connection:主要是开启程序和数据库之间的连结。没有利用连结对象将数据库打开,是无法从数据库中取得数据的。这个物件在https://www.360docs.net/doc/4a4285739.html, 的最底层,我们可以自己产生这个对象,或是由其它的对象自动产生。 Command:主要可以用来对数据库发出一些指令,例如可以对数据库下达查询、新增、修改、删除数据等指令,以及呼叫存在数据库中的预存程序等。这个对象是架构在Connection 对象上,也就是Command 对象是透过连结到数据源。 DataAdapter:主要是在数据源以及DataSet 之间执行数据传输的工作,它可以透过Comm and 对象下达命令后,并将取得的数据放入DataSet 对象中。这个对象是架构在Command 对象上,并提供了许多配合DataSet 使用的功能。 DataSet:这个对象可以视为一个暂存区(Cache),可以把从数据库中所查询到的数据保留起来,甚至可以将整个数据库显示出来。DataSet 的能力不只是可以储存多个Table 而已,还可以透过DataAdapter对象取得一些例如主键等的数据表结构,并可以记录数据表间的关联。DataSet 对象可以说是https://www.360docs.net/doc/4a4285739.html, 中重量级的对象,这个对象架构在DataAdapter对象上,本身不具备和数据源沟通的能力;也就是说我们是将DataAdapter对象当做DataSet 对象以及数据源间传输数据的桥梁。 DataReader:当我们只需要循序的读取数据而不需要其它操作时,可以使用DataReader 对象。DataReader对象只是一次一笔向下循序的读取数据源中的数据,而且这些数据是只读的,并不允许作其它的操作。因为DataReader 在读取数据的时候限制了每次只读取一笔,而且只能只读,所以使用起来不但节省资源而且效率很好。使用DataReader 对象除了效率较好之外,因为不用把数据全部传回,故可以降低网络的负载。 https://www.360docs.net/doc/4a4285739.html, 使用Connection 对象来连接数据库,使用Command 或DataAdapter对象来

面向对象程序设计(JAVA)期末考试试卷(A卷)

面向对象程序设计 (J A V A)期末考试试卷 (A卷) -CAL-FENGHAI.-(YICAI)-Company One1

课程代码: 座位号: 新疆大学20 -20 学年度第二学期期末考试 《面向对象程序设计》试卷 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 一、单选题(10小题,共10分) 1.下列 选项中,用于在定义子类时声明父类名的关键字是 【 】 A .interface B . package C . extends D . class 2.在以下哪种情况下可以获得缺省构造器 【 】 A .当作任何类的定义时 B .当类没有其它构造器时 C .当定义至少一个构造器的时 D .从不需要 3.如果局部变量和成员变量同名,如何在局部变量作用域内引用成员变量【 】 A .不能引用,必须改名,使它们的名称不相同 B .在成员变量前加this ,使用this 访问该成员变量 C .在成员变量前加super ,使用super 访问该成员变量 D .不影响,系统可以自己区分 4.在异常处理中,如释放资源、关闭文件、关闭数据库等由哪个子句来完成【 】 A .try 子句 B .catch 子句 C .finally 子句 D .throw 子句 5.下面哪个流类属于面向字符的输入流 【 】 A .BufferedWriter B .FileInputStream C .ObjectInputStream D .InputStreamReader 6.在Java 中,由Java 编译器自动导入,而无需在程序中用import 导入的包是 【 】。 A .java.applet B .java.awt C .java.util D .https://www.360docs.net/doc/4a4285739.html,ng

面向对象期末测试题(带答案).doc

济南大学2009~2010 学年第二学期课程考试试卷 课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 … … …… …… …………………………装……………… …………订………………… …… …线 …… …… …… … …… …… …… …… …

C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:(D) A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?(B) A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是(D) A.private B.public C.protected D.final 8.方法内的形参:(B) A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:(A) A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:(C)A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?(B) A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间

面向对象分析与及设计习题及答案

面向对象分析与及设计习题及答案 一、单项选择题 1.到20世纪末,面向对象软件工程已经逐渐发展成熟,特别是(D)的 形成和广泛使用,采用面向对象分析与编程的软件开发方法已成为软件开发的主流方法。 A. Simula67语言 B. Smalltalk语言 C. Java语言 D. 统一建模语言(UML)的标准 2. 面向对象的运动产生了多种面向对象的语言, 其中(C)是一种混合性面向对象语言, 既支持面向过程的程序设计方法,又支持面向对象的程序设计方法,有广泛应用的基础和丰富开发环境的支持,因而使面向对象的程序设计能得到很快普及。 A. Smalltalk B. Eiffel C. C++ D. Java 3.下列不属于面向对象技术的基本特征的是(B)。 A. 封装性 B. 模块性 C. 多态性 D. 继承性 4. 面向对象程序设计将描述事物的数据与(C) 封装在一起,作为一个相互依存、不可分割的整体来处理。 A. 信息 B. 数据隐藏 C. 对数据的操作 D. 数据抽象 5. 关于面向对象方法的优点,下列不正确的叙述是(C)。 A. 与人类习惯的思维方法比较一致 B. 可重用性好 C. 以数据操作为中心 D.可维护性好 6. (D)是从用户使用系统的角度描述系统功能的图形表达方法。 A. 类图 B. 对象图 C. 序列图 D. 用例图 7. (C) 是表达系统类及其相互联系的图示,它是面向对象设计的核心,建立状态图、协作图 和其他图的基础。 A.对象图 B. 组件图 C. 类图 D. 配置图 8.(D)描述了一组交互对象间的动态协作关系,它表示完成某项行为的对象和这些对象之 间传递消息的时间顺序。 A.对象图 B. 协作图 C. 状态图 D. 序列图 9.(D)就是用于表示构成分布式系统的节点集和节点之间的联系的图示,它可以表示系统 中软件和硬件的物理架构。 A. 组件图 B. 协作图 C. 状态图 D. 配置图 10. 使用UML进行关系数据库的(B)时,需要设计出表达持久数据的实体类及其联系,并把它们映射成为关系数据库表(Table)、视图(View)等。 A. 业务Use Case模型设计 B. 逻辑数据模型设计 C. 物理数据模型设计 C. 物理实现设计 11.一个设计得好的OO系统具有(B) A. 低内聚、低耦合的特征 B. 高内聚、低耦合的特征 C. 高内聚、高耦合的特征 D. 低内聚、高耦合的特征 12.下面()不是UML的基本构成元素。(A) A. 控制语言 B. 基本构造块 C. 规则 D. 公共机制

成人教育 《面向对象程序设计》期末考试复习题及参考答案

面向对象程序设计复习题二 一、填空 1.程序的三种常见结构是、、,其中 结构是程序的默认结构。 2.同名方法给出不同的实现,并通过参数类型或个数进行区分,称 为。 3.和“继承”匹配的概念是。 4.由类构建对象的过程称为。 5.抽象类是含有的类。 6.实现软件复用有两种方式,分别为、、。 7.有定义const int *p,p称为。 8.通过继承产生的类称为。 9.virtual关键字在C++中有两个用处,分贝是,和。 10.方法重载和实现了多态性。 11.请给出C++外的另外一种支持面向对象设计语言。 12.类的三个要素是、、。 13.对象释放前执行的函数是。 二、名词解释 1、构造函数 2、对象 3、运算符重载 4、析构函数

5. 面向对象 6. 继承 三、简答 1.比较类和结构体? 2.重载的意义? 3.抽象类的作用和意义? 4.组合与继承的区别? 四、辩析 1.任何父类对象都可以被子类对象替代。 2.public修饰符号破坏了数据的开放性。 3.private继承方式不能产生子类。 4.不能实例化的类一定是抽象类。 五、综合回答 1.简述多态的实现机制。 2.谈谈多态的意义。 3.面向对象程序设计思想的优点和缺点。

面向对象程序设计复习题二答案一、填空 (1)顺序 (2)选择 (3)循环 (4)顺序 (5)函数重载 (6)抽象 (7)实例化 (8)纯虚函数 (9)继承 (10) 组合 (9)和(10)不区分顺序 (11)常量指针 (12)派生类 (13)虚函数 (14)虚拟继承 (13)和(14)不区分顺序 (15)覆盖 (16)Java或者C# (17)类的标识 (18)类的状态

java面向对象试卷及答案

java面向对象程序设计 系班级姓名成绩得分评卷人 一、填空题(每空2分,共20分) 1.Java源程序的扩展名是,经过编译后的程序的扩展名是。2.Socket通常也称为,用于描述和。3.线程的优先级在至之间,数值越大 4.构造方法是一种特殊的成员方法,构造方法名与相同 5.Java语言只允许单继承,指每个类只能有一个。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的() A、继承 B、流程控制 C、抽象 D、封装 2.以下关于执行Java小程序的论述错误的是:() A、可以通过浏览器调用嵌入了Java小程序的HTML文档 B、可以通过appletviewer.exe调用嵌入了Java小程序的HTML文档 C、可以通过java.exe调用嵌入了Java小程序的HTML文档 D、可以在Java集成开发环境中调用嵌入了Java小程序HTML文档 3.符合对象和类关系的是:() A、人和老虎 B、书和汽车 C、楼和土地 D、松树和植物 4.关于选择结构下列哪个说法正确?() A.if语句和else语句必须成对出现 B.if语句可以没有else语句对应 C.一个if语句只能有一个else if语句与之对应 D.else if结构中必须有default语句 5.while循环和do…while循环的区别是:()

A.没有区别,这两个结构任何情况下效果一样 B.while循环比do…while循环执行效率高 C.do…while循环执行次数可能为0 D.while循环执行次数可能为0 6.关于for循环和while循环的说法哪个正确?() A.while循环先判断后执行,for循环先执行后判断。 B.while循环判断条件一般是程序结果,for循环的判断条件一般是非程序结果C.两种循环任何时候都不可以替换 D.两种循环结构中都必须有循环体,循环体不能为空 7.下列修饰符中与访问控制无关的是() A.private B.public C.protected D.final 8.方法内的形参:() A.必须定义多个形参B.可以没有 C.至少有一个D.只能是简单变量 9.throws的作用:() A.表示方法可能会抛出例外 B.表示后面是方法的输出量 C.方法的标志,每个方法都必须有 D.没有意义 10.在Java语言中,整型常量123占用的存储字节数是:()A.1B.2 C.4 D.8 11.关于对象成员占用内存的说法哪个正确?() A.同一个类的对象共用同一段内存 B、同一个类的对象使用不同的内存段,但静态成员共享相同的内存空间C.对象的方法不占用内存 D.以上都不对 12.return语句:()

面向对象分析与设计_期末复习_2017-2018-2

《面向对象分析与设计》期末复习 2017-2018学年-第2学期 1、题型介绍: 选择题20 * 1分= 20分 填空题5* 2分= 10分 简答题 4 * 7分= 28分 建模分析论述题4题(第1题10分,第2题8分,第3题8分,第4题16分,共42分)= 40分 2、选择题 1、()不是对象具有的特性。 A.标识 B.继承 C.顺序 D.多态性 2、封装是把对象的()结合在一起,组成一个独立的对象。 A.属性和操作 B.信息流 C.消息和事件 D.数据的集合 3、()不是面向对象的典型方法。 A.Coad& Yourdon 方法 B.维也纳方法 C.OMT方法 D.Booch方法 4、UML中有4种关系,分别是依赖、泛化、关联和() A.集成 B.合作 C.实现 D 抽象 5、下列关于状态图的说法中,正确的是() A.状态图是UML中对系统的静态方面进行建模的5种图之一。 B.状态图是活动图的一个特例,状态图中的多数状态是活动状态。 C.状态图是对一个对象的生命周期进行建模,描述对象在其生存期间的动态行为。 D.状态图强调对有几个对象参与的活动过程建模,而活动图更强调对单个反应型对象建模。 6、UML的()模型图由类图、对象图、包图、组件图、和部署图组成。 A.用例 B.静态 C.动态 D.系统。 7、UML的()模型图活动图、顺序图、状态图、写协作图组成。 A.用例 B.静态 C.动态 D.系统。 8、UML的最终产物就是最后提交的可执行的软件系统和() A.用户手册 B.类图 C.动态图 D.相应的软件文档资料

9、在UML的需求分析建模中,()模型图必须与用户反复交流并加以确认。 A.配置 B.用例 C.包 D.动态 10、下面不是用例之间主要关系的是() A.扩展 B.包含 C.依赖 D.泛化 11、对于一个电子商务网站而言,以下不适合作为用例的选项是() A.登录 B.预定商品 C.购物车 D.结账 12、UML的客户需求分析模型包括()模型、类图、对象图和活动图。 A.用例 B.静态 C.动态 D.系统 13、UML客户需求分析产生的用例模型描述了系统的() A.状态 B.体系结构 C.静态模型 D.功能要求 14、在UML的需求分析模型中,用例建模必须与()反复交流并加以确认。 A.软件生产商 B.用户 C.软件开发人员 D.问题领域的专家 15、在UML的需求分析建模中,对用例模型中的用例进行细化说明应使用() A.活动图 B.状态图 C.配置图 D.组件图 16、类图应该画在Rational Rose的()视图中。 A、Use Case View B、Login View C、Component View D、Deployment View 17、类通常可以分为实体类、()和边界类。 A 、父类B、子类C、控制类D、祖先类 18、对象特征的要素是()。 A、状态 B、行为 C、标识 D、属性 19、下列关于接口的关系说法不正确的是()。 A、接口是一种特殊的类 B、所有接口都是有构造型<>的类 C、一个类可以通过实现接口从而支持接口所指定的行为 D、在程序运行的时候,其他对象不仅需要依赖于此接口,还需要知道该类对接口实现的其他信息 20、下列关于类方法的声明,不正确的是()。 A、方法定义了类所许可的行动 B、从一个类创建的所有对象可以使用同一组属性和方法 C、每个方法应该有一个参数 D、如果在同一个类中定义了类似的操作,则它们的行为应该是类似的 21、UML的系统分析进一步要确立的3个系统模型是()、对象动态模型和系统功能模型。 A、数据模型 B、对象静态模型 C、对象关系模型 D、体系结构模型 22、UML的客户需求分析、系统分析和系统设计阶段产生的模型,其描述图符()。 A、完全相同 B、完全不同 C、不可以通用 D、稍有差异 23、类和对象都有属性,它们的差别是:类描述了属性的类型,而对象的属性必有()。 A、正负号 B、动作 C、具体值 D、私有成员 24、UML系统设计的一般步骤包括系统对象设计、系统体系结构设计和系统设计的()和审查等 A、建模 B、完善 C、优化 D、迭代 25、顺序图和协作图主要用于对用例图中()的建模,用它们来描述用例图的行为。

Java面向对象测试试题(经典)

《使用Java实现面向对象编程》阶段测试-笔试试卷 一、选择题(共25题,每题4分,满分100分) 1) 在Java类中,使用以下()声明语句来定义公有的int型常量MAX。 A. public int MAX = 100; B. final int MAX = 100; C. public static int MAX = 100; D. public static final int MAX = 100; 2) 在Java中,下列关于方法重载的说法中错误的是()。 A. 方法重载要求方法名称必须相同 B. 重载方法的参数列表必须不一致 C. 重载方法的返回类型必须一致 D. 一个方法在所属的类中只能被重载一次 3) 给定Java代码如下所示,在横线处新增下列()方法,是对cal方法的重载。 public class Test{ public void cal(int x, int y, int z) {} } A. public int cal(int x, int y, float z){ return 0; } B. public int cal(int x, int y, int z){ return 0; } C. public void cal(int x, int z){ } D. public void cal(int z, int y, int x){ } 4) 在Java中,下面对于构造函数的描述正确的是()。 A. 类必须显式定义构造函数 B. 构造函数的返回类型是void C. 构造函数和类有相同的名称,并且不能带任何参数 D. 一个类可以定义多个构造函数

《面向对象程序设计C 》期末考试试卷

《面向对象程序设计C++》期末考试试卷 一、选择题(每小题3分,共48分。) 01、下列关于C++函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明D)函数不能自己调用自己 02、下列关于类和对象的叙述中,错误的是( A )。 A)一个类只能有一个对象B)对象是类的具体实例 C)类是对某一类对象的抽象D)类和对象的关系是一种数据类型与变量的关系 03、在C++中,用于实现运行时多态性的是( D )。 A)内联函数B)重载函数C)模板函数D)虚函数 04、下列关于运算符重载的叙述中,正确的是( B )。 A)通过运算符重载,可以定义新的运算符B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参 05、对于语句cout<

面向对象设计期末练习题

1、在一个商品订货系统的分析中建立了如图所示的关联,它表示一个供货商可能向多个购货商供货,一个购货商也可购买多个供货商的商品。 (1)讨论这种多对多的关联将给实现带来什么问题。 (2)给出一种解决办法,画出修改后的结果。 2、简要介绍OOD 模型的四个组成部分,并讨论它们的作用。 3、在OOD 中为何有时要把多继承化为单继承?对于下图所示的多继承结构,采用整体-部分结构或者采用关联把它化为单继承,画出转化之后的结构。

4、某机械制造厂生产车床、刨床和钻床三种机床和一种起重机。每一种机床和起重机都装配一台电动机,而电动机分为同步电机和异步电机两类。画出一个类图表示以上各种事物以及它们之间的结构关系。 5、举出一个含有多继承的一般-特殊结构的例子,画出其中的每一个类和它们之间的结构连接符,并填写各个类的主要属性与操作。

12、提高性能的改进措施错误的是()。 A.调整对象的分布 B.减少保存中间结果的属性或类 C.合并通信频频的类 D.用聚合关系描述复杂类 1、请你描述项目开发过程中“分析与设计”的两种不同观点。 3、在OOD阶段,若选择Java语言进行编程,针对下面的类图进行调整,给出其中的两种方案。 6、一个银行业务系统采用如图琐事的配置图,则错误的是() A. 与GUI有关的类应该部署在Branch Client上 B. 这个图表示一个三层的体系结构,不管Branch Client、Financial App Server、Database Server是运行在同一台机器上还是在不同机器上 C. 为了系统的可伸缩性(scalability),与业务逻辑有关的对象应该部署在Financial App Server上 D. 为了系统的可伸缩性,与业务逻辑有关的对象应该部署在Branch Client上 15.在数据库设计的阶段开始考虑具体的数据库管理系统(DBMS)的特性。() A. 需求分析 B. 概念设计 C. 逻辑设计.D 物理设计 13、不是人机交互设计准则的是()。 A.易学、易用、操作方便。 B.尽量保持个性化。 C.及时提供有意义的反馈。 D.尽量减少用户的记忆。

面向对象考试题

第五章考试题 一、选择题:(每题3分,共20题) 1.下面关于类的说法错误的一项是()。 A、类属于Java语言中的复合数据类型 B、对象是Java语言 中的基本结构单位 C、类是同种对象的集合和抽象 D、类就是对象 2.如下所示代码: public class Test05_01{ private float a; public static void m ( ){ } } 如何使成员变量a被方法m( )访问()。 A、将private float a改为public float a B、将private float a改为static float a C、将private float a改为protected float a D、将private float a改为float a 3.下面关于类的说法有误的一项是()。 A、类就是对象 B、类是同种对象的集合和 抽象 C、类属于Java语言中的复合数据类型 D、对象是Java语言 中的基本结构单位

4.下列哪种类成员修饰符修饰的变量只能在本类中被访问()。 A、protected B、default C、private D、public 5.下面关于方法的说法不正确的一项是()。 A、类的私有方法不能被其他类直接访问。 B、Java中的构造方法名必须和类名相同。 C、方法体是对方法的实现,包括变量声明和合法语句。 D、如果一个类定义了构造方法,也可以用该类的默认构造方法。 6.下列程序的运行结果是()。 public class Test05_02 extends x{ int ab(){ static int a = 10; a++; System.out.println(a); } public static void main(String[] args) { Test05_02 b = new Test05_02 (); b.ab(); } } A、10 B、编译错误 C、11 D、运行成功,但不输出

2_面向对象基础测试题和答案

共40道选择题,每题2.5分。多选题有错则全错,全对才满分. 面向对象部分测试题 1.下面描述函数重写错误的是C A.?要有子类继承或实现 ?B.?子类方法的权限必须大于等于父类的权限 C. 父类中被private权限修饰的方法可以被子类重写 D.?子类重写接口中的抽象方法,子类的方法权限必须是public的 2.关于封装下面介绍错误的是(D )。 A. 封装将变化隔离 B.?封装提高重用性。 C.?封装安全性 ?D. 只有被private修饰才叫做封装 3.试图编译运行下面的代码会发生什么情况D public class MyClass{ static int i; publicstaticvoid main(String[]args){System.out.println(i); } } ?A.?错误,变量i没有被初始化 ?B. 输出null C.?输出1 ?D. 输出0 4.在Java中,下面对于构造函数的描述正确的是( D)。 A. 类必须显式定义构造函数 B.构造函数的返回类型是void ?C.?构造函数和类有相同的名称,并且不能带任何参数

D.一个类可以定义多个构造函数 5.下面Java代码的运行结果是(C)。 class Penguin { ?private String name=null; // 名字 privateint health=0;//健康值 private String sex=null; //性别 publicvoid Penguin(){//是一般方法,不是构造方法 health = 10; ??sex = "雄"; ??System.out.println("执行构造方法。"); ?} public voidprint() { ??System.out.println("企鹅的名字是" +name + ?",健康值是"+ health + ",性别是"+ sex+"。"); ?} public staticvoidmain(String[] args){ ?Penguin pgn= new Penguin(); pgn.print(); } } A. 企鹅的名字是null,健康值是10,性别是雄。 B.?执行构造方法。 企鹅的名字是null,健康值是0,性别是null。 ?C.?企鹅的名字是null,健康值是0,性别是null。 D.?执行构造方法。 ?企鹅的名字是null,健康值是10,性别是雄。 6.class A { public int i = 10;?} class B extends A{

面向对象技术Java-期末复习试卷(四)

期末复习试卷(四) 一、单项选择题 1、关于静态变量的概念,下列哪一个正确 A. 一旦一个静态变量被分配,它的值就不允许改变. B. 一个静态变量在方法中被创建,它在被调用前保留上一次调用的结果. C. 在任意多个类的实例中,它们共享类定义的静态变量 D. 在任意多个类的实例中,它们各有自己的静态变量. 正确答案:B 2、选出下面不能作为void Med(int x)方法重载的声明。 A. void Med (double y) B. int Med (int y) C. double Med (int x, int y) D. public float Med (float x) 正确答案:B 3、下列哪一个不正确 A. 一个抽象类必须定义抽象方法. B. 定义了抽象方法的类必定是抽象类. C. 一个接口中,定义的每一个方法必须是抽象方法. D. 一个接口中,定义的每一个成员变量必须是常量. 正确答案:A 4、Circle是GeometricObject的子类。如果有语句:Circle circle = new Circle(1);GeometricObject object = new GeometricObject();那么下面哪个布尔表达式的值为false? A. (circle instanceof GeometricObject) B. (object instanceof GeometricObject)

C. (circle instanceof Circle) D. (object instanceof Circle) 正确答案:D 5、下列关于变量的叙述哪个是错的? A. 实例变量是类的成员变量 B. 实例变量用关键字static声明 C. 在方法中定义的局部变量在该方法被执行时创建 D. 局部变量在使用前必须被初始化 正确答案:B 二、程序题 1、编写一个应用程序,模拟机动车的加速和减速功能。机动车类Vehicle的UML图如 下,其中speedUp()方法实现加速功能,速度上限为240 km/h;speedDown()实现降速功能,下限为0 km/h。 解题要求:编写测试程序,创建Vehicle对象,设置初始速度为100 km/h,调用speedDown()方法减速5 km,再调用speedUp()方法提速10 km,输出车辆的最终速度。

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

一、单选题 1.在下列概念中,Java语言只保留了D A.运算符重载B.结构和联合C.指针D.方法重载 2.下列类定义中,不正确的是B A.class x { .... } B.static class x implements y1,y2 { .... } C.public class x extends Applet { .... } D.class x extends y { .... } 3.下列语句序列执行后,k 的值是B int m=3, n=6, k=0; while( (m++) < (- - n) ) ++k; i++ 先把i的初值赋给表达式(i++),作为表达式(i++)的值,然后i自增 1作为i的值。 如i=1,则表达式(i++)的值等于1,而i的值变为2。 ++i i先自增1,再把自增后的值赋给表达式(++i)。 如i=1,则表达式(++i)的值等于2,i的值也为2, A.0 B.1 C.2 D.3 4.设i、j为int型变量名,a为int型数组名,以下选项中,正确的赋值语句是A A.a[0] = 7; B.i = i + 2 C.i++ - --j; D.a(0) = 66; 5.Java语言的类间的继承关系是B A.多重的B.单重的C.线程的D.不能继承 6.下列语句序列执行后,k 的值是C int i=10, j=18, k=30; switch( j - i ) { case 8 : k++; case 9 : k+=2; case 10: k+=3; default : k/=j; } A.31 B.3 C.2 D.33 7.设有定义float x=3.5f, y=4.6f, z=5.7f;则以下的表达式中,值为true的是C A.x > y || x > z B.z > ( y + x ) C.x != y D.x < y & ! ( x < z )

相关文档
最新文档