上海聚力传媒技术有公司官方VC笔试题解答....docVIP

  • 1
  • 0
  • 约7.25千字
  • 约 8页
  • 2016-09-19 发布于贵州
  • 举报

上海聚力传媒技术有公司官方VC笔试题解答....doc

上海聚力传媒技术有公司官方VC笔试题解答...

上海聚力传媒技术有限公司成立于2005年5月,是家新冒出来的公司,而他能够冒出来的原因是由于它的电视直播软件PPLIVE()抢占了基于P2P技术的网络视讯服务的先机,超级女生电视节目的火爆成就了PPLIVE软件这款软件,不过现在这个领域的竞争者蜂拥而上,日子并不轻松。如果是我,我会很慎重的考虑这类新兴小公司的,当然我还是很佩服它的,公司的创始人是华中科技大学的校友,有幸见过他的演讲。   下面是它2005年度的官方VC笔试题,他称:如有自信2小时能做完的应聘者请将做完答案发mail至campus_hr@,我们会马上和你联系的。呵呵,我并不打算把答案发到这个邮箱去。 一、问答 1、实模式与保护模式。为什么要设计这两种模式?好处在什么地方?分别写出各自寻址的过程。 答: 1. 实模式,又叫实地址模式,CPU完全按照8086的实际寻址方法访问从00000h--FFFFFh(1MB大小)的地址范围的内存,在这种模式下, CPU只能做单任务运行;寻址公式为:物理地址=左移4位的段地址+偏移地址,即:物理地址是由16位的段地址和16位的段内偏移地址组成的。 2. 保护模式,又叫内存保护模式,寻址采用32位段和偏移量,最大寻址空间4GB,在这种模式下,系统运行于多任务,设计这种模式的原因和好处是:保护模式增加了寻址空间,增加了对多任务的支持,增加了段页式寻址机制的内存管理(分段机制使得段具有访问权限和特权级,各应用程序和操作系统的代码和核心是被保护的,这也是多任务支持的实现关键和保护这个名字的由来)。寻址过程为:物理地址=由段地址查询全局描述符表中给出的段基址+偏移地址,即:物理地址由影像寄存器中的基址加上16位或者32位的偏移组成。 2、请阅读以下一段程序,并给出答案。 class A { public: A(){ doSth(); } virtual void doSth(){printf(I am A);} }; class B:public A { public: virtual void doSth(){ printf(I am B);} }; B b; 执行结果是什么?为什么? 答:执行结果是I am A 因为b对象构造时调用基类A的构造函数A(),得此结果。 3、在STL的应用中 map这种key-value的应用很多,如果key的类型是GUID,该如何处理? 答:谁知道怎么处理补上吧。 4、一个内存变量a=5,有5个线程需要对其进行操作,其中3个对a进行加1操作,2个对a进行减1操作,为了保证能够得到正常结果6,需要使用什么方法?(列出越多越好) 答:即要求列出线程同步方法,具体答案可见下面一题。 5、描述并比较以下对象:事件,信标,临界区,互斥对象。 答:这些对象都是用于线程同步的对象。 临界区:一种保证在某一时刻只有一个线程能访问数据的简便办法。它只可以在同一进程内部使用。主要API函数有,产生临界区: InitializeCriticalSection,删除临界区:DeleteCriticalSection,进入临界区: EnterCriticalSection,退出临界区:LeaveCriticalSection。 互斥对象:互斥对象跟临界区相似,但它不仅仅能够在同一应用程序不同线程中实现资源的安全共享,而且可以在不同应用程序的线程之间实现对资源的安全共享,当然下面两者也有这个特点。主要API函数有,创建互斥量: CreateMutex,打开一个存在的互斥量: OpenMutex,释放互斥量的使用权:ReleaseMutex,关闭互斥量: CloseHandle。 信标:使用信号量(信标)最重要用途是:信号允许多个线程同时使用共享资源,它指出了同时访问共享资源的线程最大数目。它的API函数和使用方法都与互斥对象相似,如创建信号灯:CreateSemaphore,传入的参数可以指定信号灯的初始值。 事件:用来通知其他进程/线程某件操作已经完成。API函数有创建,打开事件对象等,特殊点的是可以用函数SetEvent人工设置事件为有无信号状态,因此创建事件对象时可以有两种方式,一种为自动重置,一种为人工重置。只有人工重置方式创建的事件对象才能正确使用函数SetEvent。 鉴于本套题考的是VC,有必要说明的是在MFC中对于各种同步对象都提供了相对应的类CCtiticalSection,CMutex,CSemaphore ,CEvent,另外为使用等待功能封装了两个类:CSingleLock和CMultiLock。这些类方便了使用这些同步对象。 6、cdecl、stdcall、fastcall是什么?哪种可以实现个数不定的入口参数,为什么? 答:三者都是函数调用的约定。 cdecl:c declare(C调用约

文档评论(0)

1亿VIP精品文档

相关文档