当前位置:文档之家› 面向对象程序设计C++复习题

面向对象程序设计C++复习题

面向对象程序设计C++复习题
面向对象程序设计C++复习题

面向对象程序设计C++复习题

一、单选题

1.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是(D )

A. 公有类型

B. 私有类型

C. 保护类型

D. 友元类型

2.下列关于多态性的描述,错误的是( C )

A. C++语言的多态性分为编译时的多态性和运行时的多态性

B. 编译时的多态性可通过函数重载实现

C. 运行时的多态性可通过模板和虚函数实现

D. 实现运行时多态性的机制称为动态绑定

3.在C++语言中,数据封装要解决的问题是( D )

A. 数据的规范化

B. 便于数据转换

C. 避免数据丢失

D. 防止不同模块之间数据的非法访问

4.使用private修饰的成员变量,以下说法正确的是(A )

A. 只能由本类中的函数使用,不能被外面的程序所访问。

B.可以由本类中的函数使用,也可以被外面的程序所访问。

C. 只能由本类和派生类中的函数使用。

D. 可以在主函数中使用。

5.对类的构造函数和析构函数描述正确的是(A )

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

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

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

D.构造函数不能重载,析构函数也不能重载

6.下面对静态数据成员的描述中,正确的是(A )

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

B.类的每个对象都有自己的静态数据成员

C.类的不同对象有不同的静态数据成员值

D.静态数据成员不能通过类的对象调用

7.在VC++语言类体系中,不能被派生类继承的有(B )

A. 转换函数

B.构造函数

C.虚函数

D.静态成员函数

8.下面关于句柄正确的说法是(A )

A. 句柄是一个标识Windows资源和设备等对象的变量。

B. 句柄是用户程序自定义的数据类型。

C. 用户程序使用句柄时不需要定义。

D. 句柄仅仅是一个抽象的概念,程序中不能使用句柄。

9.下面关于动态链接库正确的说法是(B )

A. 动态链接库提供的函数,在编译阶段能够连接到应用程序中。

B.动态链接库提供的函数,在运行阶段能够连接到应用程序中。

C. 动态链接库本身不能单独设计、编译和调试。

D. 动态链接库的使用使得程序缺乏灵活性。

10.下面关于MFC应用程序中InitInstance函数正确的说法是(D )

A. 该函数由用户定义。

B.该函数不需要用户程序覆盖。

C. 该函数在WinMain函数内被显式调用。

D.通过应用程序类的全局指针自动调用。

11.为了在程序中显示一个模式对话框,应使用CDialgl类的成员函数(C )

A. ShowWindow()

B. Create()

C. DoModal()

D. InvalidateRect()

12.为了在程序中显示一个无模式对话框,应使用CWnd类的成员函数(A )

A. ShowWindow(SW_NORMAL)

B. Create()

C. DoModal()

D. InvalidateRect()

13.对于模式对话框的缺省按钮“OK(确定)”,下面哪种说法是正确的?(B )

A. 单击“OK”,系统认定用户在对话框中的选择或输入无效,对话框退出。

B.单击“OK”,系统认定用户在对话框中的选择或输入有效,对话框退出。

C. 单击“OK”,对话框照常运行。

D. 单击“OK”,对话框暂停运行。

14.设有语句int i=MessageBox("MFC对话框","提问",MB_YESNO|MB_ICONQUESTION);,下面哪种说法是正确的?(C )

A. 消息对话框有两个按钮“确定”和“取消”,单击“确定”返回IDOK。

B.消息对话框有一个按钮“确定”,单击“确定”返回IDOK。

C. 消息对话框有两个按钮“是”和“否”, 单击“是”返回IDYES。

D. 消息对话框有一个按钮“是”, 单击“是”返回IDYES。

15.一个无模式对话框在退出时,应写的代码是(C )

A. DestroyWindow();

B. delete this;

C. DestroyWindow();delete this;

D. CloseWindow();

16.在编辑框内用代码实现剪贴板功能,下面哪个说法是正确的(D )

A. 使用UNIT类型变量访问剪贴板函数

B. 使用CString类型变量访问剪贴板函数

C. 使用int类型变量访问剪贴板函数

D. 使用CEdit类型变量访问剪贴板函数

17.关于DDX/DDV技术,下面哪个说法是正确的。(D )

A. 用户只能为一个控件关联一个变量

B. 用户可以为同一个控件关联多个变量,变量名可以相同,类型必须不同。

C. 用户可以为同一个控件关联多个变量,类型可以相同,变量名必须不同。

D. 用户可以为同一个控件关联多个变量,但必须保证变量名不同且类型不同。

18.一个Button控件同时具有OnCommand和BN_CLICKED两个消息处理函数,下面哪个说法是正确的。( B )

A. 优先执行BN_CLICKED消息处理函数

B. 优先执行OnCommand消息处理函数

C. 同时执行

D. 编译错

19.关于函数CListBox:: GetText( int nIndex, LPTSTR lpszBuffer ),下面的说法哪个是正确的(C )

A. 取列表框中选中项的内容

B. 取列表框中选中项的索引

C. 取列表框中索引为nIndex的内容,送lpszBuffer

D. 取列表框中内容为lpszBuffer的索引,送nIndex

20.关于函数CButton::SetCheck (1),下面的说法哪个是正确的(A )

A. 设置复选按钮为选中状态

B. 设置复选按钮为非选中状态

C. 设置复选按钮为不确定状态

D. 该函数不能设置复选按钮状态

21.关于对话框应用程序的初始化代码,下面哪个说法是正确的(B )

A. 初始化代码应放在WinMain()函数中

B. 初始化代码应放在OnInitDialog()函数中

C. 初始化代码应放在对话框类的构造函数中

D. 初始化代码应放在用户自定义函数中

22.关于函数CProgressCtrl::SetPos( int nPos ),下面的说法哪个是正确的(C )

A. 设置进展条的步长

B. 设置进展条范围的上限

C. 设置进展条初始位置

D. 返回进展条当前位置

23.关于函数CListBox::GetItemDataPtr( int nIndex ),下面的说法哪个是正确的(A )

A. 取出与索引nIndex的列表项相关联数据的指针,类型为void*

B. 取出与索引nIndex的列表项相关联数据的指针,类型CString*

C. 取出与索引nIndex的列表项相关联数据的指针,类型int*

D. 取出索引nIndex的列表项字符串

24.关于函数SetSel(0,-1),下面的说法哪个是正确的(C )

A. 在编辑框内选中第0行文本

B. 在编辑框内未选中任何文本

C. 在编辑框内选中全部文本

D. 参数范围错

25.关于滚动条的WM_VSCROLL消息映射,下面的说法哪个是正确的(B )

A. 在CScrollBar类中进行

B. 在CDialog类中进行

C. 在CFrameWnd类中进行

D. 在CView类中进行

26.关于函数CProgressCtrl:: SteiIt(),下面的说法哪个是正确的(A )

A. 使进展条前进一个步长

B. 使进展条后退一个步长

C. 设置进展条初始位置

D. 返回进展条当前位置

27.关于函数CListBox:: GetCurSel( ),下面的说法哪个是正确的(B )

A. 取列表框中选中项的内容

B. 取列表框中选中项的索引

C. 删除列表框中的选中项

D. 在列表框中添加一项

28.关于函数UpdateData(),下面哪个说法是正确的(B )

A. 数据从相关联的成员变量向控件传输

B.数据从控件向相关联的成员变量复制

C. 实现不同控件之间的数据交换

D. 实现与不同控件相关联变量的数据交换

29.关于函数CListBox:: ResetContent( ),下面的说法哪个是正确的(D )

A. 更新列表框中的内容

B. 删除列表框中的第1项

C. 删除列表框中的最后1项

D. 删除列表框中的所有项,即清空列表框

30.为使工具栏按钮与对应菜单项功能一致,下面哪个说法是正确的(B )

A. 工具栏按钮与对应菜单项的ID相同,工具栏按钮必须重写代码。

B.工具栏按钮与对应菜单项的ID相同,工具栏按钮不用重写代码。

C. 工具栏按钮与对应菜单项的ID必须不同,工具栏按钮必须重写代码。

D. 工具栏按钮与对应菜单项的标题相同,工具栏按钮不用重写代码。

31.关于消息WM_CONTEXTMENU的说法,下面哪个说法是正确的(A )

A. 单击鼠标右键时发送

B.单击鼠标左键时发送

C. 双击鼠标右键时发送

D. 双击鼠标左键时发送

32.关于消息BN_CLICKED的说法,下面哪个说法是正确的(B )

