97超级碰碰碰久久久_精品成年人在线观看_精品国内女人视频免费观_福利一区二区久久

IT公司筆試面試題系列七

時(shí)間:2022-07-13 12:29:14 筆試 我要投稿
  • 相關(guān)推薦

IT公司筆試面試題系列(七)

IT公司筆試面試題系列(七)

IT公司筆試面試題系列(七)

1.Windows程序的入口是哪里?寫出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)的窗口過程。而在沒有消息時(shí)消息循環(huán)就將控制權(quán)交給系統(tǒng)。

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

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

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

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

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

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

例外情況:如, 在windows編程中,可以編寫一個(gè)動(dòng)態(tài)連接庫(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程序中的庫函數(shù)?

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

5.下列哪兩個(gè)是等同的

int b;

A const int* a = &b;

B const* int a = &b;

C const int* const a = &b;

D int const* const a = &b;

各式表示的意思分別為:

A const int* a = &b; //*a是const,但指針a可變

B const* int a = &b; //a是const,但*a可變

C const int* const a = &b; //a和*a都是const,常量和指針的值都不能改變

D int const* const a = &b; //a和*a都是const,常量和指針的值都不能改變

因此C,D兩者是相同的。

總結(jié)個(gè)技巧:如果const位于星號的左側(cè),則const就是用來修飾指針?biāo)赶虻淖兞,即指針指向(yàn)槌A?如果const位于星號的右側(cè),const就是修飾指針本身,即指針本身是常量。

6.內(nèi)聯(lián)函數(shù)在編譯時(shí)是否做參數(shù)類型檢查?

做類型檢查,因?yàn)閮?nèi)聯(lián)函數(shù)就是在程序編譯時(shí),編譯器將程序中出現(xiàn)的內(nèi)聯(lián)函數(shù)的調(diào)用表達(dá)式用內(nèi)聯(lián)函數(shù)的函數(shù)體來代替。

void g(base & b){

b.play;

}

void main(){

son s;

g(s);

return;

}

7.寫出判斷ABCD四個(gè)表達(dá)式的是否正確, 若正確, 寫出經(jīng)過表達(dá)式中 a的值

int a = 4;

(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++);

a = ?

答:C錯(cuò)誤,左側(cè)不是一個(gè)有效變量,不能賦值,可改為(++a) += a;

改后答案依次為9,10,10,11

8.某32位系統(tǒng)下, C++程序,請計(jì)算sizeof 的值

char str[] = “www.ibegroup.com”

char *p = str ;

int n = 10;

請計(jì)算

sizeof (str ) = ?(1)

sizeof ( p ) = ?(2)

sizeof ( n ) = ?(3)

void Foo ( char str[100]){

請計(jì)算

sizeof( str ) = ?(4)

}

void *p = malloc( 100 );

請計(jì)算

sizeof ( p ) = ?(5)

答:(1)17 (2)4 (3) 4 (4)4 (5)4

9. 回答下面的問題

(1).頭文件中的 ifndef/define/endif 干什么用?預(yù)處理

答:防止頭文件被重復(fù)引用

(2). #include 和 #include “filename.h” 有什么區(qū)別?

答:前者用來包含開發(fā)環(huán)境提供的庫頭文件,后者用來包含自己編寫的頭文件。

(3).在C++ 程序中調(diào)用被 C 編譯器編譯后的函數(shù),為什么要加 extern “C”聲明?

答:函數(shù)和變量被C++編譯后在符號庫中的名字與C語言的不同,被extern "C"修飾的變量和函數(shù)是按照C語言方式編譯和連接的。由于編譯后的名字不同,C++程序不能直接調(diào)用C 函數(shù)。C++提供了一個(gè)C 連接交換指定符號extern“C”來解決這個(gè)問題。

(4). switch()中不允許的數(shù)據(jù)類型是?

答:實(shí)型

10. 回答下面的問題

(1).Void GetMemory(char **p, int num){

*p = (char *)malloc(num);

}

void Test(void){

char *str = NULL;

GetMemory(&str, 100);

strcpy(str, "hello");

printf(str);

}

請問運(yùn)行Test 函數(shù)會(huì)有什么樣的結(jié)果?

答:輸出“hello”

(2). void Test(void){

char *str = (char *) malloc(100);

strcpy(str, “hello”);

free(str);

if(str != NULL){

strcpy(str, “world”);

printf(str);

}

}

請問運(yùn)行Test 函數(shù)會(huì)有什么樣的結(jié)果?

答:輸出“world”

(3). char *GetMemory(void){

char p[] = "hello world";

return p;

}

void Test(void){

char *str = NULL;

str = GetMemory();

printf(str);

}

請問運(yùn)行Test 函數(shù)會(huì)有什么樣的結(jié)果?

答:無效的指針,輸出不確定。


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

IT公司筆試面試題系列07-12

華為硬件筆試、面試題07-11

華為C/C++筆試題系列二07-11

面試筆試-南方企業(yè)常問的面試題07-11

華為經(jīng)典面試題系列二(數(shù)據(jù)庫)07-11

專業(yè)公司的求職筆試題12-27

求助:勞煩各位前輩幫小弟回憶校園招聘筆試和面試題07-12

公司招聘筆試題目有哪些07-10

寶馬公司面試題07-11

世界最佳公司面試題07-11