Intel面试总结20100104

1)       列出知道的排序算法,并说出各个排序算法的优点

这道题我只写出了各个排序算法的名称,有选择排序,插入排序,合并排序,快速排序,堆排序等等,并没有写出最后的优点。

2)       写一个排序算法

这道题我写了一个快速排序的算法:

Int SPLITA,low,high

{

           I=low;

           X=A[low];

           For(j:low+1 to high)

           {

                    If (A[j] <= x)

                    {

                             I = i+1;

                             If (I != j)

                             {

                                       互换A[i]A[j]

}

}

}

互换A[low]A[i];

w = I;

return  w;

}

 

Quicksort(A,low,high)

{

           If (low < high)

           {

                    W = SPLIT(A,low,high);

                    Quicksort(A,low,w-1);

                    Quicksort(A,w+1,high);

}

}

 

Void Main()

{

           Quicksort(A,1,n);

}

3)       如何判断一个链表中存在循环,并找到这个循环的起始节点

4)       然后是个改错题,记不大清楚了,貌似是这个样子的:

#include <stdio.h>

Class Hello

{

           Const char* String()

           {

                    Char  temp[] = “Hello,world!”;

                    Return temp;

}

}

 

int main()

{

           Printf(“%s/n”,Hello.String);

           Return 0;

}

 

我当时只是改了一些小错误,主要的错误没有改出来,其实我当时对这个错误产生了疑惑,只是没有去付出实践如何去改动,关键还是对自己没有太大的把握,我现在认为正确的应该是这样子的:

#include <stdio.h>

class Hello

{

public:

    static const char* String()

    {

       char* temp = "hello,world!";

       return temp;

    }

};

 

int main()

{

    printf("%s/n",Hello::String());

    return 0;

5)       }然后是一道技术题目:

要求是写一段程序,可以输出自己的源代码,拿到这个题目之后是一点都不会的。面试完回到宿舍上网查了查,找到了下面的一条语句:

int main(a){printf(a,34,a="int main(a){printf(a,34,a=%c%s%c,34);return 0;}",34);return 0;}

然后看了半天才看懂,其实这段代码也没有多少的神奇色彩,并不是我们开始怀疑exe文件是找不到自己的源代码的,其实这段语句只是一个输出格式上的取巧,利用双引号的ASCII34这一个特点来将自己重复的输出出来。

 

6)       另外,还有一道题目是一个编程题:

题目说在Pascal语言里面的bool值是一bit,而在c++里面Boolean值是32bit,那么就要求用c++来实现Packed Boolean Array

一开始这题目我理解好像有错误,因为题目里面有提到说如果是在Pascal中,如果是32bool值的话就要有32bit4byte)的空间,我以为是这个Packed Boolean Array就是这么一个固定的大小,所以我直接上来就实现了一个固定大小的这么一个Array,后来那个准boss问我的时候才发现自己理解错了。人家只是想实现一个Pascal里面的Boolean变量。可以用来产生数组的。

 

另外就是关于Qt

qtslotsignal有什么用处?

 

总结,在面试的时候遇到的一些问题:

首先,是对代码编程的一些细节的问题,比如在一些简单的边界的判断;

其次,是对已经做过的项目的细致理解,比如在做霍尼韦尔中TCMS多线程的时候是如何在各个多线程之间同步的,传输数据的。

         如果是准备在面试的时候给别人讲自己做的东西的时候,要提前把自己做的东西要细致的分析并掌握,看看里面到底有什么值得说的,还有一些细节的东西。

         看来面试的时候,我的这个开发经历比较会被提出来讲解的,尤其是这里的多线程,一要把这个项目中多线程是如何实现的要讲解清楚,另外还要再了解甚至掌握多线程其他一些同步的机制,通过编程来实现。

         计划等有空的时候,真正的自己写一个多线程的例子来实现一些小的功能。

 

         另外,对c++的掌握,包括STL的掌握,对STL一些模板比如queuevector的一些函数的准确使用,还有这些结构底层是如何实现的。

 

         还有,对实验室的项目来说,dns性能上的优化结果,数据。

 

         总之,整体上感觉这次intel应该是没有希望了,和其他同学来比还是差了很多。我应该做的,对已经做过的东西要熟练掌握的基础上,再去看其他的东西。要学一门,精一门。不能知道很多,但是没有精通的地方。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值