·天新网首页·加入收藏·设为首页·网站导航
数码笔记本手机摄像机相机MP3MP4GPS
硬件台式机网络服务器主板CPU硬盘显卡
办公投影打印传真
家电电视影院空调
游戏网游单机动漫
汽车新车购车试驾
下载驱动源码
学院开发设计
考试公务员高考考研
业界互联网通信探索
分享:一次面试编程题给我的感受
http://www.21tx.com 2005年08月23日 软考资讯网

1 2 下一页

  做为一名大四的学生,我面试过不少的单位,有成功的也有失败的,但是对我来说所有的失败在某种意义上都是一种成功,特别是我下面写的这些,写这篇文章的时候,我已经签了南京的一家软件公司,但是想起今年2月21日我面试苏州台湾的IT公司的经历联想到我们现在学习编程的一些情况我真的深有感触,这次面试使我深深的体会到了失败但也收获了很多。我要说的将分成三部分,1.是我面试的具体经过2.是由面试想到的3.现今我应该做的。当然这些话很大程度上是我个人的意见,不可能完全得到大家的赞同,所以在某些观点上如果哪位朋友觉得跟我的有很大出入,请不要介意,也不要对我攻击,就当我没有说过,欢迎和我联系共同探讨这些问题!

  1.面试经过

  大约在年前我接到了台湾瑞晟(Realtek)苏州公司的面试通知,通知我2月21日到苏州工业园区面试,接到面试后的几天我把一些专业课温习了一遍,特别是C++和数据结构,由于大学几年里,我一直专研这些方面,加上通过了高级程序员的考试,对于一些常用的算法我差不多也达到了烂熟于胸的地步,当时的感觉是如果问了我这些方面的问题我应该是没有问题的!

  21日那天我被安排在4:30面试,由一位技术人员单独给我面试,在问了一些简单的问题之后他给我出了一道编程题目,题目是这样的:

  (由于具体面试的题目比较烦琐,我将其核心思想提取出来分解成了两个独立的简单的问题,有可能问题分解的不当,请大家见谅,实际面试了一个的问题但比其复杂很多,而且涉及一些高等数学变换)

  1) 写一个函数计算当参数为n(n很大)时的值 1-2+3-4+5-6+7......+n

  哼,我的心里冷笑一声!没想到这么简单,我有点紧张的心情顿时放松起来!

  于是很快我给出我的解法:

  long fn(long n)

  {

  long temp=0;

  int i,flag=1;

  if(n<=0)

  {

  printf("error: n must > 0);

  exit(1);

  }

  for(i=1;i<=n;i++)

  {

  temp=temp+flag*i;

  flag=(-1)*flag;

  }

  return temp;

  }

  搞定!当我用期待的目光看着面试官的时候,他微笑着跟我说,执行结果肯定是没有问题!但当n很大的时候我这个程序执行效率很低, 在嵌入式系统的开发中,程序的运行效率很重要,能让CPU少执行一条指令都是好的,他让我看看这个程序还有什么可以修改的地方,把程序优化一下!听了这些话,我的心情当时变的有点沉重,没想到他的要求很严格,之后我对程序进行了严格的分析,给出了改进了的方案!

  long fn(long n)

  {

  long temp=0;

  int j=1,i=1,flag=1;

  if(n<=0)

  {

  printf("error: n must > 0);

  exit(1);

  }

  while(j<=n)

  {

  temp=temp+i;

  i=-i;

  i>0?i++:i--;

  j++;

  }

  return temp;

  }

上一篇: 【上海】2005年11月软考报名指南
下一篇: 【软考】简单SQL语句小结

1 2 下一页

关于我们 | 联系我们 | 加入我们 | 广告服务 | 投诉意见 | 网站导航
Copyright © 2000-2011 21tx.com, All Rights Reserved.
晨新科技 版权所有 Created by TXSite.net