A. 单击鼠标右键时发送

B.单击鼠标左键时发送

C. 双击鼠标右键时发送

D. 双击鼠标左键时发送

33.关与函数OnDraw,下面哪个说法是正确的(A )

A. 窗口首次生成时自动调用

B.窗口生成后调用

C. 窗口消失前调用

D. 窗口消失后调用

34.关与函数OnNewDocumen,下面哪个说法是正确的(A )

A. 创建文档时调用

B.打开文档时调用

C. 修改文档时调用

D. 视图第1次连接到文档后,初始显示视图前调用该函数

35.关与函数OnInitialUpdate,下面哪个说法是正确的(D )

A. 创建文档时被调用

B.打开文档时被调用

C. 修改文档时被调用

D. 视图第1次连接到文档后,初始显示视图前调用该函数

36.对滑动条控件有设置SetRange(0,100,TRUE); SetTicFreq(4); ,下面的说法哪个是正确的。(B )

A. 滑动条的刻度线有25根

B. 滑动条的刻度线有26根

C. 滑动条的刻度线有4根

D. 滑动条的刻度线不确定

37.定义逻辑字体的结构变量,下面哪个定义是正确的?(B )

A. CFont cf

B. LOGFONT lf

C. COLORREF rc

D. LOGBRUSH cp

38.设有定义CRect re(10,20,50,60) ,下面哪个说法是正确的?(A )

A. 定义的矩形左上角顶点坐标是(10,20),右下角顶点坐标是(50,60)

B. 定义的矩形左下角顶点坐标是(10,20),右上角顶点坐标是(50,60)

C. 定义的矩形右上角顶点坐标是(10,20),左下角顶点坐标是(50,60)

D. 定义的矩形右下角顶点坐标是(10,20),左上角顶点坐标是(50,60)

39.下列说法正确的是(B )

A..内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方

B. 内联函数在编译时是将该函数的目标代码插入每个调用该函数的地方

C. 类的内联函数必须在类体内定义

D. 类的内联函数必须在类体外通过加关键字inline定义

40.下列关于虚基类的描述,错误的是( B )

A. 设置虚基类的目的是为了消除二义性

B. 虚基类的构造函数在非虚基类之后调用

C. 若同一层中包含多个虚基类,这些虚基类的构造函数按它们说明的次序调用

D. 若虚基类由非虚基类派生而来,则仍然先调用基类构造函数,再调用派生类的构造函数

二、添空题

1.在面向对象方法中,类之间共享属性和操作的机制称为____继承____。

2.通过使用new和delete两个运算符进行的分配为动态存储分配。

3.在面向对象的程序设计中,类描述的是具有相似性质的一组对象。

4.在C++中封装性、继承性和多态性是面向对象思想的主要特征。

5.MFC框架程序是从WinMain 函数开始执行的。

6.一个const对象只能访问const 成员函数。

7.静态成员函数、内联函数和构造函数不能声明为虚函数。

8.在函数体之前加const关键字可以防止覆盖函数,改变数据成员的值。

9.设在程序中使用如下语句申请了一个对象数组:Point *ptr=new Point[2];,则在需要释放ptr指向的动态数组对象时,所使用的语句是delete[]ptr; 。

10.设有下列代码int a=0;double b=0;cin>>a>>b;当用键盘输入1.25时,b=0.25 。11.CWnd的成员函数GetCheckedRadioButton的功能是返回按钮组中被选中按钮的ID 。

12.消息WM_COMMAND的参数wParam的高位字是控件的通知代码。

13.消息映射宏DELCARE_MESSAGE_MAP的作用是用来声明对消息映射的支持。14.CComboBox的成员函数GetCurSel( ),在组合框中没有选项时返回CB_ERR 。15.CListBox的成员函数InsertString(-1, “辽宁省”),把“辽宁省”添加到列表框中的位置是最后。16.CWnd的成员函数GetDlgItemText的功能是获取控件的标题文本。

17.消息SB_THUMBTRACK是在滚动条拖动滚动块时发送。

18.动态链接库可以提高程序模块的灵活性,因为它本身可以单独设计、编译和调试。19.Windows提供的图形界面接口GDI,使得用户能方便实现图形和文本的输出,不必关心与系统相连的外部设备特性。

20.句柄是一个对操作系统资源的间接引用。

21.每个MFC应用程序都需要afxwin.h 头文件,该头文件定义了MFC的所有类、函数、变量等。22.每个Win32应用程序都需要Windows.h头文件,该头文件及其所包含的文件定义了Windows所有的数据类型、函数调用、数据结构和符号常量等。

23.可以使用ShowWindow(SW_NORMAL)显示无模式对话框,它是CWnd 基类的成员函数。24.在VC++6.0中,菜单、工具栏、对话框、图标等都被视为资源。

25.Window中的每一个资源都是由标识符来定义的,其中的英文字母不区分大小写。

26.列表框中第1项的索引值是0 。

27.CListBox的成员函数GetCurSel( ),在列表框中没有选项时返回LB_ERR 。

28.消息SB_LINEDOWN是在滚动条向下滚动一行时发送。

29.如工具栏按钮属性的提示项是“加法运算\n加法”,则状态栏显示信息为加法运算。

30.GDI提供高层绘图函数,支持与设备无关的图形显示。

三、问答题

1.简述Windows编程特点。

答案:

Windows程序有如下特点:

①消息驱动机制

在Windows应用程序中,通过接收消息、分发消息、处理消息来和用户进行交互。

②图形设备接口(GDI)

Windows提供了一个抽象的图形界面接口,称为图形设备界面,或简称GDI。使得用户直接利用系统的GDI 函数就能方便实现图形和文本的输出,不必关心与系统相连的外部设备特性。

③基于资源的程序设计

Windows应用程序包含众多图形元素,如光标、菜单、工具栏、位图、对话框等,统称为资源。

VC++提供了很多编辑器对这些资源进行编辑,使得用户可以方便地使用这些资源。

④动态链接库

动态链接库提供的函数,能在Windows程序运行时进行装载和连接。可提高程序模块的灵活性。

2.简述MFC程序的运行机制。

答案:

①程序运行时,首先定义全局程序对象,系统调用缺省的应用程序类的构造函数,该函数把全局程序对象

的地址保存在一个全局指针中。

②此时WinMain()函数接收控制,首先通过全局指针调用应用程序类的InitInstance()函数完成应用程序的初

始化。

③InitInstance()函数执行结束,屏幕上显示窗体,WinMain()进入消息主循环,等待接收用户消息。收到消

息后转到系统的Run()函数处理。

④当用户点击退出按钮时,WinMain()调用ExitInstance()函数退出。

3.什么是MFC的消息映射机制?简述映射一个消息的过程。

答案:

所谓消息映射机制,即指MFC类中将消息与消息处理函数联系起来,一一对应的机制。

映射一个消息的过程由三个部分组成:

①在处理消息的类中,使用消息宏LARE_MESSAGE_MAP() 声明对消息映射的支持,并在该宏之前声明

消息处理函数。

②使用BEGIN_MESSAGE_MAP和END_MESSAGE_MAP宏在类声明之后的地方定义该类支持的消息映

入口点,所有消息映射宏都添加在这里,当然不同的消息MFC都会有不同的消息映射宏。

③定义消息处理函数,在该函数内添加消息处理代码。

4.简述DDX/DDV技术是如何实现数据交换和数据校验的?使用时应注意什么问题?

答案:

DDX技术:DDX将数据成员变量同对话框模板内的控件相连接,使得数据在控件之间很容易地传输。

具体使用如下两个函数:

UpdateData(TRUE)或UpdateData()实现控件数据向相关联的变量复制。

UpdateData(FALSE)实现数据由相关联的变量传给控件。

DDV技术:DDV技术能根据用户为与控件相关联的变量设定的取值范围,自动对数据进行校验,当超出范围时,发出相应的警告。。

注意事项:在DDX/DDV技术中,允许用户为同一个控件关联多个变量,但必须保证这些变量名是互不相同的,且这些变量在同一个类型不能有多个变量。

5.什么是静态控件?有哪些静态控件?

答案:

静态控件:用来显示一个字符串、框、矩形、图标,位图或增强的图元文件。它可以用来作为标签、框或用来分割其它的控件。一个静态控件一般不接收用户输入,也不产生通知消息。

静态控件种类:静态文本,组框,静态图片。

6.什么是按钮控件?有哪些按钮控件?简述它们的不同。

答案:

按钮控件:用来实现一种开与关的输入。

