《海康威视校园招聘笔试题.docx》由会员分享,可在线阅读,更多相关《海康威视校园招聘笔试题.docx(13页珍藏版)》请在课桌文档上搜索。
1、1、10.10,4、4四个数,怎么算出24点?(10*10-4)/4=242、卜列表达式在32位机器港讲环境卜的值Ocppviewplaincopyprint?classAclassBpublic:B();virtual*();l.;12. classC14. private:15. ttrag11apack(4)16. i11ti;17. shortj;18. floatk;19. char164;2.longm;21. char*p;22. Itpragnaack()23. );24.25. ClassD26. 27. private:28. ttrag11aPaCk(I)29. inti
2、;30. shortj;31. floatk:32. char164;33. long;M.charp;35. Itpragnapack()36. ;37.38. int11ain(void)394.printf(-jnw,Sizeof(八));41.printf(Xdnw,sizeof(B);42. pritf(-%dn-,sizeof(C);43. printf(-Xdn-,Sizeof(D);44. return;45. )A、1、4、84、82B,4、4、82、84C、4、4、84、82D、1、4、82.823.以下程序在32位机器下运行的结果是Ocppviewplaincopypri
3、nt?1. ttprafi11aPaCk(4)2. structinfo-tunsignedcharversion;unsignedcharpadding;unsignedcharextension;unsignedcharcount;unsignedcharmarker;unsignedcharpayload;unsignedshortsequence;unsignedinttimesta11p;unsignedIntssrc;U-;15.unioninfoUunsignedcharversion;18.unsignedcharpadding;19.unsignedcharextension
4、;20.unsignedcharcount;21.unsignedcharmarker;22.unsignedcharpayload;23.unsignedshortsequence;24.unsignedinttimesta11p;25.unsignedintssrc;26);27. Itpragnapack(28.29. int11ain(void)36. 37. printf(%d*#slzeo(ino.t);38. printf(Xdn-,sizeof(info-u);39. return;乂)A、1212B,124C,164D,1612E、164、以下衣达式resull的值是Ocpp
5、viewplaincopyprint?1. defineVAll(a,b)b2. HdefineVA1.2(a,b)ab-311deflneVA1.3(a,b)aXb4.5. inta1;6. intb三2;7. intCa3;8. intd3;9. inte三5;e.11.i11tresult-VA1.2(a,b)VA1.l(e,b)VA1.3(c,d);5、请写出以下程序的愉出5分cppviewplaincopyprint?voidswap_l(intintc;return;voidswap_2(intint&b)l.11.intc;12.14.15.return;16.17.voidsw
6、ap_3(int18.intc;2.a;21.wa三23.return;24.25.26.Bain(Void)27.28.inta三10;30.intb-200;31.printf(a=%db三Xdn,a,33pritf(a-Xdtbln,a,Mswap_3(fta,&b);35.prlntf(a=d,b三5Wna,b)36.return;输出结果:a=100,b=200a=200,b=100a-100,b-2006、卜面的程序是否有问题,如有问题,请求为代码(5分)cppviewplaincopyprint?voidtest-type(boolb,constchar*p,-floatf)if
7、(b)return;return;l.11.13.return;14.15.修改如下:cppviewplaincopyprint?voidtest.typ(boolb,constchar*p,floatf)(!b)return;7. elseif(!p)8(9.return;Id11. elseif(f-le-l&fle-l)12. (13. return;14. )7.请指出以工程序有什么问Sfi5分cppviewplaincopyprint?charp-CEchar64);deletep;p=NU1.1.;return;应该假改为deete(Jp;P指向的是个字符型的数组空间,晚来的代码只
8、是简单的择放了指向申请空间的指针,并没有择放申请的空间,容易造成内存崩渍。I可也用new分配的单个对象的内存空间的时候用deleie.I可收用new分配的一组时条的内存空间的时候用deete8、以下程序有什么问题,请指出。cppviewplaincopyprint?char*GetMew()charp11-hello*;returnp;voidtest-get-mefi()9.char*p三GetKem();l.printf(p);11. return;12. )GetMem函数中的P是一个在校上的局部变当函数运行结束的时候栈上的内容会向动林放的,此处返回的佗有可能会成为一个野指针,会出现一个
9、意想不到的结果.9、请写出StrCPy和memcpy的区别(5分)答:StrCPy和memcpy都是标准C库C数它们有下面的特点.Strcpy提供了字符率的域制.RPStrCPy只用于字符小史制,并且它不仅坡制字符H;内容之外,还会就制字符中的结束符,Strcpy函数的原型是:charstrcpy(char*dest,constchar*src);memcpy提供了一般内存的复制.即memcpy对于需要复制的内容没有限制.因此用途更广。memcpy函数的原型是:void*memcpy(void*dest,constvoidsrc,sizetcount);strcpy和memcpy主要有以下3方
10、面的区别.1、史制的内容不同.StrCPy只能坡制字符巾,而memcpy可以复制任意内容,例如字符数组、整型、结构体、类等。2.红制的方法不同.strcpy不需要指定长度.它遇到披红制字符的串结束符0才结束.所以容易溢出.memcpy则是根据其第3个参数决定复制的匕度.3、用途不同。通常在更制字符那时用StrCPy,而需要双制其他类型数据时则一殷用memcpy.10、请写出以下程序的输出结果cppviewplaincopyprint?classBasepublic:Base()rintfIamBase()n);virtual*ase()l.printf(Iam-Base()n);il12. p
11、ublic:13. virtualvoidSayHelloO14. (15. printf(-HelloBasenw);16. )17. voidSayWorldO18. SayHello();54. bl-SayWorld();55.56. b2SayHello();57. b2SayWorld();58.59. d-SayHello();6.d-SaHorld();61.62. deleted;63. deleteb2;64. deletebl;65.66. d-NU1.1.;67. b2-NUlI;68. bl三NU1.1.;69.70. return;71. 输出结果:IamBaseo
12、IamBase()IamDerived()IamBase()IamDerivedOHelloBaseWorldBaseHelloDerivedWOridBaseHelloDerivedWorldDerivedIam-DerivedOIam-Base()Iam-Derived()Iam-BaseOIam-BaseO11、阅读以下程序并给出执行结果cppviwplaincopyprint?1.classclass213.public:56.7.89.10.11.12.class(inti,intj)y7;)virtualintfun()(return;)13. protected:14. intx
13、,y;15. );16.17. classIClaSS:publicBclass18. (19. public:Bclass(l,j)26. lclass(inti,intj,int27. (28. zk;24. Intun()25. (26. return(*yz)3;27. 28. private:29. intz;3.);31. intnain(void)32. (33. Iclassobj(2,4,l);M.Bclasspl三obj;35. coutl.fun()endl;36.37. Bclass&p2三obj;38coutp2.fun()endl;39. coutp2.Bclass
14、:fun()endl;40.41. Bclass3-Sobj;42. .coutfun()endl;43.44. return;45. )输出站果:O5O512、如何减少频繁分配内存(malloc或各new)造成的内存碎片?(10分)13、请写出StrChr的实现(10分)函数功能:找出在字符申Str中第一次出现字符Ch的位冏,找到就返回该字符位咒的指针(也就是返回该字符在字符印中的地址的位置),找不到就返回空指针(就是NU1.1.constchar*strchr(constcharstr,charch)cppviwplaincopyprint?14.1.constcharwstrchr(constchar*str,charch)charp-NU1.1.;constcharS=str;for(;s!;*s)(if(s-ch)(P-(ChJr)s;break;)returnp;14、请写出日泡排序法算法205voidBubbleSor1(itr1,intn);cppviewplaincopyprint?1.void8ubbleSort(intr(,intn)for(i-01;P)for(j三0;jn-i-1;+j)l.teg-rj;11.rjj-11j1;12.rj+1=tewp;13.14.