华为C语言面试题

所需积分/C币:10 2015-12-27 22:14:00 225KB PDF
11
收藏 收藏
举报

华为C语言面试题
3.写个涵数比较两个字符串str1和str2的大小,若相等返回0,若str1大于str2 返回1,若stx1小于str2返回 int strcmp( const chat *dst, const char Y src int ret =0 while(! (ret =(unsigned char *)src- (unsigned char )dst)&&*dst++&&src++) if (ret <o) ret=-1 else if (ret>0) ret=1 return( ret 4.求1000!的未尾有几个0 每个0拆成2*5的形式,因为2*5会参生一个0,例:90=2*5*9.因总的2因子很多,所 以0的个数,山5因子个数决定,即等于5因子个数.求出1->1000里,能被5整除的数 的个数n1,能被25整除的数的个数n2,能被125整除的数的个数n3,能被625整除的数 的个数n4.1000!末尾的零的个数=n1+n2+n3+n4; int finds(int num int ret=0 while(num%5==0 num rct++ return ret int main( int result=0 Int 1; for(=5<=NUM+=5) result+=finds(0: printf" the total zero number is /od\n, result) return 0 5.有双向循环链表结点定义为: struct node int d struct node *front *next: 有两个双向循环链衣A,3,知道其头指针为: pHeadA, pHeadB,请写一函数将两链衣中 data值相同的结点删除 BOOL DeteleNode(Node hEader, DataType value (pHeader == Nelly return bOOL bRet= False de pnode= plead while (pnode NElly if(pNode> if(pNode->front== NULL) Header= pN p pIcador if(pNode->next I= NULL >fi pNode->front->next= pNode->next; Node pNextNode= pNode->next delete pnode brOme bRet= tru //不要 break或 return,删除所有 return bRet. void de(node plleada, node pl lead if(pI leadA==nulL I I pIleadB==NULL) P e heada while(pNode!=NULL) if DeteleNode(pHeadB, p Node->data)) if (pNode->front = NULL) heada headA->front= NULls else DNode->front >next- pNode->next; if(pNode->next!=NULL) pNodc->ncxt->front= pNodc->front; ext、ode >ney delete pNode, tnode else Node= pNode->next 6.编程实现:找出两个字符串中最大公共了字符串,如” arcade"," decade"的最大了 串为 int GetCommon(char sl, char s2, char *rl, char r2) int len1= strlen(s1); int len2= strlen(s2); at maxlen for(int i=0; i<len1; 1++ for(int j=0; j<len2 j++) if(s1(i]==s2) nt as i, count =1; while(as+ 1 <len1 & bs 1 <len2 &&s1[++as]==s2[++bs]) count++ if(count maxlen maxlen- count 1=s1+i; r2=s2+ 7.编程实现:把十进制数(1ong型)分别以二进制和十六进制形式输出,不能使用 printf 系列库函数 char*k test3(long num chark buffer =(char )malloc(11) buffe buffer1=x buffer[10="0 char* temp= buffer 2 for (int i=0; i<8;1++)( tempi(char)(num<<4*i>>28) templi]=temp]>=0? temp]: temp[1]+ 16 temp= tempi<10? temp+ 48: temp[+ 55; return buffer, 8.输入N,打印N*N矩阵 比如 3,打印 12 89 N N34543 打印 12 4 1213145 1116156 10987 解答: 1 # 15 int s[NN; void maino k=0,i=0,j=0; int a= 1: for(;k<(+1)/2;k++) whilc(i<n-k)silj++=a++ 1++; j- while(i<N-k)si++lli=a++; 1-;j-i whie(j>k-1)s[-]=a++;i-;j++; while(i>k)si-111=a++; 1++; j++ for(i=0; 1<N; 1++) for(i=0; j<N; j+ cout <<s0<<t cout < end 2# define maⅩN100 int matrix MAX NIMAX N void SetMatrix(int x, int y, int start, int n)i t1, f(n<=0)//递归结東条件 return if(n==1){//矩阵人小为时 matrix[x]y=start; return for(=x;i<x+n-1;计++)//矩阵上部 matrix]=start++ for(=y;j<y+n-1;i++)//右部 mattixlllx+n-1=start++, rGi=x+n1;i>x;i-)/底部 trixy+n-11=start forG=y+n-1;j>y;j-)/左部 mattix[x=start++ ti(x+1,y+1,stat,n-2);//递归 void maino i it n f( od",&n) trix(0, 0, 1, n) //打印螺旋矩阵 for=0;i<n;i++){ for ( =0;j<n; j++) printf(%o4d", matrix[1]01 printf("n);

...展开详情
试读 16P 华为C语言面试题
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚积分or赚钱
    最新推荐
    华为C语言面试题 10积分/C币 立即下载
    1/16
    华为C语言面试题第1页
    华为C语言面试题第2页
    华为C语言面试题第3页
    华为C语言面试题第4页

    试读结束, 可继续读1页

    10积分/C币 立即下载 >