还剩8页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
vc笔试题及答案
一、文档说明本文档专为学习Visual C++(VC)的读者设计,包含VC核心知识点练习题及参考答案,涵盖语法基础、面向对象、STL、MFC等重点内容题目难度适中,可用于自测、备考或巩固技术能力,建议结合教材同步练习
二、单项选择题(共30题,每题1分)(以下题目均为单选题,每题只有一个正确答案)在VC中,以下哪个关键字用于声明类的成员函数为虚函数?()A.virtual B.override C.abstract D.static关于C++中的引用(reference),以下说法错误的是?()A.引用必须在声明时初始化B.引用可作为函数参数传递C.引用可直接指向NULL D.引用是变量的别名VC中,const int*p与int*const p的主要区别是?()A.前者指向的变量不可修改,后者p本身不可修改B.前者p本身不可修改,后者指向的变量不可修改C.两者无区别,均表示常量指针D.两者均表示指向常量的指针以下哪个是VC中用于动态分配内存的函数?()A.delete[]B.free C.new D.malloc在类的定义中,以下哪个函数是构造函数?()A.~Class B.Class C.void ClassD.Class*ClassVC中,vectorint容器在插入元素时,若超出当前容量,会发生什么?()第1页共10页A.插入失败,返回错误B.自动扩容C.保持原容量D.抛出异常以下关于C++中this指针的说法,正确的是?()A.this指针是类的静态成员B.this指针可在静态成员函数中使用C.this指针指向当前对象的地址D.this指针不可显式访问VC中,#include iostream与#include iostream的主要区别是?()A.前者从系统路径查找,后者从当前项目路径查找B.前者包含C库头文件,后者包含C++库头文件C.前者不可省略,后者可省略D.无区别,均可正常编译关于C++中的多态,以下说法错误的是?()A.多态可通过虚函数实现B.多态需基类指针指向派生类对象C.多态要求派生类重写基类虚函数D.多态会增加程序运行时开销,应避免使用VC中,mapint,string容器的键(key)具有的特性是?()A.可重复,无序B.不可重复,无序C.可重复,有序D.不可重复,有序以下哪个不是C++的存储类别关键字?()A.auto B.register C.static D.constVC中,MFC框架的消息循环主要通过哪个函数实现?()A.BeginPaint B.GetMessage C.PostMessage D.DispatchMessage关于C++中new和delete的使用,以下正确的是?()A.new int返回int*,delete时需加[]第2页共10页B.new int
[5]返回int*,delete时需加[]C.new int返回int,delete时需加[]D.new int
[5]返回int,delete时需加[]VC中,以下哪个类用于处理字符串操作,支持动态增长?()A.CString B.string C.char[]D.wchar_t在VC中,class A{public:virtual voidfunc=0;};定义的是?()A.普通类B.抽象类C.接口类D.派生类VC中,vectorint v={1,2,3,4,5};调用v.erasev.begin+2后,v的元素是?()A.{1,2,4,5}B.{1,3,4,5}C.{1,2,3,5}D.{1,2,3,4}关于C++中的友元函数,以下说法错误的是?()A.友元函数可访问类的私有成员B.友元函数属于类的成员函数C.友元函数可在类外定义D.友元关系不可继承VC中,HANDLE类型主要用于表示?()A.窗口句柄B.内存地址C.文件指针D.字符串句柄以下哪个不是VC中常用的调试技巧?()A.设置断点B.使用cout输出变量值C.单步执行D.直接修改可执行文件VC中,int a=10;int b=a;b=20;执行后,a的值是?()A.10B.20C.不确定D.编译错误关于C++中的static关键字,以下说法错误的是?()A.静态成员变量属于类,而非对象B.静态成员函数可直接访问静态成员变量第3页共10页C.静态成员函数可直接访问非静态成员变量D.静态成员变量需在类外初始化VC中,CFileDialog类的主要作用是?()A.创建文件B.打开/保存文件对话框C.读写文件内容D.显示文件属性以下关于std::shared_ptr的说法,正确的是?()A.多个shared_ptr不可指向同一对象B.引用计数为1时自动释放对象C.不可用于动态数组D.需手动管理内存VC中,#define MAX100与const intMAX=100的主要区别是?()A.#define在编译时处理,const在运行时处理B.#define定义的常量无类型,const定义的常量有类型C.#define会产生多余内存,const不会D.#define可在类中定义,const不可VC中,以下哪个函数用于初始化MFC应用程序?()A.WinMain B.InitInstance C.OnCreate D.PreTranslateMessage关于C++中构造函数和析构函数的执行顺序,以下正确的是?()A.基类构造→派生类构造→派生类析构→基类析构B.派生类构造→基类构造→基类析构→派生类析构C.基类构造→派生类构造→基类析构→派生类析构D.派生类构造→基类构造→派生类析构→基类析构VC中,CView类在MFC中的作用是?()A.窗口容器B.视图显示C.消息处理D.数据存储第4页共10页以下哪个STL容器适合频繁插入/删除操作?()A.vector B.list C.deque D.setVC中,int a=5;int*p=a;执行*p=10;后,a的值是?()A.5B.10C.不确定D.编译错误关于VC中异常处理,以下说法正确的是?()A.try块中必须有catch块B.catch块只能捕获int类型异常C.throw语句可抛出任意类型数据D.try和catch必须成对出现
三、多项选择题(共20题,每题2分)(以下题目为多选题,每题至少有两个正确答案,多选、少选均不得分)VC中,以下属于C++面向对象特性的有?()A.封装B.继承C.多态D.泛型关于VC中的CString类,以下说法正确的有?()A.支持动态内存管理B.可直接与C风格字符串转换C.重载了+运算符用于拼接D.是MFC中专用的字符串类VC中,new操作可能抛出的异常类型有?()A.std::bad_alloc B.std::out_of_rangeC.std::overflow_error D.不抛异常(取决于编译器)VC中,以下属于MFC窗口类的有?()A.CWnd B.CFrameWnd C.CDialog D.CViewC++中,关于virtual函数的说法,正确的有?()A.基类虚函数在派生类中可重写B.虚函数表(vtable)是实现多态的基础C.静态成员函数不能是虚函数D.构造函数可作为虚函数VC中,vector容器的成员函数有?()第5页共10页A.push_back B.pop_back C.insert D.eraseVC中,以下关于指针和引用的区别,正确的有?()A.引用声明时必须初始化,指针可后初始化B.引用不可指向新对象,指针可重新指向C.引用占用存储单元,指针也需占用存储单元D.引用是变量的别名,指针是地址变量VC中,HINSTANCE类型可用于表示?()A.实例句柄B.模块句柄C.窗口句柄D.资源句柄C++中,以下哪些属于存储持续时间?()A.自动存储B.静态存储C.动态存储D.线程存储VC中,MFC消息映射机制的组成部分有?()A.BEGIN_MESSAGE_MAP B.ON_COMMAND C.AFX_MSG D.END_MESSAGE_MAP关于VC中const_cast运算符的作用,正确的有?()A.移除变量的常量性B.可用于指向常量的指针C.可用于指向常量的引用D.操作后可修改原变量值VC中,std::map与std::unordered_map的区别有?()A.map有序,unordered_map无序B.map基于红黑树,unordered_map基于哈希表C.map插入效率高于unordered_map D.map支持迭代器遍历,unordered_map不支持VC中,以下哪些属于C++11的新特性?()A.范围for循环B.智能指针(unique_ptr/shared_ptr)C.右值引用D.auto类型推导VC中,CFile类用于处理文件操作,其成员函数包括?()第6页共10页A.Read B.Write C.Open D.Close关于VC中delete和delete[]的区别,正确的有?()A.delete用于释放单个对象,delete[]用于释放数组B.delete调用对象的析构函数,delete[]也调用析构函数C.delete释放指针指向的内存,delete[]释放数组首地址的内存D.对非数组指针使用delete[]会导致未定义行为VC中,CWnd类的成员函数有?()A.Create B.ShowWindow C.OnPaint D.GetDlgItemC++中,关于this指针的说法,正确的有?()A.每个对象的this指针指向自身B.this指针是成员函数的隐含参数C.this指针可在静态成员函数中使用D.this指针不可修改VC中,std::vector在以下哪些情况下会触发扩容?()A.调用push_back时容量不足B.调用reserve时指定容量大于当前容量C.调用insert时插入元素数超过容量D.初始化时指定容量VC中,MFC对话框程序的创建步骤包括?()A.创建对话框模板B.生成对话框类C.重载OnInitDialog初始化控件D.为控件添加消息响应函数关于VC中内存泄漏的说法,正确的有?()A.new分配的内存未释放会导致泄漏B.malloc分配的内存未用free释放会导致泄漏C.MFC中CString可能导致内存泄漏D.使用智能指针可减少内存泄漏风险第7页共10页
四、判断题(共20题,每题1分)(正确的打“√”,错误的打“×”)VC中,class和struct的唯一区别在于默认访问权限()VC中,vectorint v;v.reserve10;调用后,v的大小为10()VC中,static成员函数可以直接访问非static成员变量()VC中,CString类的Format方法可格式化字符串()VC中,new和delete是C++关键字,可直接操作内存()VC中,virtual析构函数的作用是确保派生类对象正确析构()VC中,map容器的find方法返回迭代器,若未找到返回end()VC中,HANDLE和HWND都是句柄类型,可直接转换()VC中,const成员函数内不可修改任何成员变量()VC中,std::shared_ptr的引用计数为0时自动释放对象()VC中,MFC的CWinApp是应用程序类,InitInstance是入口函数()VC中,int a=5;int b=10;中,b引用的是字面量10()VC中,vector的size返回当前元素个数,capacity返回当前容量大小()VC中,CFileDialog的DoModal方法用于显示对话框并返回结果()VC中,#include预处理指令在编译前处理,using namespacestd;可省略std::前缀()VC中,delete p和delete[]p对指向基本数据类型的指针无区别(√/×)第8页共10页VC中,try块中若发生异常,会跳过catch块直接执行finally块(若有)()VC中,CView类是MFC中用于视图显示的基类()VC中,std::string类的c_str方法返回const char*字符串()VC中,this指针在对象构造完成前可用()
五、简答题(共2题,每题5分)简述VC中虚函数(virtual函数)的作用及实现原理简述MFC消息循环的基本流程,说明GetMessage和DispatchMessage的作用
六、参考答案
一、单项选择题1-5:ACACB6-10:BCADB11-15:DBBAB16-20:ABADB21-25:CBBBB26-30:ABBBC
二、多项选择题1:ABCD2:ABCD3:AD4:ABCD5:ABC6:ABCD7:ABD8:ABD9:ABCD10:ABD11:ABCD12:AB13:ABCD14:ABCD15:AD16:ABC17:ABD18:ABC19:ABCD20:ABD
三、判断题1:√2:×(大小为0,容量为10)3:×4:√5:√6:√7:√8:×9:×(可修改mutable变量)10:√第9页共10页11:√12:√13:√14:√15:√16:×(基本数据类型无区别,自定义类型有区别)17:×(C++无finally,可用RAII模拟)18:√19:√20:×
四、简答题虚函数作用及原理作用实现多态,使基类指针/引用调用派生类重写的函数原理编译器为包含虚函数的类生成虚函数表(vtable),存储虚函数地址;对象中包含指向vtable的指针(vptr)调用虚函数时,通过vptr找到vtable并执行对应函数,实现动态联编MFC消息循环流程流程GetMessage从消息队列获取消息→TranslateMessage转换键盘消息→DispatchMessage将消息分发到窗口过程(WindowProc)处理作用GetMessage等待消息并阻塞,确保程序响应外部事件;DispatchMessage调用窗口函数处理消息,实现窗口与用户交互文档说明本文档题目覆盖VC核心知识点,答案简洁准确,适合VC学习者自测实际应用中可结合具体场景调整题目难度和范围第10页共10页。
个人认证
优秀文档
获得点赞 0