1、c面试题库 c面试题库1、实现 strcmpint StrCmp(const char *str1, const char *str2)做是做对了,没有抄搞,比较乱int StrCmp(const char *str1, const char *str2)assert(str1 srt2);while (*str1 *str2 *str1 = *str2) str1+, str2+;if (*str1 *str2)return (*str1-*str2);elseif (*str1 *str2=0)return 1;elseif (*str1 = = 0 *str2)return -1;els
2、ereturn 0;int StrCmp(const char *str1, const char *str2)/省略判断空指针(自己保证)while(*str1 *str1+ = = *str2+);return *str1-*str2;2、实现子串定位int FindSubStr(const char *MainStr, const char *SubStr)做是做对了,没有抄搞,比较乱int MyStrstr(const char* MainStr, const char* SubStr)const char *p;const char *q;const char * u = MainS
3、tr;/assert(MainStr!=NULL) ( SubStr!=NULL);/用断言对输入进行判断while(*MainStr) /内部进行递增p = MainStr;q = SubStr;while(*q *p *p+ = *q+);if(!*q )return MainStr - u +1 ;/MainStr 指向当前起始位,u 指向MainStr +;return -1;3、已知一个单向链表的头,请写出删除其某一个结点的算法,要求,先找到此结点,然后删除。slnodetype *Delete(slnodetype *Head,int key)中 if(Head- number=k
4、ey)Head=Pointer- next;free(Pointer);break;Back = Pointer;Pointer=Pointer- next;if(Pointer- number=key)Back- next=Pointer- next;free(Pointer);break;void delete(Node* p)if(Head = Node)while(p)4、有1,2,.一直到n的无序数组,求排序算法,并且要求时间复杂度为O(n),空间复杂度O(1),使用交换,而且一次只能交换两个数.(华为)#include iostream.h int main()int a = 10
5、,6,9,5,2,8,4,7,1,3;int len = sizeof(a) / sizeof(int);int temp;for(int i = 0; i len; )temp = aai - 1;aai - 1 = ai;ai = temp;if ( ai = i + 1)i+;for (int j = 0; j len; j+)cout aj , return 0;5、写出程序把一个链表中的接点顺序倒排typedef struct linknodeint data;struct linknode *next;node;/将一个链表逆置node *reverse(node *head)node *p,*q,*r;p=head;q=p- next;while(q!=NULL)r=q- next;
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1