Sony技術(shù)類筆試題及分析

時間:2018-12-31 12:00:00 資料大全 我要投稿

Sony技術(shù)類筆試題及分析

   1.完成下列程序

Sony技術(shù)類筆試題及分析

  *

  *.*.

  *..*..*..

  *...*...*...*...

  *....*....*....*....*....

  *.....*.....*.....*.....*.....*.....

  *......*......*......*......*......*......*......

  *.......*.......*.......*.......*.......*.......*.......*.......

  #include

  #define N 8

  int main()

  {

  int i;

  int j;

  int k;

  ---------------------------------------------------------

  ││││││

  ---------------------------------------------------------

  return 0;

  }

  答:

  #define N 8

  int main()

  {

  int i;

  int j;

  int k;

  for(i=0;i{

  for(j=0;j{

  printf("*");

  for(k=0;kprintf(".");

  }

  printf("\n");

  }

  return 0;

  }

  2.完成程序,實(shí)現(xiàn)對數(shù)組的降序排序

  #include

  void sort( );

  int main()

  {

  int array[]={45,56,76,234,1,34,23,2,3}; //數(shù)字任意給出

  sort( );

  return 0;

  }

  void sort( )

  {

  ---------------------------------------------------------

  ││││││

  ---------------------------------------------------------

  }

  答:使用選擇排序法,我為sort函數(shù)多加了兩個形參,至少第一個是必須的`,否則無法傳入待排序數(shù)組,

Sony技術(shù)類筆試題及分析

。不知道這樣做是否符合題意。

  void sort(int *array,int num)

  {

  int temp;

  for(int i=0;ifor(int j=i+1;jif (array{

  temp=array;

  array=array[j];

  array[j]=temp;

  }

  }

  3.菲波納契數(shù)列,1,1,2,3,5……編寫程序求第十項(xiàng)?梢杂眠f歸,也可以用其他方法,但要說明你選擇的理由。

  #include

  int Pheponatch(int);

  int main()

  {

  printf("The 10th is %d",Pheponatch(10));

  return 0;

  }

  int Pheponatch(int N)

  {

  --------------------------------

  ││││

  --------------------------------

  }

  答:使用遞歸,理由是遞歸編程簡單,代碼容易理解,但缺點(diǎn)是效率不高,而且有深度限制,如果深度太深,則堆棧會溢出,

資料共享平臺

Sony技術(shù)類筆試題及分析》(http://clearvueentertainment.com)。

  int Pheponatch(int N)

  {

  if (N==3)

  return 2;

  else if (N==2||N==1)

  return 1;

  else

  return Pheponatch(N-1)+Pheponatch(N-2);

  }

  4.下列程序運(yùn)行時會崩潰,請找出錯誤并改正,并且說明原因。

  #include

  #include

  typedef struct TNode

  {

  TNode* left;

  TNode* right;

  int value;

  }TNode;

  TNode* root=NULL;

  void append(int N);

  int main()

  {

  append(63);

  append(45);

  append(32);

  append(77);

  append(96);

  append(21);

  append(17); // Again, 數(shù)字任意給出

  return 0;

  }

  void append(int N)

  {

  TNode* NewNode=(TNode *)malloc(sizeof(TNode));

  NewNode->value=N;

  NewNode->left=NULL; //新增

  NewNode->right=NULL; //新增

  if(root==NULL)

  {

  root=NewNode;

  return;

  }

  else

  {

  TNode* temp;

  temp=root;

  while((N>=temp->value && temp->left!=NULL)||(Nvalue && temp->right!=NULL))

  {

  while(N>=temp->value && temp->left!=NULL)

  temp=temp->left;

  while(Nvalue && temp->right!=NULL)

  temp=temp->right;

  }

  if(N>=temp->value)

  temp->left=NewNode;

  else

  temp->right=NewNode;

  return;

  }

  }

  答:因?yàn)樾鹿?jié)點(diǎn)的左右指針沒有賦NULL值,至使下面的while循環(huán)不能正確結(jié)束而導(dǎo)致內(nèi)存越界,最后崩潰(注意結(jié)束條件是temp->left!= NULL或temp->right!=NULL)。改正就是增加兩條賦值語句。

【Sony技術(shù)類筆試題及分析】相關(guān)文章:

1.Sony筆試題及分析

2.SONY筆經(jīng)

3.sony東京筆經(jīng)

4.Sony筆試題

5.索尼SONY招聘筆經(jīng)

6.SONY邏輯筆試題

7.Sony筆試題目

8.盛大非技術(shù)類筆經(jīng)