正文

面试题(转,有些有点搞笑)2006-04-14 01:37:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/xiangyu/12383.html

分享到:

1.链表和数组的区别在哪里? 2.编写实现链表排序的一种算法。说明为什么你会选择用这样的方法? 3.编写实现数组排序的一种算法。说明为什么你会选择用这样的方法? 4.请编写能直接实现strstr()函数功能的代码。 5.编写反转字符串的程序,要求优化速度、优化空间。 6.在链表里如何发现循环链接? 7.给出洗牌的一个算法,并将洗好的牌存储在一个整形数组里。 8.写一个函数,检查字符是否是整数,如果是,返回其整数值。(或者:怎样只用4行代码编写出一个从字符串到长整形的函数?) 9.给出一个函数来输出一个字符串的所有排列。 10.请编写实现malloc()内存分配函数功能一样的代码。 11.给出一个函数来复制两个字符串A和B。字符串A的后几个字节和字符串B的前几个字节重叠。 12.怎样编写一个程序,把一个有序整数数组放到二叉树中? 13.怎样从顶部开始逐层打印二叉树结点数据?请编程。 14.怎样把一个链表掉个顺序(也就是反序,注意链表的边界条件并考虑空链表)? 另外: 一、单项选择题:(共12题,每题2分,共24分) 1. 下面哪一个不是C++的标准数据类型?              ( ) A. int                              B. char C. bool                             D. real  2. break关键字在哪一种语法结构中不能使用?       ( ) A. for语句                          B. switch语句 C. if语句                           D. while语句 3. 类的继承方式有几种?                           ( ) A. 两种                             B. 三种 C. 四种                             D. 六种 4. extern关键字的作用是什么?                     ( ) A. 声明外部链接                     B. 声明外部头文件引用 C. 声明使用扩展C++语句              D. 声明外部成员函数、成员数据。 5. C库函数strstr的功能是?                        ( ) A. 查找子串                         B. 计算字符串长度 C. 字符串比较                       D. 连结字符串 6. stl::deque是一种什么数据类型?                 ( ) A. 动态数组                         B. 链表 C. 堆栈                             D. 树 7. STL库里含有下面的哪一种泛型算法?              ( ) A. KMP查找                          B. 折半查找 C. 冒泡排序                         D. 快速排序 8. 现在最快且最通用的排序算法是什么?             ( ) A. 快速排序                         B. 冒泡排序 C. 选择排序                         D. 外部排序 9. Win32下的线程的哪一种优先级最高?              ( ) A. THREAD_PRIORITY_HIGHEST           B. THREAD_PRIORITY_IDLE C. THREAD_PRIORITY_TIME_CRITICAL     D. THREAD_PRIORITY_ABOVE_NORMAL 10. 下面四个选项中,哪一个不是WinMain函数的参数? ( ) A. HINSTANCE                         B. INT C. LPSTR                             D. WPARAM 11. VC++的编译器中,运算符new底层的实现是什么?   ( ) A. VirtualAlloc()                    B. HeapAlloc() C. GlobalAlloc()                     D. AllocateUserPhysicalPages() 12. 下面哪一本C++参考书最厚?                     ( ) A. 《Think in C++》                  B. 《深入浅出MFC》 C. 《C++ Primer》                    D. 《Effective C++》 二、不定项选择题:(共6题,每题3分,共18分,多选、错选、漏选均不给分) 1. vector::iterator重载了下面哪些运算符?          ( ) A. ++                                 B. >> C. *(前置)                          D. == 2. CreateFile( )的功能有哪几个?                   ( ) A. 打开文件                           B. 创建新文件 C. 文件改名                           D. 删除文件 3. 下面哪些是句柄(HANDLE)?                      ( ) A. HINSTANCE                          B. HWND C. HDC                                D. HFONT 4. 下面哪些不是OpenGL标准几何元素的绘制模式?      ( ) A. GL_FOG                              B. GL_LINE_STRIP C. GL_POINTS                           D. GL_TRIANGLE_FAN 5. 下面哪些运算符不能被重载?                      ( ) A. 做用域运算符“::”                  B. 对象成员运算符“.” C. 指针成员运算符“->”                D. 三目运算符“? :” 6. 下面哪些人曾参与了世界上第一个C++编译器的开发? ( ) A. Bill Gates                          B. Stanley Lippman C. Anderson Hejlsberg                  D. Bjarne Stroustrup 三、填空题:(共8题,每题3分,共24分) 1. 一个大小为320 X 192,颜色为灰度索引色的设备相关位图有______字节。如果此位图颜色为24位真彩色,则它的大小有______字节。 2. Windows API的中文意义是________________。 3. 计算反正弦的库函数是______;计算浮点数绝对值的库函数是______;计算浮点数n次方的库函数是______;将浮点数转化为字符串的库函数是______。 4. 如果i等于5,那么( ++i ) - -的返回值是_____。 5. API LoadBitmap()的功能是从______中读取位图数据到内存。 6. new和_____对应,malloc和_____对应,他们之间_____交叉混用。calloc的功能是___________,realloc的功能是____________。 7. SendMessage和PostMessage都会向窗体发送一个消息,但SendMessage_________而PostMessage____________。 8. 输出指定圆心、半径、边数的圆上的点: const int nCount = 12; const double dOrgX = 5.0, dOrgY = 3.0; const double dRadius = 2.0; for( int i = 0; i < nCount; i++ ) {     double dAngle = M_PI * 2.0 / (double)nCount * i;     cout << "第" << i << "点:X = " << ________; cout << ", Y = " << __________ << endl; } 三、判断题:(共12题,每题2分,共24分) 1. 一个类必须要有一个不带参数的构造函数。                  □ 2. 你不能写一个虚的构造函数。                              □ 3. 类里面所有的函数都是纯虚函数时才是纯虚类。              □ 4. const成员函数对于任何本类的数据成员都不能进行写操作。   □ 5. 函数中带默认值的参数必须位于不带默认值的参数之后。      □ 6. char *p = "Test"; p[0] = 'R';                           □ 7. cout << "Test";                                         □ 8. stl::list不支持随机访问叠代器。                         □ 9. stl::vector的效率比stl::list高。                        □ 10. VC和VC++是一回事,而VC++是一种比C++更难一些的语言。    □ 11. 理论上,new和malloc造成的内存泄露都会由操作系统回收。  □ 12. 在C++中struct和class的差别很大,所以从语法上不能混用。 □ 四、简述题(共3题,每题5分,共15分) 1. 请简述PeekMessage和GetMessage的区别。     2. 请列出你所知道的在Windows SDK平台上,实现计时功能的方法。     3. 请简述你所知道的const的各种用法。         五、编程题:(共3题,第1小题7分,第2小题14分,第3小题24分)  1. 深度遍历二叉树。 struct Node {     Node *Parent;     Node *Left, *Right; }; void Through(Node *Root) {         }   2. 二分法查找。 int DicFind( int *Array, int Count, int Value ) {                 }   3. 写出字符串类String的默认构造函数、析构函数和重载赋值运算符。 已知类String的原型为: class String { public:     String( const char *pStr = NULL ); // 默认构造函数     ~String( void ); // 析构函数     String &operate = ( const String &Source ); // 重载赋值运算符 private:     char *m_pData; // 指向字符串的指针 };  

阅读(8139) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册