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
中的名字为_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都是向系统的消息队列中取得消息,两个函数的不同在于取