您好,欢迎访问三七文档
1上海华为的一道关于指针方面的编程题intA[nSize],其中隐藏着若干0,其余非0整数,写一个函数intFunc(int*A,intnSize),使A把0移至后面,非0整数移至数组前面并保持有序,返回值为原数据中第一个元素为0的下标。(尽可能不使用辅助空间且考虑效率及异常问题,注释规范且给出设计思路)c/c++笔试题(含参考答案)main(){intcount=0;intm=9999;while(m){count++;m=m&(m-1);}printf(count);}问count输出为多少?答案:把m转换为二进制,输出为这个二进制中1的个数最新c/c++笔试题(含参考答案)编写一个函数将32位整型参数分解为一个4字节数组,要求高位在前,低位在后,比如将0XOOFEOOAC分解为数组OXOO,OXFE,OXOO,OXAC(注释:OX不是值,表示16进制数)inti=0X00FE00AC;charc[20]={0};chart[20]=0x00000000;itoa(i,c,16);strcpy(t+strlen(t)-strlen(c),c);coutcendl;couttendl;c/c++某大公司的两道笔试题(含参考答案)1.一群人围成一圈,123的报数,报3者出列,求最后一个人。2.利用链表实现将两个有序队列A和B合并到有序队列H中,不准增加其他空间。请提供全一点的程序第一题://kickout.cpp:Definestheentrypointfortheconsoleapplication.//#includestdafx.h#includemalloc.h#includestdio.hintmain(){intm,n;intkickouts=0;int*p=NULL;inti,j;i=j=0;printf(Pleaseinputm,n:);scanf(%d,%d,&m,&n);while(n1){printf(ndoen'tless0,retryn:);scanf(%d,&n);}p=(int*)malloc(m*sizeof(int));for(i=0;im;i++)p[i]=1;i=0;while(1){i=i%m;if(p[i++])j++;if(j==n){p[i-1]=0;j=0;kickouts++;2}if(kickouts==m-1)break;}for(i=0;im;i++)if(p[i])printf(%d\n,i+1);return0;}2、升序还是降序?以升序为例:while(a!=NULL&&b!=NULL){if(a-datab-data){h-data=a-data;a=a-next;}elseif(a-data==b-data){h-data=a-data;a=a-next;b=b-next;}else{h-data=b-data;b=b-next}h=h-next;}if(a==NULL){while(b!=NULL){h-data=b-data;h=h-next;b=b-next;}}else{while(a!=NULL){h-data=a-next;h=h-next;a=a-next;}}几道c笔试题(含参考答案)1.Whatisdisplayedwhenf()iscalledgiventhecode:classNumber{public:stringtype;Number():type(“void”){}explicitNumber(short):type(“short”){}Number(int):type(“int”){}};voidShow(constNumber&n){coutn.type;}voidf(){shorts=42;Show(s);}a)voidb)shortc)intd)Noneoftheabove2.WhichisthecorrectoutputforthefollowingcodedoubledArray[2]={4,8},*p,*q;p=&dArray[0];q=p+1;coutq–pendl;cout(int)q-(int)pendl;a)1and8b)8and4c)4and8d)8and1第一个选C;虽然传入的是short类型,但是short类型的构造函数被生命被explicit,也就是只能显示3类型转换,不能使用隐式类型转换。第二个选A;第一个是指针加减,按照的是指向地址类型的加减,只跟类型位置有关,q和p指向的数据类型以实际数据类型来算差一个位置,因此是1。而第二个加减是实际指针值得加减,在内存中一个double类型占据8个字节,因此是8一道C++笔试题(含参考答案)请用C++写一个小程序,先请用户输入三个字符串,然后把第一个字符串中出现的所有的第二个字符串替换成第三个字符串,最后输出新的字符串。呃,可以用boost::regex吗?几乎没代码cins1s2s3;coutregex_replace(s1,s2,s3);公司的笔试题[软件工程师]设计线性方程求解程序,打印结果,输入格式为:数字*变量1+数字*变量2.....=0,变量为a-z的小写单个字母。例如:输入3*a+4*x+2=0,5*a+3*x+4=0,求a=?,x=?完整的程序可能是这样voidRemoveHead(node**head){if(head==0||*head==0)returnnode*temp=*head;(*head)=(*head)-next;free(temp);}1.数据结构定义:通道和墙组成的迷宫。用数组定义,1代表墙0代表通道。2.单链表结构定义:节点存储一个整型数,给代码。合并二个已经按照该整型数从小到大排好序的链表,合并后链表也是同样排序好的。简单,大概如下,伪算法Node*uniteList(Node*first,Node*second){Node*head=NULL;Node*cur=NULL;Node*temp=NULL;while(first&&second){if(first-keysecond-key){temp=first;first=first-next;}else{temp=second;second=second-next;}if(head==NULL){cur=temp;head=cur;}else{cur-next=temp;cur=temp}}if(first==NULL){temp=second;}elsetemp=first;while(temp){cur-next=temp;temp=temp-next;}cur-next=NULL;4returnhead;}3.哪些操作会隐式调用C++的拷贝构造函数?按值返回,按值传递参数,用一个对象初始化另一个对象4.写出一个函数用来判断一个点到一个平面的关系。用一个点和法向量来表示平面。输入一个点和一个面,返回该点在面的前面,后面,还是在这个面上。对于第4题:1)输入:一个平面:由平面上的一个点P0和平面的法向量V0表示.一个点:PX2)结果:判断PX和平面的几何关系3)分析.可以使用向量的相关知识来解决这个问题:3.1计算点P0到PX的向量V=(PX-P0);3.2用点乘计算向量V0和V之间的夹角:doProduct(V,V0)=A;3.3判断关系:if(A==0)==夹角90度==点在面上if(A0)==夹角小于90度==和法向量一致==在平面的正面if(A0)==夹角大于90度==和法向量方向相反==在平面的反面PS:在图形学中,平面分正反面,法向量所指的面为正面,反之是反面。1、writeaprogramtoimplementfloatoperationusingintegeroperationona32bitsprocessor.corc++2、writeappropriatefunctions--voiditoa(intn,char*s),withpointer,notarrayindexing,itwouldbeappreciatedverymuchifyoucouldoptimizethecodeanddrawaconclusionregardingtimecomplexityaswellasspacecomplexityofbothalgorithmsaftercomparingbetweentheoptimizedoneandtheother.3、writeafunction--invert(x,p,n)--thatreturnxwiththenbitsthatbeginatpositionpinverted(i.e1changedinto0and0changedinto1),leavingtheothersunchanged.与0001000异或,4、asfarasIntelPXA27XandLinuxKernelV2.4,describebrieflythegeneralwaystooptimizethetop-levelapplicationbasedonMiniGUIorQTandgivetheexamplestoexplainitbetter.1Whatisthefastestwaytocountthenumberofonesinagivennumberrepresentedinabinaryform.YoucanassumethatyouhaveinfinteruntimememoryandtheresponsetimeshouldbeO(1)always.Canyouoptimizethememoryused?答案:intbits_set(intword){inttmp;tmp=(word1)&033333333333;tmp=word-tmp-((tmp1)&033333333333);return(((tmp+(tmp3))&030707070707)%077);}2Whatwillbethecomplexityoffindingtheduplicatesinanarray?3Youaregivenastackofpunchedcards,eachwithmrowsandncolumns.Comeupwithaalgorithmtopunchholessothatyoucanfindthemissingcards(theirsequences)inO(1)time.Youcanassumethatyouarelookingforamissingcardandonlyoneismissingoutofallpossibilities.4WritethebinarysearchfunctioninaClanguage.二分查找5Inthegivenarray,findthesubsequencewith5maximumsumandminimumlength.E.g.[10,25,-23,40,-12,39,7]Thesubsequence[39,7]hassumof46withlength2.最大子序列6Reversealinkedlist反转链表7Writeanalgorithmtocompressatextfile压缩8HowwouldyouimplementaBigIntclass?实现大数9Ifyouaregivenxpunchedcardseachwithmrowsandncolumns,canucomeupwithanumberschemetoidentifymissingpatterns.10Anabsolutenumberisdefinedasoneinwhicheachdigitisstrictlysmallerthanthedigittoitsri
本文标题:众多名企(华为,阿卡,TCL_索尼,微软_百度_大唐)笔试面试题(C居多含C++及数据结构)改
链接地址:https://www.777doc.com/doc-6381616 .html