VC复习题+答案.docx
- 文档编号:3162092
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:25
- 大小:32.27KB
VC复习题+答案.docx
《VC复习题+答案.docx》由会员分享,可在线阅读,更多相关《VC复习题+答案.docx(25页珍藏版)》请在冰点文库上搜索。
VC复习题+答案
1、假定MyClass为一个类,则执行“”MyClassa[3],*p[2];”语句时,自动调用该类构造函数的次数为(3)
2、对于类中定义的成员,其隐含访问权限为(private)
3、一个类的友元函数或友元类能够通过成员操作符访问该类的(B所有成员)
4、下面说法正确的是(A、构造函数可以重载,析构函数不能重载。
)
5、下列语句的运行结果为(D6)
#include
srtuctCOMPLEX
{intx;inty;
}cNum[2]={1,3,2,7};
voidmain()
{cout< 6、类AB的缺省构造函数和析构函数是(AB()和~AB()) 7、在C++中,若对函数未加说明,则函数的隐含类型是(Aint) 8、已知类A是类B的友元,类B是类C的友元,则(类A的成员函数可以访问类B的对象的任何成员) 9、下列说法中正确的是(B) A、类定义中只能说明函数成员的函数头,不能定义函数体 B、类中的函数成员可以在类体中定义,也可以在类体之外定义 C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中 D、在类体之外定义的函数成员不能操作该类的私有数据成员 10、以下不属于成员函数的是(B) A、静态成员函数B、友元函数C、构造函数D、析构函数 11、对于消息队列的描述正确的是(D) A、在Windows中只有一个消息系统,即系统消息队列。 消息队列是一个系统定义的数据结构,用于临时存储消息。 B、系统可从消息队列将信息直接发给窗口。 另外,每个正在Windows下运行的应用程序都有自己的消息队列。 C、系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。 应用程序的消息对列中存储了程序的所有窗口的全部消息。 D、以上都正确 13、MFC类库中的类按层次关系可知,CStatic的直接父类为(BCWnd) 14、可以利用控件的(Group)属性和Tab键顺序来为控件分组。 15、根据对话框的行为性质,对话框可以分为两类: (模式对话框和非模式对话框) 16、以下控件中,(C)没有Caption属性。 A、按钮B、群组框C、编辑控件D、静态控件 18、更新菜单状态的消息是(ON_UPDATE_COMMAND_UI)。 19、关于工具栏、菜单和加速键的关系,正确的说法是(C)。 A、工具按钮与菜单必须一一对应B、工具按钮与加速键一一对应 C、工具按钮不必与菜单一一对应D、菜单与加速键一一对应 20、使用GetWindowDC()和GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。 A、ReleaseDC()B、delete()C、DeleteDC()D、Detach() 1、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=”< 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、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行A的构造函数,接着执行C的构造函数,然后执行__B_的构造函数,最后才执行D的构造函数。 A、基类的对象成员B、派生类的对象成员C、基类D、派生类 2、B[5]代表窗口客户区的显示设备上下文,C[6]代表整个窗口的显示设备上下文。 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 1、.#include classA{int*a;public: A(intx){a=newint(x);cout<<"*a="<<*a< voidmain() {Ax(3),*p;p=newA(5);deletep;} 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 1、在下面程序的横线处填上适当字句,使该程序执行结果为6。 #include classbase{intX; public: _voidinit(inti){X=i;}为X置值_intGetNum(){returnX;} }; 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() {_testT(10);_T.print();} 3、在下面横线处填上适当字句,完成类中成员函数的定义。 classA{int*a; public: A(intx=0){a=__newint(x);} ~A(){_deletea;}}; 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);1分 m_result=m_op1+m_op2;2分 UpdateDate(FALSE);1分 } 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分 } } 1、假定AB为一个类,则执行“”ABa(4),b(3),*p[2];”语句时,自动调用该类构造函数的次数为(B)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、以上都不是。 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、VC++开发环境中,char型数据占1字节,int型数据占4double占8个字节。 2、若for循环的“头”为“for(inti=1;i<10;i++)”,并且在循环体中不会修改i的值,则循环体将被重复执行9_次后结束。 3、两个函数的函数名相同,但参数的个数或对应参数的类型不同时,则称为函数重载。 4、若ch为char型变量,n为int型变量,则下列语句 n=65;ch=n+3;cout<<”ch=”< 5、组合框与列表框用途类似,它是由_列表框、编辑框__功能组合而成。 6\DC(设备上下文是Windows应用程序与设备驱动程序和输出设备之间的接口。 7、如果一个类中含有纯虚函数,则称该类为__抽象基类__________ 8、如果类的所有对象共享一个成员,则称该成员为__静态成员___________ 9、如果类中的成员只能被本类的成员函数和友元函数访问,则这些成员的访问权限为__私有、_______;如果类中的成员能够被类外的函数访问,则这些成员的访问权限为: ____公有(或者private、public______。 10、为解决多继承中因公共基类而产生的二义性问题,C++语言提供了虚基类________机制。 将公共基类声明为它以后,它在派生类中只产生一个实例。 11、Windows程序中的消息有__窗口消息、命令消息、控件通知消息(顺序可变)。 11、用户按下键盘按键并放开的过程中,将产生至少三条消息: _WM_KEYDOWN,WM_CHAR,WM_KEYUP。 13、单选按钮初始化要使用函数如下: voidCheckRadioButton(IDC_RADIO1,IDC_RADIOn,IDC_RADIOm) 其功能的具体描述为: ______从IDC_RADIO1到IDC_RADIOn,中设置IDC_RADIOm为默认 14、列表框分为单选列表框和多选列表框两种,单选列表框中任一时刻只能选择一项,多选列表框则可以选取多项。 1、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执A的构造函数,接着执行C的构造函数,然后执行___⑶B_的构造函数,最后才执行D的构造函数。 A、基类的对象成员B、派生类的对象成员C、基类D、派生类 2、所有的文档类都派生于C,所有的视图类都派生于A。 A、CViewB、CWindowC、CDocumentD、CFormView 3、C包括键盘和鼠标的输入。 这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息;D用来与Windows的控制对象,如列表框、按钮、复选框等进行双向通信。 当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。 A、系统消息B、用户消息C、输入消息D、控制消息 4、使用B获取的设备上下文在退出时,必须调用ReleaseDC()释放设备上下文。 A、GetWindowRect()B、GetDC() C、BeginPaint()D、GetClientRect() 5、常用的CButton类的成员函数中: A获得一个按钮控件的选中、选择和聚焦状态;D得到一个按钮的选中状态;C设置一个按钮的选中状态。 A、GetState()B、SetState()C、SetCheck() D、GetCheck()E、GetButtonStyle() 6、滚动条类CScrollBar的成员函数规定了滚动条的操作。 设置滚动条的范围使用C函数,设置滚动块的位置使用E函数,获取滚动块的当前位置使用F函数。 A、SetPosB、SetRangeC、SetScrollRangeD、GetPos E、SetScrollPosF、GetScrollPosG、GetScrollRange 四写出下列程序的运行结果(每小题5分,共20分) 1、#include classB{public: staticintnum;}; intB: : num=100; voidmain() {Bb1,b2;cout< 2、#include classA{I'mclassAI'mclassC 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();} 3、classtest{private: intnum;floatfl; public: test();intgetInt(){returnnum;} floatgetFloat(){returnfl;}~test();}; test∷test() {cout<<"Initalizingdefault"< num=0;fl=0.0; } test∷~test() {cout<<"Desdtructorisactive"< intmain() {testarray[2]; cout< < return0; }Initalizingdefault Initalizingdefault 00 Desdtructorisactive Desdtructorisactive 4.intmain()intnum=50;int&ref=num;ref=ref+10 cout<<"num="<
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 复习题 答案