C語言筆試系列一

2021-06-10 02:33:18 字數 1368 閱讀 3706

廢話不多說,請看筆試題:

1、如何在c語言中初始化乙個字元陣列。

最簡單的方法是char array;。更為全面的初始化方式為char array[5]=;或者char array[5]=;或者char array[2][10]=;

2、如何在c中為乙個陣列分配空間。

棧的形式:char array[5];           堆的形式:char *array;  array=(char *)malloc(5);            //c++: array=new array(5);

3、如何初始化乙個指標陣列。

首先區分指向陣列的指標和存放指標的陣列。

指向陣列的指標:char  (*array)[5];  指向乙個存放五個字元陣列的指標。

存放指標的陣列:char *array[5];      存放五個字元型指標的陣列。

char *array[2]=;存放兩個分別指向「china」和「shanghai」的指標的陣列。

4、如何定義有15個整形指標元素的陣列。

int *array[15];

5、s[10]的另外一種表達方式是什麼。

s[0]=*s; s[10]=*(s+10);

6、如何讓區域性變數具有全域性生命週期。

static修飾就可以了,但只是延長了生命週期,範圍並沒有擴大,除非把這個變數定義在函式體外的靜態區,不過那樣就變成全域性變數了。

7、c中的常量字串應在何時定義。

一種是預處理階段,用#define 定義;還有就是使用const修飾詞。

8、如何在.c檔案中引用對方的變數。

為全域性變數新增extern修飾詞。

9、使用malloc之前需要做什麼準備工作。

需要這段空間的指標是否存在,若不存在,則定義乙個指標用了被賦值,還要清楚返回什麼型別的指標,分配的記憶體空間是否合理;如果指標已經存在,那麼將新空間的位址賦值給指標之前,先判斷指標是否為null,如果不是則要free一下,否則原有的空間就會被浪費,或者出錯,free完就按前一種情形考慮。

10、realloc函式在使用上需要注意什麼。

這個函式的作用是重新分配空間大小,返回的頭指標不變,只改變空間大小。變大不能大到記憶體溢位,變小,部分空間會被徵用,原有資料不存在;如果想挪作他用,需要先free一下。

11、如何定義boolean變數的true和false。

#define true 1;

#define false 0;

12、c語言的volatile的含義是什麼,使用時會對編譯器有什麼影響。

volatile本意是易變的。由於訪問暫存器的速度快過ram,所以編譯器一般會做減少訪問外部ram的優化,但有可能會讀髒資料。當要求使用volatile宣告變數時,系統總是重新從所在記憶體中讀取,而不是使用暫存器中備份的資料。

C語言筆試題紀錄(一)

下列不是linux系統程序型別的是 d a.互動程序b.批處理程序c.守護程序d.就緒程序 程序狀態 聯合體union的記憶體大小判斷 為其包含的成員的記憶體大小的最小公倍數 命令kill 9 的含義是 d a.kills the process whose pid is 9 b.kills all...

c語言筆試小結

1.void p malloc 100 sizeof p 4 指標的位元組數,而不是指標指向的內容容量 2.void func char str 100 陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標 3.char str 100 sizeof str 100 不是函式的引數時 4.ch...

C語言筆試題

有a b c d四個人,要在夜裡過一座橋。他們通過這座橋分別需要耗時1 2 5 10分鐘,只有一支手電,並且同時最多只能兩個 人一起過橋。請問,如何安排,能夠在17分鐘內這四個人都過橋?答案 a b 2 mins 1 mins a c d 10 mins 2 mins b a b 2 mins 一共...