VC复习题2011 联系客服

发布时间 : 星期四 文章VC复习题2011更新完毕开始阅读83c64ac0bb4cf7ec4afed0ff

简答题 1、什么是句柄

句柄是一个4字节长的数值,用于标识应用程序中不同的对象和同类对象中不同的实例 2、什么是消息

是描述事件发生的信息(如按下鼠标或键盘),而windows程序设计是针对事件或消息的处理进行。 3、什么是设备的无关性,

设备的无关性就是操作系统屏蔽了硬件设备的差异,因而设备无关性能使用户编程时无需考虑特殊的硬件设置

4、图形设备按口(GDI)

GDI负责系统与用户或绘图程序之间的信息交换,并控制在输出设备上显示图形或文字, 是Windows系统的重要组成部分

5、试描述PAINTSTRUCT数据结构定义 Typedef struct tagPAINTSTRUCT {

HDC hdc;

//设备环境句柄

//一般取真值,表示擦除无效矩形的背景 //无效矩形标识

BOOL fErase; RECT rcPaint; BOOL fRestore;

//系统保留

BOOL fIncUpdate; //系统保留 BYTE rgbReserved[16];//系统保留 }PAINTSTRUCT;

6、试描述获取设备环境的方法

获取设备环境是应用程序输出图形的先决条件,常用的两种方法是调用函数BeginPaint或GetDC 1) 调用BeginPaint函数

应用程序响应WM_PAINT消息进行图形刷新时,主要通过调用BeginPaint函数获取设备环境 hdc=BeginPaint(hwnd,&ps); //ps为PAINTSTRUCT类型结构

定义方式为:PAINTSTRUCT ps;

BeginPaint函数获取的设备环境要用EndPaint函数释放 void EndPaint(HWND hwnd, PAINTSTRUCT &ps) 2) 调用GetDC函数

如果绘图工作并非由WM_PAINT消息驱动,则调用GetDC函数获取设备环境。 hdc=GetDC(hwnd);

