visualc期末考试试题文档格式.docx
《visualc期末考试试题文档格式.docx》由会员分享,可在线阅读,更多相关《visualc期末考试试题文档格式.docx(20页珍藏版)》请在冰豆网上搜索。
C、系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。
应用程序的消息对列中存储了程序的所有窗口的全部消息。
D、以上都正确
10、一个视图对象能连接(A)文档对象,一个文档对象能连接()视图对象。
A、一个,多个B、多个,一个
C、一个,一个D、多个,多个
11、MFC类库中的类按层次关系可知,CStatic的直接父类为(B)
A、CObjectB、CWndC、CcmdTargetD、CFrameWnd
12、可以利用控件的(C)属性和Tab键顺序来为控件分组。
A、IDB、TabstopC、GroupD、Caption
13、根据对话框的行为性质,对话框可以分为两类:
(B)
A、对话框资源和对话框类B、模式对话框和非模式对话框
C、对话框资源和对话框模板D、消息对话框和模式对话框
14、以下控件中,(C)没有Caption属性。
A、按钮B、群组框C、编辑控件D、静态控件
15、菜单项助记符前用(B)引导。
A、%B、&
C、#D、$
16、更新菜单状态的消息是(C)。
A、WM_COMMANDB、UPDATE
C、ON_UPDATE_COMMAND_UID、INVALIDATE
17、关于工具栏、菜单和加速键的关系,正确的说法是(C)。
A、工具按钮与菜单必须一一对应B、工具按钮与加速键一一对应
C、工具按钮不必与菜单一一对应D、菜单与加速键一一对应
18、使用GetWindowDC()和GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。
A、ReleaseDC()B、delete()C、DeleteDC()D、Detach()
二、填空题(每空1分,共22分)
1、若for循环的“头”为“for(inti=1;
i<
10;
i++)”,并且在循环体中不会修改i的值,则循环体将被重复执行____9____次后结束。
2、两个函数的函数名_相同__,但参数的个数或对应参数的类型_不同____时,则称为重载函数。
3、C++中函数的参数传递一种是按值传递,另一种是地址传递或_引用__传递。
4、C++运行时的多态性通过__虚函数____来实现,而编译时的多态性通过___函数重载_____来实现。
5、只读成员函数用__const___关键字标识,内联成员函数用___inline___关键字标识。
6、classtest{
public:
staticintx;
};
testt1,t2;
t1.x=25;
程序运行到这里时,t2.x的值为___25__。
7、所有的文档类都派生于__CDocument____,所有的视图类都派生于:
__CView____。
8、为解决多继承中因公共基类而产生的二义性问题,C++语言提供了_虚基类_机制。
将公共基类声明为它以后,它在派生类中只产生一个实例。
9、在代码中,使用CWnd:
:
_UpdateData()___函数可实现控件与其成员变量之间的数据的传输。
10、列表框ClistBox类的成员函数_AddString____用来向列表框增加列表项,成员函数___ResetContent____用来清除列表项所有项目。
11、串行化__是指将对象写入永久存储介质或者将对象从永久存储介质中读出的过程。
12、Windows程序中的消息有窗口消息、命令消息和_控件通知_消息三种类型。
13、MFC中的集合类包括数组、列表、映射。
14、在进行绘图时,画刷用于指定图形的填充样式,__画笔_____用于指定图形的边框样式。
三选择填空题(每空1分,共15分)
1、如果在基类和派生类中都包含其他类的对象(即有对象成员),则在创建派生类的对象时,首先执行A的构造函数,接着执行C的构造函数,然后执行__B___的构造函数,最后才执行D的构造函数。
A、基类的对象成员B、派生类的对象成员
C、基类D、派生类
2、B代表窗口客户区的显示设备上下文,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
四、程序设计题(1题9分,2题18分,共27分)
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()
{
UpdateData(TRUE);
m_result=m_op1_m_op2;
UpdateData(FALSE);
}
4、(10分)设计一个基于对话框的应用程序,如下图所示。
要求:
单击Color按钮,能弹出通用颜色对话框选取颜色,并用该颜色显示:
Thisisacolorexample。
已知:
Example组合框的ID为:
IDC_DISPLAY。
写出Color按钮的BN_CLICKED消息处理函数。
voidCXT6_4Dlg:
OnColor()
《Windows程序设计》试题答案及评分标准
题号
1
2
3
4
5
6
7
8
9
10
11
答案
B
A
D
12
13
14
15
16
17
18
C
1、92、相同不同3、引用
4、虚函数函数重载5、constinline6、25
7、CdocumentCView8、虚基类9、UpdateData
10、AddStringResetContent11、串行化
12、控件通知
13、数组列表(链表)映射(顺序可变)
14、画刷画笔
⑴
⑵
⑶
⑷
⑸
⑹
⑺
⑻
⑼
⑽
⑾
⑿
⒀
⒁
⒂
E
F
IcefishCorporation
1、UpdateDate(TRUE);
2分
m_result=m_op1+m_op2;
5分
UpdateDate(FALSE);
2、voidCXT6_4Dlg:
OnColor()
COLORREFm_cTextColor;
1分
CColorDialogDlg;
if(Dlg.DoModal()==IDOK)1分
m_cTextColor=Dlg.GetColor();
CWnd*pWnd=GetDlgItem(IDC_DISPLAY);
CDC*pDC=pWnd->
GetDC();
CRectrcDisplay;
pWnd->
GetClientRect(rcDisplay);
pDC->
SetTextColor(m_cTextColor);
CStrings="
Thisisacolorexample"
;
DC->
TextOut(rcDisplay.right/2-80,rcDisplay.bottom/2-5,s);
Windows程序设计复习资料
1、什么是句柄
句柄是一个4字节长的数值,用于标识应用程序中不同的对象和同类对象中不同的实例
2、什么是消息
是描述事件发生的信息(如按下鼠标或键盘),而windows程序设计是针对事件或消息的处理进行。
3、什么是设备的无关性,
设备的无关性就是操作系统屏蔽了硬件设备的差异,因而设备无关性能使用户编程时无需考虑特殊的硬件设置
4、图形设备按口(GDI)
GDI负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文字,是Windows系统的重要组成部分
5、试描述PAINTSTRUCT数据结构定义
TypedefstructtagPAINTSTRUCT
{HDChdc;
//设备环境句柄
BOOLfErase;
//一般取真值,表示擦除无效矩形的背景
RECTrcPaint;
//无效矩形标识
BOOLfRestore;
//系统保留
BOOLfIncUpdate;
BYTErgbReserved[16];
//系统保留
}PAINTSTRUCT;
6、试描述获取设备环境的方法
获取设备环境是应用程序输出图形的先决条件,常用的两种方法是调用函数BeginPaint或GetDC
1)调用BeginPaint函数
应用程序响应WM_PAINT消息进行图形刷新时,主要通过调用BeginPaint函数获取设备环境
hdc=BeginPaint(hwnd,&
ps);
//ps为PAINTSTRUCT类型结构
定义方式为:
PAINTSTRUCTps;
BeginPaint函数获取的设备环境要用EndPaint函数释放
voidEndPaint(HWNDhwnd,PAINTSTRUCT&
ps)
2)调用GetDC函数
IcefishCorporation
如果绘图工作并非由WM_PAINT消息驱动,则调用GetDC函数获取设备环境。
hdc=GetDC(hwnd);
由GetDC函数获取的设备环境必须用ReleaseDC函数释放
voidReleaseDC(HWNDhwnd)
7、映像模式
映像模式定义了将逻辑单位转化为设备的度量单位以及设备的x方向和y方向,程序员可在一个统一的逻辑坐标系中操作而不必考虑输出设备的坐标系情况
8、如何创建一个系统给定的黑色画刷?
:
HBRUSHhBr;
//hBr为画刷句柄
hBr=(HBRUSH)GetStockObject(BLACK_BRUSH)
9、如何创建一个系统给定的黑色画笔?
使用画笔之前必须事先定义一个画笔句柄。
形式如下:
HPENhP;
hP=GetStockObject(BLACK_PEN)
10、什么是位图?
位图是一种数字化的图形表示形式,位图中的每个像素点由位图文件中的一位或多位数据表示。
整个位图的信息被细化为每个像素点的属性值
(1)面向对象程序设计的特点是什么?
(2)构造函数和析构函数有什么作用?
(3)什么叫拷贝构造函数?
拷贝构造函数何时被调用?
(4)什么叫组合类?
(5)常用的常类型都有哪几种?
试分别举例说明。
(6)什么叫可见性?
可见性遵循的一般规则是什么?
(7)什么叫友元函数?
什么叫友元类?
选择题:
30
1、应用程序通过句柄访问相应的对象信息,窗口句柄在程序中标记为HWND
应用程序通过句柄访问相应的对象信息,位图句柄程序中标记为HBITMAP。
HICON图标句柄HFONT字体句柄
HMENU菜单句柄HPEN画笔句柄
VC中存在几种系统定义的消息分类,不同的前缀符号经常用于消息宏识别消息附属的分类,系统定义的消息宏前缀如下:
2、VC中存在几种系统定义的消息分类,不同的前缀符号经常用于消息宏识别消息附属的分类,表示按钮控制消息(A)
A、BMB、CBC、DMD、EM
3、Windows应用程序常用消息,产生单击鼠标左键的消息是(A)
AWM_LBUTTONDOWNBWM_RBUTTONUP
CWM_RBUTTONDBLCLKDWM_LBUTTONUP
4、Windows应用程序常用消息,按下一个非系统键时产生的消息是(B)
AWM_RBUTTONUPBWM_KEYDOWN
CWM_KEYUPDWM_POPDOWN
5、按下一个非系统键时产生的消息WM_CHAR,存按键的ASCII码信息的是(C)
A、1ParamB、WordParamC、wParamD、ongParam
6、关闭窗口时产生的消息(D)
A、WM_KEYDOWNB、WM_CREAT
C、WM_DESTROYD、WM_CLOSE
7、由CreateWindow函数发出的消息(B)
由PostQuitMessage函数发出的消息(A)
A、WM_QUITB、WM_CREAT
8、包含一个消息的全部信息,是消息发送的格式的数据结构是C
B、WNDCLASSC、MSG
9、包含一个窗口类的全部信息及属性数据结构是B
B、WNDCLASS
10、定义了屏幕上或窗口中的一个点的X和Y坐标的数据结构是D
D、POINT
11、定义了一个矩形区域及其左上角和右下角的坐标的数据结构是A
A、RECT
12、在VC中调用函数(A)可以创建自定义字体
A、CreateFontB、GreateWFont
C、GreateWFontsD、GreateFonts
13、输出文本之前要获取字体的信息,如字符高度等,以确定输出格式和下一行字符的位置,获取当前使用字体信息函数(C)
A、GetFontMetricsB、GetFontMetric
C、GetTextMetricsD、GetTextMetric
14、文本输出函数TextOut(intX,intY,LPCTSTRlpstring,intnCount)第四个参数nCount记录的是A
A、lpstring中的字符串的字节数B、字符串的长度
C、lpstring的长度D、lpstring串的循环次数
15、虚拟码是一种与设备无关的键盘编码,它的值存放在键盘消息的(A)参数中
A、wParamC、VKB、ParamD、VB
16、Alt键与相关输入键的组合产生的消息是(A)
A、系统按键消息B、非系统按键消息
C、空消息D、组合消息
17、不使用Alt键组合的的按键消息是(B)
18、一个按键的组合产生了一个可以显示的字符时,就产生了一个(A)
A、字符消息B、按键消息
C、组合消息D、空消息
19、按键消息的变量lParam是(C)变量
A、8位B、16位C、32位D、84位
20、在Windows操作系统中预定义了几种光标,IDC_ARROW表示:
A、十字光标B、计时光标C、箭头光标D、I光标
21、在Windows操作系统中预定义了几种光标,IDC-SIZEALL表示:
A、十字光标B、计时光标C、十字箭头D、I光标
22、自定义光标保存在扩展名为(B)的文件中
A、txtB、curC、cuvD、cui
23、鼠标消息中lParam包含的是(B)
A、鼠标的键值B、鼠标位置
C、虚键状态D、字符码
24、POPUP语句定义的是(C)
A、主菜单条B、下拉式菜单
C、弹出式菜单D、菜单项
25、资源描述文件中ACCELERATORS定义的是:
D
A、菜单B、弹出式菜单
C、组合键D、加速键资源
26、定义位图的数据结构是(D)
A、BITMAPB、CBITMAP
C、JPGD、HBITMAP
27、资源描述文件中DIALOG定义的是:
C、对话框资源D、加速键资源
28、图标资源的文件扩展名为.C
A、curB、cuvC、icoD、icc
29、MFC库中的类中根类为D
A、CWndB、CMDC、InternetD、CObject
30、在MFC中以(C)为前缀的函数(数据库类函数和DDX函数除外)和变量,在目前的版本中,都表示全局函数或全局变量
A、AFXB、CDC、AfxD、MFC
31、Afx为前缀的函数(数据库类函数和DDX函数除外)和变量中,表示无条件终止一个应用程序的是(A)
A、AfxAbortB、AfxBeginThread
C、AfxFormatStringD、AfxMessageBox
32、Afx为前缀的函数(数据库类函数和DDX函数除外)和变量中,表示显示一个Windows消息框是(D)
33、在MFC中表示窗口类的是(D)
A、CDialog类B、CMenu类
C、CView类D、CWnd类
34、MFC5.0增强了对数据库和Internet的支持
35、MFC6.0中引进了新的功能加入了对动态HTML技术的支持
36、CView类表示框架窗口的客户区和显示文档数据并接收输入的客户区
37、CView类派生类主要有CscrollView、CformView、CEditView
38、CDialog类是从CWnd类中派生出来的
39、CControlBar类是CToolBar、CStatusBar、CDialogBar的基类
40、CDC类叫做设备描述表类
41、类的成员函数用于对数据成员进行处理,又称为“方法”
42、在VC程序中通过类的成员函数来访问其内部的数据成员,成员函数是类与外部程序之间的接口
43、类和对象的关系相当于普通数据类型与其变量的关系
44、类是一种逻辑抽象概念,声明一个类只是定义了一种新的数据类型
45、创建了一个类的对象,程序就可以用运算符“.”来引用类的公有成员
46、构造函数是在类中声明的一种特殊的成员函数,作用是在对象被创建时使用特定的值构造对象,将对象初始化为一个特定的状态。
47、构造函数的名字与它所属的类名相同
48、一个对象失效时,要调用该对象所属类的析构函数。
析构函数的功能是用来释放一个对象的
49、析构函数本身并不实际删除对象,而是进行系统放弃对象内存之前的清理工作,使内存可用来保存新的数据,它与构造函数的功能正好相反。
50、继承方式关键字为private、public和protected,分别表示私有继承、公有继承和保护继承。
51、VC++中的应用程序能产生两种类型的执行代码:
调试版本与发行版本
52、VC++调试器(Build莱单)中的命令Compile:
用来编译当前的源代码文件
53、VC++调试器(Build莱单)中的命令RebuildAll:
忽略以前的编译和链接工作,重新编译和链接整个项目文件;
54、VC++调试器(Build莱单)中的命令Execute:
运行程序。
56、
(1)派生新类的过程经历三个过程:
吸