一、不定向选择题:
1、考出栈顺序:进栈顺序是a,b,c,d,哪些出栈顺序不可能?
2、考排序算法复杂度:选不正确的:a.堆排序时间复杂度最差是..最优是.. b.归并排序时间复杂度最差最优c.快速排序时间复杂度最差最优(具体数值不记得了,大概题型就这样)。
3、304http状态码是什么意思?请求的文档内容没有改变(http状态码要看)
4、static说法正确的是:
a、static成员棉量在对象构造时候生成
b、static成员函数在对象成员函数中无法调用
c、许成员函数不可能是static成员函数
d、static成员函数不能方威static成员变量
答案:c 解释,(1)类的static成员变量属于该抽象类,需要在类定义时初始化,不可以在对象的构造函数中初始化。(2)static成员函数在对象成员函数中可以调用,同属于一个类作用域(3)正确,static成员函数不可以声明为const和virtual,详见C++ primer(4)static成员函数只能够访问static 成员变量。
5、实例化一个类的时候,构造函数的调用顺序是?a父类构造函数b自身构造函数c成员对象构造函数我觉得顺序应该是abc。
二、简答题:(应该是要写下简要步骤的)
1、50个人,1~50编号,开始数数,每数到3的倍数的人退出,剩下的继续数,最后剩几号?11号。
2、999个节点的完全二叉树,深度是多少?最深处10,最浅处9。
3、国王有500瓶酒,其中有一瓶毒酒,喝了毒酒20小时才发作,24小时内找出毒酒最少要几个奴隶试酒?
这题非常有趣,可是我没做出来。回来上网找了,一个二进制的思路好赞!(也有用维度算得,把酒看成一个多维图形,用奴隶做线面定位,具体我不懂,思考不了多维度的空间)。
把500变成一个二进制数,需要9位,最少需要9个奴隶定位,比如说1号奴隶,就把1~500里面二进制数倒数第一位是1的酒都喝掉。如果1毒发死了,说明酒的编号最后一位是1,不是0。如果1没死,说明酒的编号最后一位是0。然后2号,就把1~500里面二进制倒数第二位是1的酒都喝掉,一直到9号啊~如果9个人都死了,说明9位都是1(举例啦,9位都是1超出了500范围了)。
4、很简单一道递归函数手推题,3次递归算完。
int calr(int a,int b)
{
if(a>=b) return (a==b)?a:b;
else return calf(a+2,b-1);
}
计算cal(2,6)
三、编程题(英文描述,没有要求什么语言)1、找两个字符串的最大公共substring2、判断一个字符串是不是对称的,如did,level就是对称的。
来源于 大街网