华为面试题汇总 下载本文

C. 《C++ Primer》 D. 《Effective C++》

13. 当调用Windows API函数InvalidateRect,将会产生什么消息(A) A. WM_PAINT B. WM_CREATE

C. WM_NCHITTEST D. WM_SETFOCUS

14. 关于virtual void Draw()=0,下面说法正确的有几个(C) (1)它是纯虚函数(对)

(2)它在定义它的类中不能实现(对) (3)定义它的类不可实例化(对)

(4)如果一个类要继承一个ADT类,必须要实现其中的所有纯虚函数(错)//可以不实现,派生之后的类仍旧作为一个抽象类. A. 1 B. 2 C. 3 D. 4

二、不定项选择题:(共6题,每题3分,共18分,多选、错选、漏选均不给分) 1. vector::iterator重载了下面哪些运算符? (ACD) A. ++ B. >>

C. *(前置) D. ==

2. CreateFile( )的功能有哪几个? (AB ) A. 打开文件 B. 创建新文件 C. 文件改名 D. 删除文件

3. 下面哪些是句柄(HANDLE)? (ABCD ) A. HINSTANCE 实例句柄B. HWND 窗口句柄 C. HDC 设备描述符号句柄 D. HFONT 字体句柄

4. 下面哪些不是OpenGL标准几何元素的绘制模式? (A ) A. GL_FOG B. GL_LINE_STRIP C. GL_POINTS D. GL_TRIAN 第24/28页 GLE_FAN

5. 下面哪些运算符不能被重载? (ABD ) A. 做用域运算符“::” B. 对象成员运算符“.” C. 指针成员运算符“->” D. 三目运算符“? :”

6. 下面哪些人曾参与了世界上第一个C++编译器的开发? ( ) A. Bill Gates B. Stanley Lippman

C. Anderson Hejl不能骂人erg D. Bjarne Stroustrup 7. 以下说法正确的是? ( ABC)

A. 头文件中的 ifndef/define/endif 是为了防止该头文件被重复引用。

B. 对于#include ,编译器从标准库路径开始搜索 filename.h 对于#include “filename.h” ,编译器从用户的工作路径开始搜索 filename.h C. C++语言支持函数重载,C语言不支持函数重载。函数被C++编译后在库中的名字与C 语言的不同。假设某个函数的原型为: void foo(int x, int y); 该函数被C编译器编译后在库

中的名字为_foo,而C++编译器则会产生像_foo_int_int之类的名字。C++提供了C连接交换指定符号extern“C”来解决名字匹配问题。

D. fopen函数只是把文件目录信息调入内存。//错,fopen是把整个文件读入内存 三、填空题:(共8题,每题3分,共24分)

1. 一个大小为320 X 192,颜色为灰度索引色的设备相关位图有______字节。如果此位图颜色为24位真彩色,则它的大小有______字节。

2. Windows API的中文意义是____ windows应用程序接口___。 3.

计算反正弦的库函数是__asin()____;计算浮点数绝对值的库函数是__fabs()____;计算浮点数n次方的库函数是__pow()____;将浮点数转化为字符串的库函数是___fcvt()___。 4. 如果i等于5,那么( ++i ) - -的返回值是__6__。

5. API LoadBitmap()的功能是从__指定的模块和或应用程序实例__中读取位图数据到内存。 6. new和__delete___对应,malloc和_free___对应,他们之间_

不能__交叉混用。calloc的功能是__为数组动态分配内存___,realloc的功能是_改变原有内存区域的大小_。 7.

SendMessage和PostMessage都会向窗体发送一个消息,但SendMessage__将一条消息发送到指定窗口,立即处理__而PostMessage__将一条消息投递到指定窗口的消息队列,不需要立即处理___。

8. 输出指定圆心、半径、边数的圆上的点: const int nCount = 12; const double dOrgX = 5.0, dOrgY = 3.0;

const double dRadius = 2.0; for( int i = 0; i < nCount; i++ ) {

double dAngle = M_PI * 2.0 / (double)nCount * i;

cout << \第\点:X = \endl; }

三、判断题:(共12题,每题2分,共24分) 1. 一个类必须要有一个不带参数的构造函数。 错 2. 你不能写一个虚的构造函数。 对

3. 类里面所有的函数都是纯虚函数时才是纯虚类。 错

4. const成员函数对于任何本类的数据成员都不能进行写操作。 对 5. 函数中带默认值的参数必须位于 带默认值的参数之后。 对

6. char *p = \错 7. cout << \对

8. stl::list不支持随机访问叠代器。 对 9. stl::vector的效率比stl::list高。 错

10. VC和VC++是一回事,而VC++是一种比C++更难一些的语言。 错 11. 理论上,new和malloc造成的内存泄露都会由操作系统回收。 错 12. 在C++中struct和class的差别很大,所以从语法上不能混用。对 四、简述题(共3题,每题5分,共15分)

1. 请简述PeekMessage和GetMessage的区别。 答:

Peekmessage和Getmessage都是向系统的消息队列中取得消息,两个函数的不同在于取