达内C++培训第三次月考(附答案).doc

上传人(卖家):无敌的果实 文档编号:305608 上传时间:2020-02-26 格式:DOC 页数:32 大小:758KB
下载 相关 举报
达内C++培训第三次月考(附答案).doc_第1页
第1页 / 共32页
达内C++培训第三次月考(附答案).doc_第2页
第2页 / 共32页
达内C++培训第三次月考(附答案).doc_第3页
第3页 / 共32页
达内C++培训第三次月考(附答案).doc_第4页
第4页 / 共32页
达内C++培训第三次月考(附答案).doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、考试场次:2013_09月考_9月29日_C+/.NET/嵌入式 试卷名称:2013年09月_C+_CSD1306 1. 下列不是菜单基本风格的为: A. MF_POPUPB. MF_STRINGC. MF_SEPARATORD. MF_CHECKED正确答案:D 2. 关于用new分配内存空间,以下代码正确的是: A. int x new int;B. int *x = new int;C. int x = new int(10);D. int x = new int10;正确答案:B 3. 有如下类的定义: class A public: void fa() cout “in A fa”

2、endl; virtual void fb()cout “in A fb” endl; ; class B : public A public: void fa() cout “in B fa” endl; void fb() cout “in B fb” fa(); pa-fb(); B. B b; A& pr = b; pr.fa(); pr.fb(); C. A* pa = new B; B* pb = new A; pa-fa(); pb-fb(); D. A a; B b; A& ar = b; B& br = a; ar.fa(); br.fb();正确答案:B 4. 关于Wind

3、ows的字符处理,下列说法错误的是? A. ASC码是最早的编码。 B. DBCS编码中由1个或2个字节表示一个字符。 C. UNICODE编码在WINDOWS平台下,采用2个字节表示一个字符。 D. TCHAR就是宽字节字符,采用UNICODE编码。 正确答案:D 5. 以下有关C+异常机制的讨论中不正确的是? A. C+的异常机制,一方面避免了逐层判断返回值所导致的流程复杂的弊端,另一方面也不会象setjmp/longjmp远程跳转那样使中间对象失去被析构的机会,是一种简洁高效的错误处理机制B. 为了避免不必要的麻烦,通常的做法是抛出匿名临时对象作为异常,并以引用的方式捕获它们C. cat

4、ch子句是依其出现的先后顺序被依次检视的,其中的异常类型应按照先子类后基类的顺序排列D. 异常可以在任何场合下抛出,包括一个类的构造和析构函数正确答案:D 6. Windows中和窗口创建相关的函数是? A. RegisterClassB. CreateWindowExC. ShowWindowD. GetMessage正确答案:B 7. 阅读如下代码,描述错误的为? 创建定时器代码: SetTimer( hWnd, 1, 1000, TimerProc ); A. 此定时器 间隔时间为 1 秒B. 此定时器 触发的WM_TIMER消息由 窗口(hWnd)的窗口处理函数处理C. 定时器的ID为

5、1D. 定时器关闭调用函数 KillTimer( 1 );正确答案:B 8. Windows字符编码方式不包括? A. ASCB. DBCSC. UNICODED. WINCODE正确答案:D 9. 下列说法不正确的是? A. 我们可以使用qtdesigner 设计界面得到.ui的界面文件。B. 界面文件可以通过uic工具转换成.h文件。C. QTime类中有一个信号是timeout()。D. 键盘处理函数中可以得到键盘上那个键被按下。正确答案:C 10. 阅读如下代码: typedef int T;class Vector T* data;/指向保存数据元素的内存区域 int sz;/元素个

6、数 int max;/记录内存区域的空间大小 void expand()/元素满了进行容量的扩展 (空白处) 空白处填上的代码应该是? A. max *= 2;T* t = new Tmax;for(int i=0; isz; i+) ti = datai;delete data;data = t; B. max *= 2;T* t = new Tmax;for(int i=0; isz; i+) ti = datai;delete data;data = t; C. max *= 2;T* t = new Tmax;for(int i=0; imax; i+) ti = datai;dele

