VC复习题+答案.docx
- 文档编号:2391351
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:27
- 大小:32.98KB
VC复习题+答案.docx
《VC复习题+答案.docx》由会员分享,可在线阅读,更多相关《VC复习题+答案.docx(27页珍藏版)》请在冰豆网上搜索。
VC复习题+答案
《VC程序设计》试卷1
一、单项选择题(每小题1分,共20分)
1、假定MyClass为一个类,则执行“”MyClassa[3],*p[2];”语句时,自动调用该类构造函数的次数为()
A、2B、3C、4D、5
2、对于类中定义的成员,其隐含访问权限为()
A、protectedB、privateC、publicD、static
3、一个类的友元函数或友元类能够通过成员操作符访问该类的()
A、私有成员B、所有成员C、公用成员D、保护成员
4、下面说法正确的是()
A、构造函数可以重载,析构函数不能重载。
B、构造函数不能重载,析构函数可以重载。
C、构造函数可以重载,析构函数也可以重载。
D、构造函数和析构函数都不可以重载。
5、下列语句的运行结果为()
#include
srtuctCOMPLEX
{
intx;
inty;
}cNum[2]={1,3,2,7};
voidmain()
{
cout< } A、3B、2C、21D、6 6、类AB的缺省构造函数和析构函数是() A、AB()和~AB()B、AB(int)和~AB() C、AB()和~AB(delete)D、AB()和int~AB() 7、在C++中,若对函数未加说明,则函数的隐含类型是() A、intB、doubleC、voidD、char 8、已知类A是类B的友元,类B是类C的友元,则() A、类A一定是类C的友元 B、类C一定是类A的友元 C、类C的成员函数可以访问类B的对象的任何成员 D、类A的成员函数可以访问类B的对象的任何成员 9、下列说法中正确的是() A、类定义中只能说明函数成员的函数头,不能定义函数体 B、类中的函数成员可以在类体中定义,也可以在类体之外定义 C、类中的函数成员在类体之外定义时必须要与类声明在同一文件中 D、在类体之外定义的函数成员不能操作该类的私有数据成员 10、以下不属于成员函数的是() A、静态成员函数B、友元函数 C、构造函数D、析构函数 11、对于消息队列的描述正确的是() A、在Windows中只有一个消息系统,即系统消息队列。 消息队列是一个系统定义的数据结构,用于临时存储消息。 B、系统可从消息队列将信息直接发给窗口。 另外,每个正在Windows下运行的应用程序都有自己的消息队列。 C、系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。 应用程序的消息对列中存储了程序的所有窗口的全部消息。 D、以上都正确 12、一个视图对象能连接()文档对象,一个文档对象能连接()视图对象。 A、一个,多个B、多个,一个 C、一个,一个D、多个,多个 13、MFC类库中的类按层次关系可知,CStatic的直接父类为() A、CObjectB、CWndC、CcmdTargetD、CFrameWnd 14、可以利用控件的()属性和Tab键顺序来为控件分组。 A、IDB、TabstopC、GroupD、Caption 15、根据对话框的行为性质,对话框可以分为两类: () 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的值,则循环体将被重复执行____________次后结束。 3、两个函数的函数名________,但参数的个数或对应参数的类型_________时,则称为重载函数。 4、若ch为char型变量,n为int型变量,则下列语句 ch=’a’;n=3;ch=ch+n; cout<<”ch=”< 执行的结果是__________。 5、C++中函数的参数传递一种是按值传递,另一种是地址传递或________传递。 6、C++运行时的多态性通过______________来实现,而编译时的多态性通过_____________来实现。 7只读成员函数用_____________关键字标识,内联成员函数用___________关键字标识。 8、classtest{ public: staticintx; }; testt1,t2;t1.x=25; 程序运行到这里时,t2.x的值为____________。 9、所有的文档类都派生于_______________,所有的视图类都派生于: _____________。 10、为解决多继承中因公共基类而产生的二义性问题,C++语言提供了________机制。 将公共基类声明为它以后,它在派生类中只产生一个实例。 11、在代码中,使用CWnd: : ____________函数可实现控件与其成员变量之间的数据的传输。 12、列表框ClistBox类的成员函数______________用来向列表框增加列表项,成员函数____________用来清除列表项所有项目。 13、: _________________是指将对象写入永久存储介质或者将对象从永久存储介质中读出的过程。 14、Windows程序中的消息有窗口消息、命令消息和__________消息三种类型。 15、MFC中的集合类包括、、。 16、在进行绘图时,用于指定图形的填充样式,________________用于指定图形的边框样式。 三选择填空题(每空1分,共15分) 1、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行⑴的构造函数,接着执行⑵的构造函数,然后执行___⑶___的构造函数,最后才执行⑷的构造函数。 A、基类的对象成员B、派生类的对象成员 C、基类D、派生类 2、[5]代表窗口客户区的显示设备上下文,[6]代表整个窗口的显示设备上下文。 A、CPaintDCB、CClientDCC、CWindowDCD、CMetaFileDC 3、消息循环的处理过程如下: ⑺函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后,⑻把来自键盘的命令翻译成WM_XXX消息命令形式。 ⑼函数通知Windows把每个消息分发给相应的窗口函数。 应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。 A、GetMessage()B、translateMessage()C、PostMessage() D、SendMessage()E、DispatchMessage() 4、常用的CButton类的成员函数中: ⑽获得一个按钮控件的选中、选择和聚焦状态;⑾得到一个按钮的选中状态;⑿设置一个按钮的选中状态。 A、GetState()B、SetState()C、SetCheck() D、GetCheck()E、GetButtonStyle() 5、滚动条类CScrollBar的成员函数规定了滚动条的操作。 设置滚动条的范围使用⒀函数,设置滚动块的位置使用⒁函数,获取滚动块的当前位置使用⒂函数。 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; } 2、classtest{ private: intnum; public: test(); intGetNum(){returnnum;} ~test(); }; test: : test(){num=0;} test: : ~test() {cout<<″Destructorisactive″< voidmain() {testx[3]; cout<<″Exitingmain″< } 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(); } 五、完成程序题(本大题共3小题,每空2分,共12分)。 根据题目要求,完成程序填空。 1、在下面程序的横线处填上适当字句,使该程序执行结果为6。 #include classbase{ intX; public: _________[1]__________//为X置值 _________[2]__________//取X值 }; voidmain() { basetest; test.init(6); cout< } 2、一个类的头文件如下所示,主程序中产生对象T,且T.num=10,并使用Print()函数输出这个对象的值。 classtest{ pri
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 复习题 答案