资源描述:
《网龙笔试题及答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一.题型:问答五题,程序两题,选择10来题二.题目1.堆和栈的区别与联系(C/C++的内容,不是数据结构的内容)1、栈区(stack)由编译器自动分配释放,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。2、堆区(heap)一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收。注意它与数据结构中的堆是两回事。区别:1.管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制;对于堆来说,释放工作由程序员控制,容易产生内存溢出。2.空间大小:堆内存几乎是没有什么限制。栈一般都是有一定的空间
2、大小。3.碎片问题:对于堆来讲,频繁的new/delete会造成内存空间的不连续,从而造成大量的碎片,使程序效率降低。对于栈来讲,则不会存在这个问题。4.分配方式:堆都是动态分配的,没有静态分配的堆。栈有2种分配方式:静态分配和动态分配。5.分配效率:栈的效率比较高。堆的效率比栈要低得多。见:hi.baidu.com/sige_online/blog/item/f06097ecb006bb3f2797918b.html2.重载和覆盖的区别与联系重载是指不同的函数使用相同的函数名,但函数的参数个数或类型不通。调用的使用
3、根据函数的参数来区别不同的函数。覆盖是指派生类中重新对基类的虚函数重新实现。即函数名和参数都一样,只是函数的实现体不一样。3.什么是多重继承,好处及缺点多重继承指的是一个类别可以同时从多于一个父类继承行为与特征的功能。优点:可以使用多重继承编写非常复杂、但很紧凑的代码,如C++ATL库。缺点:出现二义性、虚函数、访问权限等问题,容易产生混淆。4.做过什么项目.遇到什么问题(不写似乎没事)自己想吧,根据自己情况写5.不用第三个变量交换两个int型的值(必须用C实现)inta=2,b=3;a=a+b;b=a-b;a=a-
4、b;6.链表删除操作此处实现删除链表中的第二个元素。int*p,*q,*list;//p,q为指针类型,list为已存在的链表p=list;//p指向list的第一个元素q=list;//q指向list的第一个元素if(p->next!=null){//list链表的元素超过一个q=q->next;//q指向第二个元素p->next=q->next;//p->next指向第三个元素deleteq;//释放链表的第二个元素空间}7.写一个程序,堆可以访问,栈不可以访问。写一个程序,栈可以访问,堆不可以访问。堆可以访问,
5、栈不可以访问把构造函数设为privateclassheap{private:heap(){cout<<"堆可以访问,栈不可以访问"<
6、#include#defineN100voidmain(){chara[N];charb[N];charc[2*N];inti;cin>>a;cin>>b;intlength1,length2;length1=strlen(a);length2=strlen(b);for(i=0;i