常见的按钮有三种类型:按键按钮,单选按钮,复选框按钮

按键按钮通常可以立即产生某个动作,执行某个命令,因此也常被称为命令按钮。

单选按钮通常成组出现,分组后每组中只能有一个被选中。

复选框通常成组出现,复选框被选中时,复选框中就加上一个标记,复选框常用的有选中和未选中两种状态,用户可以同时选中多个复选框。

7.什么是文档的序列化?其过程是怎样的?

答案:

文档的序列化:使一个类可序列化就是使其具有CArchive的序列化功能,即可以在文档类的Serialize 函数中直接通过CArchive引用变量进行该数据的读写操作。

序列化过程:在MFC中,一个可序列化的类必须是CObject的一个派生类,且在类声明中,需要包含DECLARE_SERIAL宏调用,而在类的实现文件中包含IMPLEMENT_SERIAL宏调用,这个宏有三个参数:前两个参数分别表示类名和基类名,第三个参数表示应用程序的版本号。最后还需要重载Serialize函数,使该类的数据成员进行相关序列化操作。

8.简述单文档应用程序中是如何实现文档读写的?

答案:

①当MFC AppWizard创建文档应用程序时,它会自动将“文件(File)”菜单中的“打开(Open)”命令(ID号为ID_FILE_OPEN)映射到CWinApp的OnFileOpen成员函数。

②当MFC AppWizard创建应用程序时,它会自动将“文件(File)”菜单中的“保存(Save)”命令与文档类CDocument的OnFileSave函数在内部关联起来,但用户在程序框架中看不到相应的代码。

③打开和保存文档时,系统都会自动调用Serialize函数。事实上,MFC AppWizard在创建文档应用程序框架时已在文档类中重载了Serialize函数,通过在该函数中添加代码可达到实现数据序列化的目的。9.函数OnInitialUpdate和OnNewDocument都可以对文档进行初始化工作,叙述它们的区别。

答案:

函数:OnInitialUpdate是当应用程序被启动时,或当用户从“文件”菜单中选择了“新建”或“打开”时,视图第1次连接到文档后,在初始显示视图前调用该函数,用户可重载此函数对文档所需信息进行初始化。

这里的初始化主要是对与文档相联系的视图进行,如设置视图大小、是否有滚动功能等。

函数OnNewDocument是当用户从“文件”菜单中选择“新建”命令时,框架首先构造一个文档对象,然后调用该函数,用户可在这里对文档数据进行初始化。

10.什么是列表框和组合框控件?组合框控件有哪些类型?

答案:

列表框:是一个列有许多项目让用户选择的控件。用户可以在其中选择一个或多个项,列表框中的项目数目可灵活变化,程序运行时可根据需要随时增加或删除。当列表框中项目很多时,自动提供滚动功能。

组合框:常用的项目在组合框中显示,用户可以选择其中一项。同时还配有一个编辑框,输入组合框中没有的项。组合框中的项目数目可灵活变化,程序运行时可根据需要随时增加或删除。

组合框类型:简单组合框、下拉式组合框和下拉式列表框。

四、程序分析题

1.分析下面的程序

要求:⑴写出程序运行结果。

⑵说明语句*this = a;的含义。

#include

class COne

{

public:

COne() {x = y = 0;}

COne(int a, int b){x = a; y = b;}

void copy(COne &a);

void print() {cout<

private:

int x, y;

};

void COne::copy(COne &a)

{

if (this == &a) return;

*this = a;

}

void main()

{

COne one, two(3, 4);

one.print();

one.copy(two);

one.print();

}

答案:

⑴0 , 0

3 , 4

⑵把形参a获得的某对象的值赋给操作该成员函数的对象。在本例中,就是将对象two赋给对象one。2.设有一个对话框应用程序,对话框类名为CEx_RadioDlg,添加了一个Button按钮,ID号为IDC_BUTTON1和4个Radio按钮,ID号分别为IDC_RADIO1~IDC_RADIO4。分析下面的程序段:

要求:⑴在注释符号//后面对各条语句进行注释,说明该语句的作用。

⑵该函数在什么时候被调用?写出该函数完成的功能。

void CEx_RadioDlg::OnButton1()

{

CString str;

UINT nID1 = GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO4); //

GetDlgItemText(nID1, str); //

MessageBox(str); //

}

答案:

UINT nID1 = GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO4); //返回按钮组中被选中按钮的ID GetDlgItemText(nID1, str); //获取控件nID的标题文本,送str

MessageBox(str); //用消息对话框显示str

该函数在鼠标左键单击Button按钮时被调用。

函数功能:获取按钮组中被选中按钮的标题文本,用消息对话框显示出来。

3.设有一个对话框应用程序,对话框类名为CEx_DlgCtrlsDlg。分析下面的程序:

要求:⑴在注释符号//后面对各条语句进行注释,说明该语句的作用。

⑵该函数在什么时候被调用?写出该函数完成的功能。

BOOL CEx_DlgCtrlsDlg::OnInitDialog()

{

CStatic *cs;

cs=new CStatic();

cs->Create("Hello!",WS_CHILD|WS_VISIBLE|WS_BORDER|SS_CENTER,CRect(20,20,120,40),this);// CFont *font=this->GetFont();//

cs->SetFont(font);//

return TRUE;

}

答案:

cs->Create("Hello!",WS_CHILD|WS_VISIBLE|WS_BORDER|SS_CENTER,CRect(20,20,120,40),this);

//创建静态控件,标题为"Hello!",子窗体风格,带边框,文本局中,控件左上角顶点坐标为(20,20),宽120,高40,父类窗口为当前窗口(对话框)。

CFont *font=this->GetFont();//获得对话框字体

cs->SetFont(font);//用对话框字体设置静态控件字体

⑵函数OnInitDialog()在显示对话框之前执行,完成对话框的初始化。

该函数完成的功能:在对话框上创建一个具有指定风格的静态控件,标题为"Hello!"。

4.设有一个对话框应用程序,对话框类名为CEx_DlgCtrlsDlg,添加两个Button按钮,ID号分别为IDC_BUTTON1和IDC_BUTTON2。分析下面的程序:

要求:⑴在注释符号//后面对各条语句进行注释,说明该语句的作用。

⑵该函数在什么时候被调用?写出该函数完成的功能。

BOOL CEx_DlgCtrls1Dlg::OnCommand(WPARAM wParam, LPARAM lParam)

{

WORD nCode=HIWORD(wParam);

WORD nID=LOWORD(wParam);

if((nID==IDC_BUTTON1)&&(nCode==BN_CLICKED)) //

MessageBox("你按下的是Button1");

if((nID==IDC_BUTTON2)&&(nCode==BN_CLICKED)) //

MessageBox("你按下的是Button2");

return CDialog::OnCommand(wParam, lParam); //

}

答案:

if((nID==IDC_BUTTON1)&&(nCode==BN_CLICKED)) //如果控件标识符是IDC_BUTTON1并且事件是

BN_CLICKED,执行下面语句。

if((nID==IDC_BUTTON2)&&(nCode==BN_CLICKED)) //如果控件标识符是IDC_BUTTON2并且事件是

BN_CLICKED,执行下面语句。

return CDialog::OnCommand(wParam, lParam); //把控件的消息交由其它函数处理,如OnButton1()。

⑵该函数在控件发出通知消息OnCommand时执行。

函数功能:鼠标单击“Button1”时,显示消息对话框,内容为"你按下的是Button1"。

鼠标单击“Button2”时,显示消息对话框,内容为"你按下的是Button2"。

5.设有一个单文档应用程序,IDR_MAINFRAME为菜单标识。下面是在框架类中添加的WM_CONTEXTMENU 消息处理函数。分析下面的程序段:

要求:⑴在注释符号//后面对各条语句进行注释,说明该语句的作用。

⑵该函数在什么时候被调用?写出该函数完成的功能。

void CEx_SystemMenuView::OnContextMenu(CWnd* pWnd, CPoint point)

{

CMenu mPop;

mPop.LoadMenu(IDR_MAINFRAME); //

CMenu* p=mPop.GetSubMenu(4); //

p->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTALIGN,point.x,point.y,this); //

}

答案:

void CEx_SystemMenuView::OnContextMenu(CWnd* pWnd, CPoint point)

{

CMenu mPop;

mPop.LoadMenu(IDR_MAINFRAME); //装载菜单IDR_MAINFRAME

CMenu* p=mPop.GetSubMenu(4); //取菜单第4项指针(从0开始),即“加减法”菜单。

p->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTALIGN,point.x,point.y,this);//显示弹出式菜单// point.x,point.y为菜单位置(鼠标位置),this为父窗口

}

