99精品在线免费_久久99精品久久久久久久青青日本_精品亚洲成人_欧美国产一区二区在线观看_亚洲自拍电影_久久久久久久久久97

歡迎來(lái)到 職場(chǎng)詞典網(wǎng) , 一個(gè)優(yōu)秀的職場(chǎng)知識(shí)學(xué)習(xí)網(wǎng)站!

加入收藏

您所在的位置:首頁(yè) > 面試指南 > 筆試

筆試

騰訊2014校園招聘C語(yǔ)言筆試題

分類(lèi): 筆試 職場(chǎng)詞典 編輯 : 職場(chǎng)知識(shí) 發(fā)布 : 06-11

閱讀 :673

 1. 輸入一個(gè)鏈表的頭結(jié)點(diǎn),從尾到頭反過(guò)來(lái)輸出每個(gè)結(jié)點(diǎn)的值。鏈表結(jié)點(diǎn)定義如下:

  struct ListNode

  {

  int m_nKey;

  ListNode* m_pNext;

  };

  A: 遞歸方法逆序輸出,棧方法逆序輸出。 (任意實(shí)現(xiàn)一種既可)

  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);

  while(!IsEmpty(&s))

  {

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

  }

  }

  2. 二元樹(shù)的深度

  題目:輸入一棵二元樹(shù)的根結(jié)點(diǎn),求該樹(shù)的深度。從根結(jié)點(diǎn)到葉結(jié)點(diǎn)依次經(jīng)過(guò)的結(jié)點(diǎn)(含根、葉結(jié)點(diǎn))形成樹(shù)的一條路徑,最長(zhǎng)路徑的長(zhǎng)度為樹(shù)的深度。

  #include<stdio.h>

  #include<stdlib.h>

  #include<string.h>

  #include<time.h>

  #define MAXLEN 100

  #define MAXNUM 10

  typedef int Tree[MAXLEN];

  Tree bt;

  int GetDeep(int i)

  {

  int l=0,r=0;

  if(bt[i*2]!=-1)

  {

  l=GetDeep(i*2)+1;

  }

  if(bt[i*2+1]!=-1)

  {

  r= GetDeep(i*2+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]=i*2;

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

  return 0;

  }

  3. 整數(shù)的二進(jìn)制表示中1的個(gè)數(shù)

  題目:輸入一個(gè)整數(shù),求該整數(shù)的二進(jìn)制表達(dá)中有多少個(gè)1。例如輸入10,由于其二進(jìn)制表示為1010,有兩個(gè)1,因此輸出2。

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

  int Bit1inInt(int i)

  {

  int result=0;

  do{

  result+=i&1;

  }while(i=i>>1);

  return result;

  }

  4. 從上往下遍歷二元樹(shù)

  題目:輸入一顆二元樹(shù),從上往下按層打印樹(shù)的每個(gè)結(jié)點(diǎn),同一層中按照從左往右的順序打印。

  (先序,中序,后序三種方式實(shí)現(xiàn))

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

  #include<stdio.h>

  #include<stdlib.h>

  #include<string.h>

  #include<time.h>

  #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[1];

  while(qe.begin!=qe.end)

  {

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

  {

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

  }

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

  {

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

  }

  qe.begin++;

  }

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

  for(i=0;i<qe.end;i++)

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

  return 0;

  }

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

  typedef int Tree[MAXLEN];

  Tree bt;

  void PreOrderTraverse(int i)

  {

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

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

  PreOrderTraverse(i*2);//lchild

  PreOrderTraverse(i*2+1);//rchild

  }

  void InOrderTraverse(int i)

  {

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

  InOrderTraverse(i*2);//lchild

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

  InOrderTraverse(i*2+1);//rchild

  }

  void PostOrderTraverse(int i)

  {

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

  PostOrderTraverse(i*2);//lchild

  PostOrderTraverse(i*2+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. 查找鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)

  題目:輸入一個(gè)單向鏈表,輸出該鏈表中倒數(shù)第k個(gè)結(jié)點(diǎn)。鏈表的倒數(shù)第0個(gè)結(jié)點(diǎn)為鏈表的尾指針。鏈表結(jié)點(diǎn)定義如下:

  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. 求三角形面積

  給出三角形的三個(gè)邊長(zhǎng)為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;

  }

  }

下一篇:太古地產(chǎn)有限公司筆試經(jīng)驗(yàn)分享 下一篇 【方向鍵 ( → )下一篇】

上一篇:大眾點(diǎn)評(píng)2015校招Web前端工程師在線筆試題 上一篇 【方向鍵 ( ← )上一篇】

主站蜘蛛池模板: 国产精品久久久久一区二区三区 | 在线视频一区二区三区 | 欧美一级三级 | 99精品免费视频 | 91电影在线播放 | 国产福利在线 | 欧美大片一区二区 | 国产99久久精品一区二区300 | 中文字幕精品一区久久久久 | 久久精品视频在线观看 | 九九热精| 一道本不卡 | 中文在线a在线 | 欧美一区二区三区在线播放 | 国产在线激情视频 | 欧美一区二区三区精品免费 | 国产欧美日韩精品一区二区三区 | 国产精品欧美一区二区三区 | 欧美综合在线观看 | 亚洲成人网在线播放 | 国产精品视频网 | 亚洲一区二区视频 | 亚洲一区二区在线 | 在线看一区二区 | 国产一区二区精品在线观看 | 99精品欧美一区二区蜜桃免费 | 日韩一区二区在线视频 | 国产精品一区二区三区四区 | 99久久精品视频免费 | 日韩一区二区三区在线视频 | 日韩高清一区二区 | 97av视频 | 日韩中文一区二区三区 | 国产精品成人一区二区三区 | 亚洲国产aⅴ精品 | 在线播放国产一区二区三区 | 久久亚洲一区二区三区四区 | 成在线人视频免费视频 | 久久久久久久电影 | 久久99精品久久久久蜜桃tv | 成人免费看黄 |