zoukankan      html  css  js  c++  java
  • 做过的面试题

    大部分搞it的编码水平都很烂,包括我,也包括面试官。

    但面试官总喜欢从网上找一些题来考察面试者,希望来衡量面试者水平。

    所以聪明的你如果准备去面试,那就先从网上找一些面试题,同时也把答案背一背。

    1.实现strlen函数

    2.实现折半查找

    3.用c++实现一个单体类

    4.两个字符串str1,str2,请用c/c++实现提取两者的最大公共子串

    5.用c/c++实现简单xml的解析

    输入是xml文件,输出是便于调试方便用的数据结构。


    1.字符串函数的实现一般会考的很多。

    例如:strlen,strcpy,reverse,itoa,atoi。

    strlen
    1 int strlen(const char *str)
    2 {
    3 assert(str);
    4 const char *p = str;
    5 while(*p++);
    6 return p -str -1;
    7 }
    strcpy
    1 char * strcpy( char *strDest, const char *strSrc )
    2 {
    3     assert( (strDest != NULL) && (strSrc != NULL) );
    4     char *address = strDest;
    5     while( (*strDest++ = * strSrc++) != '\0');
    6     return address;
    7 }

    http://blog.csdn.net/shiren_bod/article/details/6620891

    2.冒泡,二分,快排等就背一背吧

    BubbleSort
     1 void BubbleSort(elemtype x[],int n)
     2 {
     3     int i,j;
     4     elemtype temp;
     5     for(i=1;i<n;i++) 
     6     for(j=0;j<n-i;j++)
     7     {
     8             if(x[j].key>x[j+1].key) 
     9             {
    10                 temp=x[j];
    11                 x[j]=x[j+1];
    12                 x[j+1]=temp;
    13             }
    14     }
    15 }
    BSearch
     1 int BSearch(elemtype a[],keytype key,int n)
     2 {
     3   int low,high,mid;
     4   low=0;high=n-1;
     5   while(low<=high) 
     6    {
     7       mid=(low+high)/2;
     8       if(a[mid].key==key) return mid;
     9       else if(a[mid].key<key) low=mid+1;
    10       else high=mid-1;
    11    }
    12   return -1;
    13 }
    quick_sort
     1   void qs(int begin,int end)
     2   {
     3   int compare=a[begin], left =begin,right = end;
     4   if(left >right)
     5   return;
     6   while (left <right)
     7   {
     8   while ((left <right) && a[right]>=compare)
     9   right--;
    10   //a[left] = a[right];
    11   swap(a[left],a[right]);
    12   while ((left <right) &&(a[left] <compare))
    13   left++;
    14   //a[right] = a[left];
    15   swap(a[right],a[left]);
    16   }
    17   a[right] = a[left];
    18   qs(begin,right-1);
    19   qs(right+1,end);
    20   }

    3.

    4.链表,最大公共子串等

    reverse
     1 struct linka {
     2 int data;
     3 struct linka* next;
     4 };
     5 
     6 void reverse(linka*& head) {
     7 if(head ==NULL)
     8     return;
     9 linka *pre, *cur, *ne;
    10 pre=head;
    11 cur=head->next;
    12 while(cur)
    13 {
    14 ne = cur->next;
    15 cur->next = pre;
    16 pre = cur;
    17 cur = ne;
    18 }
    19 head->next = NULL;
    20 head = pre;
    21 }

    最大公共子串(实用):

    commadnstring
     1 char *commanstring(char shortstring[], char longstring[])
     2 {
     3 int i, j;
     4 char *substring=malloc(256);
     5 if(strstr(longstring, shortstring)!=NULL) //如果……,那么返回shortstring
     6 return shortstring;
     7 for(i=strlen(shortstring)-1;i>0; i–) //否则,开始循环计算
     8 {
     9 for(j=0; j<=strlen(shortstring)-i; j++){
    10 memcpy(substring, &shortstring[j], i);
    11 substring[i]='\0';
    12 if(strstr(longstring, substring)!=NULL)
    13 return substring;
    14 }
    15 }
    16 return NULL;
    17 }

    最大公共子串(还有很多讲算法的):

    http://blog.csdn.net/hackbuteer1/article/details/6686925 

    5.实现xml解析,面试官会问你是因为他们从网上找过,如果第一次遇到,他未必能做出来。

    这篇文章可以给的提示。

    http://news.newhua.com/news1/program_language/2008/825/08825154727F1FEG5I45HH1J4B3H0J2198EK3A1IC11341FAB337G5CG.html

    和minixml有点类似。

    http://www.minixml.org/documentation.php/basics.html

    找到有类似经历的人。

    http://blog.csdn.net/ghevinn/article/details/7904356

  • 相关阅读:
    网页转图片,html生成图片,网页生成图片(基于linnux+phantomjs)和wkhtmltoimage
    51Nod 1031 骨牌覆盖 | Fibonacci
    51Nod 1024 矩阵中不重复的元素 | 技巧 数学
    51Nod 1014 X^2 Mod P
    51Nod 1010 只包含因子2 3 5的数 | 预处理+二分
    51Nod 1007 正整数分组 | DP (01背包)
    51Nod 1381 硬币游戏 | 概率(数学期望)
    51Nod 1347 旋转字符串 | 规律
    51Nod 1344 走格子 | 贪心
    51Nod 1305 Pairwise Sum and Divide | 思维 数学
  • 原文地址:https://www.cnblogs.com/javastart/p/2833068.html
Copyright © 2011-2022 走看看