牛客网(搜狗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模型的缺点:训练代价大、复杂度高
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模型的缺点:训练代价大、复杂度高
相关文章推荐
- [C++11 并发编程] 04 - 动态选择并发线程的数量
- C++连接mysql数据库的两种方法
- 【C++基础之一】C++ 虚函数表解析
- C/C++(链表应用)笔记——使用链表进行多项式的合并
- C++ 虚函数实现多态浅析
- C++面向对象--类
- C++中如何控制输出的格式
- 【C++智能指针 auto_ptr】
- C++总结
- C语言指针转换为intptr_t类型
- 谈谈new 与delete
- C++类对象创建过程揭密
- C++浅析——虚表和虚表Hook
- C++浅析——虚表和虚表Hook
- 排序算法 C++代码实现
- 转:C++学习之Pair
- C语言中为什么要使用enum
- [leetcode] 040. Combination Sum II (Medium) (C++)
- [LeetCode] 039. Combination Sum (Medium) (C++)
- C语言的条件运算符