1、把QQ用户分成三个年龄段:小于16岁,16到18岁,大于18岁,从三个年龄段中任意选取4人参加用户调查,请问有多少种选法?( )
A. 12
B. 14
C. 15
D. 18
参考答案:A
2、
#include<stdio.h> class Base { public: virtual void foo(){printf(“call Base::foo().\n”);} void bar(){printf(“call Base::Derive().\n”);foo();} }; class Derive:public Base { public: void foo(){printf(“call Derive::foo().\n”);} void bar(){printf(“call Derive::Derive().\n”);foo();} }; int main() { Base * ptr = new Derive(); if(ptr !=NULL) ptr->bar(); return 0; }
A. call Derive::bar().
call Derive::foo().
B. call Derive::bar().
call Base::foo().
C. call Base::bar().
call Derive::foo().
D. call Base::bar().
call Base::foo().
参考答案:C
备注:题目代码有误,正确代码如下:
#include<stdio.h> class Base { public: virtual void foo(){printf("call Base::foo().\n");} void bar(){printf("call Base::bar().\n");foo();} }; class Derive:public Base { public: void foo(){printf("call Derive::foo().\n");} void bar(){printf("call Derive::bar().\n");foo();} }; int main() { Base * ptr = new Derive(); if(ptr !=NULL) ptr->bar(); return 0; }
A、Comment字段定义为CHAR(N)类型
4、设一棵二叉树中有3个叶子结点,有8个度为1的结点,则该二叉树中总的结点数为( )。
A. 12
B. 13
C. 14
D. 15
E. 16
参考答案:B
对于任意一棵二叉树,如果其叶结点数为N0,而度数为2的结点总数为N2,则N0=N2+1;
N=3+8+(3+1)=11+4=15
5、关于C++中修饰符static和extern说明正确的是( )。
A. static修饰类属成员对象或函数,则它们是所有类对象共享的
B. static修饰全局对象或函数,则它们也是全局所有工程文件共享的
C. 类属static函数和非static函数可以重载
D. 工程包括A、B两个文件,在文件A定义全局静态对象,可以在文件B中extern声明后访问
正确答案:AC
6、众所周知,队列是先进先出的数据结构,栈是先进后出的数据结构,封装尽可能少的队列来实现一个栈,即使用进队出队的方法来实现压栈弹栈,你觉得需要几个队列( )
A. 不可能实现
B. 3
C. 2
D. 1
E. 0
参考答案:C
7、以下哪些同步方法不能用于线程之间同步( )
A. 互斥锁(mutex/futex)
B. 条件变量
C.消息队列
D.共享内存
E.unix域socket
参考答案:C、D、E
8、下面代码的输出结果是( )
struct B { B(){s_count_++;)} virtual void dec(){s_count_--;} static int s_count_; }; int B::s_count_=0; struct D:public B{ D(){s_count_+=2;} virtual void dec(){s_count_-=2;} }; int main(){ B*pd = new D[3]; for(int i = 0;i<3; i++){ pd[i].dec(); } std::cout<<B::s_count_<<”,”; B b = pd[0]; b.dec(); std::cout<<B::s_count_<<std::endl; return 0; }
A. 0,0
B. 2,2
C. 3,2
D. 3,1
参考答案:C
9、假设MySQL数据库中建立了对字段A、B、C的联合索引(A、B、C),请问下面哪些查询可以利用到这个索引?( )
A.select id form table where A = “x” and B = ‘y” and C = “z”
B.select id form table where A = “x” and B = “y”
C.select id form table where A = “x”
D.select id form table where A = “x” and C = “z”
参考答案:A、B、C
10、下列关于路由器的描述正确的是( )
A. 维护路由表,更新路由信息
B. 对IP数据包做差错校验
C. 检测网络拥塞,确保IP数据包不丢失
D. 将IP地址转换成Mac地址,根据Mac地址表将数据包转发给其他路由器
正确答案:A
11、TCP使用三次握手协议来建立连接,设甲乙双方发送报文的初始序号分别为X和Y,甲方发送(1)的报文给乙方,乙方接收报文后发送(2)给甲文,然后甲方送文一个确认报文给乙方便建立下了连接。(ACK的下标为捎带的序号。
A. 1. SYN = 1,序号=X
2. SYN=1,序号=X+1
B. 1. SYN = 1,序号=X+1,ACKx=1
2. SYN = 1,序号=X+1,ACKx=1
C. 1. SYN=1,序号=Y
2. SYN=1,序号=Y,ACKx + 1=1
D. 1. SYN=1,序号=y,ACKy + 1=1
2. SYN=1,序号=y,ACKy + 1=1
参考答案:C
解析:第一次发送的报文没有ACK,B、D排除;第二次回复的报文有ACK,A排除,只剩下答案C,选之。
12、在一个10阶的B-树上,每个树根结点中所含的关键字数目最多允许为( )个,最少为( )个。
A. 10,5
B. 9,4
C. 8,3
D. 7,6
参考答案:B
1.定义任意非叶子结点最多只有M个儿子;且M>2;
2.根结点的儿子数为[2, M];
3.除根结点以外的非叶子结点的儿子数为[M/2, M];
4.每个结点存放至少M/2-1(取上整)和至多M-1个关键字;(至少2个关键字,根节点至少一个关键字。
13、在最坏情况下,以下哪些排序算法时间复杂度是O(n2)?( )
A. 归并排序
B. 快速排序
C. 堆排序
D. 冒泡排序
E. 以上都是
参考答案:B、D
14、有三人在玩斗地主(总共54张牌,其中地主20张,两个农民各17张),请问大小王在同一人手里的概率大约是多少(四舍五入)。 ( )
A. 30%
B. 32%
C. 34%
D. 35%
参考答案:B
出现王炸的概率:K2=K1+2*C(52,15)/C(54,17)=0.3229
15、现在,有很多实际项目里存在一些场景,开发者自行封装可靠UDP取代TCP的情况,这种处理是出于什么样的考虑,下面那些描述是正确的? ( )
A.使用UDP协议通讯,在移动网络上可以获得更快的响应速度
B.使用TCP协议通讯,在网络拥堵的情况下,重传机制可能会带来很大的时延,并且很难优化
C.对于单个请求包较大的情况下,超过一个MTU的场景,UDP的效率更高
D.对于包次序没有强制要求的业务场景,UDP协议比TCP协议更高效
正确答案:ABD
1、对于一棵满二叉排序树深度为K,节点数为2^K-1;节点值为1至(2^K-1)。 给出K和任意三个节点的值,输出包含该三个节点的最小子树的根节点值。
样例输入:4 10 15 13
样例输出:12
答题前请选择使用的编程语言,否则将会被判定为错误答案。自动补全关键字的快捷键是Ctrl+l,撤销快捷键是Ctrl+Z。