由GetDC函数获取的设备环境必须用ReleaseDC函数释放 void ReleaseDC(HWND hwnd 7、映像模式

映像模式定义了将逻辑单位转化为设备的度量单位以及设备的x方向和y方向,程序员可在一个统一的逻辑坐标系中操作而不必考虑输出设备的坐标系情况 8、如何创建一个系统给定的黑色画刷? :

HBRUSH hBr; //hBr为画刷句柄

hBr=(HBRUSH)GetStockObject(BLACK_BRUSH) 9、如何创建一个系统给定的黑色画笔?

使用画笔之前必须事先定义一个画笔句柄。形式如下:

1

HPEN hP;

hP=GetStockObject(BLACK_PEN) 10、什么是位图?

位图是一种数字化的图形表示形式,位图中的每个像素点由位图文件中的一位或多位数据表示。整个位图的信息被细化为每个像素点的属性值

(1) 面向对象程序设计的特点是什么? (2) 构造函数和析构函数有什么作用?

(3) 什么叫拷贝构造函数?拷贝构造函数何时被调用? (4) 什么叫组合类?

(5) 常用的常类型都有哪几种?试分别举例说明。 (6) 什么叫可见性?可见性遵循的一般规则是什么? (7) 什么叫友元函数?什么叫友元类? 选择题

1、下列关于C++标识符的命名不合法的是 C 与C#一样 A. Pad B. name_1 C. A#bc D. _a12 2、若有以下类型标识符定义: ( )D

int x=2; char w='a'; float y=23.45f; double z=45.6712; 则表达式w*x+y-z的结果类型是 A. float B. char C. int D. double

3、对重载函数形参的描述中,错误的是 D 重载是重点 A. 参数的个数可能不同 B. 参数的类型可能不同 C. 参数的顺序可能不同

D. 参数的个数、类型、顺序都相同,只是函数的返回值类型不同 4、以下能正确定义数组并正确赋初值的语句是 D A. int N=5,b[N][N]; B. int a[2]={{1},{3},{4},{5}}; C. int c[2][]={{1,2},{3,4}}; D. int d[3][2]={{1,2},{3,4}};

5、下列给字符数组进行的初始化中,不正确的是 D A. char s1[]=\ B. char s2[3]={'x','y','\\0'}; C. char s3[]={'a','x','y','\\0'}; D. char s4[6]={\

6、通常的拷贝构造函数的参数是 C A. 某个对象名 B.某个对象成员名 C. 某个对象的引用 D.某个对象的指针名 7、关于构造函数特点的描述中,错误的是 A

A. 定义构造函数必须指出类型 (构造函数特点是无返回类型) B. 构造函数的名字与该类的类名相同

C. 一个类中可定义0至多个构造函数 (不写构造函数,系统会自动生成一个空的构造函数)D. 构造函数是一种成员函数 8、下面程序的运行结果为 C

2

#include int add(int a,int b); void main() {

extern int x,y; cout<

int x=20,y=5; int add(int a,int b) { int s=a+b; return s; }

A.20 B.5 C.25 D.编译会提示出错信息 9、关于常成员的描述中,错误的是 B A. 常成员包含常数据成员和常成员函数两种 B. 常数据成员必须是公有的

C. 常数据成员要使用构造函数成员初始化列表进行初始化 D. 常对象只能调用它的常成员函数,不能调用其它的成员函数 10、关于友元函数的描述中,错误的是 B A. 友元函数不是成员函数 B. 友元函数只能访问类中私有成员 C. 友元函数破坏隐藏性,尽量少用

D. 友元函数说明在类体内,使用关键字friend

11、如果有int x,*p; float y,*q;则下面操作正确的是 C A.p=x B.p=q C.p=&x D.p=&y

12、若数组名作实参而指针变量作形参,函数调用时实参传给形参的是 D A. 数组的长度 B. 数组第一个元素的值 C. 数组所有元素的值 D. 数组第一个元素的地址

13、对于动态分配内存空间描述正确的是 D A.使用new运算符分配的内存空间的长度必需是常量 B.delete运算符可以释放动态的存储空间和静态的存储空间 C.由new分配的内存空间是不连续的

D.delete运算符只能释放由new分配的动态存储空间 14、能够释放对象所占资源的是 ( ) A A.析构函数 B.数据成员 C.构造函数 D.静态成员函数

15、虚函数的定义是在基类中进行的,定义时需要冠以关键字 C A.static B.frend C.virtual D.public

16、在C++中串流类是在头文件strstrea.h中定义的,下列不属于串流类的是 ) C

3

A.strstream B.ostrstream C.ofstream D.istrstream

17、应用程序通过句柄访问相应的对象信息,窗口句柄在程序中标记为 HWND 应用程序通过句柄访问相应的对象信息,位图句柄程序中标记为HBITMAP 。 HICON

图标句柄 菜单句柄

HFONT HPEN

字体句柄 画笔句柄

HMENU

VC中存在几种系统定义的消息分类,不同的前缀符号经常用于消息宏识别消息附属的分类,系统定义的消息宏前缀如下:

18、VC中存在几种系统定义的消息分类,不同的前缀符号经常用于消息宏识别消息附属的分类,表示按钮控制消息(A) A、BM B、CB C、DM D、EM

19、Windows应用程序常用消息,产生单击鼠标左键的消息是(A) A WM_LBUTTONDOWN B WM_RBUTTONUP C WM_RBUTTONDBLCLK D WM_LBUTTONUP

20、Windows应用程序常用消息,按下一个非系统键时产生的消息是(B) A WM_RBUTTONUP B WM_KEYDOWN C WM_KEYUP D WM_POPDOWN

21、按下一个非系统键时产生的消息WM_ CHAR,存按键的ASCII码信息的是(C) A、1Param B、WordParam C、wParam D 、ongParam

22、关闭窗口时产生的消息(D) A、WM_KEYDOWN

B、WM_CREAT

C、WM_DESTROY

D、WM_CLOSE

23、由CreateWindow函数发出的消息(B) A、WM_KEYDOWN

B、WM_CREAT

C、WM_DESTROY

4