一、不定向选择题:
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
6、已知一段文本有1382个字符,使用了1382个字节进行存储,这段文本全部是由a、b、c、d、e这5个字符组成,a出现了354次,b出现了483次,c出现了227次,d出现了96次,e出现了232次,对这5个字符使用哈夫曼(Huffman)算法进行编码,则以下哪些说法正确(ACD)哈夫曼编码也是一个笔试常考知识点
A、使用哈夫曼算法编码后,用编码值来存储这段文本将花费最少的存储空间
B、使用哈夫曼算法进行编码,a、b、c、d、e这5个字符对应的编码值是唯一确定的
C、使用哈夫曼算法进行编码,a、b、c、d、e这5个字符对应的编码值可以有多套,但每个字符编码的位(bit)数是确定的
D、b这个字符的哈夫曼编码值位数应该最短,d这个字符的哈夫曼编码值位数应该最长
二、简答题:(应该是要写下简要步骤的)
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、找两个字符串的最大公共substring
2、判断一个字符串是不是对称的,如did,level就是对称的。