Windows程序设计题含简答题答案.docx
《Windows程序设计题含简答题答案.docx》由会员分享,可在线阅读,更多相关《Windows程序设计题含简答题答案.docx(31页珍藏版)》请在冰豆网上搜索。
Windows程序设计题含简答题答案
《Windows程序设计》模拟题
一.单项选择题
1.在VC++中,项目文件的扩展名是(B)。
A)exeB)dsp
C)dswD)cpp
2.在MFC中,利用ClassWizard不能(D)。
A)建立新类B)进行消息映射
C)增加类的成员变量D)插入资源
3.当滑块滑动时,滑块条控件将发送滚动消息来通知父窗口,垂直滑动条发送(C)消息。
A)WM_CHARB)WM_HSCROLL
C)WM_VSCROLLD)WM_CHANGE
4.更新菜单状态的消息是(C)。
A)WM_COMMANDB)UPDATE
C)UPDATE_COMMAND_UID)INVALIDATE
5.对于消息队列描述正确的是(D)
A)在Windows中只有一个消息系统,即系统消息队列。
消息队列是一个系统定义的数据结构,用于临时存储消息。
B)系统可从消息队列将信息直接发给窗口。
另外,每个正在Windows下运行的应用程序都有自己的消息队列。
C)系统消息队列中的每个消息最终都要被USER模块传送到应用程序的消息队列中去。
应用程序的消息对列中存储了程序的所有窗口的全部消息。
D)以上都正确
6.在MFC中,所有的控件都是(B)类的派生类,都可以作为一个特殊的窗口来处理。
A)CViewB)CWnd
C)CWindowD)CDialog
7.使用GetDC()获取的设备上下文在退出时,必须调用(A)释放设备上下文。
A)ReleaseDC()B)delete()
C)DeleteDC()D)Detach()
8.希望菜单无效,应该用CCmdUI类的(A)成员函数。
A)EnableB)SetRadio
C)SetCheckD)SetText
9.希望菜单前出现一个“√”,应该用CCmdUI类的(C)成员函数。
A)EnableB)SetRadio
C)SetCheckD)SetText
10.下面(A)不是MFC设备环境类CDC类的派生类。
A)GDIB)CPaintDC
C)CClientDCD)CWindowDC
11.在MFC中,所有的文档类都派生于(C),所有的视图类都派生于(A)。
A)CViewB)CWindowC)CDocumentD)CFormView
12.采用C++进行绘图时,(B)用于指定图形的填充样式,(A)用于指定图形的边框样式。
A)画笔B)画刷C)区域D)位图
13.(C)包括键盘和鼠标的输入。
这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息。
A)系统消息B)用户消息
C)输入消息D)控制消息
14.项目文件的扩展名是(B)。
A)exeB)dspC)dswD)cpp
15.在MFC中,文档负责将数据存储到永久存储介质中,通常是磁盘文件或数据库,存取过程称为(B)。
A)文件访问B)串行化C)文件读写D)格式化
16.在VC++6.0在编程环境中,运行程序的快捷键是(A)。
A)Ctrl+F5B)F7C)Ctrl+F7D)F5
17.在VC++6.0在编程环境中,设置和取消断点的快捷键都是(A)。
A)F9B)F5C)F11D)F10
18.在MFC中,在编辑某菜单项时,若要指明该菜单项是一个弹出式子菜单,必须选择属性对话框中的(B)。
A)SeparatorB)Pop-upC)InactiveD)Grayed
19.使用GetWindowDC()和GetDC()获取的设备上下文在退出时,必须调用(C)释放设备上下文。
A)DeleteDC()B)delete()C)ReleaseDC()D)Detach()
20.在MFC中,(B)代表窗口客户区的显示设备上下文,(C)代表整个窗口的显示设备上下文。
A)CPaintDCB)CClientDCC)CWindowDCD)CMetaFileDC
21.对话框的功能被封装在(B)类中。
A)CWndB)CDialog
C)CObjectD)CCmdTarget
22.(C)包括键盘和鼠标的输入。
这一类消息首先放在系统消息队列中,然后由Windows将它们送入应用程序消息队列中,由程序来处理消息;(D)用来与Windows的控制对象,如列表框、按钮、复选框等进行双向通信。
当用户在列表框中改动当前选择或改变了复选框的状态时发出此类消息。
A)系统消息B)用户消息C)输入消息D)控制消息
23.生成1个只具有确定和取消按钮的消息框,其参数为(C)。
A)MB_OKB)MB_YESNO
C)MB_OKCANCELD)MB_RETRYCANCEL
24.在Windows程序设计中如果加入了滚动条。
设置滚动条的范围使用(C)函数,设置滚动条的位置使用(E)函数,获得滚动块的当前位置使用(F)函数。
A)SetPos()B)SetRange()
C)SetScrollRange()D)GetPos()
E)SetScrollPos()F)GetScrollPos()
G)GetScrollRange()
25.消息循环的处理过程如下:
(A)函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后,(B)把来自键盘的命令翻译成WM_XXX消息命令形式。
(E)函数通知Windows把每个消息分发给相应的窗口函数。
应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。
A)GetMessage()B)translateMessage()C)PostMessage()
D)SendMessage()E)DispatchMessage()
26.如果要严格按照匈牙利命名法命名1个局部窗口句柄,以下变量命名正确的是(B)。
A)g_hWndB)m_hWndC)g_pWndD)m_pWnd
27.在Windows编程约定中,应用程序接口的英文缩写是(A)。
A)APIB)SDIC)GDID)MDI
28.在Windows编程约定中,软件开发包的英文缩写是(C)。
A)APIB)SDIC)SDKD)MDI
29.在Windows编程约定中,图像设备接口的英文缩写是(C)。
A)APIB)SDIC)GDID)MDI
30.以下对应于unsignedlong的数据类型为:
(B)
A)WORDB)DWORDC)INTD)BYTE
31.下列选项中,不属于匈牙利命名法属性部分的是(D)。
A)g_B)m_C)c_D)d_
32.如果要严格按照匈牙利命名法命名1个全局窗口句柄,以下变量命名正确的是(A)。
A)g_hWndB)m_hWndC)g_pWndD)m_pWnd
33.下列Windows数据格式中,代表设备句柄的是(B)。
A)HWNDB)HDCC)HINSTANCED)HFONT
34."在一个窗口的正常运行的Windows程序中,把主窗口创建语句做如下改动:
hWnd=CreateWindow(NULL,szTitle,WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);
则下列说法正确的是(C)。
"
A)程序仍然正常运行,与改动前相比没有变化
B)程序出现编译错误
C)程序编译通过,但没有窗口显示
D)程序正常运行,窗口标题变为NULL
35.典型的Windows窗口程序的流程为:
(A)
A)注册窗口类->创建窗口->显示窗口->更新窗口->消息循环
B)创建窗口->注册窗口类->显示窗口->更新窗口->消息循环
C)创建窗口->注册窗口类->显示窗口->更新窗口->消息循环
D)注册窗口类->创建窗口->更新窗口->显示窗口->消息循环
36.菜单编辑器中,如果要设置某个项为分隔线,那么这个项的哪个属性为true。
(D)
A)VisibleB)GrayedC)EnableD)Separator
37.在Windows消息机制中,菜单消息类型是:
(B)
A)WM_PAINTB)WM_COMMAND
C)WM_CREATED)WM_CLOSE
38.在Windows编程中,代表键盘的"↑"键的虚拟键值是(A)。
A)VK_UPB)WM_KEYDOWN
C)WM_KEYUPD)VK_DOWN
39.在Windows编程中,响应键盘按键按下消息的Windows消息是(B)。
A)VK_UPB)WM_KEYDOWN
C)WM_KEYUPD)VK_DOWN
40.在Windows编程中,按下键盘的"A"键后,返回的Windows消息是(B)。
A)VK_AB)WM_KEYDOWN
C)AD)DIK_A
41.在Windows编程中,按下鼠标左键产生的Windows消息是(B)。
A)WM_KEYDOWNB)WM_LBUTTONDOWN
C)WM_LEFTD)WM_RBUTTONDOWN
42.下列哪个缩写是微软提供的C++语言的帮助库?
(B)
A)MFCB)MSDNC)APID)SDK
43.Windows编程中,定时器消息是(B)
A)WM_TIMEB)WM_TIMER
C)WM_ON_TIMED)WM_COMMAND
44.GDI环境中,窗口的坐标系是如何构成的?
(D)
A)左上角为原点,x轴正方向为水平向右,y轴正方向为竖直朝上
B)中间为原点,x轴正方向为水平向右,y轴正方向为竖直朝上
C)左下角为原点,x轴正方向为水平向右,y轴正方向为竖直朝下
D)左上角为原点,x轴正方向为水平向右,y轴正方向为竖直向下
45.以下选项中,GDI不能支持的是:
(B)
A)位图B)Flash动画
C)直线和曲线D)文字
46.设备环境DC的全称为:
(B)
A)DeviceContentB)DeviceContexts
C)DeviceConfigD)DeviceConter
47.InvalidateRect的作用是(B)
A)删除一个矩形B)使一个矩行区域变为无效,从而可以重绘
C)使一个矩形区域变为无效,从而释放部分GDI资源
D)擦除一个矩形区域
48."已知窗口为缺省状态,有如下代码:
HDChdc=GetDC(hWnd);
HPENhpen=CreatePen(1,1,RGB(255,0,0));
SelectObject(hdc,hpen);
Ellipse(hdc,050,50,200,200);
则这段代码的执行效果是(B)。
"
A)绘制1个黑色的椭圆形边框,无填充颜色
B)绘制1个红色的椭圆形边框,无填充颜色
C)绘制1个黑色的椭圆形,填充为黑色,无边框
D)绘制1个红色的椭圆形,填充为红色,无边框
49."已知有如下代码:
HDChDC=GetDC(hWnd);
LineTo(hDC,100,100);
则这段代码的执行效果是(A)。
"
A)从窗口的左上角至坐标(100,100)绘制1条直线
B)没有绘制任何图形
C)从窗口的任意一点开始至坐标(100,100)绘制1条直线
D)从鼠标在窗口的位置至坐标(100,100)绘制一条直线
50.以下函数中不受画刷影响的函数是:
(C)
A)RectangleB)Ellipse
C)LineToD)Polygon
51.如果要创建一个宋体字体,那么字体描述中哪个属性为“宋体”?
(C)
A)lfCharSetB)lfQuality
C)lfFaceNameD)lfStrikeOut
52.在Windows编程约定中,位图句柄为(B)。
A)HGDIB)HBITMAP
C)HDCD)HPEN
53.下面哪个步骤能实现透明贴图(模板位图为单色的1位位图)?
(A)
A)位图和背景像素作异或操作->使用模板位图作与操作->原位图与背景作异或操作
B)使用模板位图作与操作->原位图与背景作异或操作->位图和背景像素作异或操作
C)位图和背景像素作异或操作->原位图与背景作异或操作->使用模板位图作与操作
D)位图与背景作异或操作->位图和背景像素作异或操作->使用模板位图作与操作
54.在BitBlt函数中进行光栅化处理方式中,哪1个值说明是要进行或运算?
(D)
A)SRCANDB)SRCCOPY
C)SRCINVERTD)SRCPAINT
55.动态链接库文件的后缀名为(B)。
A)libB)dllC)exeD)obj
二.多选题
1.已知严格按照匈牙利命名法命名的变量m_pTemp,则以下说法正确的是(BC)。
A)该变量是1个全局变量B)该变量是1个类成员变量
C)该变量是1个指针变量D)该变量一定是1个私有变量
2下列哪种情况下系统可能向窗口发送WM_PAINT消息?
(ABCD)
A)窗口最初创建时
B)窗口移动后部分区域由不可见变为可见
C)窗口大小改变后
D)滚动条滚动后
3.在注册窗口类中,不需要进行的操作是(BC)。
A)载入图标B)确定窗口大小
C)确定窗口标题D)确定窗口类名称
4.关于PeekMessage和GetMessage的说法正确的是(AB)
A)PeekMessage立即返回
B)GetMessage将会等待消息到来
C)PeekMessage等待消息到来
D)GetMessage立即返回
5.关于动态菜单,以下说法正确的是(BD)。
A)函数LoadMenu可以弹出菜单
B)函数CreatMenu用于建立空菜单
C)函数DeleteMenu用于删除整个菜单
D)函数InsertMenu用于在菜单中插入1个菜单项
6.以下关于Windows的鼠标消息,说法正确的是(BD)。
A)鼠标的按键消息种类可以从wParam中得到
B)鼠标的按键消息种类可以从message中得到
C)鼠标的位置信息可以从wParam中得到
D)鼠标的位置信息可以从lParam中得到
7.已知语句SetTimer(NULL,1,100,NULL),则以下说法正确的是(AD)。
A)设置了一个定时器,该定时器不能正常起作用
B)设置一个定时器,能够正常起作用
C)设置了一个定时器,时间间隔为1秒
D)设置了一个定时器,时间间隔为100毫秒
8.下列选项中属于WindowsGDI资源的是(ABC)。
A)位图B)画笔C)字体D)窗口
9.能用于绘制直线的函数为:
(AB)
A)LineToB)PolylineC)ArcD)PolyBezier
10.画笔的线型包括:
(ABD)
A)实线B)点划线C)波浪线D)虚线
11.创建画刷的函数有:
(ABC)
A)CreateHatchBrushB)CreateSolidBrush
C)CreatePatternBrushD)CreateLogicBrush
12.在Windows消息机制中,消息系统3大关键要素是(ABC)。
A)消息队列B)消息循环
C)消息处理函数D)消息映射
13.下列哪种情况下系统可能向窗口发送WM_PAINT消息?
(BCD)
A)窗口最初创建时
B)窗口移动后部分区域由不可见变为可见
C)窗口大小改变后
D)滚动条滚动后
14.匈牙利表示法的变量一般分为哪几个部分?
(ABC)
A)属性(例如g_)B)类型
C)描述D)后缀
15.下列选项中,可以用Windows句柄标识的有(ABD)。
A)窗口B)文件C)消息D)字体
16.关于Windows句柄,下列说法正确的是(AD)。
A)每个运行着的Windows程序都有对应的Windows实例句柄
B)同1个Windows程序打开多次时,对应同1个实例句柄
C)1个Windows实例句柄只能对应1个窗口句柄
D)1个Windows实例句柄可以对应多个窗口句柄
三、名词解释
1、事件:
可能触发计算机程序做出相应反应的刺激
2、句柄:
为了区别于普通变量的标识,Windows把这种复杂对象的标识叫做句柄
3、消息:
为了描述事件的各种信息(例如,何时何地发生了何种事件等),Windows定义了一个结构,这个结构就叫做”消息”
4、Windows的API函数:
由操作系统提供的,用户可以使用的函数就叫做API
5、WindowsSDK程序:
使用软件开发工具包开发出来的Windows应用程序
6、资源:
资源就是一种可供Windows应用程序利用,可单独编辑,并可动态加载的数据
7、图象设备接口(GDI):
Windows把用于改变DC属性的操作,即与绘图相关的操作都制作成函数,这些函数的集合就叫做图形设备接口
8、CDC类:
在面向对象程序设计思想中,把DC和GDI函数封装到一起形成CDC类
9、回调函数:
系统调用用户编写的函数过程叫做“回调”,所以这种被系统调用的函数也叫做“回调函数”
10、无效显示区:
在有效提高拆分窗口显示更新效率的方法中,程序只重绘必须重绘的区域
11、控件:
Windows设计了一些具有图形外观的程序实体,这些程序实体在鼠标或键盘的作用下会使程序出现不同的响应,这些可以接收或者产生事件的程序实体就叫做控件
12、类信息表:
MFC程序在不同的场合下还经常用到类的其他信息,于是MFC就把这些信息统统都放在映射表项中,并把它叫做类消息表
13、消息循环:
while(GetMessage(&msg,NULL,NULL,NULL))
{TranslateMessage(&msg);
DispatchMessage(&msg);}
四.填空题
1、在MFC中,用户可以通过项目工作区窗口的ResourceView视图来查看资源。
2、一个单文档的MFC应用程序框架一般包括5个类:
应用程序类、框架窗口类、视图类、文档类和文档模板类。
3、Windows是一个基于消息的消息驱动系统。
4、项目工作区文件的扩展名是dsw。
5、MessageBox函数弹出一个小的对话框向用户显示短信息,并将用户最终的选择返回给调用者。
6、在通常情况下,视图派生类的成员函数中通过调用GetDocument函数得到当前文档对象的指针。
7、Windows程序中的消息有窗口消息、命令消息和控件通知消息三种类型。
8、MFC中的集合类包括数组、列表(链表)、映射(顺序可变)。
9、在进行绘图时,画刷用于指定图形的填充样式,画笔用于指定图形的边框样式。
10、用户按下键盘按键并放开的过程中,将产生至少三条消息:
WM_KEYDOWN,WM_CHAR,WM_KEYUP。
11、WindowsAPI中API的中文译文是应用程序接口。
12、MFC的中文译文是微软基础类库。
13、GDI的中文译文是图形设备接口。
14、全局函数AfxGetApp()可以得到CWinApp应用类指针。
15、MFC中可自动重绘的绘图代码一般位于项目的视图类的OnDraw()函数中。
16、在视图中,GetDocument()函数可得到对应的文档对象指针。
17、在文档中,GetFirstviewPosition()和GetNextview()配合可用来遍历所有和文档关联的视图。
18、在MFC中,用CRect类来描述一个矩形区域的大小。
19、在任何时刻设备环境中必须有一支画笔,并且只能有一支。
因此在使用自己定义的画笔时,要使用CDC的函数把默认画笔替换为自己定义的画笔,这个函数是SelectObject()。
20、MFC的缺省的映射模式是MM_TEXT,对应的单位为像素。
21、在视图类中为了访问与视图关联的文档对象中数据,应该先调用GetDocument()函数得到相关联文档对象指针。
22、利用MFCAppWizard可以生成SDI界面、MDI界面和基于对话框界面的程序。
23、在框架窗口中,GetActiveDocument()函数可得到当前活动文档指针,GetActiveView()函数可得到当前活动视指针。
24.MFC对话框类的基类是CDialog,用户自定义对话框类都是从它派生而来。
25.Windows系统是一个消息响应事件驱动的操作系统,消息是应用程序与操作系统交互的手段。
26.GetMessage()被用来从消息队列获取消息,
27.函数TranslateMessage()用来把键盘消息转换为字符消息,函数DispatchMessage()用来向系统派送消息。
五、选择填空题(每空1分,共15分)
1、B代表窗口客户区的显示设备上下文,C代表整个窗口的显示设备上下文。
A、CPaintDCB、CClientDCC、CWindowDCD、CMetaFileDC
2、消息循环的处理过程如下:
A函数不断侦察应用程序的消息队列,若队列为空,该函数一直运行,不返回;一旦发现队列不为空,便取出一条消息,把它拷贝到msg结构变量中,同时该函数返回TRUE;得到消息msg后,B把来自键盘的命令翻译成WM_XXX消息命令形式。
E函数通知Windows把每个消息分发给相应的窗口函数。
应用程序并不直接调用窗口函数,而由Windows根据消息去调用窗口函数,因此,窗口函数经常被称为回调函数。
A、GetMessage()B、translateMessage()C、PostMessage()
D、SendMessage()E、DispatchMessage()
3、滚动条类CScrollBar的成员函数规定了滚动条的操作。
设置滚动条的范围使用C函数,设置滚动块的位置使用E函数,获取滚动块的当前位置使用F函数。
A、SetPosB、SetRangeC、SetScrollRangeD、GetPos
E、SetScrollPosF、GetScrollPosG、GetScrollRange
4、所有的文档类都派生于C,所有的视图类都派生于