《搜狗2012.9.23校园招聘会笔试题.docx》由会员分享,可在线阅读,更多相关《搜狗2012.9.23校园招聘会笔试题.docx(17页珍藏版)》请在优知文库上搜索。
1、1、以下程序的愉出是12)cppvifuncl();44. coutgetVale()endl;45. deletepb;46.47. return0;48. 2.请问程序的始出结果是*defineDOUB1.E(x)x+x/x*2inti=DOUB1.E(5)*5;coutiendl;3、写出一下程序的输出死循环cppviewplaincopyprint?1. intUain(VOid)2. 3. charnun;4. fornuw0;num255;)5. nun+三u;6. printf(Xdn-,num);7. return;8. 4、杓字出错在什么阶段?Ocppviewplaincop
2、yprint?1. intHaln(VOid)coutwelcetosogou,e11dl;return;A,端译阶段出错B、运行阶段出错CC译和运行都出错a程序运行正常为http:而http5、卜面程牛执行结果为【说明:X86一64环境】(D)cppviewplaincopyprint?Sain(VOid)int(Se,6,7,8),900,1800,118%1298,(130,14,15,160;l.intint(pl)=a;(p2)(4-Sa);p3三Sae;11.Printf(%dXdXdn,(a+l)-l),(*(pl+3)-2)+l(-(p2-l)+16)2(p5sizeof(pl
3、)-3);12.13.return0;14.A、16000IlOl130022B,42360U16000232D、411011300260Pl为指向难数殂的指针,所以a+1指向50.60,70,80达-维的地址,H则为4的地址:同理第二个黝出IIO1.同理,由于数组的列是4所以*(p2-1)+16就相当于*(p2)+12,所以第三个检出13002,笫四个由于PI是指骨,所以SiZeof(PD为8168位的系统),所以第四个输Hl60,6、专32位操作系统gcc网手器耳境下下面的程序的运行结果是(八)cppVhWpldincopyprint?public:Intb;charc;virtualvo
4、idprint()(cout*thisisfathersfunction!*endl;IB.;11.12. class8:A13. 14. public:15. virtualvoidprint()16. 17. coutthisischildrensfunction!*edl;18. )19. );2.int11aln(void)21. 22. coutsizeof(八)sizeof(八)endl;23.24. return;25. )A,1212B、88U99D、12167、以下哪些做法是不正确或者应该极力避免的:【多选】A、构造函数声明为盅函数B.派生关系中的基类析构函数声明为虚函数C,
5、构造函数两用虚函数D,。构滂数调用虚函数8.关于C+标准模板库,下列说法错误的有啷映:【名选】AD)1. std:auto_ptr类型的对象.可以放到std:vectorstd:auto_ptr容器中8. std:ShareC1.PtrVCIaSsA类里的对象,UJ以放到std:vectorstd:shared_ptr容器中C.而于夏杂类型T的对您tbj.+tbj和tbj+的执行效率相比,前若更高D,采用new操作符创建对歙时,如果没有足移内存空间而呼致创隹失败,则new操作符会返刈NU1.1.A中auto必给别人东西而自己没有了.所以不符合Veetor的要求.而B可以.C不解锋.new在失败
6、后搬出标准异常std:bad_alloc而不是返回NU1.1.,9、彳I如下几个类和函数定义,选项中描述正确的是:【多选】(B)cppvivpldincopyprint?1. classApublic:virtualvoidfoo()9. public:10. virtualvoidfoo()H;12.13. classC:publicA,publicBU.15. public:16. virtualvoidfoo()”;18.19. voidbarl(A4pa)2.21. Bpc三dynanic-cast(pa);2223.24. voidbar2(A4pa)25. 2684pc-stati
7、c.cast(pa);27. )28.29. voidbar3()3631. CC;32. A4pae&c;33Bpb三static-cast(static-cast(pa);34. )A.barl无法遹过端译B、bar2无法通过编译C, bar3无法通过编译D, barl可以正常运行,但是采用了措误的CaSt方法选B,dynamiJCaSt是在运行时遍历维承树,所以,在编译时不会报错,但是因为A和B没啥关系,所以运行时报错(所以A和D都是错误的)。static_cast:编译器陌式执行的任何类型转换都可由它显示完成。其中对于:,:1基本类型。如可以将转Ife为CtoubIeOft诺器会执行隐
8、式转换).但超不能将int*用它转换到double*(没有此隐式转换).O1399moumoueavduordPtrebp-8duordptrebp-tea56:X;0M0139Cmouectdordptrebp-0*U139Faddect10M013A2moudwordptrebp-fec57:X;04013A5moued9duordptrebp-4004013A8addedt18M013ABmoudordptrebp4ted58:=1;013AEmoudtx)rdptr(ebp-41.13.4.5.67.89.l.11.12.13.14.IS.16.17.18.19.2.21.2223.1
9、1、一般情况下,下面哪些操作会执行失败?【多选】(BCD)cppviewplaincopyprint?classA(public:stringa;voidfl()(printf(HelloWorld*);)voidf2()(a=,HelloWorld*;printf(-%s-,a.c.str();)virtualvoidf3()(pri11tf(HelloWorld*);)virtualvoidf4()(aHelloWorld;printf(-%sa.c,str(););A、A*aptr=NU1.1.;aptr-fl();B、AXaPtr=NU1.1.;aptr-f2();C,A*aptr=N
10、U1.1.;aptr-f3();D、A*aptr=NU1.1.;aptr-f4();至于A为什么正确因为A没有使用任何成员变S1.而成员函数是不展于对象的,所以A正确。其实,A*aptr=NU1.1.;aptf5();也是正确的,因为静态成员也是不属于仔何对敦的至于BCD.在B中使用了成员变fit,而成员变盘只能存在干时象.C有虚表指计.所以也只存在于对象中D就更是一样了但是,如果在CIaSSA中没有写PUblia那么就全都是PHvata以至于所有的选项都将会失败。12、C+下,下面哪些template本例化使用,会引起编译错误?【2选】(CEF)cppVieWplaincopyprint?1
11、. telateclassstack;voidfi(stack);/AclassExstackMs;stacksi;B/C;11ai(void)l(11. stacksc;D12. H(sc);/E13. Inti三slzeof(stack);/F14.15. return;16.选CEF;请注意stack和fi鄢只是声明不足定义.我还以为在此处申明后,会在其他地方定义呢,坑爹啊,由于StaCk只是声明,所以C是拈设的,StaCk不能定义对象E也是一样,StaCk只是申明.所以不能执行拷贝构造函数.至于F由于StaCk只是声明,不知道StaCk的大小.所以错误.如果StaCk定义了,将全是正确的.13、以下哪个说法正确()cppviewplaincopyprint?1. itfunc()2. 3. charb2