zoukankan      html  css  js  c++  java
  • 深圳华为 C++面试题

    C++/MFC 试题

     

    一.填空题 (26 )

    1 WIN32 平台下, sizeof(short) = __2__ sizeof(int) = __4__ sizeof(long) = __4__ (3 )

    2 .请给出如下程序的结果 (2 )

    int a = 3;

    int b = a << 3;

    a = __3__ b = __24__

    3 .请 给出如下程序的结果 (2 )

    int aaa = 0x01;

    htonl(aaa) = _16777216___ //这题运行显示的是16777216,我觉得可能是随机值

    4 .请给出如下程序的结果 (2 )

    #define MAX_NUM 100+200

    int nTemp = MAX_NUM*10;

    Temp = __2100__

    5 .请给出如下程序的结果 (3 )

    char szTemp[1000] = "";

    int nLen1 = sizeof(szTemp);

    int nLen2 = strlen(szTemp);

    strcpy(szTemp, "abc");

    int nLen3 = sizeof(szTemp);

    int nLen4 = strlen(szTemp);

    int nTemp[100];

    int *pTemp = nTemp;

    int nLen5 = sizeof(pTemp);

    char szResult[200] = "";

    sprintf(szResult, "%d,%d,%d,%d,%02d.", nLen1, nLen2, nLen3, nLen4, nLen5);

    szResult = ____

    6 MFC 中,大部分类是从哪个类继承而来( CCmdTarget CObject CWinApp CWnd )? (2 )__CObject __

    7 .内存是进程范围 or 线程范围; ____

    CPU 调度时,针对进程 or 线程; ____

    函数调用堆栈,针对进程 or 线程。 ____(3 )

    8 .调用函数 bbb 后,输出是什么 (4 )

    void ccc(int x)

    {

           char szTemp[10] = "";

          

           x = 2;

           sprintf(szTemp, "%d,", x);

           afxDump << szTemp;

          

           if(x = 3)

           {

                  int x = 4;

                  sprintf(szTemp, "%d,", x);

                  afxDump << szTemp;

           }

          

           sprintf(szTemp, "%d,", x);

           afxDump << szTemp;

    }

    void bbb()

    {

           char szTemp[10] = "";

           int x = 7;

          

           ccc(x);

          

           sprintf(szTemp, "%d,", x);

           afxDump << szTemp;

    }

     

    二.改错题 ( 总共 15 , 每题 5 )

    1 .下面代码有何错误

    void func1()

    {

           int *pa = NULL;

           func2(pa);

           delete pa;

    }

    void func2(int *pb)

    {

           pb = new int(5);

    }

    2 .下面代码有何错误

    void func2(int *value)

    {

           *value = 2;

    }

    void func1()

    {

           int *p = 0;

           func2(p);

    }

    3

    int func1(int& b)

    {

           return 0;

    }

    void func2()

    {

           int bbb = 3;

           func1(&bbb);

           func1(bbb);

    }

    func2 中有何错误, func1 的参数 b 的类型是什么。

    三.简答题 (64 )

    1. 请简述 C C++ VC MFC 在概念上的区别 (4 )

    2 .请写一个函数重载的简单例子 (4 )

    3. 用什么函数开启新进程、线程。 (4 )

    4.SendMessage PostMessage 有什么区别 (4 )

    5.WaitForSingleObject 有何作用; m_pThrd 的类型是 CWinThread* 时, WaitForSingleObject(m_pThrd->m_hThread, INFINITE); 有何作用。 (4 )

    6. __stdcall __cdecl __pascal 在什么方面有所不同。 (4 )

    7 .请把下述代码加上异常处理。 (6 )

    int MyWriteFile(CString strFileName, CString strText)

    {

           int nRet = 0;

          

           CFile myFile;

           myFile.Open(strFileName, CFile::modeWrite|CFile::shareExclusive|CFile::modeCreate, NULL);

          

           int nLen = strText.GetLength();

           myFile.Write((char*)(LPCSTR)strText, nLen);

          

           myFile.Close();

           return nRet;

    }

    8 .请解释“ func ”为何种类型,这种类型的作用什么,变量 ttt 的值是多少? (6 )

    typedef int (*func)(int, int*);

    int xxx(int a, int *p)

    {

           return a + *p;

    }

    int dowork(func aaa, int bbb, int *ccc)

    {

           return aaa(bbb, ccc);

    }

    int sss = 4;

    int ttt = dowork(&xxx, 3, &sss);

    9 .请问下述代码中 : int operator+(… )起什么作用? this 是什么? ccc 的值最终为多少? (6 )

    class Fruit

    {

    public:

           Fruit()

           {

                  weight = 2;

           }

           Fruit(int w)

           {

                  weight = w;

           }

           int operator+(Fruit f)

           {

                  return this->weight * f.weight;

           }

    private:

           int weight;

    };

           Fruit aaa;

           Fruit bbb(4);

           int ccc = aaa + bbb;

    10. 请解释下面代码采用了何种 C++ 特性( C 语言不具备),作用是什么? (6 )

    template<typename T>

    T sum(T a, T b)

    {

           return (a + b);

    }

    11 .请解释 aaa.h 中下面代码的功能 (5 )

    #if !defined(AFX_MYSUDU_H__9B952BEA_A051_4026_B4E5_0598A39D2DA4__INCLUDED_)

    #define AFX_MYSUDU_H__9B952BEA_A051_4026_B4E5_0598A39D2DA4__INCLUDED_

    ... ...

    #endif

    12 CMemoryState 主要功能是什么 (5 )

    13 .请阅读下述代码,写出程序执行的结果( 6 分)

    #include <iostream>

    using namespace std;

    class CBase 

    {

    public:

     virtual void print()

     {

        cout<< "base" << endl;

     }

     void DoPrint()

     {

        print();

     }

    };

    class CChild1: public CBase

    {

    public:

     virtual void print()

     {

        cout<< "child1" << endl;

     }

    };

    class CChild2: public CBase

    {

    public:

     virtual void print()

     {

        cout<< "child2" << endl;

     }

    };

    void DoPrint(CBase *base)

    {

     base->DoPrint();

    }

    void main()

    {

     CBase* base = new CBase();

     CChild1* child1 = new CChild1();

     CChild2* child2 = new CChild2();

     DoPrint(child1);

     DoPrint(child2);

     DoPrint(base);

     delete base;

     base = child1;

     base->print();

     delete child1;

     delete child2;

    }

  • 相关阅读:
    CString与char *互转总结
    string 与char* char[]之间的转换
    VC++下使用SQLite数据库
    VC连接数据库方式
    C/C++中判断某一文件或目录是否存在
    漂亮的CSS按钮样式集以及在线生成工具
    PhpStorm 4.0 & 5.0 部署本地Web应用 (转)
    PHP的serialize序列化数据与JSON格式化数据
    c/c++中产生随机数
    [STL系列]开篇简单介绍
  • 原文地址:https://www.cnblogs.com/jeekun/p/1851829.html
Copyright © 2011-2022 走看看