<strike id="6q0um"></strike>
  • <strike id="6q0um"><s id="6q0um"></s></strike>
  • <ul id="6q0um"></ul><strike id="6q0um"></strike>

    當前位置:高考升學網 > 招聘筆試題 > 正文

    2019騰訊校園招聘C語言筆試題和面試題答案

    更新:2023-09-17 16:56:33 高考升學網

      下面這套筆試題是2015騰訊校園招聘C語言常考知識點,分享給大家了解。
      1. 輸入一個鏈表的頭結點,從尾到頭反過來輸出每個結點的值。鏈表結點定義如下:

      struct ListNode

      {

      int m_nKey;

      ListNode m_pNext;

      };

      A: 遞歸方法逆序輸出,棧方法逆序輸出。

      (任意實現一種既可)

      void PrintListUsingRecursicve(pListNode head)

      {

      if(head!=NULL)

      {

      PrintListUsingRecursicve(head->m_pNext);

      printf("%d/n",head->m_nKey);

      }

      }

      void PrintListUsingStack(pListNode head)

      {

      Stack s;

      s.top=0;

      pListNode p=head;

      do{

      push(&s,p->m_nKey);

      p=p->m_pNext;

      }while(p!=NULL);本文由論文聯盟http://www.LWlm.COM收集整理

      while(!IsEmpty(&s))

      {

      printf("%d/n",pop(&s));

      }

      }

      2. 二元樹的深度

      題目:輸入一棵二元樹的根結點,求該樹的深度。從根結點到葉結點依次經過的結點(含根、葉結點)形成樹的一條路徑,最長路徑的長度為樹的深度。

      #include

      #include

      #include

      #include

      #define MAXLEN 100

      #define MAXNUM 10

      typedef int Tree[MAXLEN];

      Tree bt;

      int GetDeep(int i)

      {

      int l=0,r=0;

      if(bt[i2]!=-1)

      {

      l=GetDeep(i2)+1;

      }

      if(bt[i2+1]!=-1)

      {

      r= GetDeep(i2+1)+1;

      }

      return l>r?l:r;

      }

      int main()

      {

      int i=0;

      memset(bt,-1,sizeof(bt));

      for(i=1;i<=MAXNUM;i++)

      bt[i]=i;

      bt[(i-1)2]=i2;

      printf("%d /n",GetDeep(1));

      return 0;

      }

      3. 整數的二進制表示中1的個數

      題目:輸入一個整數,求該整數的二進制表達中有多少個1。例如輸入10,由于其二進制表示為1010,有兩個1,因此輸出2。

      (關鍵是能不能想到后面的那個方法,只要想到這個方法既可)

      int Bit1inInt(int i)

      {

      int result=0;

      do{

      result+=i&1;

      }while(i=i>>1);

      return result;

      }

      4. 從上往下遍歷二元樹

      題目:輸入一顆二元樹,從上往下按層打印樹的每個結點,同一層中按照從左往右的順序打印。

      (先序,中序,后序三種方式實現)

      如果從上往下,從左到右的話只有一種遍歷的方式:廣度優先遍歷。

      #include

      #include

      #include

      #include

      #define MAXLEN 100

      #define MAXNUM 10

      typedef int Tree[MAXLEN];

      Tree bt;

      typedef struct queue

      {

      int begin,end;

      int space[MAXLEN];

      }Queue;

      int main()

      {

      int i=0;

      memset(bt,-1,sizeof(bt));

      for(i=1;i<=MAXNUM;i++)

      bt[i]=i;

      Queue qe;

      qe.begin=0;qe.end =0;

      qe.space[qe.end++]=bt;

      while(qe.begin!=qe.end)

      {

      if(bt[2qe.space[qe.begin]]!=-1)//lchild

      {

      qe.space[qe.end++]=bt[2qe.space[qe.begin]];

      }

      if(bt[2qe.space[qe.begin]+1]!=-1)//rchild

      {

      qe.space[qe.end++]=bt[2qe.space[qe.begin]+1];

      }

      qe.begin++;

      }

      printf("--------------------/n");

      for(i=0;i

      printf("%d ",qe.space[i]);

      return 0;

      }

      先序,中序,后序三種方式的只是遍歷二元樹

      typedef int Tree[MAXLEN];

      Tree bt;

      void PreOrderTraverse(int i)

      {

      if(bt[i]==-1) {return ;}

      printf("%d ",bt[i]);

      PreOrderTraverse(i2);//lchild

      PreOrderTraverse(i2+1);//rchild

      }

      void InOrderTraverse(int i)

      {

      if(bt[i]==-1) {return ;}

      InOrderTraverse(i2);//lchild

      printf("%d ",bt[i]);

      InOrderTraverse(i2+1);//rchild

      }

      void PostOrderTraverse(int i)

      {

      if(bt[i]==-1) {return ;}

      PostOrderTraverse(i2);//lchild

      PostOrderTraverse(i2+1);//rchild

      printf("%d ",bt[i]);

      }

      int main()

      {

      int i=0;

      memset(bt,-1,sizeof(bt));

      for(i=1;i<=MAXNUM;i++)

      bt[i]=i;

      printf("/n---------------/n");

      PreOrderTraverse(1);

      printf("/n---------------/n");

      InOrderTraverse(1);

      printf("/n---------------/n");

      PostOrderTraverse(1);

      return 0;

      }

      5. 查找鏈表中倒數第k個結點

      題目:輸入一個單向鏈表,輸出該鏈表中倒數第k個結點。鏈表的倒數第0個結點為鏈表的尾指針。鏈表結點定義如下:

      struct ListNode

      {

      int m_nKey;

      ListNode m_pNext;

      };

      (最快的方法,只遍歷一遍)

      int FindCoundDownInList(pListNode head,int num)

      {

      pListNode p1,p2;

      p1=p2=head;

      while(num-->0 && p1!=NULL) p1=p1->m_pNext;

      if(p1==NULL) return 0;

      else{

      while(p1!=NULL)

      {

      p1=p1->m_pNext;

      p2=p2->m_pNext;

      }

      return p2->m_nKey;

      }

      }

      6. 求三角形面積

      給出三角形的三個邊長為a、b、c,求三角形的面積。

      (注意考慮是不是三角形)

      double GetArea(int a,int b,int c)

      {

      if(a-b>=c || a+b<=c)

      return -0.1;

      else{

      double s=0.5(a+b+c);

      double area=sqrt(s(s-a)(s-b)(s-c));

      return area;

      }

      }

    最新圖文

    2020年河北新聞網兩學一做

    時間:2023-09-18 07:0:24

    2020年河北新聞網兩學一做

    時間:2023-09-15 11:0:59

    兩學一做學習教育知

    時間:2023-09-21 06:0:30

    2020年開展兩學一做學習教

    時間:2023-09-19 21:0:30
    亚洲七久久之综合七久久| 亚洲人成网站看在线播放| 亚洲AV无码男人的天堂| 亚洲人成免费电影| 亚洲精品影院久久久久久| 亚洲v高清理论电影| 久久亚洲精品无码| 亚洲福利视频一区| 国产AV无码专区亚洲Av| 亚洲精品美女久久久久99| 亚洲日韩中文无码久久| 亚洲日本一区二区三区在线| 亚洲精品无码MV在线观看| 欧洲亚洲国产清在高| 亚洲AV永久无码精品成人| 久久亚洲国产精品| 久久亚洲私人国产精品| 久久亚洲春色中文字幕久久久| 久久久久亚洲精品无码蜜桃| 亚洲第一页中文字幕| 亚洲福利电影一区二区?| 亚洲人成电影网站| 亚洲影院天堂中文av色| 色偷偷噜噜噜亚洲男人| 亚洲国产V高清在线观看| 亚洲毛片av日韩av无码| 国产亚洲精品福利在线无卡一| 国产亚洲日韩一区二区三区| 亚洲Av综合色区无码专区桃色| 亚洲激情中文字幕| 亚洲欧洲日产国产最新| 亚洲人成综合网站7777香蕉| 亚洲国产综合AV在线观看| 大胆亚洲人体视频| 亚洲综合网站色欲色欲| 亚洲第一福利网站| 激情内射亚洲一区二区三区爱妻| 亚洲国产精品99久久久久久| 亚洲伦乱亚洲h视频| 亚洲av永久无码精品漫画| 亚洲春色在线观看|