⑵在单文档应用程序窗口空白处,按下鼠标右键时执行该函数。

功能是显示快捷菜单,快捷菜单是菜单IDR_MAINFRAME的第4项(从0开始)

6.下面是在关于状态栏设置的一段代码。

要求:⑴在注释符号//后面对各条语句进行注释,说明该语句的作用。

⑵该函数在什么时候被调用?写出该函数完成的功能。

void CEx_StatusBarView::OnMouseMove(UINT nFlags, CPoint point)

{

CString str;

CMainFrame* pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;

CStatusBar* pStatus=&pFrame->m_wndStatusBar; //

if (pStatus) {

pStatus->SetPaneStyle(1, SBPS_POPOUT); //

str.Format("X=%d, Y=%d",point.x, point.y);

pStatus->SetPaneText(1,str); //

}

CView::OnMouseMove(nFlags, point);

}

答案:

void CEx_StatusBarView::OnMouseMove(UINT nFlags, CPoint point)

{

CString str;

CMainFrame* pFrame=(CMainFrame*)AfxGetApp()->m_pMainWnd;

CStatusBar* pStatus=&pFrame->m_wndStatusBar; // 获得主窗口中的状态栏指针

if (pStatus) {

pStatus->SetPaneStyle(1, SBPS_POPOUT); //设置状态栏风格

str.Format("X=%d, Y=%d",point.x, point.y);

pStatus->SetPaneText(1,str); //在状态栏第二个窗格显示文本str,str为鼠标位置}

CView::OnMouseMove(nFlags, point);

}

该函数当鼠标在单文档窗口内移动时被调用,状态栏第二个窗格显示鼠标当前位置。

7.分析下面的程序

要求:⑴在注释符号//后面对各条语句进行注释,说明该语句的作用。

⑵该函数在什么时候被调用?写出该函数完成的功能。

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)

{

int cxScreen = ::GetSystemMetrics(SM_CXSCREEN);

int cyScreen = ::GetSystemMetrics(SM_CYSCREEN);

//下面两条语句的作用是

cs.cx = cxScreen/2;

cs.cy = cxScreen/2-150;

//下面两条语句的作用是

cs.x=(cxScreen-cs.cx)/2;

cs.y=(cyScreen-cs.cy)/2;

cs.style &=~WS_MAXIMIZEBOX; //

}

答案:

BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)

{

int cxScreen = ::GetSystemMetrics(SM_CXSCREEN);

int cyScreen = ::GetSystemMetrics(SM_CYSCREEN);

//下面两条语句的作用是设置主窗口宽为1/2屏宽、高为1/2屏幕高

cs.cx = cxScreen/2;

cs.cy = cxScreen/2-150;

//下面两条语句的作用是设置主窗口左上角坐标,使窗口位于屏幕中央

cs.x=(cxScreen-cs.cx)/2;

cs.y=(cyScreen-cs.cy)/2;

cs.style &=~WS_MAXIMIZEBOX; //去处最大化按钮

}

当窗口创建之前,系统自动调用该函数。

该函数完成对窗口风格的设置,使窗口宽为1/2屏宽、高为1/2屏幕高,位于屏幕中央,无最大化按钮。8.分析下面的程序段

要求:⑴在注释符号//后面对各条语句进行注释,说明该语句的作用。

⑵该函数在什么时候被调用?写出该函数完成的功能。

void CEx_FontView::OnDraw(CDC* pDC)

{

LOGFONT lf;

memset(&lf,0,sizeof(LOGFONT));

lf.lfItalic=1;

CFont font;

font.CreateFontIndirect(&lf); //

pDC->SelectObject(&font); //

pDC->TextOut(10,10,"我喜欢Visual C++!"); //

}

答案:

void CEx_FontView::OnDraw(CDC* pDC)

{

LOGFONT lf;

memset(&lf,0,sizeof(LOGFONT));

lf.lfItalic=1;

CFont font;

font.CreateFontIndirect(&lf);//用lf结构创建字体

pDC->SelectObject(&font);//把字体装入设备环境

pDC->TextOut(10,10,"Hello!");//在指定位置显示字符串

}

窗口首次生成时,自动调用视图类函数OnDraw

程序功能是在指定位置(10,10),用由lf结构创建的字体输出文本"Hello!"。

9.分析下面的程序

要求:⑴在注释符号//后面对各条语句进行注释,说明该语句的作用。

⑵该函数在什么时候被调用?写出该函数完成的功能。

void CEx_PenView::OnDraw(CDC* pDC)

{

CRect rc4(10,120,110,220);

COLORREF color4=RGB(192,0,0); //

CBrush brush4=(HS_FDIAGONAL,color4);

pDC->SelectObject(brush4); //

pDC->Ellipse(rc4); //

}

答案:

void CEx_PenView::OnDraw(CDC* pDC)

{

CRect rc4(10,120,110,220);

COLORREF color4=RGB(192,0,0); //设置颜色变量

CBrush brush4=(HS_FDIAGONAL,color4);

pDC->SelectObject(brush4); //把画刷装到设备环境中

pDC->Ellipse(rc4);//绘制圆,用画刷颜色填充圆

}

窗口首次生成时,自动调用视图类函数OnDraw

程序功能是在指定矩形rc4内绘制圆,用画刷颜色填充圆。

10.分析下面的程序

要求:⑴在注释符号//后面对各条语句进行注释,说明该语句的作用。

⑵该函数在什么时候被调用?写出该函数完成的功能。

void CEx_PenView::OnDraw(CDC* pDC)

{

CRect rc1(10,10,110,110);

COLORREF color1=RGB(0,0,192); //

CPen pen1(PS_SOLID,1, color1);

pDC->SelectObject(pen1); //

pDC->Rectangle(rc1); //

}

答案:

void CEx_PenView::OnDraw(CDC* pDC)

{

CRect rc1(10,10,110,110);

COLORREF color1=RGB(0,0,192);//设置颜色变量

CPen pen1(PS_SOLID,1, color1);

pDC->SelectObject(pen1);//把画笔装到设备环境中

pDC->Rectangle(rc1);//用指定画笔绘制矩形

}

窗口首次生成时,自动调用视图类函数OnDraw

程序功能是在指定矩形rc1内,用所定义的画笔绘制矩形

五、程序设计题

1.设计一个单文档应用程序,要求通过菜单打开通用字体对话框,按用户选择的字体、字号、颜色等属性在窗口中显示字符串“我喜欢Visual C++!”。

要求:⑴写出设计步骤

⑵完成代码设计

答案:

⑴设计步骤

①使用MFC AppWizard(exe)向导创建一个单文档应用程序

②选中资源面板底端的ResourceView

③在资源树中选择并展开Menu结点,其中IDR_MAINFRAME为系统预定义菜单

④双击IDR_MAINFRAME打开菜单编辑器,增加一项设ID为ID_FONT

⑤建立菜单消息COMMAND的处理函数

⑵编写代码

void CEx_DialogFontView::OnFont()

{

LOGFONT lf;

memset(&lf, 0,sizeof(LOGFONT));

strcpy ( lf.lfFaceName, "Times New Roman");

CFontDialog dlg ( &lf,CF_EFFECTS | CF_SCREENFONTS, 0, this);

if (dlg.DoModal() == IDOK )

{

CClientDC dc(this);

dlg.GetCurrentFont(&lf);

CFont myfont;

myfont.CreateFontIndirect(&lf);

dc.SelectObject (&myfont);

dc.SetTextColor(dlg.GetColor());

dc.TextOut(100,100,"我喜欢Visual C++!");

}

}

2.设计一个对话框应用程序Ex_Check,保留“取消”按钮,标题改为“退出”,删除其它默认控件,添加1个命令按钮,4个复选框,一个组框。

初始运行“篮球”被选中;鼠标单击按钮“显示信息”时,用消息对话框显示选中的内容。

运行界面如下:

要求:⑴写出设计步骤

⑵完成代码设计

答案:

⑴设计步骤

使用应用程序向导,建立一个对话框应用程序Ex_Check;

①设计界面

添加两个按钮,ID分别为IDC_BUTTON1和IDC_BUTTON2,标题为“显示信息”和“退出”;

一个组框,标题为“爱好”;

在组框控件内,添加4个复选框,ID为IDC_CHECK1 ~ IDC_CHECK4,标题分别为“篮球”、“足球”、“排球”、“棒球”;

使用“布局”调整控件大小和位置。