7、te data;data = t; D. max *= 2;T* t = new Tmax;for(int i=0; imax; i+) ti = datai;delete data;data = t; 正确答案:B 11. Integer类的后缀自增运算符函数是? A. Integer& Integer:operator+ (void) m_i+; return *this;B. const Integer Integer:operator+ (int) Integer old = *this; m_i+; return old;C. Integer& Integer:operator+ (

8、void) Integer old = *this; m_i+; return old;D. const Integer Integer:operator+ (int) m_i+; return *this;正确答案:B 12. 关于TranslateAccelerator函数理解错误的为:那么,输出应该为: A. 这个函数必须放在GetMessage函数的后面,TranslateMessage函数的前面B. 这个函数首先检查消息是否为WM_KEYDOWN/WM_SYSKEYDOWN消息,如果不是返回非0C. 一旦确定为 加速键 将发送 WM_COMMAND消息D. 一旦确定为 加速键 将返回

9、非0正确答案:B 13. 下列不是Windows常见消息的是? A. WM_CREATEB. WM_SIZEC. WM_ONCOMMANDD. WM_PAINT正确答案:C 14. 有如下类的定义: class Emp string name; int age; public: Emp(string name=“”, int age=0):name(name),age(age) string getName() return name; int getAge()return age; ; 那么,下列那段代码使用类Emp是正确的:A. Emp e; e.name = “Daniel”; e.ag

10、e = 30; cout e.getName() “,” e.getAge() endl; B. Emp e(“Daniel”, 30); e.age+; cout e.getName() “,” e.getAge() endl; C. Emp *e = new Emp(“Daniel”, 30); cout e.getName() “,” e.getAge() endl; delete e; D. Emp *e = new Emp; cout getName() “,” getAge() endl; delete e;正确答案:D 15. 窗口类的查找过程? A. 首先 查找 系统窗口类,其

11、次 应用程序全局窗口类, 最后 应用程序局部窗口类B. 首先 查找 应用程序全局窗口类 其次应用程序局部窗口类,最后 系统窗口类C. 首先 查找 应用程序局部窗口类 其次应用程序全局窗口类,最后 系统窗口类D. 首先 查找 应用程序局部窗口类 其次系统窗口类,最后 应用程序全局窗口类正确答案:C 16. 阅读以下单例模式的代码 class Example int x; Example() static Example e; Example(const Example&) public: (空白处) ; 那么,空白处的代码应该是? A. static Example& getInstance()

12、 return e; B. Example& getInstance() return e; C. static Example getInstance() return e; D. Example getInstance() return e; 正确答案:A 17. 阅读如下代码:case WM_SYSCOMMAND: if( wParam = SC_CLOSE ) int nRet = MessageBox( NULL, 是否关闭, Infor, MB_YESNO ); if( nRet = IDYES ) PostMessage( hWnd, WM_QUIT, 0, 0 ); else

13、return 0;break;关于这段代码,下列说法错误的是:A. 这段代码是用来关闭窗口的,当点窗口右上角的X时,直接关闭窗口。 B. 这段代码是用来关闭窗口的,当点窗口右上角的X时,弹出窗口可以选择是否关闭。 C. 关闭窗口不一定要使用WM_SYSCOMMAND消息。 D. return0代码的功能是当消息框弹出后,点否不会关闭。 正确答案:A 18. 在大型项目设计时,类的继承层次会相应比较复杂,假设有如下类的继承关系: class Avirtual void m(); class B : public A; class C : public B; class D : public B;

14、 现有一变量的定义如下: A* p = new B; 那么,下列表达式的结果为逻辑真(true)的是:A. typeid(*p) = typeid(A);B. typeid(*p) = typeid(B);C. typeid(*p) = typeid(C);D. typeid(*p) = typeid(D);正确答案:B 19. 关于消息循环描述不正确的为? A. GetMessage只能获取属于本进程的消息。B. TranslateMessage只翻译可见字符的按键消息。C. DispatchMessage根据消息的句柄找到具体的窗口的窗口处理函数。D. PeekMessage为阻塞函数。正

