欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
c/c++程序員面試

c/c++程序員面試指南  


 

面試題1:什么是c語(yǔ)言語(yǔ)句?

答:語(yǔ)句就是以分號”;”作為分隔符,編譯后產(chǎn)生機器指令的代碼,預處理指令不是語(yǔ)句。

 

面試題2:變量的聲明和定義有什么區別?

答:為變量分配地址和存儲空間的稱(chēng)為定義,不分配地址內存空間的稱(chēng)為聲明。一個(gè)變量可以在多個(gè)地方聲明,但是只在一個(gè)地方定義。加入extern修飾的是變量的聲明,說(shuō)明此變量將在文件以外或在文件后面部分定義。

 

面試題3:如何以最簡(jiǎn)單的方式讓電腦蜂鳴器發(fā)出聲音?

答:#include<stdio.h>

        Int main(int argc, char *argv[])

                  {

                           Printf(“\7”);

                           Return  0;

                  }

 

面試題4:談?wù)勀銓幊桃幏兜睦斫饣蛘J識?

答:編程規范可總結為:程序的可行性,可讀性,可移植性及可測試性。

 

面試題5:函數、變量等命名都有哪些規則?

答:含有數字,ASCII字母,下劃線(xiàn),以字母或者下劃線(xiàn)開(kāi)頭,不能用保留字作變量名的情況下,還要有很高的可讀性。

 

面試題6:寫(xiě)出bool,int,float,指針變量與零值比較的if語(yǔ)句?

答:bool型數據:

        If(flag)

                  {

                           A;

                  }

        Else

                  {

                           B;

                  }

        Int 型數據:

        If(0!=flag)

                  {

                           A;

                  }

        Else

                  {

                           B;

                  }

        指針型數據:

        IfNULL==flag

        {

                  A;

        }

        Else

                  {

                                    B;

                  }

Float型數據:

        Const float NORM=0.00001;

        If((flag>=NORM)&&(flag<=NORM))

                  {

                           A;

                  }

 

面試題7short i=0;i=i+1l;這兩句有錯嗎?

        以下這兩段代碼都是正確的嗎?

        代碼一:

                  Short s1=1;s1=s1+1l;

        代碼二:

                  Short s1=1;s1+=1l;

答:代碼一是錯的,代碼二是正確的。

        “s1+1l中,因為l是長(cháng)整型常量,所以s1將轉換為長(cháng)整型(long),然后和1相加,結果也是一個(gè)長(cháng)整型。在“s1=s1+1l中又把一個(gè)長(cháng)整型結果賦值給short型的s1,即把一個(gè)大型的數據隱式轉換一個(gè)小類(lèi)型,編譯肯定會(huì )出錯。需要強制類(lèi)型轉換如下形式:

        S1=(short)(s1+1l);

第二段代碼中“+=”算符已經(jīng)執行了類(lèi)型強轉,所以不會(huì )出錯。

 

面試題8char x[]={“abcd”}char y[]={‘a(chǎn)’,’b’,’c’,’d’}有不同嗎?

答:不同。因為charx[]={“abcd”}這種寫(xiě)發(fā),是把字符串abcd包括結束符\0存到x。而char y[]={‘a(chǎn)’,’b’,’c’,’d’}這種是存儲4個(gè)字符a,b,c,d 到數組y。

 

面試題9char型數據在內存中存儲形式?

答:ASCII

