【技术试题】C++开发工程师面试题库 200~250道

199 MFC中SendMessage和PostMessage的区别? 答:PostMessage 和SendMessage的区别主要在于是否等待应用程序做出消息处理。PostMessage只是把消息放入队列,然后继续执行;而SendMessage必须等待应用程序处理消息后才返回继续执行。这两个函数的返回值也不同,PostMessage的返回值表示PostMessage函数执行是否正确,而SendMessage的返回值表示其他程序处理消息后的返回值。 202.改错 #include #include class CBuffer { char * m_pBuffer; int m_size; public: CBuffer() { m_pBuffer=NULL; } ~CBuffer() { Free(); } void Allocte(int size) (3) { m_size=size; m_pBuffer= new char[size]; } private: void Free() { if(m_pBuffer!=NULL) { delete m_pBuffer; m_pBuffer=NULL; } } public: void SaveString(const char* pText) const { strcpy(m_pBuffer, pText); } … Continue reading “【技术试题】C++开发工程师面试题库 200~250道”

【技术试题】C++开发工程师面试题库 150~200道

151.简述需求分析的过程和意义   152.网状、层次数据模型与关系数据模型的最大的区别是什末   153.软件质量保证体系是什末 国家标准中与质量保证管理相关的几个标准是什末 编号和全称是什末号和全称是什末   153文件格式系统有哪几种类型?分别说说win95、win98、winMe、w2k、winNT、winXP分别支持那些文件系统   154.我现在有个程序,发现在WIN98上运行得很慢,怎么判别是程序存在问题还是软硬件系统存在问题?   155.有关P2P点对点文件传输的原理   156.一台计算机的IP是192.168.10.71子网掩码255.255.255.64与192.168.10.201是同一局域网吗?   157.internet中e-mail协仪,IE的协仪,NAT是什么,有什么好处,能带来什么问题?DNS是什么,它是如何工作的?   158.PROXY是如何工作的?   169.win2k系统内AT命令完成什么功能,Messenger服务是做什么,怎么使用?   170进程,线程的定义及区别   171,32位操作系统内,1进程地址空间多大,进程空间与物理内存有什么关系?   172.网络攻击常用的手段,防火墙如何保证安全.   173.如何配静态IP,如何测网络内2台计算机通不通,PING一次返几个数据包?   174.WIN9X与WINNT以上操作系统有”服务”吗,服务是什么,如何停止服务?   175.AD在WIN2KSERVER上建需什么文件格式,AD是什么?XP多用户下”注销”与”切换”的区别.   176.UDP可以跨网段发送吗?   177.最简单的确认远程计算机(win2K以上)某个监听端口是正常建立的?   178. 找错 void test1() { char string[10]; char* str1=”0123456789″; strcpy(string, str1); } 答:表面上并且编译都不会错误。但如果string数组原意表示的是字符串的话,那这个赋值就没有达到意图。最好定义为char string[11],这样最后一个元素可以存储字符串结尾符’\0′; void test2() { … Continue reading “【技术试题】C++开发工程师面试题库 150~200道”

【技术试题】C++开发工程师面试题库 50~100道

51. New delete 与malloc free 的联系与区别? 答案:都是在堆(heap)上进行动态的内存操作。用malloc函数需要指定内存分配的字节数并且不能初始化对象,new 会自动调用对象的构造函数。delete 会调用对象的destructor,而free 不会调用对象的destructor. 52. 有哪几种情况只能用intialization list 而不能用assignment?   答案:当类中含有const、reference 成员变量;基类的构造函数都需要初始化表。 53. C++是不是类型安全的? 答案:不是。两个不同类型的指针之间可以强制转换(用reinterpret cast)。C#是类型安全的。 54. main 函数执行以前,还会执行什么代码? 答案:全局对象的构造函数会在main 函数之前执行。 55. 描述内存分配方式以及它们的区别? 1) 从静态存储区域分配。内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变量,static 变量。 2) 在栈上创建。在执行函数时,函数内局部变量的存储单元都可以在栈上创建,函数执行结束时这些存储单元自动被释放。栈内存分配运算内置于处理器的指令集。 3) 从堆上分配,亦称动态内存分配。程序在运行的时候用malloc 或new 申请任意多少的内存,程序员自己负责在何时用free 或delete 释放内存。动态内存的生存期由程序员决定,使用非常灵活,但问题也最多。 56.struct 和 class 的区别   答案:struct 的成员默认是公有的,而类的成员默认是私有的。struct 和 class 在其他方面是功能相当的。 从感情上讲,大多数的开发者感到类和结构有很大的差别。感觉上结构仅仅象一堆缺乏封装和功能的开放的内存位,而类就象活的并且可靠的社会成员,它有智能服务,有牢固的封装屏障和一个良好定义的接口。既然大多数人都这么认为,那么只有在你的类有很少的方法并且有公有数据(这种事情在良好设计的系统中是存在的!)时,你也许应该使用 struct 关键字,否则,你应该使用 class 关键字。 57.当一个类A 中没有生命任何成员变量与成员函数,这时sizeof(A)的值是多少,如果不是零,请解释一下编译器为什么没有让它为零。(Autodesk) 答案:肯定不是零。举个反例,如果是零的话,声明一个class A[10]对象数组,而每一个对象占用的空间是零,这时就没办法区分A[0],A[1]…了。 58. 在8086 汇编下,逻辑地址和物理地址是怎样转换的?(Intel) 答案:通用寄存器给出的地址,是段内偏移地址,相应段寄存器地址*10H+通用寄存器内地址,就得到了真正要访问的地址。 59. 比较C++中的4种类型转换方式?   请参考:http://blog.csdn.net/wfwd/archive/2006/05/30/763785.aspx,重点是static_cast, dynamic_cast和reinterpret_cast的区别和应用。 60.分别写出BOOL,int,float,指针类型的变量a 与“零”的比较语句。 … Continue reading “【技术试题】C++开发工程师面试题库 50~100道”

【技术试题】C++开发工程师面试题库 1~50道

1.    指出以下变量数据存储位置 全局变量int(*g_pFun)(int);g_pFun=myFunction;g_pFun存储的位置(A ) 为全局的函数指针 指向空间的位置( B) 所有函数代码位于TEXT段 函数内部变量 static int nCount;       ( A) 静态变量总是在DATA段或BSS段中 函数内部变量 char p[]=”AAA”;  p 指向空间的位置( C) 局域变量的静态数组,空间在Stack中 函数内部变量 char *p=”AAA”;  p 指向空间的位置( E) ,”AAA”为一字符常量空间,不同编译器有不同处理方法,大部分保存在TEXT(代码段中),也有编译的rodata段中 函数内部变量 char *p=new char; p的位置(C ) 指向空间的位置(D ) 所有malloc空间来自于heap(堆) A.    数据段 B.    代码段 C.    堆栈 D.    堆 E.    不一定, 视情况而定 以上知识参见C语言变量的作用域相关课件   2.    以下程序的输出结果为 ( ) … Continue reading “【技术试题】C++开发工程师面试题库 1~50道”