Sony技术类笔试题及分析 1.完成下列程序 *.*. *..*..*.. *...*...*...*... *....*....*....*....*.... *.....*.....*.....*.....*.....*..... *......*......*......*......*......*......*...... *.......*.......*.......*.......*.......*.......*.......*....... #include #defineN8 intmain() inti; intj; intk; --------------------------------------------------------- ││││││ --------------------------------------------------------- return0; 答: #defineN8 intmain() inti; intj; intk; for(i=0;i{ for(j=0;j{ printf("*"); for(k=0;kprintf("."); printf("\n"); return0; 2.完成程序,实现对数组的降序排序 #include voidsort(); intmain() intarray[]={45,56,76,234,1,34,23,2,3};//数字任意给出 sort(); return0; voidsort() --------------------------------------------------------- ││││││ --------------------------------------------------------- 答:使用选择排序法,我为sort函数多加了两个形参,至少第一个是必须的,否则无法传入待排序数组。不知道这样做是否符合题意。 voidsort(int*array,intnum) inttemp; for(inti=0;ifor(intj=i+1;jif(array{ temp=array; array=array[j]; array[j]=temp; 3.菲波纳契数列,1,1,2,3,5……编写程序求第十项。可以用递归,也可以用其他方法,但要说明你选择的理由。 #include intPheponatch(int); intmain() printf("The10this%d",Pheponatch(10)); return0; intPheponatch(intN) -------------------------------- ││││ -------------------------------- 答:使用递归,理由是递归编程简单,代码容易理解,但缺点是效率不高,而且有深度限制,如果深度太深,则堆栈会溢出。 intPheponatch(intN) if(N==3) return2; elseif(N==2||N==1) return1; else returnPheponatch(N-1)+Pheponatch(N-2); 4.下列程序运行时会崩溃,请找出错误并改正,并且说明原因。 #include #include typedefstructTNode TNode*left; TNode*right; intvalue; }TNode; TNode*root=NULL; voidappend(intN); intmain() append(63); append(45); append(32); append(77); append(96); append(21); append(17);//Again,数字任意给出 return0; voidappend(intN) 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)。改正就是增加两条赋值语句。
本文档为【Sony技术类笔试题及分析】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。