精品国产一级毛片大全,毛片一级在线,毛片免费观看的视频在线,午夜毛片福利

我要投稿 投訴建議

IT公司筆試面試題

時(shí)間:2024-10-10 09:21:47 敏冰 面試試題 我要投稿

IT公司筆試面試題

  在日常學(xué)習(xí)和工作生活中,我們會(huì)經(jīng)常接觸并使用試題,借助試題可以更好地檢查參考者的學(xué)習(xí)能力和其它能力。大家知道什么樣的試題才是好試題嗎?下面是小編幫大家整理的IT公司筆試面試題,希望能夠幫助到大家。

IT公司筆試面試題

  IT公司筆試面試題 1

  1、ows程序的入口是哪里?寫(xiě)出Windows消息機(jī)制的流程。

  答案:Windows程序的入口是WinMain函數(shù)。消息機(jī)制:系統(tǒng)將會(huì)維護(hù)一個(gè)或多個(gè)消息隊(duì)列,所有產(chǎn)生的消息都會(huì)被放入或是插入隊(duì)列中。系統(tǒng)會(huì)在隊(duì)列中取出每一條消息,根據(jù)消息的接收句柄而將該消息發(fā)送給擁有該窗口的程序的消息循環(huán)。每一個(gè)運(yùn)行的程序都有自己的.消息循環(huán),在循環(huán)中得到屬于自己的消息并根據(jù)接收窗口的句柄調(diào)用相應(yīng)的窗口過(guò)程。而在沒(méi)有消息時(shí)消息循環(huán)就將控制權(quán)交給系統(tǒng)。

  2、如何定義和實(shí)現(xiàn)一個(gè)類的成員函數(shù)為回調(diào)函數(shù)?

  答案:所謂的回調(diào)函數(shù),就是預(yù)先在系統(tǒng)的對(duì)函數(shù)進(jìn)行注冊(cè),讓系統(tǒng)知道這個(gè)函數(shù)的存在,以后,當(dāng)某個(gè)事件發(fā)生時(shí),再調(diào)用這個(gè)函數(shù)對(duì)事件進(jìn)行響應(yīng)。

  定義一個(gè)類的成員函數(shù)時(shí)在該函數(shù)前加CALLBACK即將其定義為回調(diào)函數(shù),函數(shù)的實(shí)現(xiàn)和普通成員函數(shù)沒(méi)有區(qū)別。

  3、C++里面是不是所有的動(dòng)作都是main()引起的?如果不是,請(qǐng)舉例。

  答案:不是,比如中斷引起的中斷處理不是直接由main()引起的,而是由外部事件引起的。

  在運(yùn)行c++程序時(shí),通常從main()函數(shù)開(kāi)始執(zhí)行。因此如果沒(méi)有main(),程序?qū)⒉煌暾,編譯器將指出未定義main()函數(shù)。

  例外情況:如,在windows編程中,可以編寫(xiě)一個(gè)動(dòng)態(tài)連接庫(kù)(dll)模塊,這是其他windows程序可以使用的代碼。由于DLL模塊不是獨(dú)立的程序,因此不需要main()。用于專用環(huán)境的程序——如機(jī)器人中的控制器芯片——可能不需要main()。但常規(guī)的獨(dú)立程序都需要main()。

  比如全局變量的初始化,就不是由main函數(shù)引起的但是這個(gè)初始化動(dòng)作并不能為編譯器的斷點(diǎn)所截?cái)唷?/p>

  4、C++里面如何聲明const void f(void)函數(shù)為C程序中的庫(kù)函數(shù)?

  答案:在該函數(shù)前添加extern “C”聲明。

  IT公司筆試面試題 2

  1.一個(gè)類有基類、內(nèi)部有一個(gè)其他類的成員對(duì)象,構(gòu)造函數(shù)的執(zhí)行順序是怎樣的。

  答:先執(zhí)行基類的(如果基類當(dāng)中有虛基類,要先執(zhí)行虛基類的,其他基類則按照聲明派生類時(shí)的順序依次執(zhí)行),再執(zhí)行成員對(duì)象的,最后執(zhí)行自己的。

  2.在UML中,聚合(aggregation)和組合(composition)有什么區(qū)別

  答案:聚合關(guān)系更強(qiáng),類似于pages和book的關(guān)系;組合關(guān)系要弱,類似于books和bookshelf的關(guān)系。

  3.C#和C++除了語(yǔ)法上的差別以外,有什么不同的地方?

  答案:(C#我只是了解,不是很精通)

  (1) c#有垃圾自動(dòng)回收機(jī)制,程序員不用擔(dān)心對(duì)象的回收。

  (2)c#嚴(yán)禁使用指針,只能處理對(duì)象。如果希望使用指針,則僅可在unsafe程序塊中能使用指針。

  (3)c#只能單繼承。

  (4)必須通過(guò)類名訪問(wèn)靜態(tài)成員。不能像C++中那樣,通過(guò)對(duì)象訪問(wèn)靜態(tài)成員。

  (5)在子類中覆蓋父類的虛函數(shù)時(shí)必須用關(guān)鍵字override,覆蓋父類的方法要用關(guān)鍵字new

  和ADO的區(qū)別?

  答案:實(shí)際上除了“能夠讓?xiě)?yīng)用程序處理存儲(chǔ)于DBMS中的數(shù)據(jù)“這一基本相似點(diǎn)外,兩者沒(méi)有太多共同之處。但是ADO使用OLE DB接口并基于微軟的COM技術(shù),而擁有自己的接口并且基于微軟的體系架構(gòu)。眾所周知體系不同于COM體系,接口也就完全不同于ADO和OLE DB接口,這也就是說(shuō)和ADO是兩種數(shù)據(jù)訪問(wèn)方式。 提供對(duì)XML的支持。

  與malloc free的區(qū)別

  答案:用malloc函數(shù)不能初始化對(duì)象,new會(huì)調(diào)用對(duì)象的構(gòu)造函數(shù)。Delete會(huì)調(diào)用對(duì)象的destructor,而free不會(huì)調(diào)用對(duì)象的destructor.

  6.#define DOUBLE(x) x+x

  i = 5*DOUBLE(10); i是多少?正確的聲明是什么?

  答案:i為60。正確的聲明是#define DOUBLE(x) (x+x)

  7.有哪幾種情況只能用intialization list而不能用assignment?

  答案:當(dāng)類中含有const、reference成員變量;基類的.構(gòu)造函數(shù)都需要參數(shù);類中含有其他類的成員對(duì)象,而該類的構(gòu)造函數(shù)都需要參數(shù)。

  8.C++是不是類型安全的?

  答案:不是。兩個(gè)不同類型的指針之間可以強(qiáng)制轉(zhuǎn)換。C#是類型安全的。

  函數(shù)執(zhí)行以前,還會(huì)執(zhí)行什么代碼?

  答案:全局對(duì)象的構(gòu)造函數(shù)會(huì)在main函數(shù)之前執(zhí)行。

  10.比較一下C++中static_cast和dynamic_cast的區(qū)別。

  dynamic_casts在幫助你瀏覽繼承層次上是有限制的。它不能被用于缺乏虛函數(shù)的類型上,它被用于安全地沿著類的繼承關(guān)系向下進(jìn)行類型轉(zhuǎn)換。如你想在沒(méi)有繼承關(guān)系的類型中進(jìn)行轉(zhuǎn)換,你可能想到static_cast

  11.在8086匯編下,邏輯地址和物理地址是怎樣轉(zhuǎn)換的?

  答案:通用寄存器給出的地址,是段內(nèi)偏移地址,相應(yīng)段寄存器地址*10H+通用寄存器內(nèi)地址,就得到了真正要訪問(wèn)的地址。

  12.類成員函數(shù)的重載、覆蓋和隱藏區(qū)別

  答案:

  成員函數(shù)被重載的特征:

  (1)相同的范圍(在同一個(gè)類中);

  (2)函數(shù)名字相同;

  (3)參數(shù)不同;

  (4)virtual關(guān)鍵字可有可無(wú)。

  覆蓋是指派生類函數(shù)覆蓋基類函數(shù),特征是:

  (1)不同的范圍(分別位于派生類與基類);

  (2)函數(shù)名字相同;

  (3)參數(shù)相同;

  (4)基類函數(shù)必須有virtual關(guān)鍵字。

  “隱藏”是指派生類的函數(shù)屏蔽了與其同名的基類函數(shù),規(guī)則如下:

  (1)如果派生類的函數(shù)與基類的函數(shù)同名,但是參數(shù)不同。此時(shí),不論有無(wú)virtual關(guān)鍵字,基類的函數(shù)將被隱藏(注意別與重載混淆)。

  (2)如果派生類的函數(shù)與基類的函數(shù)同名,并且參數(shù)也相同,但是基類函數(shù)沒(méi)有virtual關(guān)鍵字。此時(shí),基類的函數(shù)被隱藏(注意別與覆蓋混淆)

  13.如何判斷一段程序是由C編譯程序還是由C++編譯程序編譯的?

  答案:

  #ifdef __cplusplus

  cout<<"c++";

  #else

  cout<<"c";

  #endif

  14.數(shù)組a[N],存放了1至N-1個(gè)數(shù),其中某個(gè)數(shù)重復(fù)一次。寫(xiě)一個(gè)函數(shù),找出被重復(fù)的數(shù)字.時(shí)間復(fù)雜度必須為o(N)函數(shù)原型:int do_dup(int a[],int N)

  答案:方法1:如果數(shù)就是1-N-1,那么求出a[N]的和,然后減去1-N-1就行了。(確定數(shù)字1-N)

  S = N * (N-1) / 2;

  int i;

  int s = 0;

  for(i=0;i{

  s += a[i];

  }

  int res = s - S;

  方法2.a[]中的某元素a[i]看做是pi[]數(shù)組的下標(biāo),元素a[i]存儲(chǔ)到對(duì)應(yīng)數(shù)組下標(biāo)pi[a[i]]的地址中

  #include

  #define N 10

  void main()

  {

  int a[N]={1,2,3,4,5,6,7,7,8,9};

  int pi[N]={0};

  int key=0;

  for(int i=0;i{ if(pi[a[i]]==0)

  pi[a[i]]=a[i];

  else

  { key=a[i];

  break;

  }

  }

  printf("多余的數(shù)字是%dn",key);

  }

  15.一語(yǔ)句實(shí)現(xiàn)x是否為2的若干次冪的判斷

  位運(yùn)算

  int i = 512; cout << boolalpha << ((i & (i - 1)) ? false : true) << endl;

  16.什么是預(yù)編譯?何時(shí)需要預(yù)編譯?

  1、總是使用不經(jīng)常改動(dòng)的大型代碼體。

  2、程序由多個(gè)模塊組成,所有模塊都使用一組標(biāo)準(zhǔn)的包含文件和相同的編譯選項(xiàng)。在這種情況下,可以將所有包含文件預(yù)編譯為一個(gè)預(yù)編譯頭。

  IT公司筆試面試題 3

  1.多態(tài)類中的虛函數(shù)表是Compile-Time,還是Run-Time時(shí)建立的?

  答案:虛擬函數(shù)表是在編譯期就建立了,各個(gè)虛擬函數(shù)這時(shí)被組織成了一個(gè)虛擬函數(shù)的入口地址的數(shù)組.而對(duì)象的隱藏成員--虛擬函數(shù)表指針是在運(yùn)行期--也就是構(gòu)造函數(shù)被調(diào)用時(shí)進(jìn)行初始化的,這是實(shí)現(xiàn)多態(tài)的關(guān)鍵。

  2.一個(gè)父類寫(xiě)了一個(gè)virtual 函數(shù),如果子類覆蓋它的函數(shù)不加virtual ,也能實(shí)現(xiàn)多態(tài)?

  在子類的空間里,有沒(méi)有父類的這個(gè)函數(shù),或者父類的私有變量? (華為筆試題)

  答案:只要基類在定義成員函數(shù)時(shí)已經(jīng)聲明了virtue關(guān)鍵字,在派生類實(shí)現(xiàn)的時(shí)候覆蓋該函數(shù)時(shí),virtue關(guān)鍵字可加可不加,不影響多態(tài)的實(shí)現(xiàn)。子類的空間里有父類的所有變量(static除外)。

  3.完成字符串拷貝可以使用 sprintf、strcpy 及 memcpy 函數(shù),請(qǐng)問(wèn)這些函數(shù)有什么區(qū)別,你喜歡使用哪個(gè),為什么?

  答案:這些函數(shù)的區(qū)別在于實(shí)現(xiàn)功能以及操作對(duì)象不同。

  py 函數(shù)操作的對(duì)象是字符串,完成從源字符串到目的字符串的拷貝功能。

  intf 函數(shù)操作的對(duì)象不限于字符串:雖然目的對(duì)象是字符串,但是源對(duì)象可以是字符串、也可以是任意基本類型的數(shù)據(jù)。這個(gè)函數(shù)主要用來(lái)實(shí)現(xiàn)(字符串或基本數(shù)據(jù)類型)向字符串的轉(zhuǎn)換功能。如果源對(duì)象是字符串,并且指定 %s 格式符,也可實(shí)現(xiàn)字符串拷貝功能。

  py 函數(shù)顧名思義就是內(nèi)存拷貝,實(shí)現(xiàn)將一個(gè)內(nèi)存塊的內(nèi)容復(fù)制到另一個(gè)內(nèi)存塊這一功能。內(nèi)存塊由其首地址以及長(zhǎng)度確定。程序中出現(xiàn)的實(shí)體對(duì)象,不論是什么類型,其最終表現(xiàn)就是在內(nèi)存中占據(jù)一席之地(一個(gè)內(nèi)存區(qū)間或塊)。因此,memcpy 的操作對(duì)象不局限于某一類數(shù)據(jù)類型,或者說(shuō)可適用于任意數(shù)據(jù)類型,只要能給出對(duì)象的起始地址和內(nèi)存長(zhǎng)度信息、并且對(duì)象具有可操作性即可。鑒于 memcpy 函數(shù)等長(zhǎng)拷貝的特點(diǎn)以及數(shù)據(jù)類型代表的物理意義,memcpy 函數(shù)通常限于同種類型數(shù)據(jù)或?qū)ο笾g的.拷貝,其中當(dāng)然也包括字符串拷貝以及基本數(shù)據(jù)類型的拷貝。

  對(duì)于字符串拷貝來(lái)說(shuō),用上述三個(gè)函數(shù)都可以實(shí)現(xiàn),但是其實(shí)現(xiàn)的效率和使用的方便程度不同:

  py 無(wú)疑是最合適的選擇:效率高且調(diào)用方便。

  intf 要額外指定格式符并且進(jìn)行格式轉(zhuǎn)化,麻煩且效率不高。

  py 雖然高效,但是需要額外提供拷貝的內(nèi)存長(zhǎng)度這一參數(shù),易錯(cuò)且使用不便;并且如果長(zhǎng)度指定過(guò)大的話(最優(yōu)長(zhǎng)度是源字符串長(zhǎng)度 + 1),還會(huì)帶來(lái)性能的下降。其實(shí) strcpy 函數(shù)一般是在內(nèi)部調(diào)用 memcpy 函數(shù)或者用匯編直接實(shí)現(xiàn)的,以達(dá)到高效的目的。因此,使用 memcpy 和 strcpy 拷貝字符串在性能上應(yīng)該沒(méi)有什么大的差別。

【IT公司筆試面試題】相關(guān)文章:

微軟10道筆試面試題目02-23

硬件巨頭Intel筆試面試題目02-10

各大互聯(lián)網(wǎng)公司2014前端筆試面試題(HTML篇)10-23

應(yīng)聘微軟全程指導(dǎo)(筆試,面試,面試題)02-12

寶潔公司的筆試10-20

德國(guó)公司經(jīng)典面試題03-05

Google公司經(jīng)典面試題及答案02-23

證券公司筆試經(jīng)驗(yàn)10-17

電氣公司筆試題目10-18