日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

世界五百强面试题计算机,世界五百强IT企业最新C++经典面试题及答案

發布時間:2023/12/18 c/c++ 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 世界五百强面试题计算机,世界五百强IT企业最新C++经典面试题及答案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:世界五百強IT企業最新C++經典面試題及答案

1. WIN32平臺下, sizeof(short) = __2__, sizeof(int) = __4__, sizeof(long) = __4__。 (3分) /// sizeof(char) = 1;sizeof(double) = 8;sizeof(float) = 4;

2.請給出如下程序的結果 (2分 )

int a = 3;

int b = a << 3; /// 00000011左移三位為00011000,即24

a = __3__, b = __24__。

3.請 給出如下程序的結果 (2分 )

int aaa = 0x01;

htonl(aaa) = _16^6___。/// 0x01000000十六進制數,轉換為十進制為16的6次方,即16777216

4.請給出如下程序的結果 (2分)

#define MAX_NUM 100+200

int nTemp = MAX_NUM*10; ///宏的功能只是簡單的字符替換,MAX_NUM*10表示100+200*10,所以用宏要小心

則 Temp = __2100__。

5.請給出如下程序的結果 (3分 )

char szTemp[1000] = "";

int nLen1 = sizeof(szTemp);

int nLen2 = strlen(szTemp);/// strlen的計算結果不包含結束符'\0'

strcpy(szTemp, "abc");

int nLen3 = sizeof(szTemp);

int nLen4 = strlen(szTemp);

int nTemp[100];

int *pTemp = nTemp;

int nLen5 = sizeof(pTemp);///在32位系統中,指針只占4位字節,不管它指向地址的內容有多大!

char szResult[200] = "";

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

則 szResult = _ 1000,0,1000,3,04___。

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; /// afxDump表示輸出信息到MFC調試(Debug)窗口

if(x = 3) ///注意這里不是"=="而是"=",所以if條件是成立的

{

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;

}

1 .下面代碼有何錯誤

void func1()

{

int *pa = NULL;

func2(pa); ///函數返回后pa仍然是空指針

delete pa; /// pa仍然是空指針,pb申請的空間并沒有被delete掉

}

void func2(int *pb)

{

pb = new int(5); /// pb重新申請了堆空間

}

2.下面代碼有何錯誤

void func2(int *value)

{

*value = 2; /// value為空指針,不能被取值,所以*value是錯誤的

}

void func1()

{

int *p = 0;

func2(p);

}

3.下面代碼有何錯誤

int func1(int& b) ///參數b的類型是整型

{

return 0;

}

void func2()

{

int bbb = 3;

func1(&bbb); ///函數參數的引用調用不需要用符號"&"

func1(bbb);

}

func2中有何錯誤, func1的參數 b的類型是什么。

1.請簡述 C、 C++、 VC、 MFC在概念上的區別 (4分 )

答:C是面向過程編程的語言;

C++是面向對象編程的語言;

VC是微軟提供的方便于開發C++程序的一套開發工具。

MFC(Microsoft Function Class),是微軟提供的一套函數類庫,里面封裝了許多Windows API函數,方便開發者調用。

2.請寫一個函數重載的簡單例子 (4分 )

答:

int add(int a,int b)

{

return (a + b);

}

函數重載:///函數重載是指函數名相同,但參數類型或返回值可能不同的函數。

float add(float a,float b)

{

return (a + b);

}

3.用什么函數開啟新進程、線程。 (4分 )

答:CreateProccess()創建進程;

CreateThread()創建線程

MFC中還提供了_beginthread()與_beginthreadex()函數創建線程

4.SendMessage和 PostMessage有什么區別 (4分 )

答:SendMessage:發送消息后,等待消息處理完畢后才繼續執行自身的程序。

PostMessage:發送消息后不等待消息處理即繼續執行自身的程序。

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

WaitForSingleObject

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

答:這些都是一些函數參數的調用約定,告訴編譯器函數參數壓棧的順序,以及壓入堆棧的內容由誰來清除,是調用者還是函數本身清除堆棧的內容。簡單列表如下:

Directive Parameter order Clean-up Passes parameters in registers?pascal Left-to-right Routine Nocdecl Right-to-left Caller Nostdcall Right-to-left Routine No

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;

}

答:

int MyWriteFile(CString strFileName, CString strText)

{

int nRet = 0;

CFile myFile;

__try

{

nRet = myFile.Open(strFileName,\

CFile::modeWrite|CFile::shareExclusive|CFile::modeCreate, NULL);

if(!nRet)

{

///輸出異常信息

__leave;///結束try塊,跳到__finaly代碼塊

}

int nLen = strText.GetLength();

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

if(!nRet)

{

///輸出異常信息

__leave;///結束try塊,跳到__finaly代碼塊

}

}

__finaly

{

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);

func

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;

答:int operator+(…)表示重載類的“+”號運算符,this表示對象本身的指針,本例中它指向類的對象aaa;ccc最終的結果為8(8 = 2 * 4)。

10.請解釋下面代碼采用了何種 C++特性( C語言不具備),作用是什么? (6分 )

template

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

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;

}

答:

child1

child2

base

child1(這是C++中類的虛函數實現多態的一個實例。返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的世界五百强面试题计算机,世界五百强IT企业最新C++经典面试题及答案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。