windows程序设计习题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1:C语言的入口函数是哪个?分别写出各个参数的作用。

int main(int argc, char* argv[])
argc是命令行总的参数个数;
argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数是命令行后面跟的用户输入的参数。

2:MFC使用向导生成对话框应用程序,会自动生成三个类,如:CAboutDlg、CDemoApp、CDemoDlg,请分别说明三个类的作用?以及三个类之间的关系。

创建典型的对话框程序(示例)后,会出现如下几个类:
CAboutDlg:关于版本对话框控制类;
CDemoApp:应用程序管理类;
CDemoDlg:对话框管理类。

其中,后两个类是根据项目名称而定的,规则是:C+项目名称+App(或Dlg)
3:PostMessage与SendMessage的区别。

SendMessage 函数功能是,将指定的消息发送到一个或多个窗口。

此函数为指定的窗口调用过程处理程序,直到过程处理函数处理完消息再返回。

PostMessage 函数功能是,将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。

4:Windows系统提供了一个定时响应的消息—WM_TIMER,该消息的名称是什么?SetTimer()函数与KillTimer()函数的作用是?
WM_TIMER 定时器消息;SetTimer() 设置定时器;KillTimer() 销毁定时器
5:什么是指针?什么是句柄?描述句柄与指针的区别?
指针:内存单元的编号也叫做地址。

既然根据内存单元的编号或地址就可以找到所需的内存单元,所以通常也把这个地址称为指针。

句柄,是整个windows编程的基础,一个句柄是指使用的一个唯一的整数值,是指一个四字节长的数值,用于标志应用程序中不同的对象实例。

区别:
句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。

6:什么是消息?什么是事件驱动程序?
消息:在Windows中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows应用程序都是消息驱动的。

事件驱动:简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数).当然事件不仅限于用户的操作. 事件驱动的核心自然是事件。

7:代码规范是程序编写的重要准则,请用你的话说明一下什么是代码规范。

代码规范:是一种编程时的命名规范。

基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。

命名要基于容易记忆、容易理解的原则。

需要大家自己理解。

8:使用类向导生成的对话框工程中,自动生成三个类,请写出这三个类的名称,并说明其含义。

CAbout:关于对话框管理类;
C+工程名+App:应用程序管理类;
C+工程名+Dlg:对话框管理类;
9:写出鼠标左键按下与右键按下时截获的消息。

鼠标左键按下
1.WM_LBUTTONDOWN 左键按下消息
2.WM_LBUTTONUP 左键抬起消息
鼠标右键按下
1.WM_RBUTTONDOWN 右键按下消息
2.WM_RBUTTONUP 右键抬起消息
10:在图形与文字绘制时,需要捕获的消息是哪个?需要在此消息的什么位置(哪两个函数之间)加入绘制图形的代码?
绘制文字时,需要捕获WM_PAINT消息,需要在此消息下的BeginPaint()函数与EndPaint()消息之间加入图形、文字的绘制。

11:在过程处理函数中,如何获得鼠标按下时光标的位置坐标,写出两种方法。

方法一:
HIWORD(lParam)为鼠标的Y值
LOWORD(lParam)为鼠标的X值
方法二:
GetCursorPos 函数,作用是获取光标的位置,以屏幕坐标表示。

12:填写消息机制原理图中画横线部分的内容。

(1)
(1分)
(2)
(1分)
(3)
(1分)
(4)
(2分)
(1)CreateWindow()
(2)UpdateWindow()
(3)ShowWindow()
(4)GetMessage()
13:已知下面的相关函数描述,完成绘制红色矩形框的程序。

创建画刷的函数是 HBRUSH CreateSolidBrush(COLOREF corlor);
选择绘图对象的函数是HGDIOBJ SelectObject(HDC hdc,HGDIOBJ hObj);
画矩形的函数是Rectangle(HDC hdc,int left,int top,int right,int bottom); 完成下面的代码片段。

HBRUSH ____(空1)_____ =_____(空2)______ (RGB(255,0,0));
HBRUSH hOldBrush = (____空3____) ____(空4)____ (hdc,hBrush);
Rectangle(hdc,50,50,400,400);
____(空5)______(hdc,hOldBrush);
DeleteObject(hBrush);
空1:hBrush
空2:CreateSolidBrush
空3:HBRUSH
空4:SelectObject
空5:SelectObject
14:对话框有两种模式,分别是什么?它们之间的区别是什么?
对话框窗口分为两种:模式对话框窗口与无模式对话框窗口。

