午夜拍键惊奇
子夜 编程 代码与我同在
posts - 48,comments - 118,trackbacks - 79
群硕的笔试在语言方面主要是Java和C++,夹了一道C#题,趁记忆犹新的时候记下来
 
一、给了一棵二叉树的前序遍历和中序遍历,要求写出后序遍历。
看一下数据结构就行了,很easy。提示:前序遍历的第一个节点为根结点,在中序遍历中根结点的左边节点是左子树,右边节点是右子树,如此递归。
 
二、什么是物理内存和虚拟内存,OS中为什么要使用虚拟内存?
看OS的书。
 
三、解释一下C#中的“delegate”。
原先不清楚的,然后在技术面试的时候问了一下面试官,原来类似于一个队列,队列中存的是函数指针(托管函数),运行时队列中的函数会在一个线程中被依次执行。
 
四、与子程序传递参数有哪些方法?
汇编题,我想起来三个:参数压栈、参数存寄存器、参数存数据段。
 
五、解释一下Java中的String和StringBuffer,什么时候需要使用StringBuffer?
核心是String对象是不变对象,连接、取子串等操作会生成新的对象,旧对象可能会被回收。StringBuufer则是可变对象,上述操作将在原对象上进行。
 
六、Java中哪些容器的默认布局器(layout)是BorderLayout?
这个不是那得很准,就写了JFrame及其子类,Frame及其子类。
 
七、一个C++的函数:
int operation(int numberA,int numberB){
  return numberA + numberB;
}
然后声明了三个变量:
int a = 2;
int result1 = operation(5, a++);
int result2 = operation(5+a, ++a);
问result1和result2的值。
原先以为考得是传值、传引用的问题,结果仔细一看考得是a++和++a的问题,这就简单了。
result1 = 7, result2 = 12
 
八、如果父类的析构函数没有声明为虚函数的话在父类的指针上调用析构函数会有什么后果?
屏蔽多态,子类申请的资源将不被释放。
 
九、定义了一个类:
class Something{
pulic:
  Something();
  void setValue(int val){
    value = val;
  }
 
private:
  int value;
}
以及一个函数:
void doSomething(int val){
  Something* sth = new Something(); // Line 1
  sth->setValue(val); // Line 2
}
问Line 2如果是doSomething()的最后一行的话会有什问题?
doSomething执行完后sth没有被销毁,内存泄漏。
 
十、写一个程序将输入的16进制转为10进制。
基础
 
十一、设计一个微波炉的控制程序(OO)。
这道题有点意思,我主要用Observer模式设计了一个定时器,然后把微波炉烹饪的对象抽象为Cookable。
 
十二、逻辑题,一列火车以15 mph的速度从北京开往上海,另一列火车以20 mph的速度从上海开往北京,一只鸟(比较笨)速度25 mph,在两列火车之间来回飞,相遇即折回。问到两列火车相遇这只笨鸟一共飞了多远?
很简单,因为鸟一直在飞,所以一共飞了s/(15 + 20),s为上海到北京之间的距离,那么它一共飞了s/(15 + 20) * 25 mile。
 
12道题,除了那道C#题,其它觉得没多少地方能扣我分了,当天晚上就没睡好,很兴奋。果然第二天上午就打电话来让我去面试,效率真的很高,然后就果然顺利拿到了offer
posted on 2005-11-18 20:36 ^ Mustang ^ 阅读(11180) 评论(15)  编辑  收藏 所属分类: 程序人生

FeedBack:
# re: 群硕笔试题
2006-03-08 20:55 | hnuwei612@gmail.com
第七题
result2 应该被解释为 ((5+(a++))+a 最后的值为 11 上机测试过.VC6.0  回复  更多评论
  
# re: 群硕笔试题
2006-03-08 22:57 | keny
都不对


应该是

result1=7
result2=13


result2应该解释为((5+(a++))+a没错,此时为5+4+4=13




  回复  更多评论
  
# re: 群硕笔试题
2006-03-12 15:03 | lhqing
a调用了3次,
1: operation(5, a++); a=2;a值没变。
2: operation(5+a .. 第2次调用a,a自加1=3;
3: ++a); 第3次调用a, 在a=3的基础上,先把a加1再运算 a=4;

result2 = 12
是正确的。  回复  更多评论
  
# re: 群硕笔试题
2006-04-29 11:45 | ustcxboy
搞没搞错,参数压栈是从右到左,所以:
a调用了3次,
1: operation(5, a++); a=2;语句完成后a=3。

2: ++a); 第2次调用a, 在a=3的基础上,先把a加1再运算 a=4;

3: operation(5+a .. 第3次调用a,a=4;

5+4+4=13  回复  更多评论
  
# re: 群硕笔试题
2006-11-09 00:27 | 潇洒哥
测试结果7 13  回复  更多评论
  
# re: 群硕笔试题
2006-11-10 09:09 | 微微
经过DEV-C++编译器测试结果是7,13  回复  更多评论
  
# re: 群硕笔试题
2006-11-23 09:11 | re: 群硕笔试题
result2=13
因为函数的参数值是从右到左计算的
int result2 = operation(5+a, ++a);
先计算++a,此时a=4;
然后计算5+a=9;
所以结果是13  回复  更多评论
  
# re: 群硕笔试题
2007-03-15 10:50 | 路过
刚进去有多少钱?
不方便写的话请发我邮箱吧,大谢了!!!
well88@citiz.net  回复  更多评论
  
# re: 群硕笔试题
2007-10-31 20:34 | 路人
怎么那怎么多傻B啊,还有人敢在这说是13,真TMD的傻B  回复  更多评论
  
# re: 群硕笔试题
2007-11-02 12:08 | Suriel
devC++测试 结果是 7 13 ,原因就是函数的参数值是从右到左计算的
1: operation(5, a++); a=2;语句完成后a=3。

2: ++a); 第2次调用a, 在a=3的基础上,先把a加1再运算 a=4;

3: operation(5+a .. 第3次调用a,a=4;

5+4+4=13   回复  更多评论
  
# re: 群硕笔试题[未登录]
2007-11-03 20:35 | Tina
我想问一下,你是笔试的软件开发吗?
因为我今年要参加群硕的笔试,可是我申请的是测试,开发和测试的题目是一样的吗?
谢谢~~  回复  更多评论
  
# re: 群硕笔试题
2007-11-03 23:38 | IMAX
明早就去群硕笔试了 希望顺利完成  回复  更多评论
  
# re: 群硕笔试题
2007-11-04 07:54 | yz79845
今天马上去笔试群硕
  回复  更多评论
  
# re: 群硕笔试题
2007-11-04 09:21 | 。。。
正要去笔试
谢谢!  回复  更多评论
  
# re: 群硕笔试题
2007-11-04 11:02 | goodspeed
今天我也去笔试  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: