资源描述:
《招聘软件机考》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、华为校园招聘机考试题总结(软件)1、删除子串,只要是原串中有相同的子串就删掉,不管有多少个,返回子串个数。#include#include#include#includeintdelete_sub_str(constchar*str,constchar*sub_str,char*result){assert(str!=NULL&&sub_str!=NULL);constchar*p,*q;char*t,*temp;p=str;q=sub_str;t=result;
2、intn,count=0;n=strlen(q);tmep=(char*)malloc(n+1);memset(temp,0x00,n+1);while(*p){memcpy(temp,p,n);if(strcmp(temp,q)==0){count++;memset(temp;0x00,n+1);p=p+n;}else{*t=*p;p++;t++;memset(temp,0x00,n+1);}40}free(temp);returncount;}intmain(){chars[100]={‘ ’};intnum=delete_sub_s
3、tr(“123abc12de234fg1hi34j123k”,”123”,s);printf(“Thenumberofsub_stris%dr”,num);printf(“Theresultstringis%sr”,s);}2、约瑟夫环是一个数学的应用问题:已知n个人(以编号1,2,3...n分别表示)围坐在一张圆桌周围。从编号为k的人开始报数,数到m的那个人出列;他的下一个人又从1开始报数,数到m的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。#include#includet
4、ypedefstructNode{intnum;structNode*next;}LinkList;LinkList*creat(intn){LinkList*p,*q,*head;inti=1;p=(LinkList*)malloc(sizeof(LinkList));p->num=i;head=p;for(i=2;i<=n;i++){q=(LinkList*)malloc(sizeof(LinkList));q->num=i;p->next=q;p=q;}40p->next=head;/*使链表尾指向链表头形成循环链表*/returnh
5、ead;}voidfun(LinkList*L,intm){inti;LinkList*p,*s,*q;p=L;printf("出列顺序为:");while(p->next!=p){for(i=1;inext;}printf("%5d",p->num);s=p;q->next=p->next;p=p->next;free(s);}printf("%5d",p->num);}intmain(){LinkList*L;intn,m;n=9;m=5;L=creat(n);fun(L,m);return0;}3
6、、比较一个数组的元素 是否为回文数组#include#include40inthuiwen(charstr[]){inti,len,k=1;len=strlen(str);for(i=0;i7、("Inputastring:");/*提示输入Inputastring:*/scanf("%s",str);/*scan()函数输入一个字符串:*/huiwen(str);}4、 数组比较(20分)•问题描述: 比较两个数组,要求从数组最后一个元素开始逐个元素向前比较,如果2个数组长度不等,则只比较较短长度数组个数元素。请编程实现上述比较,并返回比较中发现的不相等元素的个数比如:数组{1,3,5}和数组{77,21,1,3,5}按题述要求比较,不相等元素个数为0数组{1,3,5}和数组{77,21,1,3,5,7}按题述要求比较,不相等元
8、素个数为340•要求实现函数: int array_compare(int len1, int array1[], int len2, int array2[])【输入】int