模式对话框窗口也称为模态对话框窗口,是指用户在Win32应用程序的对话框中,想要对对话框以外的应用程序进行操作时,必须先对该对话框进行响应,如单击【确定】或【取消】按钮等操作,将该对话框关闭。

相对应的另一个对话框是无模式对话框,即可以在不关闭当前的对话框窗口的情况下操作其他窗口。

15:已知鼠标移动的消息是WM_MOUSEMOVE,绘图消息的是WM_PAINT,如果想实现鼠标移动的时候,在窗口中显示鼠标的光标位置,需要完成的代码如下,请填写空白区域。

注意:代码中省略号部分不要求填写,是省略的代码。

(5分)
//全局变量
char szBuf[512]

//窗口过程处理函数;
LRESULT CALLBACK WinProc(_______空1_______, UINT message, WPARAM wParam, LPARAM ________空2________)
{
……
int x,int y;
HDC hdc;
switch(message)
{
case WM_PAINT:
hdc = ……
……
……
break;
case WM_MOUSEMOVE:
x =LOWORD(________空3___________);
y=HIWORD(_________空4__________);
sprintf(szBuf,”%d,%d”,x,y);
InvalidateRect(______空5________, lpRect, NULL );
break;
……
}
……
}
空1 :HWND hWnd
空2 :lParam
空3 :lParam
空4 :lParam
空5 :hWnd
16:描述句柄与指针的区别。

句柄,是整个windows编程的基础,一个句柄是指使用的一个唯一的整数值,是指一个四字节长的数值,用于标志应用程序中不同的对象实例,如,一个窗口,按钮,图标,滚动条,输出设备,控件或者文件等。

应用程序能够通过句柄访问相应的对象的信息。

句柄不是一个指针,程序不能利用句柄来直接阅读文件中的信息。

17:本程序通过HPEN实现了图形绘制,如下图所示,其绘制步骤为:1)创建画笔;
2)选入画笔;
3)绘图;
4)选出画笔;
5)删除画笔。

通过如上五个步骤实现图形的绘制功能,绘制的内容为红色平行线,如下图所示:
参数函数列表:
创建画刷:CreateSolidBrush(RGB(255,0,255));
选入、选出画刷:SelectObject
绘制直线:MoveToEx(int x, int y)、LineTo(int x, int y)
删除画刷:DeleteObject
注意:画笔选入选出时,要强制类型转换为HPEN类型。

画刷句柄:HBRUSH
HPEN hPen= CreatePen( PS_SOLID,3,RGB(255,0,0));
HPEN hOldPen = (HPEN)SelectObject(hdc,hPen);
MoveToEx(hdc,100,50,NULL);
LineTo(hdc,200,300);
SelectObject(hdc,hOldPen);
DeleteObject(hPen);
18:消息循环就是程序的发动机,分别写出TranslateMessage及DispatchMessage的作用。

TranslateMessage():该函数将虚拟键消息转换为字符消息。

字符消息被寄送到消息队列里,当下一次线程调用GetMessage或PeekMessage时被读出;
DispatchMessage():该函数分发一个消息给窗口程序。

通常消息从GetMessage 函数获得。

消息被分发到回调函数(过程处理函数)。

19:用你的话描述一下什么是代码规则?并举出几个实例。

20:用你的话描述一下消息与事件的关系。

所谓事件驱动,简单地说就是你点什么按钮(即产生什么事件),电脑执行什么操作(即调用什么函数).当然事件不仅限于用户的操作. 事件驱动的核心自然是
事件。

消息:在Windows中发生的一切都可以用消息来表示,消息用于告诉操作系统发生了什么,所有的Windows应用程序都是消息驱动的。

消息与事件之间的关系:
事件触发消息,消息传递事件。

21:窗口关闭的时候产生的消息有哪些?分别描述作用?
产生的消息有三个:
WM_CLOSE
WM_DESTROY
WM_QUIT
WM_CLOSE 用户试图关闭窗口的时候系统发送该消息。

WM_DESTROY 用户关闭窗口时候,系统发送WM_CLOSE消息之后,系统发送的关闭窗口的消息。

WM_QUIT当应用程序调用PostQuitMessage函数时生成此消息,此消息产生后,会将GetMessage函数的返回值改变为0.
22:窗口创建的过程(文字描述即可)?
1.设计一个窗口风格;
2.注册窗口类;
3.创建窗口;
4.显示及更新窗口;
5.*进入消息循环(扩展)。

