百度2014校园招聘研发工程师笔试题+答案
来源:互联网 发布:战国之道网络连接失败 编辑:程序博客网 时间:2024/05/19 19:55
一,简答题(30分)
1,当前计算机系统一般会采用层次结构存储数据,请介绍下典型计算机存储系统一般分为哪几个层次,为什么采用分层存储数据能有效提高程序的执行效率?10分
(1)典型计算机存储系统一般分为:高速缓存(Cache),主存,辅存;三者速度递减,价格递减,容量递增。
(2)原因:最基本的原理是程序的局部性,即某一指令(数据)一旦被执行(访问),那么不久之后很可能再次被执行(访问)。
高速缓存(Cache),主存,辅存;三者速度递减,价格递减,容量递增。
Cache<-->主存:解决速度问题;
主存<-->辅存:解决容量问题。
2,Unix/Linux系统中僵尸进程是如何产生的?有什么危害?如何避免?(10分)
(1)产生
一般是 子进程结束后,是它的内核栈 (特别是进程描述符)依然驻留在内存中,这时需要父进程在wait 系统调用中,取得子进程的退出信息,然后内核就能释放那个进程描述符。如果父进程没有这样做的话,子进程就沦为僵死进程。
(2)危害
Linux系统对运行的进程数量有限制,如果产生过多的僵尸进程占用了可用的进程号,将会导致新的进程无法生成。这就是僵尸进程对系统的最大危害。
(3)避免
1》signal(SIGCHLD,SIG_IGN);
2》fork 2次,让孙子进程由 init(1) 进程接管
3》用waitpid等待子进程返回
3,简述Unix/Linux系统中使用socket库编写服务器端程序的流程,请分别用对应的socket通信函数表示(10分)
服务器端流程如下:
1.创建serverSocket
2.初始化 serverAddr(服务器地址)
3.将socket和serverAddr 绑定 bind
4.开始监听 listen
5.进入while循环,不断的accept接入的客户端socket,进行读写操作write和read
6.关闭serverSocket
客户端流程:
1.创建clientSocket
2.初始化 serverAddr
3.链接到服务器 connect
4.利用write和read 进行读写操作
5.关闭clientSocket
二,算法与程序设计题
1,使用C/C++编写函数,实现字符串反转,要求不使用任何系统函数,且时间复杂度最小,函数原型:char* reverse_str(char* str)。(15分)
char* reverse_str( char str[] ){ //char *cp_left = str; //char *cp_right = str; int l = 0; int r = 0; while( *(str+r) != '\0' ) r++; r--; char tmp='\0'; while( l <= r ) { tmp = str[l]; str[l] = str[r]; str[r] = tmp; l++; r--; } return str;}
2,给定一个如下格式的字符串(1,(2,3),(4,(5,6),7))括号内的元素可以是数字,也可以是另一个括号,请实现一个算法消除嵌套的括号,比如把上面的表达式变成:(1,2,3,4,5,6,7),如果表达式有误请报错。(15分)
int reg_str( char *cp_src, char *cp_des ){ int stack_num = 0; *(cp_des++) = '('; while( *cp_src!= '\0' ) { if( *cp_src == '(' ) { stack_num++; } else if( *cp_src == ')' && stack_num >0 ) stack_num--; else if( *cp_src == ',' ) { *cp_des = *cp_src++; continue; } else if ( '0' <= *cp_src && *cp_src <= '9' ) { *(cp_des++) = *cp_src; } else { printf( "Expression ERROR!\n" ); return 0; } cp_src++; } *(cp_des++) = ')'; *(cp_des++) = '\0'; return 1;}
- 百度2014校园招聘研发工程师笔试题+答案
- 百度2014校园招聘研发工程师笔试题+答案 (北京)
- 百度2014校园招聘-研发工程师笔试题
- 百度2014校园招聘 软件研发工程师 笔试题
- 百度2014校园招聘-研发工程师笔试题
- 百度2013校园招聘笔试题[软件研发]及答案
- 百度2013校园招聘软件研发笔试题及答案
- 百度2013校园招聘笔试题[软件研发]及答案
- 百度2013校园招聘笔试题[软件研发]及答案
- 百度2013校园招聘移动软件研发工程师笔试题
- 百度校园招聘2013.10.13软件研发工程师笔试题
- 百度校园招聘-研发工程师笔试题(济南站)
- [历年IT笔试题]2014百度校园招聘-研发工程师笔试题(济南站)
- 百度2014校园招聘-研发工程师笔试题(济南站)
- 百度2014校园招聘-研发工程师笔试题(济南站)
- 百度2014校园招聘-研发工程师笔试题(济南站)
- 百度2014校园招聘-研发工程师笔试题(济南站)
- 百度 2014 校园招聘 软件研发工程师 笔试题(天津站)
- 通过StoryBoard创建UIViewController
- 并查集-poj2236
- bitmap索引的深入研究(自我改版)
- .NET路径
- oracle 查看用户所在的表空间
- 百度2014校园招聘研发工程师笔试题+答案
- 10月1日之10月7日各种生活细节和总结
- 大话设计模式--代理模式 proxy
- 海量数据处理面试题
- Golang下通过syscall调用win32的dll实现mifare card读写
- USB初学(四)-----arthur0561对USB的解析,在21ic论坛上,非常不错
- SAP 物料基本单位与BOM单位
- Remove Yahoo Toolbar with WindowsUninstaller.Org Removal Tips
- Web可视化盛宴:近2000个D3.js范例汇总(christopheviau.com)