**問題1:構造和析構函式中的虛函式呼叫;
答案:虛函式可以在建構函式和析構函式中呼叫,但虛函式此時是靜態繫結;而非動態繫結。
**問題2:c++中的異常可不可以是引用;
答案:異常可以是引用,並且效率高。
**問題3:tcp狀態中的close_wait是什麼狀態;
答案:close_wait狀態是被動關閉方的乙個狀態,此時是半關閉狀態,被關閉方收到了fin包,並且傳送了fin包的ack,等待上層應用結束連線。
**問題4:排序演算法的時間複雜度;
答案:最好是nlogn,其他的上網搜尋。
面試問題1.atoi函式編寫;
答案:自己寫的atoi函式----(注意:自己定義的atoi函式和庫的atoi函式一樣的時候,丟擲異常時會引起異常退出,個人認為是異常沒有不知道被那個函式丟擲,所以coredump)
[cpp]view plain
copy
#include
#include
#include
#include
#include
#include
#include
#include
using
namespace
std;
const
unsigned
intsign_bit = 0x1 << 31;
bool
isdigit(
const
char
ch)
return
false
; }
intatoi_i(
const
char
*str)
intresult = 0;
bool
signflag =
false
; if
('+'
== *str)
elseif(
'-'== *str)
else
if(*str >
'9'|| *str <
'0')
do}
while
(isdigit(*str)); if(
true
== signflag)
return
result;
} int
main(
intargc,
char
*argv)
catch
(const
char
*p)
catch
( ... )
} return
0;
}
面試問題2.sizeof和空類;
答案:class cbase
;那麼執行cout<<"sizeof(cbase)="《這個應該很簡單,兩個成員變數所佔的大小——8。
第一步:空類
class cbase
;執行cout<<"sizeof(cbase)="深度探索c++物件模型中是這樣說的:那是被編譯器插進去的乙個char ,使得這個class的不同實體(object)在記憶體中配置獨一無二的位址。
也就是說這個char是用來標識類的不同物件的。
第二步:
還是最初的那個類,執行結果:sizeof(cbase)=8
第三步:添個虛函式
class cbase
;再執行:sizeof(cbase)=12
c++ 類中有虛函式的時候有乙個指向虛函式的指標(vptr),在32位系統分配指標大小為4位元組」。那麼繼承類呢?
第四步:
基類就是上面的了不寫了
class cchild :
public cbase
;執行:cout<<"sizeof(cchild)="《輸出:sizeof(cchild)=16;
可見子類的大小是本身成員變數的大小加上子類的大小。
面試問題3.(1)物件只允許在堆上建立,(2)物件只允許在棧上建立;
答案:[cpp]view plain
copy
class
heaponly
void
destroy()
private
:
~heaponly(){}
};
intmain()
#include
using
namespace
std;
class
stackonly
~stackonly()
private
:
void
*operator
new(
size_t
);
};
intmain()
面試問題4.在乙個不知道公升序還是降序的資料組中查詢乙個給定的數,
個人想法:1.根據陣列的首尾比較,判斷陣列的序列形式;2.折半查詢演算法。
答案:[cpp]view plain
copy
#include
#include
using
namespace
std;
static
bool
flag =
true
; bool
intcompare(
intvalue1,
intvalue2)
intbinary_search_i(
inta,
intvalue,
intstart,
intend)
else
if(intcompare(value, a[pos]))
else
} intbinary_search(
inta,
intvalue,
intn)
else
} if(a[0] < a[n - 1])
else
inttemp = binary_search_i(a, value, 0, n - 1);
while
((temp > 0) && (a[temp] == a[temp - 1]))
return
temp;
} int
main()
;int
a = ;
intarraynum =
sizeof
(a) /
sizeof
(int
);
for(
inti = 0; i < arraynum; ++i)
printf("/n"
);
intvalue = 0;
while
(1)
return
0;
}
面試問題5.那些演算法是穩定排序,那些演算法是不穩定排序。
答案:上網上搜尋一下。
C C 常見的面試筆試題
1 程序的記憶體空間的劃分為那些段,各儲存什麼資料?劃分的段 儲存的資料 test 段 儲存二進位制指令 常量 data資料段 儲存初始化的全域性變數和被static修飾的區域性變數 bss 靜態資料段 儲存未初始化的全域性變數和被static修飾的區域性變數 stack 棧 儲存區域性變數 塊變數...
python常見的面試筆試題
a 12,13,3,56,35,33 for i in range len a for j in range len a i 1 if a j a j 1 a j a j 1 a j 1 a j for i in range 1,10 for j in range 1,i 1 print s s s...
面試筆試遇到的一些題
sizeof 指標變數 大小為4個位元組 以32位計算機為例 也是,計算機位址32位,指標存的是記憶體位址,自然也要32位。堆和棧的區別 1 棧由程式自動分配,堆是程式設計師申請的,必須指明大小 2 程式結束,棧自動釋放,而堆還需要free或者delete,手動釋放 2 分配棧很快,只要剩餘空間足夠...