今天刚笔试完就来发了,感觉我好不厚道啊- -!,本人是学java方向的,但这次出题好多都是C里面的,另楼主直冒冷汗啊,毕竟还是菜鸟一枚,所以说感觉直接跪在笔试的可能性比较大,废话不说了,就凭本人的记忆来说一下今天的考试题吧
时间不早了就简单的说下自己的答案,仅供参考,希望大家批评指正
一、简答题
1、栈和队列的区别?举出不少于三个栈和队列的常用接口方法?
答:栈为先进后出数据结构,队列为先进先出,方法pop,push,isEmpty
2、什么是多态?在c++里面有什么方法表示多态,举出一个例子?
答:多态就是多种状态,有重载和覆盖
3、什么是tcp四次握手关闭连接?怎么理解TIME_WITE;
二、算法与程序设计题
1、用C++写出一篇文章的单词倒转,例如第一个单词倒转后为最后一个单词,最后一个单词倒转后为第一个单词。要求不准使用库函数以及系统调用,函数原型为 *char word_revese(*char str);
2、设一个数组有{a1,a2,a3,……,an},求单调增的字串长度,例如,7,3,4,8,5,6,单调增字串为3,4,5,6.长度为4;
动态规划,比较简单
#include<stdio.h> #include<string.h> int main() { int N,i,j,count,len,a[10010]; char str[10010]; scanf("%d",&N); while(N--) { scanf("%s",&str); len=strlen(str); for(i=0,a[0]=-200,count=1;i<len;i++) for(j=count-1;j>=0;j--) if(a[j]<str[i])//一旦在a[0..count-1]中找到就退出 { a[j+1]=str[i]; if(j==count-1) count++; break; } printf("%d\n",count-1); } return 0; }
3、设计个有限自动机,取出一个c文件里的所有注释。
三,系统设计题
这个是一个游戏排名系统的设计题,要求用户在客户端游戏结束之后需要向服务器提交分数,然后测出你的排名和在服务器的排名
1、客户端与服务器端应该如何设计,数据的存放和结构应该是用什么方式,便于查找和插入。
2、如果同时在线人数超过一亿你的设计还能使用吗?能,请说明理由。不能的话应该如何优化和设计?