15、确答案:D 20. 下列关于windows应用程序描述不正确的是? A. 控制台程序 DOS程序,本身没有窗口,调用windows的DOS窗口。B. 窗口程序 拥有自己的窗口,通过自己窗口和用户进行交互操作。C. 静态库程序 存放代码和数据的程序,拥有入口函数可以运行。D. 动态库程序 存放代码和数据的程序,无法独立运行。正确答案:C 21. 关于创建窗口的描述不正确的为? A. 子窗口的创建 只需指明 WS_CHILD|WS_VISIBLE即可。B. 窗口类的附加数据缓冲区是基于该窗口类创建的所有窗口共享的缓冲区。C. 窗口的附加数据缓冲区是窗口自己私有的缓冲区。D. 创建窗口时 必须指明是

16、基于 哪个 窗口类创建。正确答案:A 22. 下列命令编译连接程序的命令错误的为? A. CL.EXE /c xxx.cB. LINK.EXE xxx.obj xxx.dllC. RC.EXE xxx.rcD. CL.EXE xxx.c /c正确答案:B 23. 阅读如下代码: #include using namespace std; class Sample int x; public: Sample(int x=0):x(x) void setX(int x)this-x = x; int getX()constreturn x; void show()constcoutx=xendl;

17、 ; void fc(const Sample& s) s.setX(300); s.show(); int main() 关于本段代码,下列说法正确的是? A. 编译可以通过,运行没有输出。B. class Sample中的代码编译不能通过C. 函数fc代码编译不能通过D. 主函数main需要返回正确答案:C 24. 有关运算符友元和成员函数实现的讨论,以下说法中不正确的是? A. 如果双目运算符的左操作数,或单目运算符的操作数,为基本类型或难以扩展的类类型,则应选择以友元方式实现该运算符函数B. 如果为某个特定的运算符同时提供了基于友元和成员函数的两种实现,则只有以函数调用语法使用该运算符

18、,才能凭借作用域隐藏原则而避免冲突,使用中序语法则可能产生歧义C. 所有可以成员函数方式实现的运算符也都可以友元函数方式实现D. 如果某个双目运算符的左右操作数都是类类型的对象,则该运算符函数可能既是左操作数类型的成员,同时也是右操作数类型的友元正确答案:C 25. 关于拷贝构造函数,以下说法错误的是? A. 参数(对象)值传递时,调用拷贝构造B. 函数返回临时值(对象),调用拷贝构造C. 用相同类型的对象做参数,构造新对象时,调用拷贝构造D. 引用传递调用拷贝构造,地址传递不调用正确答案:D 26. Windows应用程序中不包括的是? A. 控制台程序B. 窗口程序C. Lib.so类型的

19、程序D. 库程序正确答案:C 27. 下列关于键盘消息描述错误的为? A. WM_KEYDOWN和WM_KEYUP未必成对出现B. WM_KEYDOWN和WM_KEYUP的附带信息中包含被点击的按键的虚拟键码C. WM_CHAR消息的附带信息中包含被点击按键的ASCII字符编码D. WM_CHAR不是按键 按下时产生的 而是TranslateMessage函数发送的正确答案:C 28. 下面qt中使用c+方式变成代码说法错误的是? A. 我们的类的实例要做成可视化的界面 则这个类要公共继承自QWidget或者QWidget的子类。B. 头文件和实现文件要分离。C. 一般界面中的组件都封装成自定

20、义类的属性。D. 自定义的信号和槽要起作用 直接在类中定义和实现这些函数即可 不需要加任何修饰。正确答案:D 29. 下列描述不正确的为? A. PostMessage将消息投入消息队列B. SendMessage发出的消息,直接找到窗口处理函数C. WM_QUIT不能进入队列D. 自定义消息,由程序员 定义,发送,并处理。正确答案:C 30. 当前计算机的主流编码方式为? A. ASC码B. ASCII码C. DBCS码D. UNICODE 码正确答案:C 31. 下列不属于资源的为: A. 菜单B. 热键C. 对话框D. 位图正确答案:B 32. 以下不是CreateWindowEx函数中

