VC++程序设计试题(A)
一、单项选择(每题1.5分,10小题,共15分) 1. 关于类,下列说法不正确的是(D ) A.在类中,成员的默认访问特性是私有的 B.类实现了数据的封装 C.类实质上是一种数据类型
D.在类的定义中,必须包含private、public、protect对应部分 2、关于对象,下列说法中不正确的是(C )
A.对象是类的一个实例 B.任何一个对象只能属于一个类 C.一个类只能有一个对象
D.类与对象的关系和数据类型与变量间的关系类似 3、关于类的成员,下列正确的说法是(C )
A.数据成员必须定义为私有的 B.成员函数必须定义为公有的 C.数据成员和成员函数都可以为private public protect属性之一
D.公有成员函数只能访问类的公有成员,私有成员函数只能访问类的私有成员
4、用于类中虚成员函数说明的关键字是( A)
A. virtual B. public C. protected D. private 5、关于友元下列说法错误的是( B) A.类的友元函数可以访问类的所有成员 B.类的友元函数只能访问类的私有成员
C.类A是类B的友元类,则A的所有成员函数可访问B的任何成员 D.类的友元函数不属于类 6、MFC主要由(D)组成
A. 基础类库、全局函数 B. 基础类库、全局变量、宏 C.基础类库、宏 D.基础类库、全局变量、全局函数、宏 7、应用程序类CWinApp完成以下(A)工作。
A.程序的初始化、运行和结束工作 B.消息的发送和执行 C.程序的框架、窗口 D.事件的发生与处理 8、程序对资源的调用主要是靠(C )来识别。
A.资源名称 B.资源类型 C.资源的ID号 D.以上都可以 9、菜单项助记符(快捷键)前要用(B)来引导。 A. % B. & C. # D. $
共4页/第 1 页
10、下列不属于面向对象程序设计的3大机制的是(C ) A.多态 B.封装 C.重载 D.继承 二、判断题(每题1分,共10分) 1.类实现了数据的封装。 (对)
2.当使用指针变量访问类的成员须使指针变量指向该类的某个对象(对)
3.友元函数是类的成员函数。 (错)
4.运算符重载是一种特殊的函数重载。 (对) 5.析构函数没有返回值类型。 (对)
6.调用对话框类的成员函数DoModal()显示模态对话框。(对) 7.类的消息映射不可以被继承。 (错)
8.模态对话框允许用户切换到本应用程序的其他窗口。(错)
9.当用户在键盘上按下一个键时,只有一个窗口能接收到该消息。(对)
10.接收鼠标消息的窗口不一定是活动窗口。 (错) 三、填空题(每空1分,共15分)
1.面向对象程序设计的3大机制__封装_____、__继承_____、__多态_。
2.友元可以是___函数___,也可以是___类____。 3. ___构造函数____是在对象被创建时自动执行,对象消失时自动指向的成员函数称为__析构函数_____。
4.B类中包含一个A类的成员a,则生成B类的对象时构造函数的调用顺序为(先A后B),删除B类的对象时析构函数的调用顺序为(先B后A)。
5. (消息)是事件发生时所产生的信息。
6.Windows下的对话框分为(模态)对话框和(非模态)对话框。 7.按钮控件分为(普通)、(单选)和(复选)三种。 四、读程题(4小题,共30分)
1.下面程序运行的结果为_____ A的构造函数 A的构造函数 __(7分)
#include “iostream.h” class A
{ public:
共4页/第 2 页
A()
{ cout<<”A的构造函数”< void main() { A b[2],*p[3]; } 2.下面程序运行的结果为_____ A1的构造函数 A2的构造函数 C的构造函数 __(7分) #include “iostream.h” class A1 { public: A1(int i) { cout<<”A1的构造函数!”< class A2 { public: A2(int i) { cout<<”A2的构造函数!”< class C: public A1,public A2 { public: C(int i,int j):A2(j),A1(i) { cout<<”C的构造函数!”< void main() { C c(1,2); } 3.下面程序运行的结果为_______(8分)#include \template T findmax(T x[],int n) { int i; T m=x[0]; for(i=1;i<=n-1;i++) } } 共4页/第 3 页 if(m return m; } void main() { int array1[]={100,20,300,40}; double array2[]={1.2,3.4,5.6,0.9,7.8}; char array3[]={'a','b','g','z','x','y'}; cout< { public: virtual void disp() { cout<<\}; class Derive1:public Base { public: void disp() {cout<<\}; class Derive2:public Base { public: void disp(){cout<<\}; void disp(Base *p) { p->disp();} void main() { Base b; Derive1 d1; Derive2 d2; disp(&b); disp(&d1); disp(&d2); } 共4页/第 4 页 五、名词解释(4小题,共10分) 1. 抽象类 2.模板 3.事件和消息 4.MFC 六、编程题(2小题,共20分) 1.画直线:实现鼠标在视图上按下和抬起捕获到两个点,根据这两个点画出一条直线。(写出具体的步骤,不必写代码) 2.建立一个单文档应用程序,实现以下两个功能:a.在视图的(50,50)位置处显示静态文本“这是我的第N个程序。”;b.当双击鼠标左键后,弹出一个消息对话框;对话框里显示“VC++考试!”。标题为“问候”(需要写出实现步骤及代码) VC++试题答案A 一、 单项选择 1.D 2.C 3.C 4.A 5.B 6.D 7.A 8.C 9.B 10. C 二、判断题 1.对2.对3.错4.对5.对6.对7.错8.错9.对10.错 三、填空题 1.封装、继承、多态 2.函数、类 3.构造函数、析构函数 4. 先A后B、先B后A 5. 消息 6. 模态、非模态 7.普通、单选、复选 四、读程题 1. A的构造函数 A的构造函数 2. A1的构造函数 A2的构造函数 C的构造函数 3. 300 7.8 z 4. class base class Derive1 共4页/第 5 页 class Derive2 五、名词解释 1、抽象类:声明了纯虚函数的类称为抽象类,抽象类只能用做基类来派生新类,而不能用做创建对象; 2、模板:用一种完全通用的方法来设计函数或类,而不必预先说明将被使用的每一个对象的类型,利用模板功能可以构造相关的函数或类的系列; 3、事件和消息:在Windows操作系统中,无论是系统产生的动作,或是用户在运行应用程序中发出的动作,都称为事件;消息用于描述某个事件发生的信息; 4、MFC(微软基础类库):是微软公司推出用于创造Windows应用程序的一套C++类库。 六、编程题 1. 建立一个单文档应用程序――>定义一个新类实现画线功能――>在视图类中定义两个公有变量,记录线段的起点和终点――>在视图类中为WM_LBUTTONDOWN添加消息映射函数,实现捕获起点坐标――>为WM_MOUSEMOVE添加消息映射函数,实现捕获终点坐标――>为WM_LBUTTONUP添加消息映射函数,实现画线功能 2. 建立一个单文档应用程序――>在视图类中的OnDraw(CDC* pDC)函数中添加如下代码:pDC->TextOut(50,50,\这是我的第N个程序。”\在视图类中为WM_LBUTTONBLCLK添加消息映射函数,在函数里面添加如下代码:MessageBox(\考试!\问候\ 共4页/第 6 页 百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库VC++考试题A及答案在线全文阅读。
相关推荐: