EMC笔试题

来自http://blog.csdn.net/nixun/archive/2008/03/13/2178681.aspx

相关 http://hi.baidu.com/andvar/blog/item/4553a3ef8e35bd16fdfa3ca7.html

 

一、单选(选对1分,选错倒扣0.25,不选0分),一共26题,每题5个选项
1,问能用8位二进制数的最小的10进制数                    (128?)
2,10101010101写成10进制和16进制分别是多少    (...)
3,数列题,16进制,0x64,0x190,0x384,0x640,0x9C4
4,数列题,16进制,0x1,0x8,0x1B,0x40,0x7D
5,因式分解,9x^2-49        (3x+7)(3x-7)
6,7 概率题,说3个人,每人一个口袋,里面4个球,1red,3blue
然后就是拿球的概率,超简单,都是乘法定律。
8,问int **a[10]; 的意思        (二维int指针数组)
9,问int *(*a)[10];   (一个一维int数组的指针)
10, int (*a[10])();   (一个函数数组的指针)
11-13 问的是replace算法,给出了5个进程,和他们的loaded,last accessed的时间
问下列算法,会替换哪个进程
11, NRU         (Not Recently Use)
12, FIFO        ( First In First OUT)
13, LRU        ( Lease Recently Use)
14,6个driver,n个process,每个process需要2个driver,问which n, deadlock free in the best case
选项记不清了,好像n=3,n<=3, n<6, n = 6,none of above
15 64^(2/3)
16 问N个noodles,每次找两个ends,连起来,直到no ends,问expacted number of loops
17 一段C程序,主要考察const char*, const
18 一大段话,选True or False,进程调度,有关priority inversion
19 common solution to avoid priority inversion
20 很简单的C程序,问result
21 还是C程序,主要问sizeof()
22 C程序,问常量定义和函数调用中的print("%d",__LINE__);
23,24 C程序,考察 N1 >>= 1 和 N2 += (n1 & 1)
25, 26 也是很简单的C程序

二、information question,两道选择,EMC的R&D center at Beijing and Shanghai,
1,你首选工作地点:(ft,-Shanghai)
2,second choice(ft again,-Beijing)

三、Bonus question,下个C/C++的函数
从单链表中找到一个cycle

四、简答,in English
starvtion 和 deadlock 的异同

2007.04

第一部部分的选择题既有智力题也有计算机基础知识题还有编程语言题。

  1.7×(1/7) = 1是什么率?           乘法的消去律?

  2.What's database view?         虚表

  3.4*(3*2) = (4*3)*2是什么率?   乘法的结合律

  4.ABCDEF六城市两两相连,问从A到B经过其他城市有且只有一次的路径有多少个?    

  9.对代码中syntax进行分析用到的什么文法?

  10.问要进行stable的sorting,会避免使用哪种算法?

稳定:冒泡、插入、归并、基数

不稳定:选择、快速、堆排序、shell

  17.0.15625写成二进制是什么 0.000101

  18.问1,2,3,5,8,13...这个数列,第58个除以第57个得多少?    1.618    F数列最后接近黄金分割

  19.问关于fopen(“w”)的问题(主要是覆盖而不是追加)        r - read w - write r+ r/w w+ r/w a append

  20.问一连串cat和sort命令后输出

  22.问RAID0的作用?

把连续的数据分散到多个磁盘上存取,RAID 0 并不是真正的RAID结构, 没有数据冗余

http://www.cnii.com.cn/20060529/ca365641.htm  23.火星上到处是硬币,随便拿起一个,如果是头朝上的就翻成字朝上的,如果是字朝上的就抛出,落地后有各一半的机会头朝上或字朝上。再随便拿起包括刚才那个在内的所有硬币中的一个,重复前述步骤。问,很多很多次后字朝上和头朝上的硬币比例?2:1

  24.问RAID5的作用?

RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上

  25.麦当劳有6块9块20块鸡的袋子,问大于等于N块的鸡都能正好用前述袋子装走的最小N是多少?44

  26.问又要考虑安全又要充分利用带宽的网络中,是先加密后压缩,还是先压缩后加密?  先压缩后加密

  27.问要使一群人存在2人同月出生概率不低于50%的最小人数是多少?5

  28.c++中不可重载的运算符是?

 

不允许重载:.    ::    .*      .->      ?: 

  29.TCP/IP不存在那个层?(secure layer)

  主要体会是,一些基础知识平时要注意积累,特别是面向对象、RAIN、网络,很多笔试都有考到,智力题的话注意积累经验。

  第三部分是三道程序题。要求至少答两道,有时间也可以答三道。

  1.写一个画圆的函数

  int drawCircle(int x, int y, int radius);

  要求:要让圆看起来连续圆滑,要画多于4×radius个点。

  画点使用int drawPoint(int x,int y)函数

  2.写出一段c++程序的输出。主要考察重载、多态、继承

