电大面向对象程序设计技术作业题.docx
- 文档编号:27559453
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:14
- 大小:21.98KB
电大面向对象程序设计技术作业题.docx
《电大面向对象程序设计技术作业题.docx》由会员分享,可在线阅读,更多相关《电大面向对象程序设计技术作业题.docx(14页珍藏版)》请在冰豆网上搜索。
电大面向对象程序设计技术作业题
2015秋季学期计算机科学与技术本科
《面向对象程序设计技术》作业题
(在电大在线该课程讨论区跟帖提交,注明姓名和学号以记录成绩)
选择题
1.可以在本类及派生类的成员函数中进行访问的访问控制修饰符是(B)
A.private
B.protected
C.public
2.在IDE中将编程项目采用多文件结构下,类的定义一般放在(A)
A.头文件
B.程序文件
C.主程序文件
3.内联成员函数在类外定义时要将其和类定义一起放在(A)
A.头文件
B.程序文件
C.主程序文件
4.下面哪个内存区域是C++中的运行时动态内存分配区域?
(D)
A.代码区
B.栈区
C.数据区
D.堆区
5.对象作为函数参数使用时,一般使用(A)形式
A.引用
B.指针
C.对象拷贝
6.同类的多个不同对象的数据成员值各有不同,但不同对象可以共享类的成员函数代码,实际调用成员函数时,是通过(B)来区分不同对象的。
A.显式给出不同对象不同地址
B.隐含的this指针
C.引用
7.下面哪一种情况不会自动调用拷贝构造函数。
(E)
A.用一个对象初始化另一个对象时
B.当一个对象作为值传递给一个函数时
C.当一个对象作为值从一个函数返回之前,该对象被拷贝到栈区
D.函数调用结束后,栈区中的返回对象拷贝给主调程序的对象
E.建立指向对象的指针并初始化指针值时
8.下列哪些对象的数据成员类型可以不用初始化表的方式进行初始化(D)
A.常量数据成员
B.引用数据成员
C.类中对象成员
D.一般数据成员
9.下列哪一种类设计一般无需在类中设计静态数据成员以使建立的多个对象共享静态数据数据成员。
(D)
A.一个链表类的头指针和尾指针
B.一个学生类中用于保存建立了多少个学生对象的计数器
C.银行帐号类中的年利率
D.一般只用于建立一个对象的类
10.一个类中的公有(public)性质的静态数据成员,以下哪一种访问方式是错误的(D)
A.对象名.静态数据成员名
B.指向对象的指针—>静态数据成员名
C.类名:
:
静态数据成员名
D.类名.静态数据成员名
11.下列哪一个运算符不能够被类所重载(E)
A.“.”成员访问运算符
B.“*”成员指针访问运算符
C.“:
:
”域运算符
D.“?
:
”条件运算符
E.“=”赋值运算符
12.下列哪一种顺序是派生类数据成员的正确的初始化顺序。
(A)
A.基类成员—>对象成员—>新定义的普通成员
B.基类成员—>新定义的普通成员—>对象成员
C.新定义的普通成员—>对象成员—>基类成员
D.对象成员—>新定义的普通成员—>基类成员
13.下列哪一种顺序是派生类构造函数正确的调用其它构造函数顺序。
(A)
A.基类构造函数—>对象成员所在类的构造函数—>派生类自己的构造函数初始化自定义数据成员
B.基类构造函数—>派生类自己的构造函数初始化自定义数据成员—>对象成员所在类的构造函数
C.派生类自己的构造函数初始化自定义数据成员—>对象成员所在类的构造函数—>基类构造函数
D.对象成员所在类的构造函数—>派生类自己的构造函数初始化自定义数据成员—>基类构造函数
14.下面哪一个不是Windows三大核心动态链接库。
(D)
A.KERNEL32.DLL
B.GDI32.DLL
C.USER32.DLL
D.COMMON.DLL
15.同属于一个进程下的线程不能共享进程的哪一种资源(E)
A.进程的代码
B.进程的虚拟地址空间
C.进程的全局变量
D.进程的文件资源
E.操作系统全局变量
16.Win32API应用程序设计时,创建一个窗口程序的固有步骤是下列哪一种?
(A)
A.设计一个窗口类a注册窗口类a创建窗口a显示及更新窗口
B.注册窗口类a设计一个窗口类a创建窗口a显示及更新窗口
C.创建窗口a注册窗口类a设计一个窗口类a显示及更新窗口
D.显示及更新窗口a注册窗口类a设计一个窗口类a创建窗口
17.使用VC++6.0的MFCAppWizard建立应用程序时,在step1阶段,下列哪一种程序框架不会出现在界面选择中。
(D)
A.SDI
B.MDI
C.Dialogbased
D.Win32Application
18.使用VC++6.0的ClassWizard无法完成以下哪一个任务。
(E)
A.创建新类
B.映射消息
C.删除消息处理函数
D.添加删除成员变量
E.添加WinMain()函数
19.下面说法正确的是(A)。
A、构造函数可以重载,析构函数不能重载
B、构造函数不能重载,析构函数可以重载
C、构造函数可以重载,析构函数也可以重载
D、构造函数和析构函数都不可以重载
20.一个视图对象能连接(A)文档对象,一个文档对象能连接(A)视图对象。
A.一个,多个
B.多个,一个
C.一个,一个
D.多个,多个
21.菜单项助记符前用(B)引导。
A、%B、&C、#D、$
22.更新菜单状态的消息是(C)。
A、WM_COMMANDB、UPDATE
C、ON_UPDATE_COMMAND_UID、INVALIDATE
23.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为(C)。
A、px(a)B、px[a]C、px->aD、px.a
24.假定AB为一个类,px为指向该类动态对象数组的指针,该数组长度为n,则执行”delete[]px;”语句时,自动调用该类析构函数的次数为(C)。
A、0B、1C、nD、n+1
25.项目名为EX_SDIHello的单文档应用程序中的主框架头文件中,有两个系统自动定义的变量,它们分别是CStatusBarm_wndStatusBar;和CToolBarm_wndToolBar;,m_wndStatusBar表示(C)。
A、工具栏类变量B、资源类变量C、状态栏类变量D、对话框类变量
26.项目名为EX_SDIHello的单文档应用程序中的主框架实现文件中,有以下代码:
staticUINTindicators[]=
{ID_SEPARATOR,
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
其用来表示:
(D)。
A、工具栏窗格的静态数据B、资源栏窗格的静态数据
C、对话框窗格的静态数据D、状态栏窗格的静态数据
27.项目名为EX_SDIHello的单文档应用程序中的视图类OnDraw(CDC*pDC)虚函数中,有以下代码:
CEx_SDIHelloDoc*pDoc=GetDocument();,其功能是(C)。
A、获取视图类对象指针B、获取应用程序类对象指针
C、获取文档类对象指针D、获取主框架类对象指针
28.当对话框被弹出,用户必须在对话框中作出相应的操作,在退出对话框之前,对话框所在的应用程序不能继续执行,是(C)。
A、无模式对话框B、消息对话框C、模式对话框D、通用对话框
29.要关闭非模式对话框,应采取以下哪种方式。
(D)
A.CDialog:
:
OnOK()
B.CDialog:
:
OnCancel()
C.CDialog:
:
EndDialog()
D.CWnd:
:
DestroyWindow()
30.控件ID值在控件WM_COMMAND消息的哪一个参数中(C)
A.HWND
B.WPARAM的高16位
C.WPARAM的低16位
D.LPARAM的高16位
E.LPARAM的低16位
31.对话框中的控件如果要进行数据校验的话,可以使用MFC提供的哪一种技术(B)
A.DDX
B.DDV
C.GDI
D.GDI+
32.下列对控件的说法,哪一个是正确的。
(C)
A.控件不是窗口,因为没有窗口的外观
B.控件可以作为独立元素应用,可以在界面只显示自身
C.控件有着自己的窗口类和事件处理代码
D.控件使用比较麻烦,不能提高程序开发效率
33.MFC中对菜单的封装类是(B)
A.CResouce
B.CMenu
C.CDocument
D.CFile
34.各种菜单产生的消息都是(A)
A.WM_COMMAND
B.WM_MENU
C.WM_CREATE
D.WM_PAINT
35.菜单一旦设计完成后,在程序运行期间(B)
A.不能发生变化
B.各种菜单都能可以用代码动态控制
C.除了快捷菜单,其它菜单不能控制
D.菜单是资源,只能控制整体显示或消失
判断题
1、构造函数可以由用户用代码显式进行调用。
(错)
2、定义内联函数的关键字是inline。
(错)
3、构造函数返回值必须为void类型。
(错)
4、名为complex的类有无参构造函数,可以用complexc1()形式建立类,并调用其无参构造函数。
(错)
5、无论什么情况,编译器都会默认提供一个无参构造函数。
(错)
6、建立类的对象时,不提供任何参数的方式都是调用类的无参构造函数。
(错)
7、拷贝构造函数可以进行重载。
(错)
8、默认拷贝构造函数只能完成“浅拷贝”。
(对)
9、构造函数和析构函数一般的权限都应该设为public。
(对)
10、不管是建立何种对象,在对象不使用时,都应该手动调用析构函数进行清除对象的操作。
(错)
11、类中所有数据成员都是在构造函数内完成(错)
12、类中的静态数据成员都是公有的(public)。
(错)
13、类中的静态数据成员为了方便访问,一般还需要在类中定义静态成员函数用于访问。
(对)
14、类中的非静态成员函数不能访问类的静态数据成员。
(错)
15、友元类可以访问对应类的所有权限的数据成员。
(对)
16、友元类和对应类都具有互相访问对方所有权限数据成员的效果。
(错)
17、“=”赋值运算符在被类所重载后,能被类的派生类所继承使用。
(错)
18、类的运算符重载采用友元函数或成员函数方式,其函数参数是一样的。
(错)
19、C++和Java一样,只支持单继承。
(错)
20、派生类可以通过基类提供的具有保护权限的成员函数间接访问基类的私有权限数据成员。
(对)
21、类派生过程中派生类的继承方式中,公有继承是最常用的继承方式。
(对)
22、派生类调用各个构造函数的顺序和调用析构函数的顺序相反。
(对)
23、多态性只能通过类继承中在基类定义虚函数实现。
(错)
24、析构函数可以定义为虚函数。
(对)
25、含有虚函数的类不能建立实体对象。
(错)
26、抽象类不能建立实体对象。
(对)
27、Windows操作系统中的消息只来源于用户对鼠标键盘的硬件操作。
(错)
28、WindowsSDK中对C/C++自带的数据类型也重新定义了多个别名。
(对)
29、WindowsAPI函数只能被操作系统所使用。
(错)
30、每个进程至少包含一个工作线程。
(对)
31、Win32API应用程序设计中的窗口类是一个class数据类型。
(错)
32、Win32API应用程序设计时,窗口过程函数一般使用一个较大的switchcase分支结构。
(对)
33、在Win32API应用程序设计时,可以用C++书写WinMain()函数时自己增添WinMain函数的参数个数。
(错)
34、窗口过程函数是个回调函数,可以由用户自行调用该函数。
(错)
35、MFC框架封装了Win32API的多个函数,以便用户以面向对象的形式开发Windows应用程序。
(对)
36、MFC应用程序必须要建立一个全局的应用程序对象。
(对)
37、MFC应用程序的消息循环是使用C++的宏进行封装的。
(对)
38、MFCAppWizard向导只能生成单文档、多文档和基于对话框的应用程序框架。
(错)
39、使用MFCAppWizard向导建立一个应用程序后,如果不写代码的话,无法直接运行。
(错)
40、使用MFCAppWizard建立的基于对话框的应用程序默认是没有菜单、工具栏和状态栏的。
(对)
41、在基于对话框的MFC应用程序设计时,无法使用ClassWizard。
(错)
42、在MFC的对话框设计中,可以导入位图、图标等文件作为资源使用。
(对)
43、在MFC的对话框设计中,模式对话框使用DoModel()函数创建,无模式对话框使用Creat()函数来创建。
(对)
44、在MFC的对话框设计中,控件也是一种窗口。
(对)
45、控件有消息,但是控件不需要单独写自己的消息循环代码。
(对)
46、隶属于父对话框的控件可以被销毁对话框的时候自动销毁。
(错)
47、控件只能使用在对话框中,不能使用在普通窗口中。
(错)
48、随着Windows操作系统的升级,控件也在不断地新增。
(对)
49、对话框中的水平蚀刻线可以用静态图片控件来实现。
(对)
50、复选框控件有选中和选中两种状态。
(错)
问答题
1.使用Win32API进行应用程序设计时,主函数WinMain()通常要完成哪些步骤?
答:
(1)调用API函数RegisterClass注册应用程序的窗口类。
(2)调用相关API函数创建和显示窗口,并进行其它必要的初始化处理。
其中,函数
CreateWindow用来创建已注册窗口类的窗口。
(3)创建和启动应用程序的消息循环。
API函数GetMessage和DispatMessage就是起
到这样的作用。
(4)如果接收到WM_QUIT消息,则退出应用程序。
2.使用MFC设计应用程序时,处理消息映射要按照哪三个步骤进行?
答:
(1)在处理消息的类中,使用消息宏DECLARE_MESSAGE_MAP声明对消息映射的支持,并在该宏之前声明消息处理函数。
(2)使用BEGIN_MESSAGE_MAP和END_MESSAGE_MAP宏在类声明之后的地方定义该类支持的消息映射入口点,所有消息映射宏都添加在这里,当然不同的消息MFC都会有不同的消息映射宏。
(3)定义消息处理函数。
3.Windows应用程序中的消息分为哪些类型?
答:
(1)窗口消息(Windows message)。
除WM_COMMAND外所有以WM作前缀的消息,窗口消息由CWnd及其派生类处理。
窗口消息通常附带一些参数传递给处理函数,这些参数为处理函数正确地处理消息提供了必要的信息。
(2)控件的通知消息(Control notification)。
包括以WM_COMMAND形式封装的来自控件及其他子窗口的通知消息,比如应用程序的编辑控件内容改变时调用的EN_CHANGE消息。
只有CWnd窗口及其派生类才能处理控件通知消息。
(3)命令消息(Command message)。
菜单、工具按钮和快捷键称为“用户界面元素”,用户使用这些对象可以启动一条程序命令。
每一条命令有一个标识ID号,如ID_FILE_SAVE_AS,它是一个应用程序定义的常数,不同的用户界面对象赋予相同的ID号时会启动同一条命令,命令消息以WM_COMMAND形式封装,可以被多种应用程序框架类对象处理,包括所有CCmdTarget派生类。
4.在使用MFC基于对话框应用程序设计中,使用一个对话框的一般过程是?
答:
①添加对话框资源;②设置对话框的属性;③添加和布局控件;④创建对话框类;
⑤添加对话框代码;⑥在程序中调用对话框。
5.在MFC应用程序设计中,资源一般分为哪些类型?
答:
(1)快捷键列表(Accelerator):
一系列组合键的集合,被应用程序用来引发一个动作。
该列表一般与菜单命令相关联,用来代替鼠标操作。
(2)对话框(Dialog):
含有按钮、列表框、编辑框等各种常用控件的窗口。
(3)图标(Icon):
代表应用程序显示在Windows桌面上的位图,它同时有32x32像素和16x16像素两种规格。
(4)菜单(Menu):
用户通过菜单可以完成应用程序的大部分操作。
(5)字串表(String Table):
应用程序使用的全局字符串或其他标识符。
(6)工具栏按钮(Toolbar):
工具栏外观是以一系列具有相同尺寸的位图组成的,它通常与一些菜单命令相对应,用以提高用户的工作效率。
(7)版本信息(Version)。
包含应用程序的版本、用户注册码等相关信息。
给出程序的运行结果
1.#include
classtest
{
private:
intnum;
public:
test();
intGetNum(){returnnum;}
~test();
};
test:
:
test(){num=0;}
test:
:
~test()
{cout<<"Destructoriscalled"< voidmain() { testx[3]; cout<<"Exitingmain()"< } 结果为: Exiting main Destructor is active Destructor is active Destructor is active
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电大 面向 对象 程序设计 技术 作业题