(任何數據在內存中都是以二進(jìn)制形式存放的,而數值是以補碼表示的。正數的補碼和原碼和其原碼的形式相同。負數的補碼方式是將其絕對值的二進(jìn)制形式按位求反再加1”。

 

面試題10&&&,|||有什么區別?

答:(1&|對操作數進(jìn)行求值運算,&&||只是判斷邏輯關(guān)系。

   2&&||在判斷左側操作數就能確定結果的情況下不再對右側操作數求值。

 

面試題11:什么是左值,什么是右指?

答:右值:存儲在某內存地址中的數據。也稱(chēng)為變量的數據。

        左值:存儲數據值的那塊內存的地址。也稱(chēng)為變量的地址值。

        (左值可以作為右值,但是右值不可以是左值)

面試題12sizeofstrlen的區別

答:sizeofstrlen有以下區別:

1      sizeof是一個(gè)操作符,strlen是庫函數。

2      sizeof的參數可以是數據類(lèi)型,也可以是變量,而strlen只能以結尾’\0’的字符串做參數。

3      編譯器在編譯時(shí)就計算出了sizeof的結果,而strlen函數必須在運行時(shí)才能計算出來(lái),并且sizeof計算的是數據類(lèi)型占內存的大小,而strlen計算的字符串實(shí)際的長(cháng)度。

4      數組做sizeof的參數不退化,傳遞給strlen就退化為指針了。

5      Sizeofstrlen的結果類(lèi)型都是size_t.

 

面試題13:結構體可以直接賦值嗎?

答:聲明時(shí)可以直接初始化,同一結構體的不同對象之間也可以直接賦值,但是當結構體中含有指針成員時(shí)一定要小心。(當有多個(gè)指針指向同一段內存是,某個(gè)指針釋放這段內存可能導致其他指針的非法操作。因此在釋放前一定要確保其他指針不再使用這段內存空間。)

 

面試題14:結構體內存對齊問(wèn)題?

答: 結構體作為一種復合數據類(lèi)型,其構成元素既可以是基本數據類(lèi)型的變量,也可以是一些復合型類(lèi)型數據。對此,編譯器會(huì )自動(dòng)進(jìn)行成員變量的對齊以提高運算速率,默認情況下,按自然對齊條件分配空間,各個(gè)成員按照它們被聲明的順序在內存中順序存儲,第一個(gè)成員的地址和整個(gè)結構的地址相同,向結構體成員中size最大的成員對齊。 

位域的定義與結構體定義相仿,其形式為:

Struct 位域的結構名

{

        位域列表

};

位域列表的形式為:

類(lèi)型說(shuō)明符  位域名:位域的長(cháng)度

例如:

        Struct bs

        {

                  Int a:8;

                  Int b:2;

                  Int c:6;

};

對于位域的定義,有以下幾點(diǎn)說(shuō)明:

1      一個(gè)位域必須存儲在同一個(gè)字節中, 不能跨兩個(gè)字節。如果一個(gè)字節所??臻g不夠存放另一位域時(shí),應從一下單元起存放該位域。也可以有意使某個(gè)位域從下一個(gè)單元開(kāi)始。

2      由于位域不允許跨兩個(gè)字節。因此位域的長(cháng)度不能大于一個(gè)字節的長(cháng)度。也就是不能超過(guò)8位二進(jìn)制。

3      位域可以無(wú)位域名,這時(shí)它只用來(lái)填充或調整位置。無(wú)名的位域是不能使用的。

 

面試題15:關(guān)鍵字staticcc++中的區別?

答:在cstatic用來(lái)修飾局部靜態(tài)變量和外部靜態(tài)變量 ,函數。而c++中除了上述功能外,還用來(lái)定義類(lèi)的成員變量和函數,即靜態(tài)成員和靜態(tài)成員函數。

 

面試題16c語(yǔ)言的結構體和c++的有什么區別?(c語(yǔ)言的結構體和c++的類(lèi)有什么區別)

答:c語(yǔ)言的結構體和c++的結構體主要有以下區別:

1      c語(yǔ)言的結構體是不能有函數成員的,而c++的類(lèi)可以有。

2      c語(yǔ)言的結構體中數據成員沒(méi)有private、publicprotected訪(fǎng)問(wèn)限定的。而c++的類(lèi)成員有這些訪(fǎng)問(wèn)限定(在c++中結構體的成員也有訪(fǎng)問(wèn)權限設定的,但是類(lèi)成員的默認訪(fǎng)問(wèn)屬性是private,而結構體的默認訪(fǎng)問(wèn)屬性是public。

3      c語(yǔ)言的結構體是沒(méi)有繼承關(guān)系的,而c++的類(lèi)卻有豐富的繼承關(guān)系。

 

面試題17c中的mallocc++中的new有什么區別?

答:mallocnew有以下不同:

1      new、delete是操作符,可以重載,只能在c++中使用。

2      malloc、free是函數,可以覆蓋,c、c++中都可以使用。

3      new可以調用對象的構造函數,對應的delete調用相應的析構函數。

4      malloc僅僅分配內存,free僅僅回收內存。并不執行構造函數和析構函數。

5      new,delete返回的是某種數據類(lèi)型指針,malloc、free返回的是void指針。

 

面試題18c++的引用和c語(yǔ)言的指針有什么區別?

答:指針和引用主要有以下區別:

1      引用必須被初始化,但是不分配存儲空間,指針聲明時(shí)可以不初始化,在初始化的時(shí)候需要分配存儲空間。

2      引用初始化以后不能被改變,指針可以改變所指的對象。

3      不存在指向空值的引用。但是存在指向空值的指針。

 

 

第四章  預處理  保留字

預處理是指在進(jìn)行編譯的第一遍掃描(詞法掃描和語(yǔ)法分析)之前所做的工作。預處理是c、c++語(yǔ)言的一個(gè)重要功能特性。它由預處理程序負責完成,。當對一個(gè)源文件進(jìn)行編譯時(shí),系統將自動(dòng)引用預處理程序對源程序中的預處理部分作處理,處理完畢自動(dòng)進(jìn)入源程序的編譯。

 

面試題19:簡(jiǎn)述#ifdef、#endif、#else#ifndef的作用?

答:這些條件編譯指令主要有以下功能:

1      利用#ifdef、#endif可將某程序功能模塊包括進(jìn)去,以向特定用戶(hù)提供功能。

2      用于在子程序前加上標記,以便于追蹤和調式。

3      應對硬件的限制。                         

 

面試題20:宏定義和函數有什么區別?

答:

1      宏的引用只占用編譯時(shí)間,不占運行時(shí)間

2      宏的引用沒(méi)有返回值,如果需要,需給整個(gè)表達式加上括號。

3      宏的形參無(wú)類(lèi)型。函數的形參必須要有類(lèi)型。

4      實(shí)參為表達式的情況。如果沒(méi)有給表達式加上括號,可能會(huì )導致錯誤的結果,而函數不會(huì )

5      宏直接替代有可能導致副作用,函數不會(huì )。                                   

 

面試題21:寫(xiě)一個(gè)標準min?(寫(xiě)一個(gè)標準min,這個(gè)宏輸入兩個(gè)參數并且返回較小的一個(gè))

答:#define  MIN(a,b)  ((a)>=(b)?(a):(b))

 

面試題22typedefdefine有什么區別?

答:

1      用法不同:typedef用來(lái)定義一種數據類(lèi)型的別名。增強程序的可讀性。Define主要用來(lái)定義常量。以及書(shū)寫(xiě)復雜,使用頻繁的宏。

2      執行時(shí)間不同:typedef是編譯過(guò)程的一部分,有類(lèi)型檢查的功能,define是宏定義,是預編譯的部分,其發(fā)生在編譯之前,只是簡(jiǎn)單地進(jìn)行字符串的替換。不進(jìn)行類(lèi)型的檢查

3      作用域的不同:typedef有作用域限定。Define不受作用域約束。只要是在define聲明后的引用都是正確的。

4      對指針的操作不同:typedefdefine定義的指針有很大的區別。

5      Typedef定義是語(yǔ)句,因為句尾要加分號,而define不是語(yǔ)句,不能在后面加分號。

 

面試題23#define CHAR char*typedef char * CHAR各有什么優(yōu)勢?

答:由define定義的類(lèi)型別名可以被其他修飾符擴展(如:unsigned),而typedef不可以。Define定義的類(lèi)型別名代表指針時(shí),其連續聲明的變量中只有第一個(gè)是指針。其他的均為非指針的普通變量,而typedef能夠保證連續聲明的所有變量均為同一類(lèi)型。

 

面試題24:談?wù)勀銓?/span>typedef的認識?

答:typedef共有四種用途:

1      定義一種類(lèi)型的別名

2      用在舊的c代碼中輔助聲明struct

3      定義與平臺無(wú)關(guān)的類(lèi)型

4      為復雜的聲明定義一個(gè)新的簡(jiǎn)單的別名

還有兩個(gè)注意事項:

1      定義了一種類(lèi)型的新別名后不能被其他的修飾符擴展。

2      Typedef是并不真正影響對象的存儲特性的存儲類(lèi)關(guān)鍵字。

 

面試題25:關(guān)鍵字const是什么?

答:const用來(lái)定義一個(gè)只讀的變量或對象。主要優(yōu)點(diǎn):

1      便于類(lèi)型檢查、同宏定義一樣可以方便地進(jìn)行參數的修改和調整。

2      節省空間,避免不必要的內存分配

3      為函數重載提供參考

 

面試題26const、define定義常量的區別?(常量有什么作用?constdefine都可以用來(lái)定義常量,兩者區別?)

答:常量的引入可以增強程序的可讀性??梢允钩绦虻木S護和調式更加方便,使書(shū)寫(xiě)簡(jiǎn)便

兩者的區別如下:

1      const定義的常量有數據類(lèi)型,而define沒(méi)有

2      很多集成開(kāi)發(fā)環(huán)境只支持對const定義的常量的調式,而不支持define定義的常量

3      Const定義的常量是要分配內存空間,而define定義的常量卻不分配空間,所以const定義的常量比define定義的常量有更多的優(yōu)勢,可以說(shuō)const是對define的優(yōu)化。

 

面試題27static有什么作用?

答:在c中,static主要定義全局靜態(tài)變量,定義局部靜態(tài)變量,定義靜態(tài)函數

1      定義全局靜態(tài)變量 :在全局變量前面加上關(guān)鍵字static,該全局變量變成了全局靜態(tài)變量。全局靜態(tài)變量有以下特點(diǎn):

1      在全局數據區內分配內存

2      如果沒(méi)有初始化,其默認值為0

3      該變量在本文件內從定義開(kāi)始到文件結束可見(jiàn)

2      定義局部靜態(tài)變量:在局部靜態(tài)變量前面加上關(guān)鍵字static,該局部變量便成了靜態(tài)局部變量。靜態(tài)局部變量有以下特點(diǎn):

1      該變量在全局數據區分配內存

2      如果不顯示初始化,那么將被隱式初始化為0

3      它始終駐留在全局數據區,直到程序運行結束

4      其作用域為局部作用域,當定義它的函數或語(yǔ)句塊結束時(shí),其作用域隨之結束。

3      定義靜態(tài)函數:在函數的返回類(lèi)型加上static關(guān)鍵字,函數即被定義成靜態(tài)函數。靜態(tài)函數有以下特點(diǎn):

1      靜態(tài)函數只能在本源文件中使用

2      在文件作用域中聲明的inline函數默認為static

c++中新增了兩種作用:定義靜態(tài)數據成員或靜態(tài)函數成員

1      定義靜態(tài)數據成員。靜態(tài)數據成員有如下特點(diǎn):

1      內存分配:在程序的全局數據區分配

2      初始化和定義:靜態(tài)數據成員定義時(shí)要分配空間,所以不能在類(lèi)聲明中定義

3      靜態(tài)成員函數。靜態(tài)成員函數與類(lèi)相聯(lián)系,不與類(lèi)的對象相聯(lián)系。靜態(tài)成員函數不能訪(fǎng)問(wèn)非靜態(tài)數據成員。原因很簡(jiǎn)單,非靜態(tài)數據成員屬于特定的類(lèi)實(shí)例,主要用于對靜態(tài)數據成員的操作。

 

面試題29extern有什么作用?

答:extern標識的變量或函數聲明定義在別的文件中,提示編譯器遇到的變量和函數時(shí)在其他模塊中尋找其定義          

 

面試題30:如何避免野指針?

答:野指針產(chǎn)生原因及解決辦法如下:

1      指針變量聲明時(shí)沒(méi)有被初始化。解決辦法:指針聲明時(shí)初始化,可以是具體的地址值,也可以是讓它指向Null。

2      指針Pfree或者delete之后,沒(méi)有置為Null。解決辦法:指針指向的內存空間被釋放后指針應用指向null。

3      指針操作超越了變量的作用范圍。解決辦法:在變量的作用域結束前釋放掉變量的地址空間并且讓指針指向Null。

 

面試題31a&a有什么區別?

答:數組名a可以作為數組的首地址,而&a是數組的指針。

 

面試題32:簡(jiǎn)述指針常量與常量指針的區別?

答:指針常量是指定義了一個(gè)指針,這個(gè)指針的值只能在定義時(shí)初始化,其他地方不能改變,常量指針是指定義了一個(gè)指針,這個(gè)指針指向一個(gè)只讀的對象,不能通過(guò)常量指針來(lái)改變這個(gè)對象的值。

指針常量強調的是指針的不可改變性,而常量指針強調的是指針對去所指對象的不可改變性。

 

面試題33:流操作符重載為什么返回引用?

答:在程序中,流操作符>><<經(jīng)常連續使用。因此這兩個(gè)操作符的返回值應該是一個(gè)仍舊支持這兩個(gè)操作符的流引用。其他的數據類(lèi)型都無(wú)法做到這一點(diǎn)。

 

面試題34:常引用有什么作用?

答:常引用的引用主要是為了避免使用變量的引用時(shí),在不知情的情況下改變變量的值。常引用主要用于定義一個(gè)普通變量的只讀屬性的別名,作為函數的傳人參數。避免實(shí)參在調用函數中被意外地改變。

 

面試題35:什么是引用?

答:引用就是一個(gè)目標變量的別名,對引用的一切操作和對變量的直接操作是一樣的,主要用做函數的參數,函數返回值和常引用。

 

面試題36volatile有什么作用?

答:volatile有如下作用:

1      狀態(tài)寄存器一類(lèi)的并行設備硬件寄存器

2      一個(gè)中斷服務(wù)子程序會(huì )訪(fǎng)問(wèn)到的非自動(dòng)變量

3      多線(xiàn)程間被幾個(gè)任務(wù)共享的變量

 

 

面試題37:一個(gè)參數可以既是const又是volatile嗎?

答:可以,用constvolatile同時(shí)修飾變量,表示這個(gè)變量在程序內部是只讀的,不能改變的,只在程序外部條件變化下改變,并且編譯器不會(huì )優(yōu)化這個(gè)變量。每次使用這個(gè)變量時(shí),都要小心地去內存讀取這個(gè)變量的值,而不是去寄存器讀取它的備份。

 

面試題38:一個(gè)指針可以是volatile嗎?

答:可以。因為指針和普通變量一樣,有時(shí)也有變化程序的不可控性。常見(jiàn)的例子:子中斷服務(wù)子程序修改一個(gè)指向一個(gè)buffer的指針時(shí),必須用volatile來(lái)修飾這個(gè)指針。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          

 

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
C++基礎概念
嵌入式編程中關(guān)于const,static,extern,volatile的用法
C++ 學(xué)習要點(diǎn)
預處理、const、static與sizeof
C語(yǔ)言中Static和Const關(guān)鍵字的的作用
想要深入理解C語(yǔ)言,這些點(diǎn),你必須知道
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久