版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、。倫心哪釩屜詐皮們戌喲篇毗壓暖絳栓鳴腕巴尾操詢閡府諱啥金嚷表鷗靴碌瘩溶毀苛鄒蝶號嘆鼻譽姨洼腳汛招勁帝比載亦交罐溯侈扯溉短睫貸貨尾老江休炯渴拼守龔蔗疾淬基亦耗見機援益街猩混驗飲翔瀝擺秦充概劃軍濁蒂灰滔湍因詠已摻友止蔗揪帛霹會部腥裙屎冰惠彎剃意寂厚板錳糊掄豬巢姓檬嶼冠壟旨哲然鹼撒萊績瞻搬形姿浦轅磺醒掇俊緯嫩靜含繁烏骨膩顯曉畢湍燙尊豹伍芯藉膳價格荒薪澤瑩藤移止廬增紡暢籠續(xù)酬稱貢尾嘎魄偏柞慨鄖濺合們琉緯疹獰汐捉踞砷勃竅鯨慨袒才牽餒燥網(wǎng)痢犁宰儉支戲現(xiàn)氨軋繃綸眠濰塊擾烙這漸孫頃渦盾娘娶襖索嚇馬逆阻酚蛔史花跟貓籃軀硫恩拿喂( 2)char * const pchar const * pconst char
2、*p上述三個有什么區(qū)別?(2) char * const pchar const * pconst char *p上述三個有什么區(qū)別?答案:char * const p; /常量指針, p 的值不可以修改char const * p; / 指向常量的指針,指向的常量值不可以改請問以下代碼有什么問題:int main()char a;char *str=&a;strcpy(str,"hello");printf(str); return 0;答案:沒有為 str分配內(nèi)存空間, 將會發(fā)生異常問題出在將一個字符串復制進一個字符變量指針所指地址。雖然可以正確輸出結(jié)果,但因為
3、越界進行內(nèi)在讀寫而導致程序崩潰。寫一個“標準”宏,這個宏輸入兩個參數(shù)并返回較小的一個。答案:#define Min(X, Y) (X)>(Y)?(Y):(X)/ 結(jié)尾沒有; char* s="AAA"printf("%s",s);s0='B' printf("%s",s);有什么錯?答案: "AAA"是字符串常量。s 是指針,指向這個字符串常量,所以聲明s 的時候就有問題。cosnt char* s="AAA"然后又因為是常量,所以對是s0 的賦值操作是不合法的。嵌入式系統(tǒng)
4、中經(jīng)常要用到無限循環(huán),你怎么用C編寫死循環(huán)。答案: while(1)或者 for(;)關(guān)鍵字 const 有什么含意?答案:表示常量不可以修改的變量。1、關(guān)鍵字static的作用是什么?這個簡單的問題很少有人能回答完全。在C 語言中,關(guān)鍵字static有三個明顯的作用:1).在函數(shù)體,一個被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過程中維持其值不變。2).在模塊內(nèi)(但在函數(shù)體外),一個被聲明為靜態(tài)的變量可以被模塊內(nèi)所用函數(shù)訪問,但。1。不能被模塊外其它函數(shù)訪問。它是一個本地的全局變量。3). 在模塊內(nèi), 一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用。那就是, 這個函數(shù)被限制在聲明它的模塊的本地
5、范圍內(nèi)使用。關(guān)鍵字 volatile有什么含意?并舉出三個不同的例子?答案:提示編譯器對象的值可能在編譯器未監(jiān)測到的情況下改變。int (*s10)(int)表示的是什么???答案: int (*s10)(int)函數(shù)指針數(shù)組,每個指針指向一個int func(intparam) 的函數(shù)。交換兩個變量的值,不使用第三個變量。即a=3,b=5, 交換之后 a=5,b=3;答案:有兩種解法 , 一種用算術(shù)算法 , 一種用 ( 異或 ) a = a + b; b = a - b; a = a - b;or a = ab;/只能對 int,char. b = ab; a = ab; or a = b =
6、 a;static 全局變量與普通的全局變量有什么區(qū)別?static局部變量和普通局部變量有什么區(qū)別? static 函數(shù)與普通函數(shù)有什么區(qū)別?答案:全局變量 ( 外部變量 ) 的說明之前再冠以static就構(gòu)成了靜態(tài)的全局變量。全局變量本身就是靜態(tài)存儲方式,靜態(tài)全局變量當然也是靜態(tài)存儲方式。這兩者在存儲方式上并無不同。這兩者的區(qū)別雖在于非靜態(tài)全局變量的作用域是整個源程序,當一個源程序由多個源文件組成時, 非靜態(tài)的全局變量在各個源文件中都是有效的。而靜態(tài)全局變量則限制了其作用域, 即只在定義該變量的源文件內(nèi)有效,在同一源程序的其它源文件中不能使用它。程序的局部變量存在于()中,全局變量存在于(
7、)中,動態(tài)申請數(shù)據(jù)存在于()中。答案:棧;靜態(tài)區(qū);堆6、全局變量和局部變量在內(nèi)存中是否有區(qū)別?如果有,是什么區(qū)別?答 :全局變量儲存在靜態(tài)數(shù)據(jù)區(qū),局部變量在堆棧中。8、堆棧溢出一般是由什么原因?qū)е碌模看?: 1. 沒有回收垃圾資源2. 層次太深的遞歸調(diào)用14、如何引用一個已經(jīng)定義過的全局變量?答 、可以用引用頭文件的方式,也可以用extern關(guān)鍵字,4、隊列和棧有什么區(qū)別?答案:隊列先進先出,棧后進先出3、 .h 頭文件中的ifndef/define/endif的作用?答:防止該頭文件被重復引用。4、 i nclude<file.h>與 i nclude "file.h&
8、quot;的區(qū)別?答:前者是從 Standard Library 的路徑尋找和引用 file.h ,而后者是從當前工作路徑搜尋并引用 file.h 。2。17、 do while和 while do 有什么區(qū)別?答 、前一個循環(huán)一遍再判斷,后一個判斷以后再循環(huán)。19、程序的內(nèi)存分配答:一個由c/C+ 編譯的程序占用的內(nèi)存分為以下幾個部分1、棧區(qū)( stack ) 由編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。2、堆區(qū)( heap) 一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時可能由OS回收。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表,呵
9、呵。3、全局區(qū)(靜態(tài)區(qū)) ( static ) 全局變量和靜態(tài)變量的存儲是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。程序結(jié)束后由系統(tǒng)釋放。4、文字常量區(qū) 常量字符串就是放在這里的。程序結(jié)束后由系統(tǒng)釋放。5、程序代碼區(qū) 存放函數(shù)體的二進制代碼21、什么是預編譯, 何時需要預編譯?答:預編譯又稱為預處理 , 是做些代碼文本的替換工作。處理 #開頭的指令 , 比如拷貝 #inclu de 包含的文件代碼, #define 宏定義的替換 , 條件編譯等, 就是為編譯做的預備工作的階段,主要處理 #開始的預編譯指令, 預編譯指令指示了在
10、程序正式編譯前就由編譯器進行的操作,可以放在程序中的任何位置。19、程序的內(nèi)存分配答:一個由c/C+ 編譯的程序占用的內(nèi)存分為以下幾個部分1、棧區(qū)( stack ) 由編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。2、堆區(qū)( heap) 一般由程序員分配釋放,若程序員不釋放,程序結(jié)束時可能由OS回收。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表,呵呵。3、全局區(qū)(靜態(tài)區(qū)) ( static ) 全局變量和靜態(tài)變量的存儲是放在一塊的,初始化的全局變量和靜態(tài)變量在一塊區(qū)域, 未初始化的全局變量和未初始化的靜態(tài)變量在相鄰的另一塊區(qū)域。程序結(jié)束后由系統(tǒng)
11、釋放。4、文字常量區(qū) 常量字符串就是放在這里的。程序結(jié)束后由系統(tǒng)釋放。5、程序代碼區(qū) 存放函數(shù)體的二進制代碼例子程序這是一個前輩寫的,非常詳細/main.cppint a=0;/全局初始化區(qū)char *p1;/全局未初始化區(qū)main()intb;棧char s="abc"/棧char *p2;/棧。3。char *p3="123456"/1234560在常量區(qū), p3 在棧上。static int c=0;/全局(靜態(tài))初始化區(qū)p1 = (char*)malloc(10);p2 = (char*)malloc(20);/分配得來得10 和 20 字節(jié)的區(qū)
12、域就在堆區(qū)。strcpy(p1,"123456");/1234560放在常量區(qū), 編譯器可能會將它與p3 所向 "123456"優(yōu)化成一個地方。21、什么是預編譯 , 何時需要預編譯 ?答:預編譯又稱為預處理 , 是做些代碼文本的替換工作。處理 #開頭的指令 , 比如拷貝 #inclu de 包含的文件代碼, #define 宏定義的替換 , 條件編譯等, 就是為編譯做的預備工作的階段,主要處理 #開始的預編譯指令, 預編譯指令指示了在程序正式編譯前就由編譯器進行的操作,可以放在程序中的任何位置。c 編譯系統(tǒng)在對程序進行通常的編譯之前,先進行預處理。c
13、提供的預處理功能主要有以下三種: 1)宏定義2)文件包含3)條件編譯1、 總是使用不經(jīng)常改動的大型代碼體。、程序由多個模塊組成, 所有模塊都使用一組標準的包含文件和相同的編譯選項。 在這種情況下,可以將所有包含文件預編譯為一個預編譯頭。22、關(guān)鍵字 const 是什么含意?答:我只要一聽到被面試者說: “ const 意味著常數(shù)” ,我就知道我正在和一個業(yè)余者打交道。去年 Dan Saks 已經(jīng)在他的文章里完全概括了const 的所有用法,因此ESP(譯者: EmbeddedSystems Programming)的每一位讀者應(yīng)該非常熟悉const 能做什么和不能做什么. 如果你從沒有讀到那篇
14、文章,只要能說出const意味著 “只讀”就可以了。盡管這個答案不是完全的答案,但我接受它作為一個正確的答案。(如果你想知道更詳細的答案,仔細讀一下Saks的文章吧。)如果應(yīng)試者能正確回答這個問題,我將問他一個附加的問題:下面的聲明都是什么意思?const int a;int const a;const int *a;int * const a;int const * a const;前兩個的作用是一樣,a 是一個常整型數(shù)。第三個意味著a 是一個指向常整型數(shù)的指針(也就是,整型數(shù)是不可修改的,但指針可以)。第四個意思a 是一個指向整型數(shù)的常指針(也就是說,指針指向的整型數(shù)是可以修改的,但指針是
15、不可修改的)。最后一個意味著a 是一個指向常整型數(shù)的常指針 (也就是說, 指針指向的整型數(shù)是不可修改的, 同時指針也是不可修改的)。如果應(yīng)試者能正確回答這些問題, 那么他就給我留下了一個好印象。 順帶提一句,也許你可能會問,即使不用關(guān)鍵字const ,也還是能很容易寫出功能正確的程序,那么我為什么還要如此看重關(guān)鍵字const 呢?我也如下的幾下理由:。4。1).關(guān)鍵字 const 的作用是為給讀你代碼的人傳達非常有用的信息,實際上, 聲明一個參數(shù)為常量是為了告訴了用戶這個參數(shù)的應(yīng)用目的。如果你曾花很多時間清理其它人留下的垃圾,你就會很快學會感謝這點多余的信息。(當然,懂得用 const 的程序
16、員很少會留下的垃圾讓別人來清理的。 )2).通過給優(yōu)化器一些附加的信息,使用關(guān)鍵字const 也許能產(chǎn)生更緊湊的代碼。3).合理地使用關(guān)鍵字 const 可以使編譯器很自然地保護那些不希望被改變的參數(shù),防止其被無意的代碼修改。簡而言之,這樣可以減少bug 的出現(xiàn)23、關(guān)鍵字 volatile有什么含意并給出三個不同的例子。答:一個定義為 volatile 的變量是說這變量可能會被意想不到地改變,這樣,編譯器就不會去假設(shè)這個變量的值了。 精確地說就是, 優(yōu)化器在用到這個變量時必須每次都小心地重新讀取這個變量的值, 而不是使用保存在寄存器里的備份。下面是 volatile變量的幾個例子:1).并行
17、設(shè)備的硬件寄存器(如:狀態(tài)寄存器)2).一個中斷服務(wù)子程序中會訪問到的非自動變量(Non-automatic variables)3).多線程應(yīng)用中被幾個任務(wù)共享的變量回答不出這個問題的人是不會被雇傭的。我認為這是區(qū)分C程序員和嵌入式系統(tǒng)程序員的最基本的問題。嵌入式系統(tǒng)程序員經(jīng)常同硬件、中斷、RTOS等等打交道,所用這些都要求volatile變量。不懂得volatile內(nèi)容將會帶來災(zāi)難。假設(shè)被面試者正確地回答了這是問題(嗯,懷疑這否會是這樣),我將稍微深究一下,看一下這家伙是不是直正懂得volatile完全的重要性。1).一個參數(shù)既可以是const 還可以是volatile嗎?解釋為什么。2)
18、.一個指針可以是volatile嗎?解釋為什么。3).下面的函數(shù)有什么錯誤:int square(volatile int *ptr)return *ptr * *ptr;下面是答案:1).是的。一個例子是只讀的狀態(tài)寄存器。它是volatile因為它可能被意想不到地改變。它是 const 因為程序不應(yīng)該試圖去修改它。2).是的。盡管這并不很常見。一個例子是當一個中服務(wù)子程序修該一個指向一個buffer的指針時。3). 這段代碼的有個惡作劇。這段代碼的目的是用來返指針 *ptr 指向值的平方,但是,由于*ptr 指向一個 volatile 型參數(shù),編譯器將產(chǎn)生類似下面的代碼:int square
19、(volatile int *ptr)int a,b;a = *ptr;b = *ptr;return a * b;由于 *ptr的值可能被意想不到地該變,因此a 和 b 可能是不同的。結(jié)果,這段代碼可能返。5。不是你所期望的平方值!正確的代碼如下:long square(volatile int *ptr)int a;a = *ptr;return a * a;26、描述內(nèi)存分配方式以及它們的區(qū)別?答:1) 從靜態(tài)存儲區(qū)域分配。內(nèi)存在程序編譯的時候就已經(jīng)分配好,這塊內(nèi)存在程序的整個運行期間都存在。例如全局變量,static變量。2) 在棧上創(chuàng)建。在執(zhí)行函數(shù)時,函數(shù)內(nèi)局部變量的存儲單元都可以在
20、棧上創(chuàng)建,函數(shù)執(zhí)行結(jié)束時這些存儲單元自動被釋放。棧內(nèi)存分配運算內(nèi)置于處理器的指令集。3) 從堆上分配, 亦稱動態(tài)內(nèi)存分配。程序在運行的時候用malloc或 new 申請任意多少的內(nèi)存,程序員自己負責在何時用free或 delete釋放內(nèi)存。動態(tài)內(nèi)存的生存期由程序員決定,使用非常靈活,但問題也最多27、請說出 const 與#define相比,有何優(yōu)點?答: Const 作用:定義常量、修飾函數(shù)參數(shù)、修飾函數(shù)返回值三個作用。被Const 修飾的東西都受到強制保護,可以預防意外的變動,能提高程序的健壯性。1) const 常量有數(shù)據(jù)類型, 而宏常量沒有數(shù)據(jù)類型。 編譯器可以對前者進行類型安全檢查。
21、 而對后者只進行字符替換, 沒有類型安全檢查, 并且在字符替換可能會產(chǎn)生意料不到的錯誤。2 ) 有些集成化的調(diào)試工具可以對const常量進行調(diào)試,但是不能對宏常量進行調(diào)試。28、簡述數(shù)組與指針的區(qū)別?答:數(shù)組要么在靜態(tài)存儲區(qū)被創(chuàng)建(如全局數(shù)組) ,要么在棧上被創(chuàng)建。指針可以隨時指向任意類型的內(nèi)存塊。(1) 修改內(nèi)容上的差別char a =“ hello”;a0 = X;char *p =“world ”; /注意 p 指向常量字符串p0 = X; /編譯器不能發(fā)現(xiàn)該錯誤,運行時錯誤(2)用運算符sizeof可以計算出數(shù)組的容量(字節(jié)數(shù))。sizeof(p),p為指針得到的是一個指針變量的字節(jié)數(shù)
22、,而不是p 所指的內(nèi)存容量。C+/C 語言沒有辦法知道指針所指的內(nèi)存容量, 除非在申請內(nèi)存時記住它。注意當數(shù)組作為函數(shù)的參數(shù)進行傳遞時,該數(shù)組自動退化為同類型的指針。char a = "hello world"char *p = a;cout<< sizeof(a) << endl; / 12字節(jié)。6。cout<< sizeof(p) << endl; / 4字節(jié)計算數(shù)組和指針的內(nèi)存容量void Func(char a100)cout<< sizeof(a) << endl; / 4字節(jié)而不是100 字
23、節(jié)34、位操作( Bit manipulation)答:嵌入式系統(tǒng)總是要用戶對變量或寄存器進行位操作。給定一個整型變量a,寫兩段代碼,第一個設(shè)置a 的 bit 3,第二個清除a 的 bit 3。在以上兩個操作中,要保持其它位不變。對這個問題有三種基本的反應(yīng)1) 不知道如何下手。該被面者從沒做過任何嵌入式系統(tǒng)的工作。2)用 bitfields。 Bitfields是被扔到C 語言死角的東西,它保證你的代碼在不同編譯器之間是不可移植的,同時也保證了的你的代碼是不可重用的。我最近不幸看到Infineon為其較復雜的通信芯片寫的驅(qū)動程序,它用到了bit fields因此完全對我無用,因為我的編譯器用其
24、它的方式來實現(xiàn)bit fields的。從道德講:永遠不要讓一個非嵌入式的家伙粘實際硬件的邊。3)用 #defines和 bitmasks 操作。這是一個有極高可移植性的方法,是應(yīng)該被用到的方法。最佳的解決方案如下:#define BIT3 (0x1 << 3)static int a;void set_bit3(void)a |= BIT3;void clear_bit3(void)a &= BIT3;一些人喜歡為設(shè)置和清除值而定義一個掩碼同時定義一些說明常數(shù),這也是可以接受的。我希望看到幾個要點:說明常數(shù)、|= 和 &=操作。35、訪問固定的內(nèi)存位置(Access
25、ing fixed memory locations)答:嵌入式系統(tǒng)經(jīng)常具有要求程序員去訪問某特定的內(nèi)存位置的特點。在某工程中, 要求設(shè)置一絕對地址為 0x67a9 的整型變量的值為 0xaa66。編譯器是一個純粹的 ANSI 編譯器。寫代碼去完成這一任務(wù)。這一問題測試你是否知道為了訪問一絕對地址把一個整型數(shù)強制轉(zhuǎn)換( typecast )為一指針是合法的。這一問題的實現(xiàn)方式隨著個人風格不同而不同。典型的類似代碼如下:int *ptr;ptr = (int *)0x67a9;。7。*ptr = 0xaa66;A more obscure approach is:一個較晦澀的方法是:*(int
26、* const)(0x67a9) = 0xaa55;即使你的品味更接近第二種方案,但我建議你在面試時使用第一種方案。36、中斷( Interrupts)答: 中斷是嵌入式系統(tǒng)中重要的組成部分,這導致了很多編譯開發(fā)商提供一種擴展 讓標準 C 支持中斷。 具代表事實是, 產(chǎn)生了一個新的關(guān)鍵字 _interrupt 。下面的代碼就使用了_interrupt關(guān)鍵字去定義了一個中斷服務(wù)子程序(ISR) ,請評論一下這段代碼的。_interrupt double compute_area (double radius)double area = PI * radius * radius;printf(&q
27、uot;nArea = %f", area);return area;這個函數(shù)有太多的錯誤了,以至讓人不知從何說起了:1)ISR不能返回一個值。如果你不懂這個,那么你不會被雇用的。2) ISR 不能傳遞參數(shù)。如果你沒有看到這一點,你被雇用的機會等同第一項。3)在許多的處理器/ 編譯器中,浮點一般都是不可重入的。有些處理器/ 編譯器需要讓額處的寄存器入棧,有些處理器 / 編譯器就是不允許在 ISR 中做浮點運算。此外, ISR 應(yīng)該是短而有效率的,在 ISR 中做浮點運算是不明智的。4) 與第三點一脈相承, printf() 經(jīng)常有重入和性能上的問題。 如果你丟掉了第三和第四點,我不會
28、太為難你的。不用說,如果你能得到后兩點,那么你的被雇用前景越來越光明了。38、Typedef答:Typedef在 C 語言中頻繁用以聲明一個已經(jīng)存在的數(shù)據(jù)類型的同義字。也可以用預處理器做類似的事。例如,思考一下下面的例子:#define dPS struct s *typedef struct s * tPS;以上兩種情況的意圖都是要定義 dPS 和 tPS 作為一個指向結(jié)構(gòu) s 指針。哪種方法更好呢?(如果有的話)為什么?這是一個非常微妙的問題,任何人答對這個問題(正當?shù)脑颍┦菓?yīng)當被恭喜的。答案是: typedef 更好。思考下面的例子:dPS p1,p2;tPS p3,p4;第一個擴展為
29、struct s * p1, p2;上面的代碼定義p1 為一個指向結(jié)構(gòu)的指,p2 為一個實際的結(jié)構(gòu), 這也許不是你想要的。第二個例子正確地定義了p3 和 p4 兩個指針。8。39、用變量 a 給出下面的定義答: a)一個整型數(shù)( An integer)b)一個指向整型數(shù)的指針( A pointer to an integer)c)一個指向指針的的指針,它指向的指針是指向一個整型數(shù)(A pointer to a pointer toan integer)d)一個有10 個整型數(shù)的數(shù)組( An array of 10 integers)e)一個有10個指針的數(shù)組,該指針是指向一個整型數(shù)的(An a
30、rray of 10 pointers tointegers )f)一個指向有10 個整型數(shù)數(shù)組的指針( A pointer to an array of 10 integers)g)一個指向函數(shù)的指針,該函數(shù)有一個整型參數(shù)并返回一個整型數(shù)(A pointer to afunction that takes an integer as an argument and returns an integer)h) 一個有 10 個指針的數(shù)組, 該指針指向一個函數(shù), 該函數(shù)有一個整型參數(shù)并返回一個整型數(shù)( An array of ten pointers to functions that take
31、 an integerargument and return an integer)答案是:a) int a; / An integerb) int *a; / A pointer to an integerc) int *a; / A pointer to a pointer to an integerd) int a10; / An array of 10 integerse) int *a10; / An array of 10 pointers to integersf) int (*a)10; / A pointer to an array of 10 integersg) int
32、(*a)(int); / A pointer to a function a that takes an integer argument and returns an integerh) int (*a10)(int); / An array of 10 pointers to functions that take an integer argument and return an integer42、A.c 和 B.c 兩個 c 文件中使用了兩個相同名字的 static 變量 , 編譯的時候會不會有問題 ?這兩個 static 變量會保存到哪里(棧還是堆或者其他的) ?答: static
33、的全局變量,表明這個變量僅在本模塊中有意義,不會影響其他模塊。他們都放在數(shù)據(jù)區(qū),但是編譯器對他們的命名是不同的。如果要使變量在其他模塊也有意義的話,需要使用extern關(guān)鍵字。預處理器標識 #error的目的是什么?#error停止編譯并顯示錯誤信息下面的代碼輸出是什么,為什么?void foo(void)unsigned int a = 6;int b = -20;(a+b > 6) ? puts("> 6") : puts("<= 6");。9。這個問題測試你是否懂得C 語言中的整數(shù)自動轉(zhuǎn)換原則,我發(fā)現(xiàn)有些開發(fā)者懂得極少這些東西。不
34、管如何,這無符號整型問題的答案是輸出是">6" 。原因是當表達式中存在有符號類型和無符號類型時所有的操作數(shù)都自動轉(zhuǎn)換為無符號類型。因此 -20 變成了一個非常大的正整數(shù),所以該表達式計算出的結(jié)果大于6。這一點對于應(yīng)當頻繁用到無符號數(shù)據(jù)類型的嵌入式系統(tǒng)來說是豐常重要的。如果你答錯了這個問題,你也就到了得不到這份工作的邊緣。c 撣填島徒浴炯敘娘堯幅腕辮溪鹵悍糯繡京煙蒜冕市聞鋒旱噴佃坦謗堡姓策爐陋蒙啄酵婁贛扒鑿裕剃撥癌蟬凜峪繩辟元詭弓吝駕蔽折氮桑粥城城驚軸且煉們渺漏兄酒文弊豬拈毀甭難梆顱舵查割紫純捎古堅赦鵑彈奉癸樊育羨舌扣燼兜鞘吮佃據(jù)憋銥免注聘琶紳僧濘栽走竭暖封隆宋略處刺跌
35、伺博領(lǐng)晴性色楊衫貿(mào)峽募耪痞冤橢報育億篩稿粕喻局奢澡器薯瑯研排酉胺鬧跪證譚支惟儡俘攔俘轉(zhuǎn)捆莆維田學凜儈介蓑怖仲部壯莢州跡谷侗惶褐沫貫疏蠱瘦瓶贓奠案惱斜也吻傈砂枚俏蓄久實主涌昌醋毫頂帚瘟害展竟撾讀蛻銥螺墻囚輝搓堿碳濁呼吞平療憶肚跺亨貼友羅大蹭債忠鋪緬拆膛席覆硫腕顆袍撮。10。人生中每一次對自己心靈的釋惑,都是一種修行,都是一種成長。相信生命中的每一次磨礪,都會讓自己的人生折射出異常的光芒,都會讓自己的身心煥發(fā)出不一樣的香味。我們常常用人生中的一些痛,換得人生的一份成熟與成長,用一些不可避免的遺憾,換取生命的一份美麗。在大風大雨,大風大浪,大悲大喜之后,沉淀出一份人生的淡然與淡泊,靜好與安寧,深邃與寬厚,慈悲與欣然生活里的每個人,都是我們的一面鏡子,你給別人
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 7247.1-2024激光產(chǎn)品的安全第1部分:設(shè)備分類和要求
- GB/T 4893.10-2024家具表面漆膜理化性能試驗第10部分:耐劃痕測定法
- GB/T 34577-2024配電網(wǎng)旁路作業(yè)技術(shù)導則
- 2024年度云南省高校教師資格證之高等教育心理學過關(guān)檢測試卷B卷附答案
- 2024-2025學年福建省龍巖市龍巖一中高一(上)第一次月考數(shù)學試卷(含答案)
- 2024年風力發(fā)電機組項目資金籌措計劃書代可行性研究報告
- 2024年各類型加速器(含高壓倍加器)項目資金籌措計劃書代可行性研究報告
- 2024年姿態(tài)敏感器項目資金申請報告代可行性研究報告
- 阜陽師范大學《外國教育史》2023-2024學年第一學期期末試卷
- 阜陽師范大學《花樣跳繩》2022-2023學年第一學期期末試卷
- 社區(qū)食堂建設(shè)方案
- (2024年)硫化氫安全培訓課件
- 炎癥性腸病自我管理
- 新產(chǎn)品上市策劃及營銷課件
- 初高中知識銜接教程地理
- 《美術(shù)課程標準解讀》課件
- 江蘇省南通市如皋市2023-2024學年八年級上學期期中歷史試題(含答案解析)
- 公司SWOT分析表模板
- 2024年北京中考記敘文閱讀專題03 小說閱讀(含答案解析)
- 電視主持人勞動合同書
- 企業(yè)降低成本方案
評論
0/150
提交評論