②生成两个按钮的消息BN_CLICKED的处理函数。

⑵编写代码

①在对话框初始化函数中写入初始化代码,保证初始运行时“篮球”被选中。

BOOL CEx_CheckDlg::OnInitDialog()

{

CButton* pBtn = (CButton*)GetDlgItem(IDC_CHECK1);

pBtn->SetCheck(1);

//或用CheckRadioButton(IDC_CHECK1,IDC_CHECK4,IDC_CHECK1);

return TRUE;

}

②在标题为“显示信息”按钮的消息BN_CLICKED处理函数中写入代码

void CEx_CheckDlg::OnButton1()

{

CString str1,str2;

UINT nCheckIDs[4] = {IDC_CHECK1,IDC_CHECK2,IDC_CHECK3,IDC_CHECK4};

CButton* pBtn;

for (int i=0; i<4; i++){

pBtn = (CButton*)GetDlgItem(nCheckIDs[i]);

if ( pBtn->GetCheck() ){

pBtn->GetWindowText( str1 );

str2 = str2 + str1;

str2 = str2 + ",";

}

}

MessageBox("我喜欢"+str2);

}

注:控件的ID号只要符合VC标识符定义规则即可,不必与答案完全一致。

3.设计一个对话框应用程序Ex_CComboBox,保留“取消”按钮,标题改为“退出”,删除其它默认控件。

在对话框初始化函数中,用代码输入组合框中的数据,为每人关联一个电话号码。如姓名为“王一”、“李二”、“张三”、“赵四”,电话号码为“00000000”、“11111111”、“22222222”、“33333333”等。

选中组合框中的一项,单击按钮“显示电话号码”时,在编辑框中显示该人的电话号码。

初始运行界面如图1所示,选择“张三”后的运行界面如图2所示。

初始运行界面选择“张三”后的运行界面

图1 图2

要求:⑴写出设计步骤

⑵完成代码设计

答案:

⑴设计步骤

使用应用程序向导,建立一个对话框应用程序Ex_CComboBox;

①设计界面

添加1个组合框,ID为IDC_COMBO1;添加1个编辑框,ID为IDC_EDIT1;

添加1个按钮,标题为“显示电话号码”,ID为IDC_BUTTON1;

删除缺省按钮“确定”,保留缺省按钮“取消”,标题改为“退出”。

使用“布局”调整控件大小和位置。

②为控件添加关联变量

为组合框添加CComboBox类型的关联变量m_CL;

为编辑框添加CString类型的关联变量m_E;

③添加消息处理函数

为按钮添加消息BN_CLICKED的处理函数;

为对话框添加消息WM_DESTROY的处理函数;

⑵编写代码

①初始化代码

BOOL CEx_CComboBoxDlg::OnInitDialog()

{

m_CL.AddString("王一");

m_CL.AddString("李二");

m_CL.AddString("张三");

m_CL.AddString("赵四");

CString telephone="00000000";

m_CL.SetItemDataPtr(0,new CString(telephone));

telephone="11111111";

m_CL.SetItemDataPtr(1,new CString(telephone));

telephone="22222222";

m_CL.SetItemDataPtr(2,new CString(telephone));

telephone="33333333";

m_CL.SetItemDataPtr(3,new CString(telephone));

return TRUE; // return TRUE unless you set the focus to a control

}

②“显示电话号码”按钮消息BN_CLICKED的处理函数

void CEx_CComboBoxDlg::OnButton1()

{

CString sd;

int i=m_CL.GetCurSel();

sd=*(CString*)m_CL.GetItemDataPtr(i);

m_E=sd;

UpdateData(FALSE);

}

③对话框退出代码

void CEx_CComboBoxDlg::OnDestroy()

{

CDialog::OnDestroy();

// TODO: Add your message handler code here

//对话框退出时,释放关联数据占有的空间

for(int k=0;k<4;k++)

delete(CString*)m_CL.GetItemDataPtr(k);

}

注:控件的ID号和关联变量名称只要符合VC标识符定义规则即可,不必与答案完全一致,但类型必须正确。

4.设计一个对话框应用程序Ex_Progress,保留“取消”按钮,标题改为“退出”,删除其它默认控件。添

加1个进展条,2个按钮。在对话框初始化函数中设置进展条范围、步长和初始位置。

运行界面如下:

单击“后退”按钮,进展条向后退;

单击“继续”按钮,进展条向前进;

要求:⑴写出设计步骤

⑵完成代码设计

答案:

⑴设计步骤

使用应用程序向导,建立一个对话框应用程序Ex_Progress;

①设计界面

添加1个进展条,ID为IDC_PROGRESS1;添加2个按钮,ID为IDC_BUTTON1和IDC_BUTTON2;

删除缺省按钮“确定”,保留缺省按钮“取消”,标题改为“退出”。

使用“布局”调整控件大小和位置。

②为控件添加关联变量

为进展条添加CProgressCtrl类型的变量m_P;

③添加消息处理函数

为按钮添加消息BN_CLICKED的处理函数;

⑵编写代码

①对话框初始化代码

BOOL CEx_ProgressDlg::OnInitDialog()

{

m_P.SetRange(0,100); //设置进展条范围的上限和下限值

m_P.SetStep(5); //设置步长

m_P.SetPos(30); //设置进展条初始位置

return TRUE; // return TRUE unless you set the focus to a control

}

②“后退”按钮代码

void CEx_ProgressDlg::OnButton1()

{

int nPos = m_P.GetPos(); // 获取进展条当前位置

int nLow, nUp;

m_P.GetRange(nLow, nUp); // 获取进展条范围

nPos = nPos-5;

if (nPos

m_P.SetPos( nPos ); //设置进展条初始位置

}

③“继续”按钮代码

void CEx_ProgressDlg::OnButton2()

{ m_P.StepIt(); }

《面向对象程序设计C 》期末试卷及标准答案

《面向对象程序设计C++》期末考试试卷(B) 一、单项选择题(每小题2分,共40分) 1、关于C++与C语言关系的描述中,()是错误的。 A.C语言是C++语言的一个子集B.C语言与C++语言是兼容的 C.C++语言对C语言进行了一些改进D.C++语言和C语言都是面向对象的 2、已知:int m=10; 下列表示引用的方法中,()是正确的。 A.int &x=m; B.int &y=10; C.int &z; D.float &t=&m; 3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z='*'); 下面函数调用中,不合法的是()。 A.testDefaulParam(5); B.testDefaulParam(5,8); C.testDefaulParam(5,'#'); D.testDefaulParam(0,0,'*'); 4、系统在调用重载函数时往往根据一些条件确定哪个重载函数被调用,在下列选项中,不能作为依据的是()。 A.函数的返回值类型B.参数的类型C.函数名称D.参数个数 5、下列有关C++类的说法中,不正确的是()。 A.类是一种用户自定义的数据类型 B.只有类中的成员函数或类的友元函数才能存取类中的私有成员 C.在类中,如果不做特别说明,所有成员的访问权限均为私有的 D.在类中,如果不做特别说明,所有成员的访问权限均为公用的 6、已知X类,则当程序执行到语句X array[3];时,调用了()次构造函数。 A.0 B.1 C.2 D.3 7、有关析构函数的说法,不正确的是()。 A.析构函数有且仅有一个 B.析构函数和构造函数一样可以有形参 C.析构函数的功能是在系统释放对象之前作一些内存清理工作 D.析构函数无任何函数类型

c面向对象程序设计试题和答案(经典题目)

一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