21、参数的是? A. DWORDdwExStyle窗口的扩展风格 B. LPCTSTRlpClassName窗口类名 C. HWNDhWndParent父窗口句柄 D. WNDPROClpfnWndProc窗口处理函数 正确答案:D 33. 假设Base类派生了Derived类,FileException和MemoryException都是异常类,则以下虚函数的声明中哪些可以构成正确的覆盖? A. Base* Base:copy (Base*);Base* Derived:copy (Derived*);B. Base* Base:copy (Base* = NULL) throw (FileEx

22、ception, MemoryException);Derived* Derived:copy (Base*) throw (MemoryException);C. bool Base:print (ostream&);void Derived:print (ostream&);D. void Base:eval (void) const;void Derived:eval (void);正确答案:B 34. 阅读以下代码: class Human public: void move() coutmovingendl; virtual void attack() cout attack end

23、l; ; class FootMan : public Human public: void move() cout action endl; virtual void attack() cout FootMan attack move(); ph-attack(); delete ph; 请问执行的结果是?A. moving和FootMan attackB. moving和attackC. action和FootMan attackD. action和attack正确答案:A 35. 下列哪个消息可以用于 调整子窗口的大小 A. WM_CREATEB. WM_SYSCOMMANDC. WM_

24、SIZED. WM_PAINT正确答案:C 36. 阅读如下代码: #include using namespace std; /定义类Person class Person string name; int age; public: void show() cout name , age endl; ; int main() Person p; p.name = Daniel;/1 p.age = 30;/2 p.show();/3 编译时出现错误的是: A. 没有错误B. 1错误C. 1和2两处错误D. 1,2和3都会出现错误正确答案:C 37. C+中,int是基本数据类型, 如果我们定

25、义一个类来表示一个整数对象的话,类的定义可能如下: class Integer int x; public: Integer(int x=0):x(x) (空白处) ; 下列哪个运算符重载函数放入空白处是错误的:A. friend ostream& operator(ostream&o,const Integer&i)return o(istream&is,const Integer&i)return isi.x;C. friend const Integer operator+(const Integer&i1,const Integer&i2)return i1.x+i2.x;D. con

26、st Integer operator() return x; 正确答案:B 38. String类的实现如下所示:class String public: String (const char* str = NULL) : m_str (strcpy ( new charstrlen (str ? str : ) + 1, str ? str : ) String (void) if (m_str) delete m_str; m_str = NULL; String (const String& that) : m_str (strcpy ( new charstrlen (that.m_

27、str) + 1, that.m_str) const char* c_str (void) const return m_str; private: char* m_str;以下哪个适合作为该类的拷贝赋值运算符函数?A. void String:operator= (const String& that) m_str = new charstrlen (that.m_str) + 1; strcpy (m_str, that.m_str);B. String String:operator= (const String& that) if (&that != this) if (m_str)

28、 delete m_str; m_str = NULL; m_str = strcpy (new charstrlen (that.m_str) + 1, that.m_str); return *this;C. String& String:operator= (String& that) if (&that != this) char* str = strcpy (new charstrlen (that.m_str) + 1, that.m_str); if (m_str) delete m_str; m_str = NULL; m_str = str; return *this;D.

29、String& String:operator= (const String& that) if (&that != this) String temp (that); char* str = m_str; m_str = temp.m_str; temp.m_str = str; return *this;正确答案:D 39. 下列按键按下后不会产生WM_KEYDOWN消息的为? A. CTRL键B. SHIFT键C. ALT键D. A,B,C均可以正确答案:C 40. 下列关于new 和 malloc的说法错误的是:( )A. malloc只负责分配内存空间,并不会调用对象的构造函数,对象

30、销毁时,也不会调用析构函数。B. malloc需要进行类型转换,而new已经把类型转换好了。C. 在C+语言中,在栈中分配内存时,尽量使用new,在堆中分配内容时,使用malloc。D. malloc分配的空间只能由free释放,new分配的空间只能由delete释放。正确答案:C 41. 下列能够编译.rc脚本文件的为? A. CL.EXEB. LINK.EXEC. RC.EXED. NMAKE.EXE正确答案:C 42. 阅读如下代码: class Human string name; int power; public: Human(string n=, int p=0) :name(n

31、),power(p) /拷贝构造函数 Human(const Human& h) cout Human(const Human&), this endl; name = h.name; power = h.power; void show() coutname,power c) cout c; cout endl; ifs.clear (); ifs.seekg (ios:beg); while (c = ifs.get () != EOF) cout c) cout c; ifs.close (); return 0;的输出是?A. abcdea bc deabcdeB. abcdea bc

