c語言筆試小結

2021-05-23 20:23:16 字數 1963 閱讀 1127

1.

void *p=malloc(100);

sizeof(p)=4;

---------------------指標的位元組數,而不是指標指向的內容容量

2. 

void func(char str[100])

--------------------陣列作為函式的引數進行傳遞時,該陣列自動退化為同型別的指標

3.char str[100];

sizeof(str)=100;

--------------------不是函式的引數時

4.char str="hello";

char *p=str;

int n=10;

sizeof(str)=6;sizeof(p)=4;sizeof(n)=2;

--------------------參考上面的

注:我覺得sizeof(n)應該是4,如果在32位作業系統下

5.#define a 3

#define b 4

#define c a+b

#define s(x) x*x

s(c)=a+b*a+b=3+4*3+4=19;

-------------------巨集展開只是簡單的字串替換

6.一組碰到最多的題,至少4次筆試的題都有它,搞得我鬱悶啊

可參見林銳的《c/c++高質量程式設計》,很詳細的解答了下面的題

(1)void getmemory(char *p, int num)

void test(void)

毛病出在函式getmemory 中。編譯器總是要為函式的每個引數製作臨時副本,指標引數p的副本是 _p,編譯器使 _p =

p。如果函式體內的程式修改了_p的內容,就導致引數p的內容作相應的修改。這就是指標可以用作輸出引數的原因。在本例中,_p申請了新的記憶體,只是把

_p所指的記憶體位址改變了,但是p絲毫未變。所以函式getmemory並不能輸出任何東西。事實上,每執行一次getmemory就會洩露一塊記憶體,因為沒有用free釋放記憶體。

-------------------------------------形參和實參的關係,**值傳遞

(2)void getmemory2(char **p, int num)

void test2(void)

----------------------------------&str是指標的位址,將指標的位址傳給形參p,則p也指向str,

所以*p = (char *)malloc(sizeof(char) * num);也就是給p所指向的str分配了記憶體,所以正確。(個人見解)

(3)char *getmemory3(int num)

void test3(void)

----------------------------正確

(4)char *getstring(void)

void test4(void)

不要用return語句返回指向「棧記憶體」的指標,因為該內存在函式結束時自動消亡;

(5)char *getstring2(void)

void test5(void)

函式test5執行雖然不會出錯,但是函式getstring2的設計概念卻是錯誤的。因為getstring2內的「hello

world」是常量字串,位於靜態儲存區,它在程式生命期內恆定不變。無論什麼時候呼叫getstring2,它返回的始終是同乙個「唯讀」的記憶體塊。

(6)void test(void)}7.

程式的區域性變數存在於(棧)中

程式的全域性變數存在於(靜態儲存區)中

程式動態申請的資料存在於(堆)中

8.二分法,氣泡排序

9.二叉樹,鍊錶

10.網路方面的一些:

iso 7層模型

tcp/ip 5層

tcp/udp 區別

交換機工作在 資料鏈路層

路由器工作在 網路層

hub工作在 物理層

C語言小結

1.include 中關於stidio.h的解釋 一般會把用來 include的檔案的副檔名 叫 h,稱其為標頭檔案 2.scanf的輸入形式 scanf 格式控制,位址表列 位址表列中給出各變數的位址,位址是由位址運算子 後跟變數名組成的 比如 a b分別表示變數a和變數b的位址 3.指標運算子有...

筆試題小結

static作用 1 封裝 2 保持變數的持久。3預設初始化為0 win32型別大小 int 4 long 4 short 2 double 8 float 4 char 1 動態聯編又稱動態關聯 定義 編譯程式在編譯階段並不能確切知道將要呼叫的函式,只有在程式執行時才能確定將要呼叫的函式,為此要確...

IBM筆試小結

上午8點半,昏昏沉沉的趕到復旦,第四教學樓下圍著很多人,仔細一看是留學生考試,周圍的人全操著韓語,四面楚歌中驗證了一下自己沒走錯地方。一口氣爬到五樓,瞧見了幾個cs的,也瞧見了很多別的系 別的學院的人,還有研究生大哥們的討論。說正題了。題目的型別是iptc 貌似 反正全是智力題。題目一共分三大部分。...