(A)指针(B)引用(C)枚举(D)结构 3、类成员的访问权限中,()只能被本类的成员函数和其友元函数访问。 (A)share (B)public (C)private (D)protected 4、关于构造函数,下列说法不正确的是()。 (A)构造函数名字和类名相同 (B)构造函数在创建对象时自动执行 (C)构造函数无任何函数返回类型 (D)构造函数有且只有一个 5、派生类可以访问其基类的()。 (A)公有成员(B)保护成员 (C)私有派生(D)公有和保护成员 6、下列关于运算符重载的描述中,错误的是()。 (A)运算符重载不可以改变操作数的个数 (B)运算符重载不可以改变运算符的功能 (C)运算符重载不可以改变结合方向 (D)运算符重载不可以改变运算优先级 7、C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是() (A)面向过程(B)面向对象(C)安全性(D)复用性 8、对于类中定义的成员,其隐含访问权限为()。 A.public B.protected C.private D.static 9、下面有关重载函数的说法中正确的是() (A)重载函数必须具有不同的返回值类型;(B)重载函数形参个数必须不同; (C)重载函数必须有不同的形参列表(D)重载函数名可以不同; 10、有如下的对类“CSample”的说明,其中()是错误的。 class CSample { A.int a=23; B.CSample(); public: C.CSample(int val); D.~ CSample(); 11、在int a=3,int *p=&a;中,*p的值是( ) A.变量a的地址值 B.无意义 C.变量p的地址值 D.3 12、每个类()构造函数。 (A)只能有一个(B)只可有公有的

c语言期末测试题附答案

c语言期末测试题附答 案 集团标准化工作小组 #Q8QGGQT-GX8G08Q8-GNQGJ8-MHHGN#

课程代码:A100002 座位号: 《计算机技术基础(C 语言)》试卷A 姓名: 学号: 专业: 学院: 班级: 20 年 月 日 第一 部分 选择题(共 30 分) 一、单项选择题(本大题共 15 小题,每题只有一个正确答 案,答对一题得 2 分,共 30 分) 1、以下关于C 语言标识符的描述中,正确的是 【 】。 A )标 识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D )Area 与area 是不同的标识符 2、使下列程序段输出“123,456,78”,键盘输入数据,正确的输入是【 】。 int i,j,k; scanf(“%d,%3d%d”,&i,&j,&k); printf(“%d,%d,%d \n”,i,j,k); 3、判断char 类型的变量c1是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>=’0’)&&(c1<=’9’) C) ’0’<=c1<=’9’ D) (c1>=’0’)||(c1<=’9’) 4、若有语句int a=1,b=2,c=3;则以下值为0的表达式是 【 】。 A )’a’&&’b’ B )a<=b C )((a>b)||(b0;i--);后,变量i 的值为 【 】。 A )10 B )9 C )0 D )1 8、若有int *p1, *p2,k; 不正确的语句是 【 】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 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.面向对象程序设计语言的三种重要特性是封装性、继承性和多态性。

c期末考试试题及答案完整版

c期末考试试题及答案 HUA system office room 【HUA16H-TTMS2A-HUAS8Q8-HUAH1688】

AutoCAD 试卷 一、 单项选择 1、AutoCAD 默认扩展名是 A 、dwt B 、dwg C 、bak D 、dxf 答案:B 2、在CAD 中,以下哪个命令可用来绘制横 平竖直的直线 A 、栅格 B 、捕捉 C 、正交 D 、对象捕捉答案:C 3、按哪个键可切换文本窗口和绘图窗口 A 、F2 B 、F8 C 、F3 D 、F5答案:A 4、默认情况下,命令提示行显示为几行 A 、3 B 、5 C 、2 D 、8答案:A 5、在CAD 中为一条直线制作平行线用什么命令 A 、移动 B 、镜像 C 、偏移 D 、旋转答案:C 6、在图层特性管理器中不可以设定哪项 A 、颜色 B 、页面设置 C 、线 宽 D 、是否打印答案:B 7、绘制建筑图步骤为 A 、墙线、轴线、门窗 B 、墙线、 门窗、轴线 C 、轴线、门窗、墙线 D 、轴线、 墙线、门窗答案:D 8、哪个命令可用于绘制直线与圆弧的复合 体 A 、圆弧 B 、构造线 C 、多段线 D 、样条曲线答案:C 9、如何在图中输入“直径”符号 A 、%%P B 、%%C C 、%%D D 、%%U 答案:B

10、如果要在一个圆的圆心写一个“A”字,应使用以下哪种对正方式 A、中间 B、对齐 C、中心 D、调整答案:A 11、在哪个层创建的块可在插入时与当前层特性一致 A、0层 B、在所有自动产生的层 C、所有图层 D、新建的图层答案:A 12、一个完整的尺寸由几部分组成 A、尺寸线、文本、箭头 B、尺寸线、尺寸界线、文本、标记 C、基线、尺寸界线、文本、箭头 D、尺寸线、尺寸界线、文本、箭头 答案:D 13、要将图形中的所有尺寸都为原有尺寸的2倍,应设定以下哪项A、文字高度 B、使用全局比例 C、测量单位比例 D、换算单位 答案:B 14、三维模型中哪种模型可以进行布尔运算 A、线框模型 B、实心体模型 C、表面体模型答案:B 15、渲染三维模型时,哪种类型可以渲染出物体的所有效果 A、一般渲染 B、普通渲染 C、照片级真实感渲染 D、照片级光线跟踪渲染答案:D 16、样板文件的括展名是 A、BAK B、SVS C、DWT D、DWG 答案:C 17、以下哪种相对坐标的输入方法是画8个单位的线长 A.8, 0 B.@0,8 C.@0<8

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

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()

面向对象程序设计C自学考试课程复习题

(07837)《面向对象程序设计C++》复习题 一、单选题 1.对类成员访问权限的控制,是通过设置成员的访问控制属性实现的,下列不是访问控制属性的是( D ) A. 公有类型 B. 私有类型 C. 保护类型 D. 友元类型 2.下列关于多态性的描述,错误的是( C ) A. C++语言的多态性分为编译时的多态性和运行时的多态性 B. 编译时的多态性可通过函数重载实现 C. 运行时的多态性可通过模板和虚函数实现 D. 实现运行时多态性的机制称为动态绑定 3.在C++语言中,数据封装要解决的问题是( D ) A. 数据的规范化 B. 便于数据转换 C. 避免数据丢失 D. 防止不同模块之间数据的非法访问 4.使用private修饰的成员变量,以下说法正确的是( A ) A. 只能由本类中的函数使用,不能被外面的程序所访问。 B. 可以由本类中的函数使用,也可以被外面的程序所访问。 C. 只能由本类和派生类中的函数使用。 D. 可以在主函数中使用。 5.对类的构造函数和析构函数描述正确的是( A ) A. 构造函数可以重载,析构函数不能重载 B. 构造函数不能重载,析构函数可以重载 C. 构造函数可以重载,析构函数也可以重载 D. 构造函数不能重载,析构函数也不能重载 6.下面对静态数据成员的描述中,正确的是( A ) A. 静态数据成员是类的所有对象共享的数据 B. 类的每个对象都有自己的静态数据成员 C. 类的不同对象有不同的静态数据成员值 D. 静态数据成员不能通过类的对象调用 7.在VC++语言类体系中,不能被派生类继承的有( B ) A. 转换函数 B. 构造函数 C. 虚函数 D. 静态成员函数 8.下面关于句柄正确的说法是( A ) A. 句柄是一个标识Windows资源和设备等对象的变量。 B. 句柄是用户程序自定义的数据类型。 C. 用户程序使用句柄时不需要定义。 D. 句柄仅仅是一个抽象的概念,程序中不能使用句柄。 9.下面关于动态链接库正确的说法是( B ) A. 动态链接库提供的函数,在编译阶段能够连接到应用程序中。 B. 动态链接库提供的函数,在运行阶段能够连接到应用程序中。 C. 动态链接库本身不能单独设计、编译和调试。 D. 动态链接库的使用使得程序缺乏灵活性。 10.下面关于MFC应用程序中InitInstance函数正确的说法是( D ) A. 该函数由用户定义。

C期末考试题及答案

C期末考试题及答案 Revised at 2 pm on December 25, 2020.

一、填空题(每空0.5分,共30分) 1、世界坐标系简称__WCS_用户自定义坐标系简称__UCS_。 2、工作空间的切换:“工具”/“工作空间”或“工作空间”工具栏。 3、工具栏包括30种,系统默认的显示工具栏包括:“标准”、“属性”、“绘图”和“修改”等工具栏。 4、多线的对正方式有_上(T)_、_无(Z)_和_下(B)_。 5、文字标注包括标注单行文字和标注多行文字。 6、渲染环境是指在渲染对象时进行的雾化和深度设置。 7、漫游和飞行用户可以通过键盘和鼠标来控制视图显示,并创建导航动画。 8、编辑实体的边的种类:压印边、复制边、着色边。 9、动态块是通过自定义夹点或自定义特性定义的块。在图形中使用动态块,用户可以随时对组成块的对象进行修改。 10、三维实体是具有体积、质量、重心、回转半径、惯性距等特征的三维对象。 11、在AutoCAD 2007中,用户可以创建的光源有电光源、聚光灯光源和平行光光源。 12、相切、相切、半径法是指:通过指定圆的两个切点和半径来绘制圆。 13、绘制圆环的步骤中,先输入圆环的内径和外径,后确定圆环的中心点。 14、计算机辅助设计是:工程技术人员在CAD系统的辅助下,根据产品的设计程序进行设计的一项新技术。 15、菜单栏包括11种,每一种菜单中都含有四种显示情况:命令后跟右三角 、后跟省略号、后跟快捷键或功能键或命令呈灰色。 16、要对图形对象进行编辑就必须选中图形对象,在AutoCAD 2007中,选择对象的方法很多,常用的有_直接拾取_、矩形框选择_、_不规则区域选择_和快速选择。 17、在设置显示精度时,如果设置的精度越高,即分辨率就越高,计算机计算的时间 也越长,显示图形的速度也就越慢。 18、三维基本实体的种类包括:多段体、长方体、楔体、圆柱体、圆锥体、球体、圆环体、棱锥面。 19、布尔运算中只留重复的一部分的运算是交集运算。从一个图形中去掉与另一个图形重复部分的运算是差集运算。

《C面向对象程序设计》谭浩强版复习总结

第一章C++ 基础 endl 换行并刷新输出流 setw(n) 设置字段位数为n hex,oct,dec 十六进制,八进制,十进制表示 setfill 定义填充字符 setprecision 定义浮点数的精度 left,right 左对齐,右对齐 showpoint 强制显示小数点以及全部尾部0 C++通过给常量命名的方式定义常量: const<数据类型名><常量名>=<表达式> 用const定义的标识符常量时,一定要对其初始化。在说明时进行初始化是对这种常量置值的唯一方法,不能用赋值运算符对这种常量进行赋值。 函数声明的一般形式为 函数类型函数名(参数表) 函数模板的定义 template 函数定义 例子:template T max(T a,T b){ return(a>b)? a:b; } 定义函数模板时可以使用多个类型参数,每个类型参数前面只需加上关键字typename或class,用逗号分隔: template

例子:template T1 max(T1 a,T2 b){ return (a>b) ? a : (T1)b; } 有默认参数的函数:实参与形参的结合是从左至右进行的,因此指定默认值的参数必须放在形参列表中的最右端 引用 定义对变量起另外一个名字(别名alias),这个名字称为该变量的引用。 <类型> &<引用变量名> = <原变量名>; 其中原变量名必须是一个已定义过的变量。如: int max ; int &refmax=max; refmax并没有重新在内存中开辟单元,只是引用max的单元。max与refmax在内存中占用同一地址,即同一地址两个名字。 对引用类型的变量,说明以下几点: 1、引用在定义的时候要初始化 2、对引用的操作就是对被引用的变量的操作。 3、引用类型变量的初始化值不能是一个常数。 4、一旦引用被声明,它就不能再指向其它的变量。 5、对引用的初始化,可以用一个变量名,也可以用另一个引用。 6、引用同变量一样有地址,可以对其地址进行操作,即将其地址赋给一指针。 当&m的前面有类型符时(如int &m),它必然是对引用的声明;如果前面无类型符(如cout<<&m),则是取变量的地址。 7、对常量(用const声明)的引用使用如下方式: int i=5; const int &a=i;

c+面向对象程序设计试题和答案题目

系名___ ___ ___ ___ 班级___ ___ ___ ___姓名___ ___ ___ ___学号___ ___ ___ ___ 密 封 线 内 不 答 题 一、填空题(每空1分,共14分) 1、观看以下程序: class point{ public: void show() {cout<<”point”<

c语言期末测试题(附答案)

课程代码: A100002 《计算机技术基础( C 语言)》试卷 A 姓名: 学号: 专业 : 学院 : 班级 : 20 年 月 日 选择题(共 30 分) 题(本大题共 15 小题,每题只有一个正确答案,答 分,共 30 分) 1、以下关于 C 语言标识符的描述中,正确的是 【 】。 A) 标识符可以由汉字组成 B )标识符只能以字母开头 C )关键字可以作为用户标识符 D ) Area 与 area 是不同的标识符 2、使下列程序段输出“ 123, 456,78”,键盘输入数据,正确的输入是【 】 int i,j,k; scanf( “%d,%3d%”d ,&i,&j,&k); printf( “%d,%d,%dn ”,i,j,k); A ) 12345678 B )123,456, 78 C ) 123,45678 D ) 123,*45678 3、判断 char 类型的变量 c1 是否为数字字符的正确表达式为 【 】。 A) (c1>=0)&&(c1<=9) B) (c1>= '0')&&(c1<='9') C) '0'<=c1<='9' D) (c1>= '0')||(c1<= '9') 4、若有语句 int a=1,b=2,c=3 ;则以下值为 0 的表达式是 【 】。 A )' a '&&'b ' B )a<=b C )((a>b)||(b

计算机技术基础试题 第 2 页(共 10 页) A. *(a[0]+2) B. a[1][3] C . a[1][0] D. *(*(a+1)+2) 6、在循环语句的循环体中执行 break 语句,其作用是 【 】。 A )跳出该循 环体,提前结束循环 B) 继续执行 break 语句之后的循环体各语句 C) 结束本次循环,进行下次循环 D) 终止程序运行 7、执行语句 for(i=10;i>0;i--) ;后,变量 i 的值为 【 】。 A ) 10 B )9 C )0 D )1 8、若有 int *p1, *p2, k; 不正确的语句是 【 】 A. p1=&k B. p2=p1 C. *p1=k+12 D. k=p1+p2 9、在函数中未指定存储类别的局部变量,其隐含的存储类别是 【 】 A. 静态( static ) B. 外部( extern ) C. 自动( auto ) D . 寄存器( register ) 10、如下程序的输出结果是 【 】 main( ) { int x=2,a=0,b=0; switch(x) { case 2: a++; b++; case 1: ++a; b--; break; case 0: b++;} printf("a=%d, b=%d\n", a, b);} A. a=2, b=0 B. a=2, b=1 C. a=1, b=1 D. a=1, b=0 11、表示关系 a

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

面向对象分析与及设计习题及答案 一、单项选择题 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. 公共机制

C面向对象程序设计教程第版陈维兴林小茶课后习题答案及解析

C++面向对象程序设计教程课后题答案 1.1 什么是面向对象程序设计? 面向对象程序设计是一种新的程序设计范型.这种范型的主要特征是: 程序=对象+消息 面向对象程序的基本元素是对象。 主要结构特点是: 第一,程序一般由类的定义和类的使用两部分组成; 第二,程序中的一切操作都是通过向对象发送消息来实现的。 1.2 什么是对象?什么是类?对象与类之间的关系是什么? 对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。 类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。 类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。 1.3 现实世界中的对象有哪些特征?请举例说明。 现实世界中的对象具有以下特征: 1) 每一个对象必须有一个名字以区别于其他对象; 2) 用属性来描述对象的某些特征; 3) 有一组操作,每组操作决定对象的一种行为;

4) 对象的行为可以分为两类:一类是作用于自身的行为,另一类是作用于其他对象的行为。 例如一个教师是一个对象。每个教师对象有自己的名字来和别的教师区别。教师具有编号,姓名,年龄,职称,专业等属性。教师拥有走路,吃饭,授课等行为操作。走路,吃饭是作用于自身的行为,授课是作用于其他对象的行为。 1.4 什么是消息?消息具有什么性质? 一个对象向另一个对象发出的请求成为“消息”。 消息具有以下3个性质: 1) 同一个对象可以接收不同形式的多个消息,做出不同的相应; 2) 相同形式的消息可以传递给不同的对象,所做出的响应可以是不同的; 3) 对消息的响应并不是必须的,对象可以响应消息,也可以不响应。 1.5 什么是抽象和封装?请举例说明。 抽象是将有关事物的共性归纳、集中的过程。 例如:把所有具有大学生学籍的人归为一类,成为“大学生”,这就是一个抽象。 封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐藏对象的内部细节。 例如:每一台洗衣机都有出厂日期、机器编号等属性,也有启动、暂停、选择等操作。人们在使用洗衣机的时候只需要按下对应的按钮,而不用关心具体的内部实现。这就是封装。 1.6 什么是继承?请举例说明。 继承就是允许派生类使用基类的数据和操作,同时,派生类还可以增加新的操作和数据。

C语言程序设计期末考试试题(含答案)

