2015网易游戏校园招聘游戏插件研发岗笔试题

1.有pqueue.h如下
#ifndef HEADER_PQUEUE_H
#define HEADER_PQUEUE_H
typedef struct_pqueue{
   pitem *items;
    int count;
}pqueue_s;
typedef struct_pqueue *pqueue;
typedef struct_pitem{
   unsigned char priority[8];
   void *data;
   struct_pitem *next;
}pitem;
typedef struct_pitem *piterator;
pitem *pitem_new(unsigned char *prio64be,void *data);
void pitem_free(pitem *item);

pqueue pqueue_new(void);
void pqueue_free(pqueue pq);
pitem *pqueue_insert(pqueue pq,pitem *item);
pitem *pqueue_peek(pqueue pq);
pitem *pqueue_pop(pqueue pq);
pitem *pqueue_find(pqueue pq,unsigned char *prio64be);
pitem *pqueue_iterator(pqueue pq);
pitem *pqueue_next(piterator *iter);
int pqueue_size(pqueue pq);
#endif /*! HEADER_PQUEUE_H */
  pq_test.c如下: 

  #include<stdlib.h>
#include<string.h>
#include""pqueue.h""
/*remember to change expected.txt if you change there values*/
unsigned char prio1[8]=""supercal"";
unsigned char prio2[8]=""ifragili"";
unsigned char prio3[8]=""sticexpi"";
static void
pqueue_print(pqueue pq)
{
    pitem *iter,*item;
    iter=pqueue_iterator(pq);
    for(item=pqueue_next(&iter);item!=NULL;
        item=pqueue_next(&iter)){
        printf(""item\t%02x%02x%02x%02x%02x%02x%02x%02x\n"",
            item ->priority[0],item->priority[1],
            item ->priority[2],item->priority[3],
            item ->priority[4],item->priority[5],
            item ->priority[6],item->priority[7],
        }
}
int main(void)
{
    pitem *item;
    pqueue pq;
    pq=pqueue_new();
    item=pitem_new(prio3,NULL);
    pqueue_insert(pq,item);

    item=pitem_new(prio1,NULL);
    pqueue_insert(pq,item);

    item=pitem_new(prio2,NULL);
    pqueue_insert(pq,item);
    item=pqueue_find(pq,prio1);
    fprintf(stderr,""found %p\n"",item->priority);
    item=pqueue_find(pq,prio2);
    fprintf(stderr,""found %p\n"",item->priority);

    item=pqueue_find(pq,prio3);
    fprintf(stderr,""found %p\n"",item->priority);
   
    pqueue_print(pq);
    for(item=pqueue_pop(pq);item!=NULL;item=pqueue_pop(pq))
    pitem_free(item);

    pqueue_free(pq);
    return 0;
}
  pq_test.sh如下: 

  #!/bin/sh
set -e
./pq_test | cmp $srcdir/pq_expected.txt-
  pq_expected.txt如下: 

item 6966726167696c69   
item 7374696365787069   
item 737570657263616c
1).根据测试代码描述pqueue的工作原理。
2).请实现 pitem *pqueue_insert(pqueue pq,pitem *item);

2.http状态码中,()表示访问成功,()表示坏请求,()表示服务不可用

3.使用C/C++语言写一个函数,实现字符串的反转,要求不能用任何系统函数,且时间复杂度最小。 
  函数原型是:char *reverse_str(char *str)

4.请找出下面用于拷贝内存的代码中的逻辑错误,并修正。

void memcpy(const char* src,char* dest){
int len=strlen(src);
dest=(char*)malloc(len);
char* d=dest;
char* s=src;
while(len--!=0){
*d=*s;
d++;
s++;
}
}

5.在SQL中,一个表的定义如下:
CREATE TABLE t_account(
     account varchar(100),
     account_type TINYTEXT,
     PRIMARY KEY (account),
};
 account为账号,account_type为该账号的类型,写出一个sql,统计账号数累计超过5000个账号类型,并显示对应的账号数,即结果中每行是(账号类型,账号数)
参考答案:https://download.csdn.net/download/weixin_39813541/11160285

猜你喜欢

转载自blog.csdn.net/weixin_39813541/article/details/89850410