基礎篇
1、區域性變數能否和全域性變數重名?
可以2、如何引用乙個已經定義過的全域性變數?
直接呼叫並初始化
3、全域性變數可不可以定義在可被多個.c檔案包含的標頭檔案中?為什麼?
可以,6、堆和棧有什麼區別?
7、什麼是預編譯,何時需要預編譯:
8、c和c++中的struct有什麼不同?
9、memset ,memcpy 和strcpy 的根本區別?
10、assert()是幹什麼用的
11、分別給出bool,int,float,指標變數 與「零值」比較的 if 語句(假設變數名為var)
12.如果記憶體中有這樣兩個數:1000 0000 0000 0000 和 1111 1111 1111 1111,那麼他們對應的10進製數字分別是多少?
大小端:
有無符號:
進製:13.用最有效率的方法算出2乘以8等於幾
n << 3 + n
14.x=x+1, x+=1, x++, ++x 哪個效率最高?為什麼?
15.如果有「int a=5, b=3」,則在執行「!a&&b++」後,a和b的值分別是多少?
################################
二、看**寫執行結果
1.#請寫出下列**的輸出內容
#include
int main(void)
2.設有以下說明和定義:
typedef union
date;
struct data
too;
date max;
printf("%d",sizeof(struct data)+sizeof(max));的執行結果是:_______
3.某32位系統下, c程式,請計算sizeof 的值。
char str[10] = 「hello.c/」;
char (*p)[10] = str ;
int n = 10;
請計算sizeof (str ) = ?
strlen(str) ?
sizeof ("abcdef") = ?
sizeof ("abcdef" + 1) = ?
sizeof ( p ) = ?
sizeof ( n ) = ?
void foo ( char str[100])
void *p = malloc( 100 );
sizeof ( p ) = ?;
4.下面的**輸出是什麼,為什麼?
void foo(void)
三、編碼題
1.模仿字元處理函式庫,寫出strcpy函式
s2.寫乙個函式返回1+2+3+…+n的值?
3.編寫下列巨集:
1)寫乙個「標準」巨集min,這個巨集輸入兩個引數並返回較小的乙個。
2)用預處理指令#define 宣告乙個常數,用以表明1年中有多少秒(忽略閏年問題)
3)用巨集定義寫出swap(x,y)
4)一語句實現x是否為2的若干次冪的判斷
4.寫乙個遞迴函式實現斐波拉契數列?
鑑於該問題使用遞迴解決,實在無效率可言。請問,如何不使用遞迴,來實現上述函式?
5.編寫出乙個從字串到長整形的轉換函式?
C語言面試題
1.求某一年的某一天 includestruct sdate int main int i 0,nday dt.nday while i2 nday printf 這是 d年的第 d天 n dt.nyear,dt.nday return 0 將列印和演算法抽象成不同函式 includestruct ...
C語言面試題
1.要求使用一維陣列,輸入10名同學的序號和成績,並進行排序。題目1196 成績排序 題目描述 用一維陣列儲存學號和成績,然後,按成績排序輸出。輸入 輸入第一行包括乙個整數n 1 n 100 代表學生的個數。接下來的n行每行包括兩個整數p和q,分別代表每個學生的學號和成績。輸出 按照學生的成績從小到...
C語言面試題之華為面試題
1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...