23:本程序通过HBRUSH实现了图形绘制,如下图所示,其绘制步骤为: 1)创建画刷; 2)选入画刷; 3)绘图; 4)选出画刷; 5)删除画刷。

通过如上五个步骤实现图形的绘制功能,绘制的内容为一个长方形,一个圆形,长方形的颜色为绿色,圆的颜色为红色。

参数函数列表:画刷句柄:HBRUSH 创建画刷:CreateSolidBrush(RGB(255,0,255)); 选入、选出画刷:SelectObject 绘制矩形: Rectangle(HDC hdc, int nLeftRect, int nTopRect, int nRightRect, int nBottomRect); 删除画刷:DeleteObject 注意画刷选入选出时,要强制类型转换为HBRUSH类型。

绘制矩形:
HBRUSH hBrush =CreateSolidBrush(RGB(0,255,0));
HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc,hBrush);
Rectangle(hdc,50,50,150,150);
SelectObject(hdc,hOldBrush);
DeleteObject(hBrush);
绘制圆形:
HBRUSH hBrush =CreateSolidBrush(RGB(255,0,0));
HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc,hBrush);
Ellipse(hdc,200,200,350,350);
SelectObject(hdc,hOldBrush);
DeleteObject(hBrush);
24:编写画矩形函数,要求创建红色画刷,hdc由函数参数传递。

矩形的起点为(100,100),终点为(200,200)。

绘制矩形:
HBRUSH hBrush =CreateSolidBrush(RGB(255,0,0));
HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc,hBrush);
Rectangle(hdc,100,100,200,200);
SelectObject(hdc,hOldBrush);
DeleteObject(hBrush);
25:编写画线函数,要求创建PS_SOLID型画笔,颜色为红色,hdc由函数参数传递。

线的起点为(100,100),终点为(200,200)。

HPEN hPen= CreatePen( PS_SOLID,3,RGB(255,0,0));
HPEN hOldPen = (HPEN)SelectObject(hdc,hPen);
MoveToEx(hdc,100,100,NULL);
LineTo(hdc,200,200);
SelectObject(hdc,hOldPen);
DeleteObject(hPen);
26:本程序通过HBRUSH实现了图形绘制,如下图所示,其绘制步骤为: 1)创建画刷; 2)选入画刷; 3)绘图; 4)选出画刷; 5)删除画刷。

通过如上五个步骤实现图形的绘制功能,绘制的内容为一个正方形,正方形的颜色为蓝色,起点为坐标为100,100,宽与高为150,根据如上要求在空白处填写代码。

Void MyDrawLine(HDC hdc) {
HBRUSH hBrush = CreateSolidBrush(RGB(________1________));
HBRUSH hOldBrush = (HBRUSH)SelectObject(___2____, ___3____);
Rectangle(hdc, ____4___,___5____,___6____,____7___);
SelectObject(___8____, ___9____);
DeleteObject(___10____);
}
0, 0, 255
hdc hBrush
100 100 250 250
hdc hOldBrush
hBrush
27:计算机中显示的图形一般可以分为两大类--矢量图和位图,请分别描述这两种图型的区别。

矢量图使用直线和曲线来描述图形,这些图形的元素是一些点、线、矩形、多边形、圆和弧线等等,它们都是通过数学公式计算获得的。

例如一幅花的矢量图形实际上是由线段形成外框轮廓,由外框的颜色以及外框所封闭的颜色决定花显示出的颜色。

由于矢量图形可通过公式计算获得,所以矢量图形文件体积一般较小。

矢量图形最大的优点是无论放大、缩小或旋转等不会失真。

最大的缺点是难以表现色彩层次丰富的图像效果。

位图,又称光栅图,一般用于照片品质的图像处理,是由许多像小方块一样的像素组成的图形。

由像素的位置与颜色值表示,能表现出颜色阴影的变化。

简单说,位图就是以无数的色彩点组成的图案,当无限放大时会看到一块一块的像素色块,效果会失真。

28:请写入创建画刷时的五个步骤(文字说明即可)。

1)2)3)4)5)
1.创建画刷
2.选入画刷
3.绘图
4.选出画刷
5.删除画刷
29:请写出如下代码的含义。

HBRUSH hBrush = CreateSolidBrush(RGB(255,0,0));
HBRUSH hOldBrush = (HBRUSH)SelectObject(hdc,hBrush);
Rectangle(hdc,50,50,400,400);
SelectObject(hdc,hOldBrush);
DeleteObject(hBrush);
1.创建红色画刷
2.选入画刷
3.绘制350*350的矩形
4.选出画刷
5.删除画刷
30:请简述三种系统刷新请求。

