深信服科技2 0 1 1 校园招聘笔试题 一、 选择题(单选多选都有,每题2 分,时间:120 分钟) 1. 正则表达式 (a | b) + [0 - 9]*c 可匹配下列哪些字符串?( ) A. abac B. 90c C. aba10c D. ac 2. 已知 a, b 都是 double 类型,下列哪些判断 a, b 相等的方法是正确的?( ) A. a == b B. fabs(a-b) < DBL_EPSILON C. fabs(a-b) <= FLT_EPSILON D. fabs(a-b) <= DBL_EPSILON E. fabs(a-b) < FLT_EPSILON 3. 下列哪些是可能引起错误的代码? ( ) A. char c = 233; tables[c] = c; B. #define equal(a, b) a==b; int a = 3, b=7; printf(“a&3 %s b&3\n”, equal(a&3, b&3)? “==” : “!=”); C. 已知 Derived 是 Base 的派生类 Base *p = new Derived; delete (Derived *)p; D. std::string str1(“hello”), str2; memcpy(&str2, &str1, sizeof(str1)); 4. 下列哪些指令执行之后,标志寄存器的 ZF 一定会置位为 1? ( ) A. XOR EAX EAX B. CMP EAX EAX C. MOV EAX 0H D. TEST EAX EAX 5. 下列哪些数据结构最适合医疗仪器设备中的大型数据量插入、查找?( ) A. 数组 B. 哈希表 C. 红黑树/二叉平衡树 D. 链表 6. 下列哪些排序算法的平均时间复杂度是 O(Nlog2N) ( ), 哪些是稳定排序( ) A. 冒泡排序 B. 希尔排序 C. 快速排序 D. 插入排序 E. 堆排序 7. 下列哪些说法是正确的:( ) A. 二分查找法在一个长度为 1000 的有序整数数组查找一个整数,比较次数不超过 100 次 B. 在二叉树中查找元素的时间复杂度为 O(log2N); C. 对单向链表,可以使用冒泡法排序; D. 对双向链表,可以使用快速排序. 8. 已知Derived 是Base 的派生类,且Base、Derived 都有缺省构造函数,Base 有个成员函数 fool ,原型为:void Base::fool(), Derived 有个成员函数 foo2,原型为:void Derived::foo2(). 请问下述哪些代码是可以正常编译通过的?( ) A. Derived *p = new Base; B. Base *p = new Derived; C. void (Derived::*pfn)() = &Base::foo1; D. void (Base::*pfn)() == &Derived::foo2; 9. 下列哪些函数调用之后,buf 一定是以‟\0‟ 结束(假设 src 是字符串,buf 足够长): ( ) A. memcpy(buf, src, strlen(sr...