browser icon
You are using an insecure version of your web browser. Please update your browser!
Using an outdated browser makes your computer unsafe. For a safer, faster, more enjoyable user experience, please update your browser today or try a newer browser.

几道笔试题

Posted by on 2006 年 09 月 07 日

你可以任意转载本文,但请在转载后的文章中注明作者和原始链接。
媒体约稿请联系 titilima_AT_163.com(把“_AT_”换成“@”)。

今天为研发中心出了几道笔试题,贴出来给大家共享。

1. 下列用于获取系统资源的函数,( )不需要在使用完毕后释放资源。
A. CreateFontIndirect
B. GetStockObject
C. fopen
D. CreateFile

2. 下面选项中,配对使用错误的是( )
A. CreateSolidBrush/DeleteObject
B. BeginPaint/EndPaint
C. malloc/delete
D. CreateEvent/CloseHandle

3. 有以下类B和D

class B
{
public:
    void f( int n )
    {
        std::cout << n;
        g( n + 1 );
    }
    virtual void g( int n )
    {
        std::cout << n;
    }
};

class D : public B
{
public:
    void f( int n )
    {
        std::cout << n + 1;
        g( n );
    }
    void g( int n )
    {
        std::cout << n + 1;
    }
};

进行如下调用

B *p = new D;
p->f( 1 );
delete p;

运行结果是( )
A. 12 B. 13 C. 23 D. 21

4. 编写一个函数,求1+2+3+…+n。

订阅本站

5 Comments

  • At 2006.09.08 17:16, 小敏子 said:

    1.B
    2.好像都对
    3.B因为有虚函数
    4……….

    • At 2006.09.18 16:45, charry said:

      这个第四题啊,虽然我非it人,不过好像在我的记忆里,还挺简单的,学习了什么什么语言的都会吧。呵呵,班门弄斧,见笑。

      • At 2006.09.18 17:28, 李马 said:

        公布答案:
        1. 答案B,其余三者分别应使用DeleteObject、fclose、CloseHandle释放资源。另外GetStockObject返回的为系统GDI资源,如释放则可能导致系统GDI混乱。
        2. 答案C,malloc/free,new/delete。
        3. 答案B,f为非virtual,g为virtual,所以执行的函数为B::f与D::g。
        4.
        int f( int n )
        {
        return ( 1 + n ) * n / 2;
        }
        递归给1分,循环给3分,高斯求和公式给满分5分。

        • At 2007.05.28 15:24, wengych said:

          难度不高,不过比较考验答题人的分析能力
          第一题需要的是对函数字面表达的意思的理解,通常情况Get得到的是系统中已有的对象,而Create则是创建对象,所以当然是Get不需要释放资源
          而第二题有点象脑筋急转弯。。。
          第三题是面象对象的基础知识
          第四题。。。。数学没学好或者忘记的人基本都去循环了吧,呵呵

          • At 2008.08.11 14:02, tia said:

            研发中心就出这种题吗?感觉应该不算吧

            (Required)
            (Required, will not be published)