(1)窗口发生变化,窗口的尺寸发生变化、客户区域移动显示或程序通过滚动条滚动窗口等;
(2)窗口覆盖,窗口被其他窗口覆盖、窗口切换焦点或有菜单操作等;
(3)使用系统API,使用系统屏幕刷新函数,如,InvalidateRect和InvalidateRgn等。

31请解释一下WM_KEYDOWN、WM_KEYUP以及WM_CHAR消息的作用,以及区别。

WM_KEYDOWN键盘按下消息
WM_KEYUP 键盘抬起消息
WM_CHAR 当WM_KEYDOWN 被TranslateMessage 函数翻译后产生该消息。

WM_KEYDOWN与WM_KEYUP捕获的按键内容不区分大小写(全部为大写),而WM_CHAR捕获的按键内容区分大小写。

32:鼠标及键盘的消息有哪些?至少写出6个。

鼠标的消息:
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_RBUTTONDBLCLK
WM_MBUTTONDOWN
WM_MOUSEMOVE
WM_MOUSEWHEEL
WM_NCLBUTTONDOWN
WM_NCLBUTTONUP
键盘消息:
WM_KEYDOWN
WM_KEYUP
WM_CHAR
33:鼠标的消息有哪些?写出5个。

鼠标消息:
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_LBUTTONDBLCLK
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_RBUTTONDBLCLK
WM_MBUTTONDOWN
WM_MOUSEMOVE
WM_MOUSEWHEEL
WM_NCLBUTTONDOWN
WM_NCLBUTTONUP
34:已知鼠标点击的消息是WM_LBUTTONDOWN,绘图消息的是WM_PAINT,如果想实现鼠标移动的时候,在窗口中显示鼠标的光标位置,需要完成的代码如下,请填写空白区域。

注意:代码中省略号部分是不要求填写的,省略的代码。

//全局变量
char szBuf[512]
……
//窗口过程处理函数;
LRESULT CALLBACK WinProc(_____空1______hwnd, UINT___空2______,…… , LPARAM lParam)
{
……
int x,int y;
HDC hdc;
switch(message)
{
case WM_PAINT:
hdc = ……
……
……
Break;
case WM_LBUTTONDOWN:
x =LOWORD(_________空3__________);
y=HIWORD(________空4_________);
sprintf(szBuf,”%d,%d”,x,y);
InvalidateRect(______空5_______, lpRect, NULL);
break;
……
}
……
}
空1: HWND空2: message空3: lParam空4: lParam空5: hWnd 35:根据窗口创建的步骤选择相应的代码。

设计一个窗口风格答案 1
显示及更新窗口答案 2
创建窗口答案 3
注册窗口答案 4
进入消息循环答案 5
设计一个窗口风格
– WNDCLASS,
显示及更新窗口
– ShowWindow、UpdateWindow,
创建窗口
– CreateWindow,
注册窗口
– RegisterClassEx,
进入消息循环
– while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); }
36:已知鼠标点击的消息是WM_LBUTTONDOWN,绘图消息的是WM_PAINT,如果想实现鼠标移动的时候,在窗口中显示鼠标的光标位置,需要完成的代码如下,请填写空白区域。

注意:代码中省略号部分是不要求填写的,省略的代码。

(5分)
//全局变量
char szBuf[512]
……
//窗口过程处理函数;
LRESULT CALLBACK WinProc( 空1 hWnd, UINT 空2 ,…… , LPARAM lParam)
{
……
int x,int y;
HDC hdc;
switch(message)
{
case WM_PAINT:
hdc = ……
……
Break;
case WM_LBUTTONDOWN:
x =LOWORD( 空3 );
y=HIWORD ( 空4 );
sprintf(szBuf,”%d,%d”,x,y);
InvalidateRect( 空5 , lpRect, NULL);
break;
……
}
……
}
空3 答案 1
空1 答案 2
空5 答案 3
空4 答案 4
空2 答案 5
空3– lParam, 空1– HWND, 空5– hWnd, 空4– lParam, 空2– message
37:对关闭窗口时产生的消息及解释正确连线。

WM_DESTROY 答案 1
WM_QUIT 答案 2
WM_CLOSE 答案 3
正确答案是:
WM_DESTROY–执行命令,
WM_QUIT–完成命令,
WM_CLOSE–下命令
38:已知下面的相关函数,完成绘制红色矩形框。

请在空白处选择正确的答案。

