您的位置:首页 > 编程语言 > C语言/C++

牛客网(搜狗2015 C++工程师笔试题)

2015-08-08 10:57 405 查看
题9:下面说法正确的是()

A:C++已有的任何运算符都可以重载
B:const对象只能调用const类型成员函数
C:构造函数和析构函数都可以是虚函数
D:函数重载返回值类型必须相同

解析:构造函数不能是虚函数,函数重载只跟参数个数和类型有关。

题11:下面哪个API返回的不属于windows内核对象()
A:CreateFile            B:CreateSemaphore                  C:CreateDC                   D:CeateEvent

解析:ABD选项是内核对象:事件对象HANDLE CreateEvent();文件对象HANDLE CreateFile();信号量对象HANDLE CreateSemaphore();C选项是GDI对象。设备上下文(HDC)  CreateDC

题13:以下关于线程以下描述正确的是()

1.windows线程创建时,默认绑定在1个特定的CPU上
2.可采用SetThreadAffinityMask接口设置线程与某个cpu绑定
3._beginthreadex比CreateThread创建线程安全是因为使用_beginthreadex会创建一个_tiddata,在调用一些诸如strtok函数时会将需要保护的数据存入_tiddata
4.使用_beginthread创建线程时,线程执行函数必须为_cdecl约束规范,而_beginthreadex指定的线程执行函数必须为_stdcall
解析:参考  http://blog.csdn.net/beyond_cn/article/details/15813361

题14:以下哪些线程同步锁可以为递归锁

1.信号量  2.读写锁   3.互斥量   4.事件   5.临界区(Critical Section)

答案:A:1,3,4,5            B:5                       C:3,5                 D:1,3,5

解析:

进程/线程同步方法

常见的进程/线程同步方法有互斥锁(或称互斥量Mutex)、读写锁(rdlock)、条件变量(cond)、信号量(Semophore)等。

在windows系统中,临界区(Critical Section)和事件对象(Event)也是常用的同步方法。

递归锁/非递归锁

Mutex可以分为递归锁(recursive mutex)和非递归锁(non-recursive mutex)。 递归锁也叫可重入锁(reentrant mutex),非递归锁也叫不可重入锁(non-reentrant mutex)。

二者唯一的区别是:

同一个线程可以多次获取同一个递归锁,不会产生死锁。

如果一个线程多次获取同一个非递归锁,则会产生死锁。

Windows下的Mutex和Critical Section是可递归的。

Linux下的pthread_mutex_t锁是默认是非递归的可以通过设置PTHREAD_MUTEX_RECURSIVE属性,将pthread_mutex_t锁设置为递归锁。

题18:下列windows消息中,优先级相对较低的是哪一个()

A:WM_MOUSEMOVE
B:WM_TIMER
C:WM_CHAR
D:WM_WINDOWPOSCHANGED

解析:Windows以消息驱动的方式,使得线程能够通过处理消息来响应外界。消息的优先级是WM_SENDMESSAGE >WM_POSTMESSAGE > WM_QUIT > WM_INPUT > WM_PAINT > WM_TIMER。

题27:基于统计的分词方法为()
A:正向最大匹配法
B:逆向最大匹配法
C:最少切分
D:条件随机场

题28:下列哪个不属于CRF模型对于HMM和MEMM模型的优势()

A:特征灵活
B:速度快
C:可容纳较多上下文信息
D:全局最优

解析:CRF模型对于HMM和MEMM模型的缺点:训练代价大、复杂度高
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: