面向对象程序设计C++复习题
更新时间:2023-10-06 03:50:01 阅读量: 综合文库 文档下载
面向对象程序设计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()
1
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(\对话框\提问\,下面哪种说法是正确的?( 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()函数中
2
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. 窗口生成后调用
3
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的功能是获取控件的 标题文本 。
4
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宏在类声明之后的地方定义该类支持的消息映
5
正在阅读:
面向对象程序设计C++复习题10-06
有趣的年夜饭作文700字06-17
一名外军特种兵眼中的国产03式步枪08-21
电磁炉10-03
六级高频词组分类归纳06-21
九下第四课《与世界共发展》整理与复习03-30
七6班第二学期工作计划doc06-20
福建省机动车驾驶培训学时管理系统08-11
班级管理心得11-14
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- C++
- 复习题
- 程序设计
- 面向
- 对象
- 9.金属在塑性变形中的组织结构与性能变化
- OBD故障码对照表
- 山东省2012年专升本大学语文真题详解
- 《缔造完美教室》主题报告--朱永新 - 图文
- 三类人员安全B证考试题库
- 三类人员考试模拟试题
- 发展心理学新进程第五讲(应科) - 图文
- 鹤煤组干(2011)18号-关于董正亮时奇巍杨敏等898名同志具备相应高中初级专业技术职务任职资格的通知 - 图文
- 2017年安全三类人员B类考试模拟试题及参考答案 - 图文
- 医学伦理学与卫生法学重点
- 施工技术方案编制规范与分类剖析
- 梁板柱混凝土施工方案
- 输变电工程施工安全口袋书
- 类和对象练习题
- 浅析基层纪检监察信访工作的特点与对策
- 高考物理一轮复习五大专题例题精讲
- 2016年镍冶炼厂全员安全培训公共题库
- 操作系统第1阶段测试题总结
- 预算审计重点、策略及工作流程
- 软件工程复习及考试要点整理