HBRUSH 空1 = 空
2 (RGB(255,0,0));
HBRUSH hOldBrush = ( 空3 ) 空4 (hdc,hBrush);
Rectangle(hdc,50,50,400,400);
SelectObject(hdc,hOldBrush);
空5 (hBrush);
空4 答案 1
空2 答案 2
空3 答案 3
空1 答案 4
空5 答案 5
空4– SelectObject,
空2– CreateSolidBrush,
空3– HBRUSH,
空1– hBrush,
空5– DeleteObject
39:综合连线
动态库中,“.DEF”文件的作用是答案 1
在MFC框架中,CAboutDlg的管理的是答案 2
执行CDialog::OnOk()会产生什么答案 3
在什么时候会用到WM_PAINT消息答案 4
动态库中,“.LIB”文件的作用是答案 5
GetDC()函数的返回值是答案 6
图片进行放大与缩小时会失真的是答案 7
CPaint的作用是答案 8
PS_SOLID用在答案 9
什么类型的图片占用硬盘空间较小答案 10
动态库中,“.DEF”文件的作用是–作为函数引出接口,
在MFC框架中,CAboutDlg的管理的是–关于对话框,
执行CDialog::OnOk()会产生什么–关闭窗口,
在什么时候会用到WM_PAINT消息–图形绘制,
动态库中,“.LIB”文件的作用是–存放伪地址,
GetDC()函数的返回值是–设备环境句柄,
图片进行放大与缩小时会失真的是–位图,
CPaint的作用是–集成了图形绘制方法,
PS_SOLID用在–创建画刷,
什么类型的图片占用硬盘空间较小–失量图
40:请正确连接出,入口函数中各个参数的含义。

函数示例:
int main(int argc, char* argv[])
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
lpCmdLine 答案 1
hPrevInstance的作用答案 2
nCmdShow的作用是答案 3
argc的作用是答案 4
argv的作用是答案 5
hInstance的作用答案 6
lpCmdLine–命令行参数,不包括应用程序的名称。

,
hPrevInstance的作用–父进程实例句柄,
nCmdShow的作用是–确定窗口是否显示的状态标志。

,
argc的作用是–命令行总的参数个数。

,
argv的作用是–参数,具体的参数内容。

,
hInstance的作用–进程实例句柄
41:CreateWindow及CreateWindowEx的作用,具体地讲是____c_____。

选择一项:
a. 创建窗口及创建对话框
b. 创建对话框及创建窗口
c. 同样都是创建窗口
d. 创建窗口及创建子窗口
42:HDC的用途是____c_____。

a. 1.代表画刷 2.代表设备环境句柄
b. 1.代表画刷 2.代表画图时的颜色
c. 1.代表显示设备 2.代表设备环境句柄
d. 1.代表画刷 2.代表显示设备 3.代表设备环境句柄
43:int main(int argc, char* argv[]),其中___a_______
a. arg c是argv的参数个数
b. argc是命令行后面跟的用户输入
c. argv是第是程序的全名
d. arg v是命令行总的参数个数
44:MessageBox函数,标题是“警告”,内容是“你好”,所实现的语句是____c_____。

a. MessageBox(”你好”,”警告”,MB_OK);
b. MessageBox(0,”警告”,”你好”,MB_OK);
c. MessageBox(0,”你好”,”警告”,MB_OK);
d. MessageBox(NULL,”你好”,MB_OK);
45:MFC程序中CPen类的下列说法错误的是_______a______
选择一项:
a. 可以用来创建带颜色的画笔
b. 该类代表了Win32 中的HPEN句柄类型
c. 该类中有可以直接画线的函数
d. 用来创建画笔对象
46:Windows程序中,对于HPEN下列说法错误的是__________d___________
a. 用来创建画笔对象
b. 可以用来创建带颜色的画笔
c. 该类代表了Win32 中的句柄类型
d. 该类中有可以直接画线的函数
47:Windows程序的入口的函数是_____a______
选择一项:
a. WinMain
b. CreateWindow
c. AfxWinMain
d. main
48:Windows程序讲述正确的是_____d____。

选择一项:
a. Windows程序可以运行在linux操作系统下
b. 只能在可视化操作系统下运行的程序
c. 控制台程序不属于Windows程序
d. 可以在Windows系统下运行的程序的统称
49:WM_PAINT消息什么时候响应?___a______。

1、窗口刷新时
2、窗口尺寸发生变化时
3、窗口被其他窗口覆盖
4、窗口最小化时
a. 1、2、3、4
b. 1、2
c. 1、2、3
d. 1、4
50:_______________c_______________是Windows程序的入口的函数。

