Sony笔试题及分析

时间:2023-03-24 00:05:20 笔试题目 我要投稿
  • 相关推荐

Sony笔试题及分析

1.完成下列程序
*
*.*.
*..*..*..
*...*...*...*...
*....*....*....*....*....
*.....*.....*.....*.....*.....*.....
*......*......*......*......*......*......*......
*.......*.......*.......*.......*.......*.......*.......*.......
#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.完成程序,实现对数组的降序排序
#include
void sort( );
int main()
{
int array[]={45,56,76,234,1,34,23,2,3}; //数字任意给出
sort( );
return 0;
}
void sort( )
{
---------------------------------------------------------
││││││
---------------------------------------------------------
}
答:使用选择排序法,我为sort函数多加了两个形参,至少第一个是必须的,否则无法传入待排序数组。不知道这样做是否符合题意。

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.菲波纳契数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其他方法,但要说明你选择的理由。
#include
int Pheponatch(int);
int main()

Sony笔试题及分析

{
printf("The 10th is %d",Pheponatch(10));
return 0;
}
int Pheponatch(int N)
{
--------------------------------
││││
--------------------------------
}
答:使用递归,理由是递归编程简单,代码容易理解,但缺点是效率不高,而且有深度限制,如果深度太深,则堆栈会溢出。

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.下列程序运行时会崩溃,请找出错误并改正,并且说明原因。
#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, 数字任意给出
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;
}
}

【Sony笔试题及分析】相关文章:

Sony技术类笔试题及分析08-19

sony笔试题07-31

SONY逻辑笔试题07-31

索尼SONY招聘笔经07-27

Sony C++笔试题07-20

Sony erriscon手机软件测试的笔经07-17

招聘试题及分析中的五类常见笔试题及分析07-31

迅雷2011.10.21笔试题08-10

中兴2015笔试题08-02