class A{public:    A(){ cout << "A:A" << endl; }    ~A(){ cout << "A:~A" << endl; }     virtual void f1() { cout << "A:f1" << endl; }    void f2() { cout << "A:f2" << endl; }}; class B: public A{public:    B(){ cout << "B:B" << endl; }    ~B(){ cout << "B:~B" << endl; }     void f1() { cout << "B:f1" << endl; }    void f2() { cout << "B:f2" << endl; }}; class C: public B{public:    C(){ cout << "C:C" << endl; }    ~C(){ cout << "C:~C" << endl; }     void f1() { cout << "C:f1" << endl; }    void f2() { cout << "C:f2" << endl; }}; int main(){    {    C c; // A::A()  B::B()  C::C()    A *p = &c;    c.f1(); //C::f1()    c.f2(); //C::f2()    p->f1(); //C::f1()    p->f2(); //A::f2()    p = new C(); //A::A()  B::B()  C::C()     delete p; //A::~A()    //注意:析构函数不是virtual,因此析构的时候不会多态    //C::~C()  B::~B()   A::~A()    }     system("PAUSE");    return 0;}(主要是子类实例定义是父类生成函数的调用顺序、清理时撤销函数的调用顺序,重载和多态的区别,还有就是栈上变量在函数退出时的清理,比如c在main函数退出时自动清理,要调用撤销函数)

  3.函数声明如下

  int func(int i ,int N);

  其中i <= N,功能输出i递增到N再递减到i的整数,每行输出一个数。比如func(1,5)就是

1

2

3

4

5

4

3

2

1

 

要求
1 只能有1个语句,即一个分号
2 不能使用do while until goto for if关键字,不能使用?:和逗号运算符
3 唯一能使用的库函数为printf

int p(int i, int N){    return ((i==N&&printf("%d/n",i))||(printf("%d/n",i)&&p(i+1,N)&&printf("%d/n",i)));}  int main(int argc, char **argv){    p(i, N);     return 0;} 

前两天EMC笔试中碰到的一道比较有意思的题目:碗里有n根面条,现在一次在碗中取任意两头(未必是同一根面条的)连在一起,直到没有面条的“头”剩下为止,问平均可以在碗里形成多少个圈?
答案参考全文阅读

【全文】
设n根面条得到的结果是f(n),做一次“粘头”的操作其实可以分成两种情况:
1. 被粘的两头是同一根面条上的
这种情况的发生的概率是1/(2n-1),此时平均圈数为1+f(n-1)
2. 被粘的两头是不同两根面条上的
这种情况的发生的概率是(2n-2)/(2n-1),此时平均圈数为f(n-1)
于是有:
f(n)=1/(2n-1)*(1+f(n-1))+(2n-2)/(2n-1)*f(n-1)=1/(2n-1)+f(n-1)
而f(1)=1
于是f(n)=sum(1/(2*i-1), i=1..n)

1. 菲波那契数列 1,1,2,3,5,8,13……的第40位除以第39位得多少?即,N40/N39=?2Aa/tv$J|1QA%z
    a. 1.666666
b. 1.618xxx(后面几位记不清了)

c. 1.600000 B
d. 以上都不对

记住Fibonacc数列的前后比值越来越趋近黄金分割比

根5+1除2等于1.6180339887498948482045868343656

推算选B

2. 数列 0,1,3,6,10,15,21……从a0加到a10000得多少?
a. 50005000 b. 50000000 c. 49995000  d. 500000  e. 以上都不对

这个我没想到估算的方法,但是直接可以从求和式推出来

1. 有一个村庄,村庄里各户人家直到生出女孩来就不再生小孩了,而生男孩女孩的概率1hk6n&qP5GV/Axdv
各是1/2。请问这个村庄男孩女孩的比例是多少
    a. 2:3   b. 3:2
    c. 1:1(每次出生都由概率相等的事件发生?据说是这个)
    d. 2:1 e. 1:2

男女比例3:2

男:A=(n-1)/2^n的数列求和,n>1且为自然数

女:B=1/2^n的数列求和,n>0且为自然数

A:B=3:2


2. 有一家人,老公、老婆、儿子还有老公的妈妈,其中有一个是律师,一个是医生-l0c/h~7X;`
  如果医生比律师年轻,则医生与律师没有血缘关系
  如果医生的女的,那么医生和律师有血缘关系
如果律师是男的,医生也是男的.
请问我们能确定这家人里的那一个人
a. 老公是医生 b. 老婆是医生 c. 儿子是医生 d. 老公的妈妈是医生
e. 以上都不对

这个题推算,构造一棵树,然后将不符合的剪枝


3. 实验室里有1000个一模一样的瓶子,但是其中的一瓶有毒。可以用实验室的小白鼠来
测试哪一瓶是毒药。如果小白鼠喝掉毒药的话,会在一个星期的时候死去,其他瓶子里
的药水没有任何副作用。请问最少用多少只小白鼠可以在一个星期以内查出哪瓶是毒药
a. 9   b. 10  c. 32 d. 999
e. 以上都不对

B

2分法推断,每次测试都要配药

4. 有ABCDEF六个城市,每一个城市都和其他所有城市直接相连,问从A——B有多少种连
接方式。路径不允许在两个城市之间往返。(这题的选项可能有的数记错了)
    a. 78    b. 84  c. 65 d. 43 e. 以上都不对

5! = 120?

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/nixun/archive/2008/03/13/2178681.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值