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

这篇博客主要介绍了PQueue数据结构及其C语言实现,包括插入操作、查找和打印元素。此外,还涉及HTTP状态码、字符串反转的C++实现、内存拷贝的逻辑错误修正以及SQL查询。博客提供了相关代码示例和测试用例,帮助读者深入理解这些概念。
摘要由CSDN通过智能技术生成

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值