面试总结9

国庆后面试了老家那边一家从事北斗卫星导航方面研究的公司,待遇在当地算是很不错的,但由于当时手上有了几家相对平台较大的公司的offer,从自己长远的发展考虑最后也只好遗憾的拒绝了。以下是部分被问到的问题分享一下。

1、讲述一个你在项目中发现的最有意义的BUG及其原因(如果有的话)?


2、选几个手机里你常用的APP或者功能,或者几个常见的电子产品,指出你认为需要改进的地方?


3、五年后你不想干的事是什么?


4、给出你使用的最熟练的几个开发工具及辅助工具或系统?


5、有没有业余开发什么小软件,或发些相关技术文章、评论之类的?


6、你最喜欢去的技术网站有哪些,或者是开发过程中最常去寻求解决方案的网站有哪些?特别是国外的网站。


7、产品出现了故障,有人立马指出是你负责的模块存在问题,你怎么处理?

答:先整体分析是否有可能是自己负责的模块存在问题,如果是再仔细排查找出问题并迅速解决。

 

8、手头有10万多个EXCEL表格,需要全部导入到Mysql数据库中成为数据库中的一个表,你需要多长时间完成,用什么语言、什么方法?


9、需要做一个TCP服务器,监听上百个客户端,对这些客户端进行管理、控制、监测以及通信。请问服务器的网络相关代码采用什么设计思路?

答:如果是在Linux环境下可以采用IO多路复用模型中的epoll。多进程模型和多线程模型每个进程/线程只能处理一路IO,在服务器并发数较高的情况下,过多的进程/线程会使得服务器性能下降。而通过多路IO复用,能使得一个进程同时处理多路IO,提升服务器吞吐量。

而IO多路复用中select和epoll相比又有3个缺点:1、连接数受限 2、查找配对速度慢 3数据要由内核拷贝到用户态。

       实现epoll可以通过3步来完成:1、调用epoll_create()此调用返回一个句柄,之后所有的使用都依靠这个句柄来标识。2、epoll_ctl()系统调用。通过此调用向epoll对象中添加、删除、修改事件。3、epoll_wait()系统调用。通过此调用收集收集在epoll监控中已经发生的事件。


10、推荐一个好的软件开发人员必看的3本书?

 

11、如何评价下面这段代码?

for (col = 0; col < 1000; col ++) {

   for(row = 0; row < 100; row ++) {

      table[row][col] = BlankElement();

}

}

答:

 

12、下面左右两部分代码的输出内容一样吗?如果不一样,请给出理由。

char *getm() {

   char p[]=”Hello World”;

   return p;

}

int main() {

   char *str=NULL;

   str=getm();

   printf(str);

}

char *getm() {

   char *p=”Hello World”;

   return p;

}

int main() {

   char *str=NULL;

   str=getm();

   printf(str);

}

答:输出结果不一样。

       左边代码输出不确定或者可能会乱码,右边输出Hello World。char p[]=”Hello World”声明一个数组,它作为一个局部变量存放在栈区,函数执行完之后系统自动对其进行清除,所以将一个指针再指向这地址输出会不确定。而char *p=”Hello World”声明一个指针指向”Hello World”字符串起始位置,而且该字符串被保存在字符常量区,在程序结束后系统才会回收这部分内存。P指向这部分内存所以程序能正常显示改字符串。


13、写一个字符串反转的代码?


14、时针一分钟转多少度?

     时钟一共12个数字,时针转一圈12小时就360度,所以1小时就是360/12=30度,因为1小时60分钟,所以1分钟就是30/60=0.5度!!!


15、时针分针秒针一天重合几次?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章