腾讯2015春招pc客户端开发练习卷

时长:120分钟 总分:100分

179浏览 0人已完成答题

题型介绍
题型 单选题 多选题 简答题
数量 8 7 3
1.
下列运算符,在C++语言中不能重载的是()
问题详情




2.
下列说法错误的有( )
问题详情




3.
下列的模板说明中,正确的有?
问题详情

下列的模板说明中,正确的有( )




4.
In C++, which of the following keyword(s) can be used on both a variable and a function?
问题详情

In C++, which of the following keyword(s) can be used on both a variable and a function?





5.
Which of the following statement(s) equal(s) value 1 in C programming language?
问题详情





6.
下列定义语句中,错误的是
问题详情




7.
抽象基类是指( )
问题详情




8.
给出以下定义,下列哪些操作是合法的?
问题详情

给出以下定义,下列哪些操作是合法的?
const char *p1 ="hello"
char *const p2 = "world"




9.
关于IP地址下列说法错误的是?
问题详情






10.
对于二分查找算法下面描述正确的是哪个?
问题详情




11.
用来检查到一台主机的网络层是否连通命令是( )?
问题详情




12.
类B从类A派生,则类B可以访问类A中的( )成员?
问题详情





13.
路由器转发数据包到非直接网段的过程中,依靠下列哪一个选项来寻找下一跳地址?
问题详情

路由器转发数据包到非直接网段的过程中,依靠下列哪一个选项来寻找下一跳地址( )




14.
IPv6地址占多少个字节?
问题详情

IPv6地址占____个字节




15.
以下说法正确的是?
问题详情

以下说法正确的是:





16.
调用动态连接库的函数有哪几种方法?
问题详情
17.
WM_QUIT消息的用途是什么?一个普通的Windows窗口能收到的最后一条消息是什么?
问题详情
18.
根据要求写出pqueue的工作原理
问题详情

有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!=NULLitem=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)