北京仙掌面试总结

来源:互联网 发布:一对一教学软件 编辑:程序博客网 时间:2024/05/02 07:59

    今天去北京仙掌面试,这是一家做手机游戏的公司,我面试的职位是C/C++软件工程师。

    可谓是丢人丢大发了,一个笔试就直接让人家鄙视了,其实笔试试题不是很难,这充分说明一个问题,暴露出以前很多的缺点。

    第一点,动手能力太差,很多编程题目知道怎么去写,也可以用伪代码写出来,但是用计算机语言写出来就出现了问题。比如说今天的第一道编程题目,涉及到的知识点只有些顺序结构的问题,我却没有准确的表达出来。

    第二点,基础太差。有几道是位运算的题目,一道是用最有效率的办法计算2乘以8等于几?另一道是使用位运算符来交换整数变量X和Y。在这个知识点上也能够出现这样的问题,真的是不应该。第一道用移位运算符可以实现吧 ,可我也不敢写出来。 第二道则是完全没有想到,只知道有临时变量和另外一种方法可以实现,却没有想到异或运算符。

    另外的几点知识点也不是很扎实,比如const,++,指针诸如此类的东西,还有算法的东西,比如表,遍历,A*算法。

    晚上再次和哥哥谈起培训的事,这一次我也彻底打消了自己这样的想法 。看了他用java实现的游戏, 我真的觉得好惭愧。 这不仅仅是代码的问题, 这是一种怎样的人生态度。 为什么别人能做到的事情你就不能做到??????


另附:

1.使用位运算符来交换整数变量X和Y

#include<iostream>using namespace std;int swap(int* x , int* y) ;int main(){int a = 3 , b = 4 ;cout << a << " " << b << endl ;swap(&a,&b) ;cout << a << " " << b << endl ;return 0 ;}int swap(int* x , int* y) {*x = *x ^ *y ;*y = *y ^ *x ;*x = *x ^ *y ;return 0 ;}
c中异或运算的具体用法


异或:若参加运算的两个二进制位同号,则结果为0;异号则为1.即 0异或0=0,1异或0=1,1异或1=0.应用:1.使特定位翻转。假设有01111010,想使其低4位翻转。可以将它与00001111进行异或运算。结果为011101012.与0异或,保留原值。如012异或00=012.3.交换两个值,不用临时变量。假如a=3,b=4。想将a和b的值互换,可以用以下赋值语句实现:a=a异或b;b=b异或a;a=a异或b;


2.A*算法

   可见 http://www.cppblog.com/Tim/archive/2011/10/07/33217.html


3.其他诸如指针,const,算法等知识点自行复习。