选择一项:
a. main
b. AfxWinMain
c. WinMain
d. CreateWindow
51:__________c_____________是消息结构数据类型
a. WPARAM
b. message
c. MSG
d. WM_CREATE
52:下列函数在消息循环中被用到的API是______a_____。

选择一项:
a. GetMessage
b. SendMessage
c. CreateWindow
d. LoadString
53:下列哪个不是过程处理函数WndProc的默认参数____d____
a. hwnd;
b. message;
c. wParam;
d. time;
54:下列对句柄的含义理解错误的是_______a_______
选择一项:
a. 句柄是指针
b. 句柄是数值
c. 句柄四个字节
d. 应用程序能够通过句柄访问相应的对象的信息
55:下面不属于Windows数据类型的_______c_______
选择一项:
a. WPARAM;
b. MSG;
c. WM_CREATE;
d. UINT;
56:下面关于MessageBox函数功能说法正确的是_____c______
a. 该函数不能用在C++程序中
b. 该函数调用后一定能够产生一个消息框
c. 该函数属于Windows API之一
d. 该函数属于C标准库函数
57:下面关于TextOut函数的说法错误的是___________b___________
a. TextOut函数是文本输出的API函数
b. TextOut函数不能输出汉字
c. TextOut函数可以在指定的坐标位置输出文字
d. TextOut函数在输出文字的时候需要用到HDC句柄
58:下面关于位图的说法错误的是____b____
a. 位图输出需要用到BitBlt函数;
b. 所有的输出都是位图;
c. MFC中使用位图需要用到CBitmap类;
d. 位图句柄是HBITMAP;
59:下面关于字体的说法错误的是_________d__________
选择一项:
a. 字体句柄是HFONT
b. 控制文字的缩放可以使用字体
c. MFC中使用字体需要用到CFont类
d. 设置文字的颜色需要使用字体
60:下面关于消息循环说明正确的是________d_______。

a. 消息循环语句不可编辑,任何程序都不允许对其进行修改
b. 任何Win32程序都有消息循环
c. 消息循环是死循环语句
d. 消息循环语句负责从消息队列中取消息,并翻译转换键盘消息,然后派遣到窗口过程处理函数中。

61:下面关于画笔的说法正确的是_____d______
a. 以上答案都不对
b. Windows画笔的句柄是PEN
c. Windows画笔创建的时候必须在WM_PAINT消息中
d. Windows画笔创建的时候将用到HDC
62:下面关于绘图函数的说法错误的是__________a__________
a. 画图函数必须用到HANDLE句柄
b. DrawText是输出文本的函数
c. Rectangle 函数可以绘制矩形
d. MoveTo 和 LineTo函数是画线的
63:下面消息中不属于键盘消息的是____________a___________
a. WM_KEY
b. WM_KEYUP
c. WM_KEYDOWN
d. WM_CHAR
64:什么是窗口过程处理函数____d______?
a. 处理窗口内容的函数
b. 处理窗口父子关系的函数
c. 处理窗口大小的函数
d. 处理窗口消息的函数
65:以下关于MFC类库说法错误的是__________b__________
a. MFC把传统的Windows编程规范中的大多数内容封装成为各种类
b. MFC只可以管理窗口,不能管理基本的输入输出和数据存储
c. MFC实现了标准的用户接口,提高了编程效率
d. MFC是一个可以在应用程序中使用的相互关联的类的集合
66:以下选项中哪一个是基于程序与数据分离的设计思想,提出的一种脚本文件___d____
a. 资源
b. 方法
c. 类
d. 脚本
67:使用Windows API所包含的头文件是________a_________
a. windows.h;
b. iostram.h;
c. stdio.h;
d. stdlib.h;
68:关于MFC中CString类,如果定义了变量CString strBuf,下面写法会产生语法错误的是______________b_________________
a. strBuf.Format(”hello”);
b. strBuf/=”Hello”;
c. strBuf += “Hello”;
d. strBuf = “hello ”;
69:关于MFC编辑框控件,下面说法错误的是_________c___________
a. 编辑框控件的操作类是CEdit
b. 编辑框中可以显示多行文本
c. 编辑框中不可以显示滚动条
d. 编辑框中可以输入中文
70:关于WM_TIMER消息下面说法错误的是____a____
a. 该消息是定时产生的,最小时间间隔可以设置到秒级别;
b. 该消息是定时器消息;
c. 可以使用SetTimer()函数来设置定时器消息;
d. 可以使用KillTimer()函数来销毁定时器消息;
71:关于类向导的说法错误的是__________a___________。

a. 所有的消息处理必须通过类向导来添加。

b. 类向导是VC6.0中提供的一个小工具。

c. 类向导可以辅助生成消息的响应处理函数。

d. 类向导可以将资源和类变量进行对应。

72:关闭窗口时,消息“WM_CLOSE”、“WM_DESTROY”与“WM_QUIT”所代表的含义分别是____a____
a. 下命令、执行命令、完成命令;
b. 完成命令、执行命令、下命令;
c. 完成命令、下命令、执行命令;
d. 执行命令、完成命令、下命令;
73:创建画刷的函数是_____b____
a. CreatePen()
b. CreateSolidBrush()
c. CreateWindows()
d. CreateBitMap()
74:创建窗口的函数是_____b____
a. LoadWindows
b. CreateWindow
c. Create
d. CreateWindows
75:发送消息的函数是______b_________。

a. SetMessage
b. SendMessage和PostMessage
c. 只有SendMessage
d. 只有PostMessage
76:句柄的含义错误的是_____c______。

a. 和对象一一对应的32位无符号整数值
b. 操作系统编制的唯一编号
c. 句柄就是指针
d. 用来给系统资源进行编号
77:句柄的含义错误的是___c__。

a. 用来给系统资源进行编号
b. 操作系统编制的唯一编号
c. 句柄就是指针
d. 和对象一一对应的32位无符号整数值
78:可以模拟鼠标消息的函数是___________d___________
a. GetCursorPos;
b. SetCursorPos;
c. Keybd_event;
d. mouse_event;
79:在Windows程序设计中LPCSTR对应的C数据类型是____b____
a. char
b. const char*
c. const char
d. char*
80:在Windows程序设计中LPSTR对应的C数据类型是_____d____。

a. char
b. const char
c. const char*
d. char*
81:在____________c____________时,会响应WM_PAINT消息
选择一项:
a. 该消息只有在窗口尺寸发生变化的时候产生
b. 该消息只有在窗口被遮挡的时候产生
c. 以上说法都不完全正确
d. 只有窗口尺寸发生变化或窗口被遮挡
82:在设计窗口类中,对于WNDCLASSEX结构体的lpszClassName参数描述正确的是____b____
a. lpszClassName参数是背景图标名称;
b. lpszClassName参数是以‘\0’作为结尾的字符串指针;
c. lpszClassName参数是菜单名称;
d. lpszClassName参数是窗口名称;
83:如下变量中,哪一个符合代码规范的定义标准,并能正确诠释全局变量含义的是_________d__________。

a. c_iMax
b. s_iMax
c. m_iMax
d. g_iMax
84:如下对GDI描述不正确的是____a____
a. 用户关心的是具体的物理设备类型;
b. 不需要程序直接访问物理显示硬件;
c. Windows参考设备环境的数据结构完成数据的输出;
d. 程序需要与显示硬件进行通讯时,需要获得相关的设备环境;
85:如果定义了变量CString strBuf,下面操作正确的是____b____
a. strBuf.sprint(“%s”, “Hello”);
b. strBuf.Format(“%s”, ”Hello”);
c. strBuf += 12;
d. pare(” Hello”, 1);
86:对于WM_PAINT消息响应,描述最准确的是___d______。

a. 1、窗口刷新时 2、窗口最小化时
b. 1、窗口刷新时 2、窗口尺寸发生变化时 3、窗口被其他窗口覆盖
c. 1、窗口刷新时 2、窗口尺寸发生变化时
d. 1、窗口刷新时 2、窗口尺寸发生变化时 3、窗口被其他窗口覆盖 4、窗口最小化时
87:常用的显示设备是_______d______
a. 键盘与鼠标
b. 属性窗口
c. 键盘与鼠标
d. 打印机
88:描述资源错误的是____c______
a. 资源是文档
b. 资源是代码
c. 资源也是程序
d. 资源是脚本
89:操作系统编制的唯一编号指的是____d_____
a. 类名称
b. 指针
c. 程序标题
d. 句柄
90:标准C语言入口函数为int main(int argc,char* argv[]),如下选项中,描述不正确的是___c_____
a. argc是命令行总的参数个数;
b. argv[]中存放的是argc个参数;
c. argv[]参数列表中,不包含可执行程序名称;
d. argv是指针数组;
91:根据代码规范中变量命名规则,如下选项中,能正确表示类成员变量的变量名是?____a____
a. m_nValue
b. c_sValue
c. g_bValue
d. s_iValue
92:模式对话框与无模式对话框的描述正确的是_____c______。

