日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

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

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

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

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

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

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

4、什么是平衡二義樹?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

int square(volatile int *ptr)

return *ptr * *ptr;

下面是答案:

1).是的。一個(gè)

總結(jié)

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

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