C語言筆試題

2023-02-02 09:06:06 字數 2794 閱讀 4767

c語言筆試題.txt**太多,傻子明顯不夠用了。我就是在路上斬棘殺龍遊江過河攀上塔頂負責吻醒你的公主。

現在的公司招聘,都要筆試面試.如果你不是那種程式設計功底非常深厚的人,又不好好準備一番,

在筆試面試中往往會處於被動局面.雖然有些筆試題是故意為難我們,有點鑽牛角尖.

但是很多筆試題面試題確實能夠很好地看出我們的基礎.

在這裡,我就略去那些鑽牛角尖的題.從csdn論壇我近半年的收集中選出10道有代表性的題目,

難度基本上是逐漸加大.對陣列,指標,資料結構,演算法,字串,檔案操作等問題都有覆蓋.

主要以c語言的實現為主,也有c++的題.大家可以先做做這10道題,測試一下自己的水平.

1. 下面這段**的輸出是多少(在32位機上).

char *p; // 4

char *q[20]; // 80

char *m[20][20]; // 1600

int (*n)[10]; // 4

struct mystruct

; mystruct k; // 24

printf("%d %d %d %d",sizeof(p),sizeof(q),sizeof(m),sizeof(n),sizeof(k));

2.(1)

char a[2][2][3]=,},,} };

for(int i=0;i<12;i++)

printf("%da+i)____);

在空格處填上合適的語句,順序列印出a中的數字

(2)char **p, a[16][8];

問:p=a是否會導致程式在以後出現問題?為什麼?

編譯就通不過,p是乙個指標的指標,而a是乙個2維陣列的首位址。

但是*p = a也是錯誤的。

3.用遞迴方式,非遞迴方式寫函式將乙個字串反轉.

函式原型如下:char *reverse(char *str);

#include <>

函式名: reverse()

引數: str

功能描述: 將乙個字串翻轉

返回值: const char*

丟擲異常: 無

作者: 劉基偉 2007/4/21

const char *reverse(char *str);

int main()

const char *reverse(char *str)

pstring_end = --str; // 退回乙個才是字串的末尾

ncount_div = ncount/2;

while(ncount_div>0) // 將字串翻轉

return premark_begin;

}函式和memcpy函式有什麼區別?它們各自使用時應該注意什麼問題?

5.寫乙個函式將乙個鍊錶逆序.

乙個單鏈表,不知道長度,寫乙個函式快速找到中間節點的位置.

寫乙個函式找出乙個單向鍊錶的倒數第n個節點的指標.(把能想到的最好演算法寫出).

6.用遞迴演算法判斷陣列a[n]是否為乙個遞增陣列。

7.有乙個檔案(名為如下,每行有4項,第一項是他們的名次,

寫乙個c程式,將五個人的名字列印出來.並按名次排序後將5行資料仍然儲存到中.使檔案按名次排列每行.

2,07010188,0711,李鎮豪,

1,07010154,0421,陳亦良,

3,07010194,0312,凌瑞松,

4,07010209,0351,羅安祥,

5,07010237,0961,黃世傳,

8.寫乙個函式,判斷乙個unsigned char 字元有幾位是1.

寫乙個函式判斷計算機的位元組儲存順序是公升序(little-endian)還是降序(big-endian).

9.微軟的筆試題.

implement a string class in c++ with basic functionality like comparison, concatenation,

input and output. please also provide some test cases and using scenarios (sample code of using this class).

please do not use mfc, stl and other libraries in your implementation.

10.有個陣列a[100]存放了100個數,這100個數取自1-99,且只有兩個相同的數,剩下的98個數不同,

寫乙個搜尋演算法找出相同的那個數的值.(注意空間效率時間效率盡可能要低).

這十道題還是能夠看出自己的水平如何的.如果你能不假思索地做出這10道題,估計去國外大公司是沒有問題了,呵呵.

答案我在整理中,以後陸續發布

下面有些題也不錯,可以參考.

1.下面的**輸出是什麼,為什麼?

void foo(void)

輸出 >6.

a+b這裡做了隱式的轉換,把int轉化為unsigned int

編譯器就會把b當作乙個很大正數

2. b)執行下面的函式會有什麼結果?為什麼?

void foo(void)

strcpy(string, str1);

printf("%s",string);

}str1沒有結束標誌,因此陷入死迴圈

char * strcpy(char * strdest,const char * strsrc)

由於str1末尾沒有'\0』結束標誌,所以strcpy不知道拷貝到何時結束.

printf函式,對於輸出char* 型別,

順序列印字串中的字元直到遇到空字元('\0')或已列印了由精度指定的字元數為止.

c語言筆試試題

關係 delete 會呼叫物件的析構函式,和 new 對應 free 只會釋放記憶體,呼叫建構函式.new malloc 與 free 是 c c 語言的標準庫函式,new delete 是 c 的運算子.它們都可用於申請動態記憶體和釋放記憶體.對於非內部資料型別的物件而言,光用 malloc fr...

華為C筆試題

華為1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性...

C 模擬試題筆試

有三個關係r,s和t如下 其中關係t由關係r和s通過某種操作得到,該操作為 a 選擇 b 投影 c 交d 並 軟體設計中劃分模組的乙個準則是 a 低內聚低耦合 b 高內聚低耦合 c 低內聚高耦合 d 高內聚高耦合 對於迴圈佇列,下列敘述中正確的是 a 隊頭指標是固定不變的 b 隊頭指標一定大於隊尾指...