首先先看這篇部落格,不是我自己的但是能有不少幫助,這裡部分算抄襲這位大牛的部落格:
正確答案:
#define min(a,b) ( (a) <= (b) ? (a) : (b) )
錯誤答案:
#define min(a,b) (a) <= (b) ? (a) : (b) 或者 #define min(a,b) ( a <= b ? a : b )
迴圈演算法:
link_node *reverse_link(link_node *head)
return previous; //到最後previous是頭結點,head為null
}遞迴演算法:
才疏學淺。這個鍊錶逆序遞迴其實並不難要花些時間看,不過是值得的
link_node *reverselink2(link_node *head)
分析:分析遞迴應從遞迴的最深層分析,以上程式相當於滿足(head != null) && (head->next != null)將會執行遞迴,也就是現將最末尾兩個節點」角色互換「,然後又一次遞迴將倒數
二、三個節點」角色互換「,依次內推。
float b = 1.0f;
int &a = b;
結果是:b = 1,a = 1065353216
(1) 先試想:判斷n能被5整除多少次,即n/5就好了嘛,因為這表示"子值"結尾有0 和 "子值"相乘產生0。是否可行看第二點。
(2) 試想是正確的,但是考慮不周,其只能判斷結尾產生乙個0的個數,還需要考慮判斷結尾產生多個0的情況。來個假設嘛,判斷產生1個0的個數只要"n/5",那產生2個0是不是"n/5/5"就好呢?其實就是這麼簡單的。多個0便依次類推。
**如下:
int countzero(int n)
return ret;
}分析:上述第一次迴圈即是n/5,表示:「子值」結尾有1個0 或 「子值」間相乘產生的新值結尾有1個0 的個數。
第二次迴圈即是n/5/5,表示:「子值」結尾有2個0 或 「子值」間相乘產生的新值結尾有2個0 的個數。剩下的迴圈依次類推了。
C語言面試
2 評價下面的 片斷 unsigned int zero 0 unsigned int compzero 0xffff 對於乙個 int型不是 16位的處理器為說,上面的 是不正確的。應編寫如下 unsigned int compzero 0 這一問題真正能揭露出應試者是否懂得處理器字長的重要性。在...
面試基礎語言c
1.c 與c的區別 2.如何讓乙個c 程式執行c的程式且不需要對函式進行名字重整extern c 3.指標與引用的區別 4.c 中間的指標傳遞和引用傳遞 5.形參與實參 6.三種傳遞 7.static 8.靜態變數的初始化 9.const 10.指標與const 11.mutable 12.exte...
C語言面試題
基礎篇 1 區域性變數能否和全域性變數重名?可以2 如何引用乙個已經定義過的全域性變數?直接呼叫並初始化 3 全域性變數可不可以定義在可被多個.c檔案包含的標頭檔案中?為什麼?可以,6 堆和棧有什麼區別?7 什麼是預編譯,何時需要預編譯 8 c和c 中的struct有什麼不同?9 memset me...