最新VC-MFC试题复习题及答案.doc





《最新VC-MFC试题复习题及答案.doc》由会员分享,可在线阅读,更多相关《最新VC-MFC试题复习题及答案.doc(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品资料VC-MFC试题复习题及答案.VC程序设计 试卷1一、单项选择题(每小题1分,共20分)1、假定MyClass为一个类,则执行“” MyClass a3,*p2;”语句时,自动调用该类构造函数的次数为( B )A、2 B、3 C、4 D、52、对于类中定义的成员,其隐含访问权限为( B )A、protected B、private C、public D、 static3、一个类的友元函数或友元类能够通过成员操作符访问该类的( B )A、私有成员 B、所有成员 C、公用成员 D、保护成员4、下面说法正确的是( A )A、构造函数可以重载,析构函数不能重载。B、构造函数不能重载,析构函数可
2、以重载。C、构造函数可以重载,析构函数也可以重载。D、构造函数和析构函数都不可以重载。5、下列语句的运行结果为( D )#include srtuct COMPLEXint x;int y; cNum2=1,3,2,7;void main()cout cNum0.y*cNum1 xendl;A、3 B、2 C、21 D、66、类AB的缺省构造函数和析构函数是( A )A、AB( )和AB( ) B、AB(int)和AB( ) C、AB( )和AB(delete ) D、AB( )和intAB( )7、在C+中,若对函数未加说明,则函数的隐含类型是( A )A、int B、double C、vo
3、id D、char8、已知类A是类B的友元,类B是类C的友元,则( D )A、类A一定是类C的友元B、类C一定是类A的友元C、类C的成员函数可以访问类B的对象的任何成员D、类A的成员函数可以访问类B的对象的任何成员9、下列说法中正确的是( B ) A、类定义中只能说明函数成员的函数头,不能定义函数体 B、类中的函数成员可以在类体中定义,也可以在类体之外定义 C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中 D、在类体之外定义的函数成员不能操作该类的私有数据成员10、以下不属于成员函数的是( B )A、静态成员函数 B、友元函数C、构造函数 D、析构函数11、对于消息队列的描述正确的
4、是( D )A、在Windows中只有一个消息系统,即系统消息队列。消息队列是一个系统定义的数据结构,用于临时存储消息。B、系统可从消息队列将信息直接发给窗口。另外,每个正在Windows下运行的应用程序都有自己的消息队列。C、系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。应用程序的消息对列中存储了程序的所有窗口的全部消息。D、以上都正确12、一个视图对象能连接( A )文档对象,一个文档对象能连接( )视图对象。A、一个,多个 B、多个,一个 C、一个,一个 D、多个,多个13、MFC类库中的类按层次关系可知,CStatic 的直接父类为( B )A、CObje
5、ct B、CWnd C、CcmdTarget D、CFrameWnd14、可以利用控件的( C )属性和Tab键顺序来为控件分组。A、ID B、Tab stop C、Group D、Caption15、根据对话框的行为性质,对话框可以分为两类:( B )A、对话框资源和对话框类 B、模式对话框和非模式对话框C、对话框资源和对话框模板 D、消息对话框和模式对话框16、以下控件中,( C )没有Caption属性。 A、按钮 B、群组框 C、编辑控件 D、静态控件17、菜单项助记符前用( B )引导。 A、% B、& C、# D、$18、更新菜单状态的消息是( C )。 A、WM_COMMAND
6、B、UPDATE C、ON_UPDATE_COMMAND_UI D、INVALIDATE19、关于工具栏、菜单和加速键的关系,正确的说法是( C )。 A、工具按钮与菜单必须一一对应 B、工具按钮与加速键一一对应 C、工具按钮不必与菜单一一对应 D、菜单与加速键一一对应20、使用GetWindowDC( )和GetDC( )获取的设备上下文在退出时,必须调用( A )释放设备上下文。 A、ReleaseDC( ) B、delete( ) C、DeleteDC( ) D、Detach( )二、填空题(每空1分,共25分)1、VC+开发环境中,int型数据占4个字节,short int占_2_个字
7、节,long int 占_4_个字节。2、若for循环的“头”为“for(int i=1;i10;i+)”,并且在循环体中不会修改i的值,则循环体将被重复执行_9_次后结束。3、两个函数的函数名_相同_,但参数的个数或对应参数的类型_不同_时,则称为重载函数。4、若ch为char型变量,n为int型变量,则下列语句 ch = a; n = 3; ch = ch + n; cout” ch = ” ch;执行的结果是_ch=d_。5、C+中函数的参数传递一种是按值传递,另一种是地址传递或_引用_传递。6、C+运行时的多态性通过_虚函数_来实现,而编译时的多态性通过_函数重载_来实现。7 只读成员
8、函数用_const_关键字标识,内联成员函数用_inline_关键字标识。8、 class test public: static int x;test t1,t2; t1.x = 25;程序运行到这里时,t2.x的值为_25_。9、所有的文档类都派生于_CDocument_ _,所有的视图类都派生于:_ CView _。10、为解决多继承中因公共基类而产生的二义性问题,C+语言提供了_虚基类_机制。将公共基类声明为它以后,它在派生类中只产生一个实例。11、在代码中,使用CWnd:_UpdateData_函数可实现控件与其成员变量之间的数据的传输。12、列表框ClistBox类的成员函数_Ad
9、dString_用来向列表框增加列表项,成员函数_ResetContent_用来清除列表项所有项目。13、:_序列化_ 是指将对象写入永久存储介质或者将对象从永久存储介质中读出的过程。14、Windows程序中的消息有窗口消息、命令消息和_控件通知_消息三种类型。15、MFC中的集合类包括 数组 、 列表 (链表) 、 映射(顺序可变) 。16、在进行绘图时, 画刷 用于指定图形的填充样式, _画笔_用于指定图形的边框样式。三 选择填空题(每空1分,共15分)1、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行 A 的构造函数,接着执行 C 的构造函数,
10、然后执行_ _B_的构造函数,最后才执行 D 的构造函数。A、基类的对象成员 B、派生类的对象成员 C、基类 D、派生类2、 5 B 代表窗口客户区的显示设备上下文, 6C 代表整个窗口的显示设备上下文。A、CPaintDC B、CClientDC C、CWindowDC D、CMetaFileDC3、消息循环的处理过程如下: A 函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后, B 把来自键盘的命令翻译成WM_XXX消息命令形式。 E 函数通知Windows把每个消息
11、分发给相应的窗口函数。应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。A、GetMessage( ) B、translateMessage( ) C、PostMessage( ) D、SendMessage( ) E、DispatchMessage( )4、常用的CButton类的成员函数中: A 获得一个按钮控件的选中、选择和 聚焦状态; D 得到一个按钮的选中状态; C 设置一个按钮的选中状态。 A、GetState( ) B、SetState( ) C、SetCheck( ) D、GetCheck( ) E、GetButtonSt
12、yle( ) 5、滚动条类CScrollBar的成员函数规定了滚动条的操作。设置滚动条的范围使用 C 函数,设置滚动块的位置使用 E 函数,获取滚动块的当前位置使用 F 函数。A、SetPos B、SetRange C、SetScrollRange D、GetPosE、SetScrollPos F、GetScrollPos G、 GetScrollRange四 写出下列程序的运行结果(每小题5分,共15分)1、 .#include class A int *a; public: A(int x) a=new int(x); cout*a=*aendl; delete a; ; void mai
13、n() A x(3), *p; p=new A (5); delete p; *a=3*a=52、class testprivate: int num;public:test();int GetNum() return num;test();;test:test() num=0; test:test() coutDestructor is activeendl; void main() test x3;coutExiting mainendl;Exiting mainDestructor is activeDestructor is activeDestructor is active3、 #
14、includeclass A public:virtual void fun() coutIm class Aendl; ;class B: public Apublic:void fun() coutIm class Bendl; ;class C: public Bpublic:void fun() coutIm class Cfun();B b; pA=&b;pA-fun();C c;a=c;a.fun();A &aRef=c;aRef.fun();Im class AIm class BIm class AIm class C五、完成程序题(本大题共3小题,每空2分,共12分)。根据题
15、目要求,完成程序填空。 1、在下面程序的横线处填上适当字句,使该程序执行结果为6。 #include class base int X; public: _innit(int a)X=a;_1_/为X置值 _int GetNum()return X;_2_/取X值 ; void main() base test; test.init(6); couttest.GetNum();2、一个类的头文件如下所示,主程序中产生对象T,且T.num=10,并使用Print()函数输出这个对象的值。class testprivate:int num;public: test(int);void Print(
16、);test:test(int n) num=n; void test:Print() coutnumendl; #includevoid main() _3_test T(10)_; _4_T.print()_;3、在下面横线处填上适当字句,完成类中成员函数的定义。class A int * a;public: A(int x=0) a=_ 5_ new int(x)_;/用x初始化a所指向的动态对象 A()_ 6 delete a;_ _;/释放动态存储空间;六、程序设计题(1题4 分,2题9 分,共13分)1、简单的计算程序界面如下图所示,操作数1对应编辑框控件的ID为 IDC_EDIT
17、1,对应值类型的成员变量m_op1(int);操作数2对应编辑框控件的ID为IDC_EDIT2,对应值类型的成员变量m_op2(int);计算结果对应的编辑框控件的ID 为IDC_EDIT3,对应值类型的成员变量m_result(int)。 假设输入的数为整数,加法按钮的功能是将两操作数相加,并将结果在对应的编辑框IDC_EDIT3显示出来。写出加法按钮对应的代码。 void CExDlg:OnButton1() UpdateDate(TRUE); m_result = m_op1 + m_op2; UpdateDate(FALSE); void CExDlg:OnButton2() Upda
18、teDate(TRUE); m_result = m_op1 - m_op2; UpdateDate(FALSE); 2、为学员信息设计一个类CStudent,包含:学号、姓名、出生日期、家庭住址、班级,并使该类可以实现串行化。请写出可以实现要求的CStudent.h和CStudent.cpp文件的内容/CStudent.hclass CStudent :public CObject 1分public:CString Num;CString Name;CTime Birth;CString Address;CString Grade; 2分 DECLARE_SERIAL(CStudent) /
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 最新 VC MFC 试题 复习题 答案

限制150内