腾讯2015春招pc客户端开发练习卷
时长:120分钟 总分:100分
179浏览 0人已完成答题
题型介绍
题型 | 单选题 | 多选题 | 简答题 |
---|---|---|---|
数量 | 8 | 7 | 3 |
In C++, which of the following keyword(s) can be used on both a variable and a function?
给出以下定义,下列哪些操作是合法的?
const char *p1 ="hello" char *const p2 = "world"
根据要求写出pqueue的工作原理
#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 6966726167696c69item 7374696365787069item 737570657263616c