a. 模式对话框在退出对话框之前,对话框所在的应用程序能继续执行。

b. 无模式对话框在退出对话框之前,对话框所在的应用程序不能继续执行。

c. 模式对话框在退出对话框之前,对话框所在的应用程序不能继续执行。

d. 模式、无模式对话框在退出对话框之前,对话框所在的应用程序都不能继续执行。

93:注册窗口类的函数名称下列写法中正确的是______c_______
a. Registerclass
b. register
c. RegisterClass
d. RegClassEx
94:消息与事件描述错误有是____d_____
a. 事件触发消息
b. 消息传递事件
c. 消息与事件通常是在过程处理函数中处理
d. 事件与消息仅限鼠标与键盘
95:消息与事件的关系_________d__________
a. 消息触发事件,消息传递事件
b. 事件触发消息,事件传递消息
c. 消息触发事件,事件传递消息
d. 事件触发消息,消息传递事件
96:消息的两个附加参数类型是________d_______。

a. WPARAM 和 LPARAM
b. WPARAM 和lparam
c. wparam 和 lparam
d. wparam 和LPARAM
97:画笔句柄的数据类型是____c____
a. HBRUSH
b. HWND
c. HPEN
d. HINSTANCE
98:窗口响应的第一个消息是____d____
a. WM_PAINT
b. WM_SIZE
c. WM_INITDIALOG
d. WM_CREATE
99:讲述了Windows程序正确的是__________c____________
a. Windows程序必需是由C++程序编写
b. 只要是编写出来的代码都可以称为Windows程序
c. Windows程序就是所有可以在Windows系统下运行的程序的统称
d. 可以在linux操作系统下执行
100:设置文本背景颜色的函数是____d____
a. SetFontColor();
b. SetTextColor();
c. SetWindowColor();
d. SetBkColor();
101:设置文本颜色的函数是______________c____________
a. SetBkColor()
b. SetWindowColor()
c. SetTextColor()
d. SetFontColor()
102:资源的扩展名是_____c_____。

a. .CR
b. .ER
c. .RC
d. .RE
103:错误地讲述了Windows程序的是_____a_______
a. Windows程序必需是由C程序编Windows程序必需是由C程序编写写
b. Windows程序就是所有可以在Windows系统下运行的程序的统称
c. 这里的Windows程序特指窗口程序
d. 不能运行在linux操作系统下执行
104:MFC是__________________________
105:.MFC的英文全称是Microsoft Foundation Class
106:PostQuitMessage函数功能是退出系统
107:DrawText函数的功能是制作文本内容
108:画笔句柄数据类型是HPEN
109:画刷的句柄是HBRUSH
110:CreateWindow()函数的功能是创建窗口
111:CreateFont()函数的功能是创建字体
112:API的英文全称是Application Programing Interface 113:API的中文含义是应用程序编程接口
114:API的英文全称是Application Programming Interface 115:CreatePen函数的功能是创建画笔
116:C程序的入口函数是main
117:DrawText函数的功能是绘制文本
118:HFONT对应的MFC数据类是CFont
119:LineTo的作用是确定直线的结束坐标,并画线
120:LPCTSTR对应的C数据类型是const char
121:LPTSTR对应的C数据类型是char
122:MoveToEx的作用是确定直线起点
123:SendMessage()函数的作用是将指定的消息发送到一个或多个窗口。

124:ShowWindow函数的作用是显示窗口
125:UINT对应的C语的数据类型是unsigned int
126:UpdateWindow函数的作用是更新窗口
127:Windows程序中创建窗口的API是CreateWindow()
128:Windows程序的入口函数名称是WinMain
129:实例句柄就是加载进程映像的基本地址
130:Rectangle()是画矩型的函数
131:使用Windows API时,需要包含的头文件是Windows.h
132:关闭窗口的函数是DestroyWindow
133:几何形状的图形函数有Rectangle()、Ellipse()、Pie()、RoundRect()、Draw3dRect()、DrawFocusRect()、Polygon()、DrawEdge()、PolyPolygon()(最少三个)。

134:创建字体的函数是CreateFont (注:答案前后不要多加空格,只写函数名,并注意大小写)。

135:创建定时器的函数是SetTimer()(注:答案前后不要多加空格,同时需要注意大小写)。

136:创建画笔的函数是CreatePen
137:创建窗口后,调用ShowWindow()函数能够实现窗口显示(注:答案前后不要多加空格,同时需要注意大小写)。

相关文档
最新文档