一些常見的面試筆試題

2021-06-25 09:12:49 字數 3684 閱讀 8556

**問題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 分配棧很快,只要剩餘空間足夠...