朗訊筆試題目 C語言部分 zz

2021-03-31 08:56:59 字數 901 閱讀 5465

標  題: 朗訊筆試題目--c語言部分

跳出main()函式後還能不能執行其他**

不使用第三個變數,將兩個變數a,b得值互換(不准用函式)

如何判斷乙個檔案是由c編譯環境還是c++編譯環境編譯完成的?

不用任何條件語句求兩個整形數的最大值?(不准用函式)

struct student 所佔空間多大?

下面是一些解法,又可以從中學習到新東西了,赫赫:

: 跳出main()函式後還能不能執行其他**

1)atexit 繫結退出函式

2)就是main執行完後,還能否執行其他**

當然可以,通常.fini段的**是最後執行的,

如果有什麼需要在整個程式執行完後做的,就可以放在.fini段做

: 不使用第三個變數,將兩個變數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 所佔空間多大?

1)data alignment and padding   

2)應該是12

中興筆試題目總結(一)C 部分

一 程式設計題目 1 輸入某班級學生的姓名 分數,並對分數進行降冪排列並輸出 include using namespace std struct node void show node head int linklen node head return len void sort node hea...

經典C 語言筆試題目 1

q1 c和c 中struct有什麼區別?q2 c 中的struct和class有什麼區別?a 從語法上講,class和struct做型別定義時只有兩點區別 一 預設繼承許可權。如果不明確指定,來自class的繼承按照private繼承處理,來自struct的繼承按照public繼承處理 二 成員的預...

經典C 語言筆試題目 3

q1 heap與stack的差別 a heap是堆,stack是棧。stack的空間由作業系統自動分配 釋放,heap上的空間手動分配 釋放。stack空間有限,heap是很大的自由儲存區 c中的malloc函式分配的記憶體空間即在堆上,c 中對應的是new操作符。程式在編譯期對變數和函式分配記憶體...