这一阵以来,错过了几次笔试良机。于是,心中竟然有一种做试卷的强烈欲望,好几次在梦中,磨拳檫掌,恨不能把所有公司的试卷都做一遍,以检查一下自己的水平。
今晚,终于做了自己的第一套卷子,是远光软件公司的。
每个人做两份卷子,一份是逻辑能力测试,是公共题。另一份则是按应聘方向出题,考查专业知识。
我先做专业题,第一部分是判断题,15道,全是数据库知识,半难不难的,由于有一段时间没看过数据库的书了,心里没底。第二部分选择题,18道,问一些java的问题,我没学啊,也有面向对象的知识,这方面我没问题,还有设计模式的一些图,没接触过。最后三道是程序分析题,是用C#写的,第一个程序是一个中序遍历二叉树的打印函数,大体是这样的:
{
char buffer[ 1000 ];
if (node)
{
midPrint(node -> left);
getNodeToStr(node,buffer);
printFun(buffer);
midPrint(node -> right);
}
}
然后有两个问题:
1、如果已知这棵树有10000个结点,且已经平衡。那么执行打印函数需要占用多少栈空间?
A、1000 B、2000 C、2100 D、10000
2、优化后,占用多少?
A、100 B、400 C、2000 D、10000
大意是这样,不知是我没理解好栈呢,还是他们题目的问法不太清楚,反正我现在还是没搞清题意想问什么,有理解的,恳请赐教。
第二道程序,考查对static、与及=、<、|、||优先级的知识。我觉得自己因该不会错。
程序大概是这样的:
bool MenberB( int k)
{
j += k;
}
bool MenberA( int i)
{
bool b;
b = i < 10 | MenberB( 8 );
b = i < 10 || MenberB( 4 );
return b;
}
问执行一次MenberA(0),j值为多少?
因为b = i<10|MenberB(8);由于|是按位或,虽然i<10,已经为真,但还会继续执行MenberB(8),从而使j值为8.
对于b = i<10||MenberB(4);于||是逻辑或,因为i<10,已经为真,所以MenberB(4)将不会执行。所以,最终结果就是j为8。结果应该就是这样吧。
第三道程序题,是问一些函数重载知识,用英文问,不知我理解有没有偏差,好像是这样问的:
Which is valid in a class to extend calss A?(at least two selection)
class A
{
pretected int menber(int a,int b);
}
A. privated int menber(int a, int b);
B. privated long menber(int a, int b);
C. privated int menber(int a, int b);
D. public int menber(int a, long b);
E. pretected int menber(int a, int b);
是英文题目,不知道自己没有没理解错,我选了C、D。
由于平时很少使用到pretected,这方面理解得不够深刻,D答案有点悬。
这份卷子,难度应该算适中,但本人把握却不大,一方面是因为语言并非自己最常用的C/C++,由于语言细节的差异,导致自己对一些题目的理解模糊。另一方面,也说明自己在内功上,还要不断下功夫。如果出一些编程题,也许对自已更有利。
冰冻三尺,非一日之寒,加油!