索尼招聘笔试真题分享

#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;k

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

temp=array; array=array[j]; array[j]=temp; } }

3.费波那其数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其他方法,但要说明你选择的理由。 #include

int Pheponatch(int); int main() {

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

答:因为新节点的左右指针没有赋NULL值,至使下面的while循环不能正确结束而导致内存越界,最后崩溃(注意结束条件是temp->left!= NULL或temp->right!=NULL)。

改正就是增加两条赋值语句,如上文红色部分字体就是新增的两条语句。

相关文章推荐:

华硕嵌入式程序员笔试真题分享

应对微软公司笔试的绝招

爱立信往年笔试真题

正略钧策往年笔试真题回忆

本文已影响6827
上一篇:2013年中国邮政储蓄银行招聘考试试题 下一篇:建设银行笔试考什么(笔试真题)

相关文章推荐

|||||