EMC笔试题目12篇.docx
《EMC笔试题目12篇.docx》由会员分享,可在线阅读,更多相关《EMC笔试题目12篇.docx(52页珍藏版)》请在三一文库上搜索。
1、EMC笔试题目12篇1:EMC第我题目单选(逸对1分,选错倒扣0.25,不选0分),一共26.题.每题5个选项1,问能用8位二迸制数的艰小的10进制数2.10101010101写成10进制和16进制分别是多少3,数列题,16进制,0x64.0x190,0x384.0x640.0x9C44,一列题,16进制,Ox1,0x8,OxlB,0x40,0x7D5,因式分解,9x*2-496.7魁率慧,说3个人,每人一个口袋,里面4个球,lred,3bIue然后就是拿球的概率,超简单,都是乘法定律,8.问int*a10;的意思9,问int*(*a)10;10, int(*a10);11-13问的是repl
2、ace算法,给出了5个进程,和他们的loaded,lastaccessed的时间间下列算法,会替换哪个进程11, NRU12,FIFO1.RU14, 6个driver,n个ProCCSs,每个ProCeSS需要2个driver,问WhiChn,deadlockfreeinthebestcase选项记不清了,好像n=3,n=3,nfl;/C:flOp-f2();/A:f2()p=newCO:/A:A()B:B()C:C()deletep:/A:A()注意:析构函数不是VirtUa1.因此析构的时候不会多态/C:C()B:B()A三A()SySten(“PAUSE);return0;)(主要是子类
3、实例定义是父类生成函数的调用顺序、清理时报销淆数的调用顺序,重载和多态的区别,还有就是栈上变量在函数退出叶的清理,比如C在main函数退出叶自动清理.要调用撤销函数)3 .函数声明如下intunc(inti,intN):其中i(inti,intN)(return(i=Nftftprintf(4,%dn.i)I(printf(uinn,i)fip(i+l.N)Urintf(%dnJ);intmain(intargc,char*agv)(p(i,N);return0;IT3:it也试题目I、有一个名人和很多平民在一块,平民都认识这个名人,但是这个名人不认识任何一个平民,任意两个平民之间是否认识是未
4、知的,请设计一个算法,快速找个这个人中的那个名人。巳知已经实现了一个函数olkrum(inta.inib)这个函数返回IrUe的叶侯,表明a认识b.返回false的时候表明a不认识b.思路:首先将n个人分为n/2殂,每一组有2个人,然后每个组的两个人调用这个know函数,假设为know(a,b),返回true的时候说明a认识b,则a肯定不是名人,a可以排除掉了.依次类推,每个组梆调用这个函数依次,那么n个人中就有n/2个人被排除掉了.数据规模将为n2同理在剩下的n/2个人中在使用这个方法.那么规模就会将为n4,这样所有的遍历次数为n2+n4+n8+这个一个等比数列,时阿复杂度为。(n)。2,进
5、程切换需要注意哪些问题?保存处理器PC寄存器的值到被中止进程的私有堆栈;保存处理器PSW寄存器的值到被中止进程的私有堆栈;保存处理器SP寄存器的值到被中止进程的进程控制块;保存处理器箕他寄存器的值到被中止进程的私有堆栈;自待运行进程的进程控制块取SP值并存入处理器的寄存器SP;自待运行进程的私有堆栈恢复处理器各寄存器的值:自待运行进程的私有堆栈中弹出PSW值并送入处理器的PS机自待运行进程的私有堆枝中弹出PC值并送入处理器的PJ3,输入一个升序数组,然后在数组中快速寻找两个数字,其和等于一个给定的值。这个编程之美上面有这个题目的,很简单的,用两个指针一个指向数组前面,一个指向数组的后面,遗历一
6、遢就可以了。4、判断一个自然数是否是某个数的平方.当然不能使用开方运算。方法1:遍历从1到N的数字,求取平方并和N进行比较。如果平方小于N,则继续遍历:如果等于N,则成功退出:如果大于N,则失敢退出.复杂度为O(nP.5).方法2:使用二分查找法,对1到N之间的数字进行判断。复杂度为0(logn)方法3:由于(n+l)-2=n2+2n+1,=1+(2*1+1)+(2*2+1)+.+(2*n+1)注意到这些项构成了等差数列(每项之间相差2.所以我们可以比较N-1,N-1-3,N-1-3-5.和O的关系。如果大于0,则继续减;如果等于0,则成功退出;如果小千0.则失败退出。复杂度为0(r0.5).
7、不过方法3中利用加成法替换掉了方法1中的耒法,所以速度会更快些。例如:32=9=1+2*1+1+2*2+1=1+3+542=16=1+2*1+1+2*2+1+2*3+1ints0)(i+=2;n-=i;)if(n=0)是某个数的平方return1:else/不是某个数的平方*4:It第试题目一、算法设计I、设rand(s,t)返回s.t之间的随机小数,利用该函数在一个半径为R的圆内找随机n个点,并绐出时间夏杂度分析.思路:这个使用数学中的极坐标来解决,先调用si,tl随机产生一个数r,归一化后来以半径,得到R*(r-sl)(tl-sl),然后在调用s2,t2随机产生一个数a,归一化后得到角度:
8、360*(a-s2)(t2-s2)2.为分析用户行为,系统常第存储用户的一些query,但因query非常多,故系统不能全存,设系统每天只存m个query.现设计一个算法,对用户请求的quey进行随机选择m个,请给一个方案,使得每个query被捕中的蜕率相等,并分析之,注意:不到最后一刻,并不知用户的总请求量。思路;如果用户查询的数量小于in,那么宜接就存是来。如果用户查询的数量大于m,假设为m+i,那么在Ii-m+i之间随机产生一个数,如果选择的是前面m条查询进行存取,那么蜕率为m(m+i),如果选择的是后面i条记录中的查询,那么用这个记录来替换前面m条交询记录的概率为m(m+i)*(l-l
9、m)=(m-l)(m+i),当查询记录量很大的时候,m/(m+i)Gn-D/(m+i),所以每个query被抽中的概率是相等的。3、C+ST1.中vector的相关问题:(1) .调用PUShJaCk时,其内部的内存分配是如何进行的?(2),调用Clear叶,内部是如何具体实现的?若想将其内存暮放,该如何操作?vector的工作原理是系统预先分配一块CAPACITY大小的空间,当插入的数据超过这个空间的时候,这块空间会让某种方式扩展,但是你删除数据的时候,它却不会缩小。vector为了防止大量分配连续内存的开销,保持一块默认的尺寸的内存,clear只是清数据了,未清内存,因为VeCtQr的ca
10、pacity容量未变化.系统维护一个的默认值。有什么方法可以释放掉vector中占用的全都内存呢?标准的辉决方法如下templatevoidClearVector(vector&vt)(vectorvtTemp;VeTemP.swap(vt):)事实上,vector根本就不管内存,它只是负责向内存管理框架acquire/release内存,内存管理椎架如果发现内存不够了,就malloc,但是当VeCIOr移放资源的叶侯(比如destruct),Sll根本就不调用Free以减少内存,因为内存分配在stl的底层:stl核定如果你带要更多的资源就代表你以后也可能需要这么多资源(你的list,hash
11、map也是用这些内存),所以就没必要不停地malloc/free。如果是这个装辑的话这可能是个trade-off一般的ST1.内存管理器all。CaU)I梆是用内存池来管理内存的,所以某个容器申请内存或样放内存都只是影响到内存池的剌余内存量,而不是真的把内存归还给系统。这样做一是为了避免内存碎片,二是提高了内存申请和择放的效率一一不用每次郎在系统内存里寻找一番。二、系垸设计正常用户端每分钟最多发一个请求至服务端,服务端需做1.个异常客户端行为的过逋系统,设服务器在某一刻收到客户端A的一个请求,则1分钟内的客户端任何其它请求都需要被过够,现知每一客户端都有一个IPv6地址可作为其ID,客户端个数
12、太多,以至于无法全部放到单台服务器的内存hash表中,现霜简单设计一个系统,使用支持高效的过墟,可使用多台机器,但要求使用的机器越少越好.请将关键的设计和思想用图表和代码表现出来。三、求一个全排列函数:如p(,2,3)输出:123、132、3、231、321.323求一个组合函数如p(U,2,3)输出:1,2,、1,2,2,3,1,3.1,2,3这两间可以用伪代码。K5:it笔试题目1,对于如下程序:Cincludeusingnamespacestd:classApublic:A(coutA”=*pl; pl=*p2; p2=*p;)voidmainO(doublea=0.1;doubleb=
13、0.2;swap(&a.&b);请找出上述代码的错误,指出错误的原因,并改正。答:函数SWaP中混清了double型指针与double型变量的差别,对于一个未初始化的指针访问其内存空间是非常危险的。对SWaP函数修改如下:voidswap(double*pl,double*p2)(doublep;P=*pl; pl=*p2; p2=p;)6、在电信业务的后台父理程序中,经常会涉及到处理字符串,除了用Char*处理字符串之外,C+还为我们提供了封装了的字符串类string,其本质也是用一个动态数组来保存字符串,类String的原型为:classString(public:String(const
14、char*str=NU1.1.);/普通构造函数String(constStringftother);/拷贝构造函数String(void):/析构函数String&operate=(constStringMother);/氟值函数private:Char*mdata;用于保存字符串请编写String的上述1个函数普通构造函数、拷贝构造函数、析构函数和微值函数。代码如下:classString(private:char*111.0;else(i11tlength=strlen(str);m_data=newCharlength+1;assert(mdata!=NU1.1.);strcpy(m_
15、data,str);)String:String(constStringother)拷贝构造函数mdata=newcharother.length+l;assert(mdata!=NU1.1.);strcpy(*this.m_data,other.m_data);)String:String(void)析构函数(if(m_data!=NU1.1.)(deletem_data:mdata=NU1.1.;)String&String:operator=(constStringfcother)/赋值函数(if(iother!=this)(delete(*this).tndata;(this),mda
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- EMC 笔试 题目 12
