日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 >

c语言联合验证大小端存储,2021C语言面试题及答案.docx

發(fā)布時間:2023/12/15 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言联合验证大小端存储,2021C语言面试题及答案.docx 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1、關(guān)鍵字static的作用是什么?

這個簡單的問題很少有人能回答完全。在C語言中,關(guān)鍵字static有三 個明顯的作用:1)-在函數(shù)體,一個被聲明為靜態(tài)的變量在這一函數(shù)被調(diào)用過 程中維持其值不變。2)?在模塊內(nèi)(但在函數(shù)體外),一個被聲明為靜態(tài)的變量 可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問。它是一個本地的 全局變量。3)?在模塊內(nèi),一個被聲明為靜態(tài)的函數(shù)只可被這一模塊內(nèi)的其它函 數(shù)調(diào)用。那就是,這個函數(shù)被限制在聲明它的模塊的本地范W內(nèi)使用。大多數(shù) 應(yīng)試者能正確回答第一部分,一部分能正確回答第二部分,同是很少的人能懂 得第三部分。這是一個應(yīng)試者的嚴(yán)重的缺點(diǎn),因?yàn)樗@然不懂得本地化數(shù)據(jù)和 代碼范圍的好處和重要性。

2、.h頭文件中的ifndef/define/endif的作用? 答:防止該頭文件被巫復(fù)引用。

3、描述實(shí)時系統(tǒng)的基本特性

答:在特定時間內(nèi)完成特定的任務(wù),實(shí)時性與可靠性。

4、什么是平衡二義樹?

答:左右?子樹都是平衡二義樹且左右子樹的深度差值的絕對值不大于1。

5、冒泡排序算法的時間復(fù)雜度是什么? 答:0(n"2)

6、隊(duì)列和棧有什么區(qū)別?

答:隊(duì)列先進(jìn)先出,棧后進(jìn)先出

7、局部變量能否和全局變量重名?

答:能,局部會屏蔽全局。要用全局變量,需要使用":r局部變量可以與 全局變量同名,在函數(shù)內(nèi)引用這個變量時,會用到同名的局部變量,而不會用 到全局變量。對于有些編譯器而言,在同一個函數(shù)內(nèi)可以定義多個同名的局部 變量,比如在兩個循環(huán)體內(nèi)都定義一個同名 的局部變量,而那個局部變量的作 用域就在那個循環(huán)體內(nèi)

8、全局變量可不可以定義在可被多個.C文件包含的頭文件中?為什么? 答、可以,在不同的C文件中以static形式來聲明同名全局變量。可以在不 同的C文件中聲明同名的全局變量,前提是其中只能有一個C文件中對此變 量賦初值,此時連接不會出錯。

9、dowhile 和 whiledo 有什么區(qū)別?

答前一個循環(huán)一遍再判斷,后一個判斷以后再循環(huán)。

10、程序的內(nèi)存分配

答:一個山C/C++編譯的程序占用的內(nèi)存分為以下兒個部分:

1、棧區(qū)(stack)-山編譯器自動分配釋放,存放函數(shù)的參數(shù)值,局部變量的 值等。其操作方式類似于數(shù)據(jù)結(jié)構(gòu)中的棧。

2、堆區(qū)(heap) —一般山程序員分配釋放,若程序員不釋放,程序結(jié)束時可能

111 OS回收。注意它與數(shù)據(jù)結(jié)構(gòu)中的堆是兩回事,分配方式倒是類似于鏈表, 呵呵。

3、全局區(qū)(靜態(tài)區(qū))(static) —全局變a和靜態(tài)變量的存儲是放在一塊的,

初始化的全局變量和靜態(tài)變量在一塊區(qū)域,未初始化的全局變量和未初始化的 靜態(tài)變量在相鄰的另一塊區(qū)域。程序結(jié)束后山系統(tǒng)釋放。

4、文字常量區(qū)一常量字符弗就是放在這里的。程序結(jié)束后山系統(tǒng)釋放。

5、程序代碼區(qū)一存放函數(shù)體的二進(jìn)制代碼

11、什么是預(yù)編譯,何時需要預(yù)編譯?

答:預(yù)編譯乂稱為預(yù)處理,是做些代碼文本的替換工作。處理#開頭的指令,比如 拷貝^include包含的文件代碼,#define宏定義的替換,條件編譯等,就是為 編譯做的預(yù)備工作的階段,主要處理#開始的預(yù)編譯指令,預(yù)編譯指令指示了在 程序正式編譯前就山編譯器進(jìn)行的操作,可以放在程序中的任何位置。

C編譯系統(tǒng)在對程序進(jìn)行通常的編譯之詢,先進(jìn)行預(yù)處理。C提供的預(yù)處理功 能主要有以下三種:1)宏定義2)文件包含3)條件編譯

12、關(guān)鍵字volatile有什么含總 并給出三個不同的例子。

答:一個定義為volat訂e的變量是說這變量可能會被意想不到地改變,這 樣,編譯器就不會去假設(shè)這個變量的值了。精確地說就是,優(yōu)化器在用到這個 變量時必須每次都小心地重新讀取這個變量的值,而不是使用保存在寄存器里 的備份。下面是volatile變量的兒個例子:

1)?并行設(shè)備的硬件寄存器(如:狀態(tài)寄存器)

2), 一個中斷服務(wù)子程序中會訪問到的非自動變量(Non-automatic variables)

3),多線程應(yīng)用中被兒個任務(wù)共孕的變量回答不出這個問題的人是不會被雇傭 的。我認(rèn)為這是區(qū)分C程序員和嵌入式系統(tǒng)程序員的最基本的問題。

嵌入式系統(tǒng)程序員經(jīng)常同硬件、中斷、RTOS等等打交道,所用這些都要求 volatile變量。不懂得volatile內(nèi)容將會帶來災(zāi)難。假設(shè)被面試者正確地回 答了這是問題(嗯,懷疑這否會是這樣),我將稍微深究一下,看一下這家伙是 不是直正懂得volatile完全的重要性。

!)■-個參數(shù)既可以是const還可以是volatile嗎?解釋為什么。

2)?—個指針可以是volatile嗎?解釋為什么。

3)?下面的函數(shù)有什么錯誤:

int square(volatile int *ptr)

return *ptr * *ptr;

下面是答案:

1).是的。一個

總結(jié)

以上是生活随笔為你收集整理的c语言联合验证大小端存储,2021C语言面试题及答案.docx的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。