c c 面試題(程式設計基礎篇)

2021-09-29 00:14:15 字數 1454 閱讀 3962

相同的是變數進行自增操作,區別在於i++返回自增前的值,++i返回自增後的值

當i是內建型別時,由於編譯器的優化,會使得i++和++i效率相同

當i是自定義資料型別時,i++會建立臨時物件,因為有了新物件的構造和析構,所以++i的效率高於i++

當變數是bool型別,使用(!)取反來判斷true,false較好,例如: if(!flag)

當變數是整型,使用==來判斷較好

當變數是浮點型,需要考慮誤差,例如:if(x>=1-epsinon&&x<=1+epsinon),這裡比較x和1,允許的誤差為epsinon

有符號變數的最高位被用來記錄符號,而無符號變數的最高位是數值位

以變數a,b為例

利用中間變數temp交換:

temp=a;

a=b;

b=temp;

如果a,b是數值型別,還可以

利用加減轉換(可能溢位):

a=a+b;

b=a-b;

a=a-b;

利用異或轉換

a=a^b;

b=a^b;

a=a^b;

c是過程型語言,注重的是資料結構與演算法,而c++可以說是乙個語言的聯邦,除了相容c,它還支援了面對物件技術,模板元程式設計技術等。過程化和面對物件是兩種解決問題的方法,過程化是通過設計乙個過程,對輸入進行處理,從而得到輸出,而物件導向則是考慮構造乙個物件模型,讓這個物件模型能配合對應的問題,通過處理物件狀態控制過程輸出。

#ifndef __work			//if not define		防止多次引入

#define __work

#ifdef __cplusplus //這個巨集代表c++編譯器

extern "c" //c++生成的函式符號為_fun_int_int,而c只有_fun

/*插入擴充套件*/

#ifdef __cplusplus

} #endif

#endif // !__work

<>表明是標準標頭檔案,查詢過程檢查預定義目錄(可以通過設定環境變數或命令列選項修改)

""表明是使用者自定義檔案標頭檔案,查詢過程檢查當前(或指定)檔案目錄,然後會在標準位置尋找檔案

使用atexit函式註冊的函式會加入到乙個棧中,當main函式結束後,從棧頂開始呼叫,乙個程式最多可以註冊32個處理函式

#include using namespace std;

void fun1()

void fun2()

int main()

//輸出

//this is fun 2

//this is fun 1

語言標準未做規定的行為,這些行為有編譯器自行處理,在不同的編譯器可能會產生不同的結果。

常見的比如:a[i]=i++;

C C 面試題專業篇

1.介紹stl,詳細說明 stl如何實現 vector 2.分析visual c 程式出錯的原因 3.繼承和多型有何區別 4.指標和引用有何區別,穿引用比傳指標安全,為什麼 5.引數傳遞的方式與多型引數傳遞的實現 6.怎樣應用設計模式的理念 7.介紹一下對設計模式的理解 8.c 和 c定義結構的區別...

Python面試題 基礎篇

readlines 是把檔案的全部內容讀取到記憶體,並解析成乙個字串列表。xreadlines 返回乙個iter file 迭代器,在python2.3後已經不推薦這種表示方法了,直接使用for迴圈迭代檔案物件。python中物件包含三要素 id,type,value。其中id用來唯一標識乙個物件,...

python面試題 基礎篇

1.python保留字有哪些?序號保留字說明1 and邏輯與操作,用於表示式運算2as 用於轉換資料型別 3assert 用於判斷變數或條件表示式的結果 4async 用於啟用非同步操作 5await 用於非同步操作中等待協程返回 6break 中斷迴圈語句的執行 7class 定義類8 conti...