C语言程序设计 期末考试试题及其答案 一、单项选择题(本大题共20题,每题2 分,共40分) 1、以下不是C语言的特点的是( ) A、C语言简洁、紧凑 B、能够编制出功能复杂的程序 C、C语言可以直接对硬件进行操作 D、C语言移植性好 2、以下不正确的C语言标识符是( ) A、ABC B、abc C、a_bc D、ab.c 3、一个C语言程序是由( ) A、一个主程序和若干子程序组成 B、函数组成 C、若干过程组成 D、若干子程序组成 4、一个算法应该具有“确定性”等5个特性,对另外4个特性的描述中错误的是( ) A、有零个或多个输入 B、有零个或多个输出 C、有穷性 D、可行性 5、设变量a是整型,f是实型,i是双精度型,则表达式10+‘a’+i*f值的数据类型为( ) A、int B、float C、double D、不确定 6、在C语言中,char型数据在内存中的存储形式是( ) A、补码 B、反码 C、源码 D、ASCII码 7、有如下程序,输入数据:12345M678<cR>后(表示回车),x的值是( ) 。 #include main(){ int x; float y; scanf("%3d%f",&x,&y); } A、12345 B、123 C、45 D、345 8、若有以下定义int a,b; float x,则正确的赋值语句是( ) A、a=1,b=2 B、b++; C、a=b=5 D、b=int(x); 9、以下程序的执行结果是( )

#include { int i=10,j=10; printf("%d,%d\n",++i,j--); } A、11,10 B、9,10 C、11,9 D、10,9 10、巳知字母A的ASCII码是65,以下程序的执行结果是( ) #include main() { char c1='A',c2='Y'; printf("%d,%d\n",c1,c2); A、A,Y B、65,65 C、65,90 D、65,89 11、下列运算符中优先级最高的是( ) A、< B、十 C、% D、!= 12、设x、y和z是int型变量,且x=3,y=4,z=5,则下面表达式中值为0是( ) 。 A、’x’&&’y’ B、x<=y C、x||y+z&&y-z D、!((x<y)&&!z ||1) 13、判断char型变量cl是否为小写字母的正确表达式为( ) A、’a’<=c1<=f’z’ B、(c1>=a)&&(c1<=z) C、(‘a’>=c1) (‘z’<=c1) D、(c1>=’a’)&&(c1<=’z’) 14、字符串"a"在内存中占据的字节个数为( ) A、0 B、 1 C、 2 D、 3 15、下面有关for循环的正确描述是( ) A、for循环只能用于循环次数已经确定的情况 B、for循环是先执行循环体语句,后判定表达式 C、在for循环中,不能用break语句跳出循环体 D、for循环体语句中,可以包含多条语句,但要用花括号括起来 16、下面程序的运行结果是( ) #include main() {int num=0; while(num<=2) {num++; printf(“%d ,num); } } A、 1 B、 1 2 C、 1 2 3

《面向对象程序设计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<

C面向对象程序设计课程设计报告

《C++面向对象程序设计》课程设计报告题目:分数计算器设置 班级: K0312415 专业:计算机科学与技术 学号: 姓名:周林 指导教师: 小组成员:周林,张齐满 二O一三年 10 月 15 日

一、课程设计问题描述 分数计算器设计是高等学校教务管理的重要组成部分,其内容较多,为了简化计论, 要求设计的管理系统能够完成以下功能: (1)定义整数类和分数类。其中,包括构造函数、析构函数、显示函数等。 (2)输入/输出:对流提取和流插入运算符进行重载。 (3)计算功能:可进行分数的加、减、乘和除法运算。 (4)化简功能:将分数化简为最简分数。 (5)异常处理功能:分数中分母不能为零。 (6)菜单功能:每种功能的操作都是在菜单中进行相应选择。 二、课程设计目的和要求: 经过一个学期的《C++面向对象程序设计》课程的学习,已经有了一定地程序设计基础,但是要学好C++面向对象程序设计这门课程,不仅要认真阅读课本知识和从事课堂学习,更重要的是要进行上机实践,通过上机实践才能增强和巩固知识。 三、系统设计(算法分析) 1、系统由5功能,可分别执分数的.加法运算,减法运算,.乘法运算和除法运算,还可以将分数化简。 1.加法运算可计算两个分数相加。 2.减法运算可计算两个分数相减。 3.乘法运算可计算两个分数相乘。 4.除法运算可计算两个分数相除。 5.化简运算可计算一个分数化简。 2、流程图

3、分数计算器设置各函数的功能和实现的相关功能由对应的函数来实现。 (1)函数jia() (2)函数jian() (3)函数cheng()实现分数乘法运算。 (4)函数chu()实现分数除法运算。 (5)函数shuchu()实现分数的输出和化简。 四、程序源代码 pp : Defines the entry point for the console application.

C期末考试试卷及答案

C++期末考试试卷及答案1 一、单项选择题(每题2分,共40分) 1. ______不是属于面向对象程序设计的特性 A. 抽象性 B. 数据相关性 C. 多态性 D. 继承性 2. 将对某一类数据的处理算法应用到另一类数据的处理中,要用到C++的______ A. 类 B. 虚函数 C. 运算符重载 D. 模板 3. C++与C语言最根本的不同之处在于_______ A. 使用了类 B. 能够实现变量自动初始化 C. 支持软件重用 D. 支持接口重用 4. 动态内存分配的主要目的是_______ A. 使程序按动态联编方式运行 B. 正确合理的使用内存 C. 提高程序的运行速度 D. 提高程序的可维护性 5. 在C++函数的形参前加const关键字,是为了提高函数的_______ A. 数据封装性 B. 可理解性 C. 可维护性 D. 可重用性 6. 函数重载的目的是________ A. 实现共享 B. 使用方便,提高可读性 C. 提高速度 D. 减少空间 7. 从程序片断:char name[] = "C++"; course(name);可判断函数course的调用采用的是_______ A. 传值调用 B. 带缺省参数值的函数调用 C. 引用调用 D. 传址调用 8. 用来说明类中公有成员的关键字是________

9. 如果一个类的成员函数print()不修改类的数据成员值,则应将其声明为 A. void print() const; B. const void print(); C. void const print(); D. void print(const); 10. 下列关于构造函数的论述中,不正确的是_______ A. 构造函数的函数名与类名相同 B. 构造函数可以设置默认参数 C. 构造函数的返回类型缺省为int型 D. 构造函数可以重载 11. 在程序代码:A::A(int a, int *b) { this->x = a; this->y = b; }中,this的类型是______ A. int B. int * C. A D. A * 12. 内存泄漏是指_______ A. 内存中的数据出现丢失 B.试图释放一个已经释放了的动态分配的堆内存 C. 函数中局部变量所占的栈内存没有及时回收 D. 动态分配的堆内存在程序退出后始终被占用 A. 私有成员数据 B. 私有成员函数 C. 公有成员数据 D. 公有成员函数 14. 友元函数_______ A. 可以被声明为const B. 没有this指针 C. 可以用类名或对象名来调用 D. 只能用对象名来调用 15. 若一个类的成员函数前用static关键字修饰,则该成员函数________ A. 可以被声明为const B. 没有this指针 C. 可以访问该类的所有成员 D. 只能用对象名来调用 16. C++是用_______实现接口重用的

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

济南大学2009~2010 学年第二学期课程考试试卷 课 程 java 面向对象程序设计 授课教师 考试时间 考试班级 学 号 姓 名 题号 一 二 三 四 五 总 分 审核人 得分 一、填空题(每空2分,共20分) 1.Java 源程序的扩展名是 .java ,经过编译后的程序的扩展名是 .class 。 2.Socket 通常也称为 套接字 ,用于描述 IP 地址 和 端口 。3.线程的优先级在 1 至 10 之间,数值越大 优先级越高 4.构造方法是一种特殊的成员方法,构造方法名与 类名 相同 5.Java 语言只允许单继承,指每个类只能有一个 父类或子类 。 二、选择题(每题2分,共50分) 1.下列哪个概念是面向对象和面向过程程序设计所共有的 ( B ) A 、继承 B 、流程控制 C 、抽象 D 、封装 2.以下关于执行Java 小程序的论述错误的是: ( C ) A 、可以通过浏览器调用嵌入了Java 小程序的HTML 文档 B 、可以通过appletviewer .exe 调用嵌入了Java 小程序的HTML 文档 C 、可以通过java.exe 调用嵌入了Java 小程序的HTML 文档 D 、可以在Java 集成开发环境中调用嵌入了Java 小程序HTML 文档 3.符合对象和类关系的是: ( D ) A 、人和老虎 B 、书和汽车 C 、楼和土地 D 、松树和植物 4.关于选择结构下列哪个说法正确? (B ) A .if 语句和 else 语句必须成对出现 B .if 语句可以没有else 语句对应 … … …… …… …… …… …… … …… …装 …… …… …… … …… …订 …… …… …… … …… …线 …… …… …… … …… …… …… …… …

相关主题
文本预览
相关文档 最新文档