《2022年《面向对象程序设计技术》往届试卷》由会员分享,可在线阅读,更多相关《2022年《面向对象程序设计技术》往届试卷(12页珍藏版)》请在金锄头文库上搜索。
1、精品学习资源面对对象程序设计技术试卷1一、单项挑选题 每道题 1 分,共 20 分1、假定 MyClass 为一个类,就执行“ ”MyClass a3, *p2 ;”语句时,自动调用该类构造函数的次数为( B)A、2B、3C、4D、52、对于类中定义的成员,其隐含拜访权限为(B) A、protectedB、privateC、publicD、 static3、一个类的友元函数或友元类能够通过成员操作符拜访该类的(B) A、私有成员 B、全部成员 C、公用成员 D、爱护成员4、下面说法正确选项( A)A、构造函数可以重载,析构函数不能重载; B、构造函数不能重载,析构函数可以重载; C、构造函数可
2、以重载,析构函数也可以重载;D、构造函数和析构函数都不行以重载;5、以下语句的运行结果为( D) #include srtuct COMPLEXint x;int y; cNum2=1,3,2,7 ;void maincout cNum0 .y*cNum1 . xendl;A、3B、2C、21D、66、类 AB 的缺省构造函数和析构函数是( A) A、AB 和AB B 、ABint 和AB C、AB 和ABdelete D、AB 和 intAB 7、在 C+中,如对函数未加说明,就函数的隐含类型是(A) A、intB、doubleC、voidD、char8、已知类 A 是类 B 的友元,类 B
3、 是类 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、
4、在 Windows 中只有一个消息系统,即系统消息队列;消息队列是一个系统定义的数据结构,用于暂时储备消息;B、系统可从消息队列将信息直接发给窗口;另外,每个正在Windows 下运行的应用程序都有自己的消息队列;C、系统消息队列中的每个消息最终都要被USER 模块传送到应用程序的消息队列中去;应用程序的消息对列中储备了程序的全部窗口的全部消息;D、以上都正确12、一个视图对象能连接( A )文档对象,一个文档对象能连接(A )视图对象;A、一个,多个B、多个,一个C、一个,一个D、多个,多个13、MFC 类库中的类按层次关系可知, CStatic 的直接父类为 B A、CObjectB、CW
5、ndC、CcmdTargetD、CFrameWnd14、可以利用控件的( C)属性和 Tab键次序来为控件分组;A、IDB、Tab stopC、GroupD、Caption15、依据对话框的行为性质,对话框可以分为两类:(B) A、对话框资源和对话框类B、模式对话框和非模式对话框C、对话框资源和对话框模板D、消息对话框和模式对话框16、以下控件中,( C)没有 Caption 属性;A、按钮B、群组框C、编辑控件D、静态控件17、菜单项助记符前用( B)引导;A、%B、&C、#D、$ 18、更新菜单状态的消息是( C);A、WM_COMMANDB 、UPDATEC、ON_UPDATE_COMM
6、AND_UID 、INVALIDATE19、关于工具栏、菜单和加速键的关系,正确的说法是(A); 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 个字节, long int 占 4 个字节;2、如 for 循环的“头”为
7、“ for(int i=1;i10;i+ )”,并且在循环体中不会修改 i 的值,就循环体将被重复执行 9 次后终止;欢迎下载精品学习资源3、两个函数的函数名 相同 ,但参数的个数或对应参数的类型就称为重载函数;4、如 ch 为 char 型变量, n 为 int 型变量,就以下语句ch =;an = 3; ch = ch + n; cout ”ch =” ;ch 不同 时,欢迎下载精品学习资源执行的结果是 ch=d ;欢迎下载精品学习资源5、C+ 中函数的参数传递一种是按值传递,另一种是地址传递或递; 引用 传欢迎下载精品学习资源6、C+运行时的多态性通过 虚函数 来实现,而编译时的多态性通
8、过 函数重载 来实现;7 只读成员函数用 _const_关键字标识,内联成员函数用 _inline _关键字标识;8、 class testpublic:static int x; ;test t1,t2; t1.x = 25;程序运行到这里时, t2.x 的值为 25 ;9、全部的文档类都派生于 _Cdocument_,全部的视图类都派生于 :_CView_;10、为解决多继承中因公共基类而产生的二义性问题,C+语言供应了 _虚基类_机制;将公共基类声明为它以后,它在派生类中只产生一个实例;11、在代码中,使用 CWnd:_UpdateData _函数可实现控件与其成员变量之间的数据的传输;
9、12、列表框 ClistBox类的成员函数 _AddString_用来向列表框增加列表项,成员函数 _ResetContent _用来清除列表项全部工程;13、:_串行化 _ 是指将对象写入永久储备介质或者将对象从永久储备介质中读出的过程;14、Windows 程序中的消息有窗口消息、命令消息和 _控件通知 _消息三种类型;15、MFC 中的集合类包括数组、列表(链表)、映射(次序可变);欢迎下载精品学习资源16、在进行绘图时,画刷用于指定图形的填充样式, 边框样式; 画笔 _用于指定图形的欢迎下载精品学习资源三 挑选填空题(每空 1 分,共 15 分)1、假如在基类和派生类中都包含其他类的对
10、象(即有对象成员),就在创建派 生类的对象时,第一执行A 的构造函数,接着执行C 的构造函数,然后执行 B 的构造函数,最终才执行 D的构造函数;A、基类的对象成员B、派生类的对象成员C、基类D、派生类2、B 代表窗口客户区的显示设备上下文, C代表整个窗口的显示设备上下文;A、CPaintDCB、CClientDCC、CWindowDCD、CMetaFileDC 3、消息循环的处理过程如下 :A 函数不断侦察应用程序的消息队列,如队列为空,该函数始终运行,不返回;一旦发觉队列不为空,便取出一条消息,把它拷贝到msg 结构变量中,同时该函数返回 TRUE;得到消息 msg后, B 把来自键盘的
11、命令翻译成 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、SetChec
12、k D、GetCheck E、GetButtonStyle 5、滚动条类 CScrollBar 的成员函数规定了滚动条的操作;设置滚动条的范畴使用 C 函数,设置滚动块的位置使用 E 函数,猎取滚动块的当前位置使用 F 函数;A、SetPosB、SetRangeC、SetScrollRange D、GetPos E、SetScrollPos F、GetScrollPos G、 GetScrollRange四写出以下程序的运行结果(每道题5 分,共15 分)1、.#includeclassAint public:*a;Aintxa=newintx;cout*a=*aendl;deletea ;v
13、oid;mainAx3,*p;p=newA5;deletep;答: *a = 3*a = 52、class testprivate:int num;public:test;int GetNum return num;test; ;test:test num=0; test:testcoutDestructor is activeendl ; void maintest x3;cout Exiting mainendl ;答: Exiting main Destructor is active Destructor is active Destructor is active3、 #include欢迎下载精品学习资源class A public:virtual void fun coutIm class Aendl; ;class B: public A public:void fun coutIm class Bendl; ;class C: public B public:void fun coutIm class Cfun ;B b;pA=&b;pA-fun ;C c;a=c;a.fun;A &aRef=c ;aRef.