面向对象VC习题1_第1页
面向对象VC习题1_第2页
面向对象VC习题1_第3页
面向对象VC习题1_第4页
面向对象VC习题1_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、VC习题1一、选择题1下面说法正确的是( A )A、构造函数可以重载,析构函数不能重载。B、构造函数不能重载,析构函数可以重载。 C、构造函数可以重载,析构函数也可以重载。 D、构造函数和析构函数都不可以重载。 2.下面关于API的描述错误的是( C ) A.API是用来控制Windows各个元素的外观和行为的一套预定义的Windows函数B.创建应用程序、打开窗口、描绘图形都要调用API函数。 C.Windows操作系统构建在API函数上 D.早期,Windows程序员编写程序只能使用API函数3.下面关于API的描述错误的是( D ) A.API函数

2、构建在Windows操作系统上 B.创建应用程序、打开窗口、描绘图形都要调用API函数。 C.API是用来控制Windows各个元素的外观和行为的一套预定义的Windows函数D.现在,Windows程序员编写程序只能使用API函数。4.下面关于 MFC 的描述错误的是( B ) A.MFC是指微软基础类库。 B.MFC不提供对底层 API 的直接调用。 C.MFC对 API 函数进行了 C+封装。D.MFC是微软公司提供的用在 Visual C+环境下编写 Windows 应用程序的一个框架和引擎。 5.下列对于 WinMain 函数的描述中,错误的是 ( A )A.Wi

3、nMain 函数不能有参数。B.WinMain 函数是 Windows 程序的入口点。 C.WinMain 函数的名称是固定的。 D.窗口函数与 WinMain 的关联是通过窗口类的注册实现的。 6.对消息循环描述错误的是( D ) A.TranslateMessage 将虚拟键转换成字符消息。 B.GetMessage 函数在消息队列为空时,将一直空闲。 C.GetMessage 函数在消息队列非空时,取得消息并返回。 D.若 GetMessage 取得的是 WM_QUIT 消息则返回非 0,否则返回 0。 7.注册窗口类型的 API 函数是( B ) A.CreateWindow B.Re

4、gisterClass C.ShowWindow D.UpdateWindow 8.创建窗口的 API 函数是( A ) A.CreateWindow B.RegisterClass C.ShowWindow D.UpdateWindow 9.关于 GDI 的描述错误的是( D ) A.GDI 指图像设备接口。 B.GDI 负责用户和绘图程序之间的信息交换。 C.GDI 控制在输出设备上显示图形或文字。 D.采用了 GDI,编程时还需关心显示卡或打印机的驱动程序。 10. 关于设备上下文的描述错误的是( C ) A.设备上下文允许在 Windows 中进行与设备无关的绘制。 B.设备上下文对象

5、封装了绘制线条、形状和文本等的 Windows API。 C.设备上下文可以用于绘制到屏幕、打印机,但不能绘制到图元文件。 D.设备上下文是一种包含有关某个设备的绘制属性的 Windows 数据结构。 11.关于设备上下文的描述错误的是( D ) A.设备上下文允许在 Windows 中进行与设备无关的绘制。 B.设备上下文可以用于绘制到屏幕、打印机和图元文件。 C.设备上下文是一种包含有关某个设备的绘制属性的 Windows 数据结构。 D.设备上下文对象封装了绘制线条、形状的 Windows API,没有封装文本的 Windows API。 12.下面描述句柄的语句,错误的是( B )&#

6、160;A.句柄是Windows用来标识被应用程序所建立或使用的对象的唯一整数B.句柄中存放了Windows对象的数据 C.句柄能区分不同的应用程序对象 D.句柄具有多种类型 13.在Windows中,窗口句柄的类型是 ( D ) A.HINSTANCE B. HFONT C.HDC D.HWND 14.在Windows中,字体句柄的类型是 ( B ) A.HINSTANCE B. HFONT C.HDC D.HWND15.对消息循环描述错误的是( B ) A.GetMessage函数在消息队列非空时,取得消息并返回。

7、60;B.若GetMessage取得的是WM_CLOSE消息则返回0,否则返回非0. C.GetMessage函数在消息队列为空时,将一直空闲。 D.DispatchMessage 将当前消息发送到对应的窗口过程中去。16.下面四个MFC类中,管理MFC应用程序的是( A ) A. CWinApp B. CMainFrame C. CDocument D. CView 17.下列类中不属于MFC框架基本类的是 ( D ) A. CWinApp B. CFrameWnd C. CView D. CObject 18.为了完成消息映射,不

8、需要 ( C ) 。 A.在类的实现里,实现消息处理函数。B.在类的定义里,增加消息处理函数声明。C.在类的定义里,使用 IMPLEMENT_ MESSAGE_MAP 宏实现消息映射。D.在类的定义里,添加一行声明消息映射的宏 DECLAR E_MESSAGE_MAP。 19.下列标准控件中( B )不是 CButton 类。 A.普通按钮 B.静态文本 C.单选按钮 D.复选按钮20.所有的控件类都是从( B )类派生。A.CObject B.CWnd C.CStatic  D.CButton21.在尾部添加一个菜单项的方法是( A )A.AppendMenu B.InsertMe

9、nu C.LoadMenu D.TrackPopupMenu22.创建空的弹出式菜单的方法是( B )A、CreateMenu B、CreatePopupMenu C、GetPopupMenu D、TrackPopupMenu23.创建控件消息时,可以使用类向导建立消息映射和消息处理函数之间的关系,在源文件中消息映射表中其消息映射宏是( D )。A.ON_COMMAND B.ON_MESSAGE C.ON_WM_LBUTTONDOWN D.ON_BN_CLICKED 24.创建命令自定义消息时,在源文件中的消息映射表中手动添加其消息映射宏是( B )A.ON_COMMAND B.ON_MESS

10、AGE C.ON_WM_LBUTTONDOWN D.ON_BN_CLICKED25.VC 中存在几种系统定义的消息分类,不同的前缀符号经常用于消息宏识别消息附属的分类,表示按钮控制消息( A ) A.BM B.CB C.DM D.EM 26.Windows 应用程序常用消息,产生单击鼠标左键的消息是( A ) A.WM_LBUTTONDOWN B.WM_RBUTTONUP C.WM_LBUTTONUP D.WM_RBUTTONDBLCLK 27.Windows 应用程序常用消息,按下一个非系统键时产生的消息是( B ) A.WM_RBUTTONUP B.WM_KEYDOWN C.WM_KEYU

11、P D.WM_POPDOWN28.继承具有( B ),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。 A.规律性 B.传递性 C.重复性 D.多样性29.由CreateWindow函数发出的消息是( B ) A.WM_CLOSE B.WM_CREAT C.WM_DESTROY D.WM_KEYDOWN30.由 PostQuitMessage 函数发出的消息( D ) A.WM_CLOSE B.WM_CREAT C.WM_DESTROY D.WM_QUIT 31. 关于类, 下列说法不正确的是( D ) A. 在类中,成员 的默认访问特性是私有的 B. 类实现了 数

12、据的封装 C. 类实质上是一种数据类型 D. 在类的定义中, 必须包含 private、 public、 protect 对应部分 32. 关于对象, 下列说法中不正确的是( C )A. 对象是类的一个实例 B. 任何一个对象只能属于一个类 C. 一个类只能有一个对象 D. 类与对象的关系和数据类型与变量间的关系类似 33.关于类的成员,下列正确的说法是( C ) A. 数据成员必须定义为私有的 B. 成员函数必须定义为公有的 C. 数据成员和成员函数都可以为 private public protect 属性之一 D. 公有成员 函数只能访问类的公有成员 , 私有成员 函数只能访问类的私有成

13、员 34.用于类中虚成员 函数说明的关键字是( A)A. virtual B. public C. protected D. private 35.关于友元下列说法错误的是( B) A. 类的友元函数可以访问类的所有成员 B. 类的友元函数只能访问类的私有成员 C. 类 A 是类 B 的友元类, 则 A 的所有成员 函数可访问 B 的任何成员 D. 类的友元函数不属于类 36. MFC 主要由( D) 组成 A. 基础类库、 全局函数 B. 基础类库、 全局变量、 宏 C. 基础类库、 宏 D. 基础类库、 全局变量、 全局函数、 宏 37.应用程序类 CWinApp 完成以下( A) 工作。

14、A. 程序的初始化、 运行和结束工作 B. 消息的发送和执行 C. 程序的框架、 窗口 D. 事件的发生与处理 38.程序对资源的调用主要是靠( C ) 来识别。 A. 资源名 称 B. 资源类型 C. 资源的 ID 号 D. 以上都可以 39.菜单项助记符(快捷键)前要用( B) 来引导。 A. % B. & C. # D. $ 40.下列不属于面向对象程序设计的 3 大机制的是( C ) A. 多态 B. 封装 C. 重载 D. 继承 41.包含一个消息的全部信息,是消息发送的格式的数据结构是( C ) A.POINT B.RECT C.MSG D.WINDCLASS 42.定义了

15、一个矩形区域及其左上角和右下角的坐标的数据结构是( B ) A.POINT B.RECT C.MSG D.WINDCLASS 43.下列消息不是窗口消息的是( A ) 。 A.WM_COMMAND B.WM_CHAR C.WM_MOUSEMOVE D. WM_PAINT 44.Afx为前缀的函数(数据库类函数和DDX函数除外)和变量中,表示无条件终止一个应用程序的是( A )A.AfxAbort B.AfxBeginThread C.AfxFormatString D.AfxMessageBox45.Afx为前缀的函数(数据库类函数和 DDX 函数除外)和变量中,表示显示一个 Windows

16、消息框是( D ) A.AfxAbort B.AfxBeginThread C.AfxFormatString D.AfxMessageBox46.在 MFC 中表示窗口类的是( D ) A.CDialog 类 B.CMenu 类 C.CView 类 D.CWnd 类 47.根据对话框的行为性质,对话框可以分为两类:( B ) A.对话框资源和对话框类 B.模式对话框和非模式对话框C.对话框资源和对话框模板 D.消息对话框和模式对话框48.一个视图对象能连接( D )文档对象,一个文档对象能连接( )视图对象。A.多个,多个 B.多个,一个 C.一个,一个 D.一个,多个 49.输出文本之前要

17、获取字体的信息,如字符高度等,以确定输出格式和下一行字符的位置,获取当前使用字体信息函数( C ) A.GetFontMetrics B.GetFontMetric C.GetTextMetrics D.GetTextMetric50.文本输出函数 TextOut(HDC hdc, int X, int Y, LPCTSTR lpstring, int nCount)的第四个参数 nCount 记录的是 ( A ) A.lpstring 中的字符串的字节数 B.字符串的长度 C.lpstring 的长度 D.lpstring 串的循环次数 51.虚拟码是一种与设备无关的键盘编码,其值存放在键盘

18、消息的( A )参数中。A.wParam B.Param C.VK D.VB 52.Alt 键与相关输入键的组合产生的消息是( A ) A.系统按键消息 B.非系统按键消息 C.组合消息 D.空消息 53.一个按键的组合产生了一个可以显示的字符时,就产生了一个(B )A.按键消息 B.字符消息 C.组合消息 D.空消息 54.资源描述文件中 ACCELERATORS 定义的是( D ) A.菜单 B.弹出式菜单 C.组合键 D.加速键资源 55.资源描述文件中 DIALOG 定义的是( C )A.菜单 B.弹出式菜单 C.对话框资源 D.加速键资源二、填空题1.使用MFCAppWizard 产

19、生的应用程序的类型主要包括:单文档应用程序、 多文档应用程序 和 基于对话框的应用程序 。2.VC+的工作区窗口包含3 个视图,分别是类视图、资源视图和文件视图 。3.MFC是Microsoft Foundation Class的缩写,MFC类库的基类是 CObject 。4. CDC 类叫做设备描述表类,英文全称是 Class Device Context 。5.在VC程序中通过类的 成员函数 来访问其内部的数据成员,成员函数是类与外部程序之间的接口。 6.采用函数SendMessage和PostMessage都会向窗体发送一个消息,但 SendMessage 在消息处理完成后返回,而 Po

20、stMessage 把消息放进消息队列就立即返回。7.若在绘制客户区时获取设备上下文调用的函数是GetDC,则释放它是调用的函数是 ReleaseDC 。8.若在绘制客户区时获取设备上下文调用的函数是BeginPaint,则释放它是调用的函数是 EndPaint 。9.Windows 应用程序的消息按处理方式主要包括 窗口消息 、 命令消息 和 控件通知消息 。10.窗口消息是指除 WM_COMMAND 之外的任何 WM_开头的消息,任何派生自 CWnd的类都可以接受窗口消息,任何派生自 CCmdTarget 的类都可以接受WM_COMMAND命令消息。11.控件通知消息Control Not

21、ification,以 WM_COMMAND 形式出现,由 控件 产生,通知其父窗口。12.MFC中,所有能够接受消息的类都继承于 CCmdTarget 类,这些类的共同特征是含有 DECLARE_MESSAGE_MAP、BEGIN_MESSAGE_MAP、END_MESSAGE_MAP 三个宏。这三个宏组成一个庞大的消息映射网。13.在创建窗口、显示窗口、更新窗口后,需要编写一个消息循环。消息循环处理中, GetMessage 函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便从消息队列中取出一条消息,把它拷贝到MSG 结构变量中,同时该函数返回TRU

22、E。得到消息MSG后,TranslateMessage函数负责将虚拟键消息转换为字符消息。PostMessage函数将消息放入与创建窗口的线程相关联的消息队列后立即返回。 14.Windows 窗口中,菜单分为 下拉式菜单 和 弹出式菜单 两种。15.数据更新时,可调用InvalidateRect函数使客户区全部或者部分无效,出发 Windows WM_PAINT 消息,并调用 OnDraw 消息处理函数重绘客户区或刷新窗口。 16.封装画刷的GDI类是 CBrush ,封装画笔的GDI类是 CPen ,封装字体的GDI类是 CFront ,封装位图的GDI类是 CBitmap 。17.在Vi

23、sual C+中,创建控件有两种方法:一种是 静态创建 , 另一种是动态创建。18.按钮控件对应CButton类,静态文本控件对应CStatic类,单选和复选按钮对应 CCheckListBox类。19.消息处理函数OnLButtonDown响应左键按下消息。20.当用户按下键盘上的某个键时,键盘的接口会产生与该按键相对应的扫描码,它存在设备相关性。因此为了实现与设备无关,Windows 应用程序的编写过程中直接使用 虚拟码 对键盘进行操作。虚拟码是一种与设备无关的键盘编码,它的值存放在键盘消息的 wParam 参数中。21.UpdateData 函数可以用在对话框中更新数据,将控件数据保存到

24、数据成员应带参数 TRUE ,反之应带 FALSE 。22.类的定义一般分为 声明 和 定义 两部分,其中前一部分告诉使用者“干什么” ,而后一部分 告诉使用者“怎么干” 23.菜单类对象和位图类对象分别通过 LoadMenu 、 LoadBitmap函数加载菜单资源和位图资源。 24.面向对象程序设计的 3 大机制_封装_、 _继承_、多态。25.友元可以是_函数_, 也可以是_类_。 26. _构造函数_是在对象被创建时自动执行, 对象消失时自动指向的成员 函数称为_析构函数_。 27. B 类中包含一个 A 类的成员 a,则生成 B 类的对象时构造函数的调用顺序为 先 A 后 B , 删

25、 除 B 类的对象时析构函数的调用顺序为先 B后 A 。 28. 消息 是事件发生时所产生的信息。 29. Windows 下的对话框分为模态 对话框和非模态 对话框。 30. 按钮控件分为普通、单选 和 复选 三种。 三、 判断题1. 类实现了数据的封装。 ( 对) 2. 当使用指针变量访问类的成员,须使指针变量指向该类的某个对象( 对) 3. 友元函数是类的成员函数。 ( 错) 4. 运算符重载是一种特殊的函数重载。 ( 对) 5. 析构函数没有返回值类型。 ( 对) 6. 调用对话框类的成员函数 DoModal() 显示模态对话框。 ( 对) 7. 类的消息映射不可以被继承。 ( 错)

26、8. 模态对话框允许用户 切换到本应用程序的其他窗口 。 ( 错) 9. 当用户在键盘上按下一个键时, 只有一个窗口能接收到该消息。( 对) 10. 接收鼠标消息的窗口不一定是活动窗口 。 ( 错) 四、简答题1Windows程序的入口点函数是什么?它主要完成什么功能? 答:Windows程序的入口点函数是 WinMain(),完成的主要功能是创建、注册和显示窗口,以及启动消息循环完成消息驱动。 2创建一个窗口要经过几个步骤?答: 创建一个窗口要经过 5个步骤:设计窗口类型、注册窗口类型、创建窗口、显示窗口和消息循环。3MFC AppWizard 为 HelloWorld 单文档应用程序生成了

27、哪几个类? 这些类的功能分别是什么? 它们分别由什么文件管理? 答:(1)CHelloWorldApp: 应用程序类, 其主要用于程序的初始化及结束处理, 类的声明文件是 HelloWorld.h, 类的实现文件是 HelloWorld.cpp; (2)CHelloWorldDoc:文档类,其主要用于应用程序中数据的存储、修改与管理,类的声明文件是 HelloWorldDoc.h,类的实现文件是 HelloWorldDoc.cpp;(3)CHelloWorldView :视图类,其主要用于人机交互并显示数据,类的声明文件是 HelloWorldView.h, 类的实现文件是 HelloWorl

28、dView.cpp; (4)CMainFrame: 主窗口类, 其主要用于主窗口的创建、 显示及消息的派发。 类的声明文件是 MainFrm.h, 类的实现文件是 MainFrm.cpp。4如何使静态文本控件能够响应鼠标单击消息?答:要经过三个步骤: (1)改变静态文本控件的默认ID号IDC_STATIC,如设置为IDC_ABC,否则在类向导中不显示其ID号。(2)在它的属性上选中 Notify选项,使控件向其父窗口发送鼠标事件。(3)为控件添加BN_CLICKED消息处理函数。四、 程序阅读题1. 阅读下面程序,写出运行结果#include "iostream.h" class A public: A() cout<<" A 的构造函数" <<endl;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论