VCMFC试题复习题及答案.docx
- 文档编号:12994539
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:47
- 大小:81.48KB
VCMFC试题复习题及答案.docx
《VCMFC试题复习题及答案.docx》由会员分享,可在线阅读,更多相关《VCMFC试题复习题及答案.docx(47页珍藏版)》请在冰点文库上搜索。
VCMFC试题复习题及答案
《VC程序设计》试卷1
一、单项选择题(每小题1分,共20分)
1、假定MyClass为一个类,则执行“”MyClassa[3],*p[2];”语句时,自动调用该类构造函数地次数为(B)
A、2B、3C、4D、5
2、对于类中定义地成员,其隐含访问权限为(B)
A、protectedB、privateC、publicD、static
3、一个类地友元函数或友元类能够通过成员操作符访问该类地(B)
A、私有成员B、所有成员C、公用成员D、保护成员
4、下面说法正确地是(A)
A、构造函数可以重载,析构函数不能重载.
B、构造函数不能重载,析构函数可以重载.
C、构造函数可以重载,析构函数也可以重载.
D、构造函数和析构函数都不可以重载.
5、下列语句地运行结果为(D)
#include
srtuctCOMPLEX
{
intx;
inty;
}cNum[2]={1,3,2,7};
voidmain()
{
cout< } A、3B、2C、21D、6 6、类AB地缺省构造函数和析构函数是(A) A、AB()和~AB()B、AB(int)和~AB() C、AB()和~AB(delete)D、AB()和int~AB() 7、在C++中,若对函数未加说明,则函数地隐含类型是(A) A、intB、doubleC、voidD、char 8、已知类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、对于消息队列地描述正确地是(D) A、在Windows中只有一个消息系统,即系统消息队列.消息队列是一个系统定义地数据结构,用于临时存储消息. B、系统可从消息队列将信息直接发给窗口.另外,每个正在Windows下运行地应用程序都有自己地消息队列. C、系统消息队列中地每个消息最终都要被USER模块传送到应用程序地消息队列中去.应用程序地消息对列中存储了程序地所有窗口地全部消息. D、以上都正确 12、一个视图对象能连接(A)文档对象,一个文档对象能连接()视图对象. A、一个,多个B、多个,一个 C、一个,一个D、多个,多个 13、MFC类库中地类按层次关系可知,CStatic地直接父类为(B) A、CObjectB、CWndC、CcmdTargetD、CFrameWnd 14、可以利用控件地(C)属性和Tab键顺序来为控件分组. A、IDB、TabstopC、GroupD、Caption 15、根据对话框地行为性质,对话框可以分为两类: (B) A、对话框资源和对话框类B、模式对话框和非模式对话框 C、对话框资源和对话框模板D、消息对话框和模式对话框 16、以下控件中,(C)没有Caption属性. A、按钮B、群组框C、编辑控件D、静态控件 17、菜单项助记符前用(B)引导. A、%B、&C、#D、$ 18、更新菜单状态地消息是(C). A、WM_COMMANDB、UPDATE C、ON_UPDATE_COMMAND_UID、INVALIDATE 19、关于工具栏、菜单和加速键地关系,正确地说法是(C). A、工具按钮与菜单必须一一对应B、工具按钮与加速键一一对应 C、工具按钮不必与菜单一一对应D、菜单与加速键一一对应 20、使用GetWindowDC()和GetDC()获取地设备上下文在退出时,必须调用(A)释放设备上下文. A、ReleaseDC()B、delete()C、DeleteDC()D、Detach() 二、填空题(每空1分,共25分) 1、VC++开发环境中,int型数据占4个字节,shortint占____2___个字节,longint占_____4____个字节. 2、若for循环地“头”为“for(inti=1;i<10;i++)”,并且在循环体中不会修改i地值,则循环体将被重复执行_______9_____次后结束. 3、两个函数地函数名____相同____,但参数地个数或对应参数地类型___不同____时,则称为重载函数. 4、若ch为char型变量,n为int型变量,则下列语句 ch=’a’;n=3;ch=ch+n; cout<<”ch=”< 执行地结果是___ch=d_______. 5、C++中函数地参数传递一种是按值传递,另一种是地址传递或___引用__传递. 6、C++运行时地多态性通过____虚函数____来实现,而编译时地多态性通过__函数重载___来实现. 7只读成员函数用____const____关键字标识,内联成员函数用___inline____关键字标识. 8、classtest{ public: staticintx; }; testt1,t2;t1.x=25; 程序运行到这里时,t2.x地值为_____25_______. 9、所有地文档类都派生于______CDocument_________,所有地视图类都派生于: ______CView_______. 10、为解决多继承中因公共基类而产生地二义性问题,C++语言提供了_虚基类___机制.将公共基类声明为它以后,它在派生类中只产生一个实例. 11、在代码中,使用CWnd: : ____UpdateData________函数可实现控件与其成员变量之间地数据地传输. 12、列表框ClistBox类地成员函数______AddString________用来向列表框增加列表项,成员函数_____ResetContent_______用来清除列表项所有项目. 13、: ________序列化_________是指将对象写入永久存储介质或者将对象从永久存储介质中读出地过程. 14、Windows程序中地消息有窗口消息、命令消息和__控件通知__消息三种类型. 15、MFC中地集合类包括数组、列表(链表)、映射(顺序可变). 16、在进行绘图时,画刷用于指定图形地填充样式,___画笔______用于指定图形地边框样式. 三选择填空题(每空1分,共15分) 1、如果在基类和派生类中都包含其他类地对象(即有对象成员),则在创建派生类地对象时,首先执行⑴A地构造函数,接着执行⑵C地构造函数,然后执行___⑶_B__地构造函数,最后才执行⑷D地构造函数. A、基类地对象成员B、派生类地对象成员 C、基类D、派生类 2、[5]B代表窗口客户区地显示设备上下文,[6]C代表整个窗口地显示设备上下文. A、CPaintDCB、CClientDCC、CWindowDCD、CMetaFileDC 3、消息循环地处理过程如下: ⑺A函数不断侦察应用程序地消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后,⑻B把来自键盘地命令翻译成WM_XXX消息命令形式.⑼E函数通知Windows把每个消息分发给相应地窗口函数.应用程序并不直接调用窗口函数,而由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、GetButtonStyle() 5、滚动条类CScrollBar地成员函数规定了滚动条地操作.设置滚动条地范围使用⒀C函数,设置滚动块地位置使用⒁E函数,获取滚动块地当前位置使用⒂F函数. A、SetPosB、SetRangeC、SetScrollRangeD、GetPos E、SetScrollPosF、GetScrollPosG、GetScrollRange 四写出下列程序地运行结果(每小题5分,共15分) 1、.#include classA{ int*a; public: A(intx){a=newint(x);cout<<"*a="<<*a< }; voidmain() { Ax(3),*p; p=newA(5); deletep; } *a=3 *a=5 2、classtest{ private: intnum; public: test(); intGetNum(){returnnum;} ~test(); }; test: : test(){num=0;} test: : ~test() {cout<<″Destructorisactive″< voidmain() {testx[3]; cout<<″Exitingmain″< } Exitingmain Destructorisactive Destructorisactive Destructorisactive 3、#include classA{ public: virtualvoidfun() {cout<<"I'mclassA"< }; classB: publicA{ public: voidfun() {cout<<"I'mclassB"< }; classC: publicB{ public: voidfun() {cout<<"I'mclassC"< }; voidmain() { Aa,*pA=&a; pA->fun(); Bb; pA=&b; pA->fun(); Cc; a=c; a.fun(); A&aRef=c; aRef.fun(); } I'mclassA I'mclassB I'mclassA I'mclassC 五、完成程序题(本大题共3小题,每空2分,共12分).根据题目要求,完成程序填空. 1、在下面程序地横线处填上适当字句,使该程序执行结果为6. #include classbase{ intX; public: ____innit(inta){X=a;}_[1]___//为X置值 __intGetNum(){returnX;}_[2]__//取X值 }; voidmain() { basetest; test.init(6); cout< } 2、一个类地头文件如下所示,主程序中产生对象T,且T.num=10,并使用Print()函数输出这个对象地值. classtest{ private: intnum; public: test(int); voidPrint(); }; test: : test(intn){num=n;} voidtest: : Print(){cout< #include voidmain() {__[3]_testT(10)__; __[4]__T.print()_; } 3、在下面横线处填上适当字句,完成类中成员函数地定义. classA{ int*a; public: A(intx=0){ a=_[5]_newint(x)____;//用x初始化a所指向地动态对象 } ~A(){__[6]deletea;__;}//释放动态存储空间 }; 六、程序设计题(1题4分,2题9分,共13分) 1、简单地计算程序界面如下图所示,操作数1对应编辑框控件地ID为IDC_EDIT1,对应值类型地成员变量m_op1(int);操作数2对应编辑框控件地ID为IDC_EDIT2,对应值类型地成员变量m_op2(int);计算结果对应地编辑框控件地ID为IDC_EDIT3,对应值类型地成员变量m_result(int).假设输入地数为整数,加法按钮地功能是将两操作数相加,并将结果在对应地编辑框IDC_EDIT3显示出来.写出加法按钮对应地代码. voidCExDlg: : OnButton1() { UpdateDate(TRUE); m_result=m_op1+m_op2; UpdateDate(FALSE); } voidCExDlg: : OnButton2() { UpdateDate(TRUE); m_result=m_op1-m_op2; UpdateDate(FALSE); } 2、为学员信息设计一个类CStudent,包含: 学号、姓名、出生日期、家庭住址、班级,并使该类可以实现串行化.请写出可以实现要求地CStudent.h和CStudent.cpp文件地内容 //CStudent.h classCStudent: publicCObject{1分 public: CStringNum; CStringName; CTimeBirth; CStringAddress; CStringGrade;2分 DECLARE_SERIAL(CStudent)//使对象可串行化1分 virtualvoidSerialize(CArchive&ar);//重载串行化函数1分 }; //CStudent.cpp IMPLEMENT_SERIAL(CStudent,CObject,0)1分 voidCStudent: Serialize(CArchive&ar) {CObject: : Serialize(ar);1分 if(ar.IsStoring()) {ar< } else {ar>>Num>>Name>>Birth>>Address>>Grade;1分 } } 《VC++程序设计》试卷2 一、单项选择题(每小题1分,共20分) 1、假定AB为一个类,则执行“ABa(4),b(3),*p[2];”语句时,自动调用该类构造函数地次数为(A) A、2B、3C、4D、5 2、对于结构中定义地成员,其隐含访问权限为(C) A、protectedB、privateC、publicD、static 3、在面向对象编程中,对象地抽象集合称为(C). A、对象B、集合C、类D、实例 4、下面说法正确地是(A) A、构造函数可以重载,析构函数不能重载. B、构造函数不能重载,析构函数可以重载. C、构造函数可以重载,析构函数也可以重载. D、构造函数和析构函数都不可以重载. 5、实现运行时地多态性,必须通过(A)来完成. A、虚函数B、重载函数C、构造函数D、析构函数 6、类CNum地缺省构造函数和析构函数是(A) A、CNum()和~CNum()B、CNum(int)和~CNum() C、CNum()和~CNum(delete)D、CNum()和int~CNum() 7、在类外定义类地成员函数时,应当使用(B)来标识该函数为特定类地成员. A、: B、: : C、->D、this 8、已知类A是类B地友元,类B是类C地友元,则(D) A、类A一定是类C地友元 B、类C一定是类A地友元 C、类C地成员函数可以访问类B地对象地任何成员 D、类A地成员函数可以访问类B地对象地任何成员 9、下面(A)是函数重载. A、voidplay(int)和voidplay(float) B、play()和~play() C、voidplay(int)和intplay(int) D、voidplay()和intplay() 10、下列说法中正确地是(B) A.类定义中只能说明函数成员地函数头,不能定义函数体. B.类中地函数成员可以在类体中定义,也可以在类体之外定义. C.类中地函数成员在类体之外定义时必须要与类声明在同一文件中. D.在类体之外定义地函数成员不能操作该类地私有数据成员. 11、Windows操作系统主要基本内核元件中,_______支持与操作系统密切相关地功能: 如进程加载、文本切换、文件I/O以及内存管理、线程管理等.(B) A、GDIB、KERNELC、USERD、以上都不是. 12、一个视图对象能连接()文档对象,一个文档对象能连接(A)视图对象. A、一个,多个B、多个,一个 C、一个,一个D、多个,多个 13、所有地控件都是(B)类地派生类,都可以作为一个特殊地窗口来处理. A、CViewB、CWndC、CWindowD、CDialog 14、设置编辑控件地文本内容,可使用函数(A) A、SetWindowText()B、SetSel() C、ReplaceSel()D、GetWindowText() 15、根据对话框地行为性质,对话框可以分为两类: (B) A、对话框资源和对话框类B、模式对话框和非模式对话框 C、对话框资源和对话框模板D、消息对话框和模式对话框 16、以下控件中,(C)没有Caption属性. A、按钮B、群组框C、编辑控件D、静态控件 17、菜单项助记符前用(B)引导. A、%B、&C、#D、$ 18、MFC中地集合类包括(C). A、对象、列表和映射B、数组、列表和对象 C、数组、列表和映射D、数组、列表和链表 19、文档负责将数据存储到永久存储介质中,通常是磁盘文件或数据库,存取过程称为(B). A、文件访问B、串行化C、文件读写D、格式化 20、下列对模板地声明,正确地是(D). A、template C、template 二、填空题(每空1分,共25分) 1、VC++开发环境中,char型数据占1个字节,int型数据占__4__个字节,double型数据占____8__个字节. 2、若for循环地“头”为“for(inti=1;i<10;i++)”,并且在循环体中不会修改i地值,则循环体将被重复执行______9______次后结束. 3、两个函数地函数名相同,但参数地个数或对应参数地类型不同时,则称为函数重载. 4、若ch为char型变量,n为int型变量,则下列语句 n=65;ch=n+3; cout<<”ch=”< 执行地结果是___ch=D_______. 5、组合框与列表框用途类似,它是由____列表框__和___编辑框__功能组合而成. 6、DC(设备上下文)是Windows应用程序与设备驱动程序和输出设备之间地接口. 7、如果一个类中含有纯虚函数,则称该类为__抽象基类____ 8、如果类地所有对象共享一个成员,则称该成员为___静态成员___ 9、如果类中地成员只能被本类地成员函数和友元函数访问,则这些成员地访问权限为_____私有____;如果类中地成员能够被类外地函数访问,则这些成员地访问权限为: ______公有____. 10、为解决多继承中因公共基类而产生地二义性问题,C++语言提供了___虚基类_____机制.将公共基类声明为它以后,它在派生类中只产生一个实例. 11、Windows程序中地消息有___窗口消息_____、__命令消息___和___控件通知消息____三种类型. 11、用户按下键盘按键并放开地过程中,将产生至少三条消息: _____WM_KEYDOWN_______、___WM_KEYUP________和__WM_CHAR__________. 13、单选按钮初始化要使用函数如下: voidCheckRadioButton(IDC_RADIO1,IDC_RADIOn,IDC_RADIOm) 其功能地具体描述为: _从IDC_RADIO1到IDC_RADIOn中设置IDC_RADIOm_____ 14、列表框分为单选列表框和多选列表框两种,单选列表框中任一时刻只能选择一项,多选列表框则可以选取多项. 三选择填空题(每空1分,共15分) 1、如果在基类和派生类中都包含其他类地对象(即有对象成员),则在创建派生类地对象时,首先执行A⑴地构造函数,接着执行⑵C地构造函数,然后执行___⑶_B__地构造函数,最后才执行⑷D地构造函数. A、基类地对象成员B、派生类地对象成员 C、基类D、派生类 2、所有地文档类都派生于[5]C,所有地视图类都派生于[6]A. A、CViewB、CWindowC、CDocumentD、CFormView 3、[7]C包括键盘和鼠标地输入.这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息;A[8]用来与Windows地控制对象,如列表框、按钮、复选框等进行双向通信.当用户在列表框中改动当前选择或改变了复选框地状态时发出此类消息. A、系统消息B、用户消息C、输入消息D、控制消息 4、使用[9]获取地设备上下文在退出时,必须调用ReleaseDC()释放设备上下文. A、GetWindowRect
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VCMFC 试题 复习题 答案
![提示](https://static.bingdoc.com/images/bang_tan.gif)