32、 dea bc deC. a bc deabcdea bc deD. abcdeabcdea bc de正确答案:B 44. 当前计算机的鼠标左键按下的消息(WM_LBUTTONDOWN)的附带参数WPARAM传来的信息为按键状态,不可能传的值为? A. MK_CTRLB. MK_SHIFTC. MK_MBUTTOND. MK_LBUTTON正确答案:C 45. 下列关于窗口类的描述错误的为: A. 不是任何窗口都需要程序员 自己注册窗口类。B. 窗口类分为:系统窗口类,应用程序局部窗口类,应用程序全局窗口类。C. 窗口类是包含了关于窗口各种参数信息的一个数据结构,使用之前必须注册到操作系统中

33、。D. 窗口类的信息中可以不包含 窗口处理函数。正确答案:D 46. #include stdafx.h #include stdio.h HINSTANCE g_hInstance = 0; void f1(HWND hWnd, WPARAM wParam) . . ; void CALLBACK f2(HWND hWnd, UINT uMsg, UINT idEvent, DWORD dwTime) . . ; DWORD CALLBACK f3(LPVOID pParam) . . ; void f4(HWND hWnd) . . ; LRESULT CALLBACK f5(HWND h

34、Wnd, UINT nMsg, WPARAM wParam, LPARAM lParam) switch(nMsg) case WM_CREATE: SetTimer(hWnd, 1, 10, NULL); SetTimer(hWnd, 2, 2000, f2); DWORD nid = 0; CreateThread( NULL,0,f3, NULL, 0, &nid ); break; case WM_DESTROY: PostQuitMessage(0); break; case WM_TIMER: f1(hWnd, wParam); break; case WM_PAINT: f4(h

35、Wnd); break; return DefWindowProc(hWnd, nMsg, wParam, lParam); /注册窗口类 BOOL Register(LPSTR pszClassName, WNDPROC pfWndProc) WNDCLASSEX wce = 0; wce.cbSize = sizeof(wce); wce.cbClsExtra = 0; wce.cbWndExtra = 0; wce.hbrBackground = (HBRUSH)(COLOR_WINDOW+1); wce.hIcon = NULL; wce.hCursor = NULL; wce.hIc

36、onSm = NULL; wce.hInstance = g_hInstance; wce.lpfnWndProc = pfWndProc; wce.lpszClassName = pszClassName; wce.lpszMenuName = NULL; wce.style = CS_HREDRAW | CS_VREDRAW; ATOM nAtom = RegisterClassEx(&wce); if(nAtom = 0) return FALSE; return TRUE; /创建主窗口 HWND CreateMain(LPSTR pszClassName) HWND hWnd = C

37、reateWindow(pszClassName, Main, WS_OVERLAPPEDWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, NULL, NULL, g_hInstance, NULL); return hWnd; void Display(HWND hWnd) ShowWindow(hWnd, SW_SHOW); UpdateWindow(hWnd); void Message() MSG msg = 0; while(GetMessage(&msg, NULL, 0, 0) TranslateMessage(&msg); DispatchMessage(&msg); int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) g_hInstance = hInstance; Register(MAINWND, Ma

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 商业、管理、HR类
版权提示 | 免责声明

1,本文(达内C++培训第三次月考(附答案).doc)为本站会员(无敌的果实)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|