今天刚笔试完就来发了,感觉我好不厚道啊- -!,本人是学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、如果同时在线人数超过一亿你的设计还能使用吗?能,请说明理由。不能的话应该如何优化和设计?