可可簡歷網

位置:首頁 > 面試 > 面試筆試

朗訊筆試題目

朗訊筆試題目
朗訊筆試題目--C語言部分
跳出main()函式後還能不能執行其他程式碼
不使用第三個變數,將兩個變數a,b得值互換(不準用函式)
如何判斷一個檔案是由C編譯環境還是C++編譯環境編譯完成的?
不用任何條件語句求兩個整形數的最大值?(不準用函式)
struct student {long ..; char .. float .. } 所佔空間多大?
下面是一些解法,又可以從中學習到新東西了,赫赫:
跳出main()函式後還能不能執行其他程式碼
1)atexit 繫結退出函式
2)就是main執行完後,還能否執行其他程式碼
當然可以,通常段的程式碼是最後執行的,
如果有什麼需要在整個程式執行完後做的,就可以放在段做
不使用第三個變數,將兩個變數a,b得值互換(不準用函式)
1。) xor (<===異或???)
2.)a+=b;
b=a-b; a=a-b;
3)想出一個很不爽的方法
a*(((int)(b-a))>>31)+b*(((int)(a-b))>>31) (<==要右移31位?太誇張了巴) 31可以換成sizeof(int)*8-1
如何判斷一個檔案是由C編譯環境還是C++編譯環境編譯完成的?
編譯的時候可以用__cplusplus巨集判斷。
至於編譯完成之後拿ELF檔案來判斷,我能想到的就是nm,
看一下有沒有鏈libstdc++。不過這個也不保險。
不用任何條件語句求兩個整形數的最大值?(不準用函式)
?:算不算條件語句?:)
struct student {long ..; char .. float .. } 所佔空間多大?
1)data alignment and padding
2)應該是12

標籤:朗訊 筆試 題目