亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c++面試題2.txt

?? 該內容是c++的一些基本知識和企業招聘時筆試題。
?? TXT
字號:
21. New delete 與malloc free 的聯系與區別?
答案:都是在堆(heap)上進行動態的內存操作。用malloc函數需要指定內存分配的字節數并且不能初始化對象,new 會自動調用對象的構造函數。delete 會調用對象的destructor,而free 不會調用對象的destructor.

22. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?
答案:i 為30。

23. 有哪幾種情況只能用intialization list 而不能用assignment? 

答案:當類中含有const、reference 成員變量;基類的構造函數都需要初始化表。

24. C++是不是類型安全的?
答案:不是。兩個不同類型的指針之間可以強制轉換(用reinterpret cast)。C#是類型安全的。

25. main 函數執行以前,還會執行什么代碼?
答案:全局對象的構造函數會在main 函數之前執行。

26. 描述內存分配方式以及它們的區別?
1) 從靜態存儲區域分配。內存在程序編譯的時候就已經分配好,這塊內存在程序的整個運行期間都存在。例如全局變量,static 變量。
2) 在棧上創建。在執行函數時,函數內局部變量的存儲單元都可以在棧上創建,函數執行結束時這些存儲單元自動被釋放。棧內存分配運算內置于處理器的指令集。
3) 從堆上分配,亦稱動態內存分配。程序在運行的時候用malloc 或new 申請任意多少的內存,程序員自己負責在何時用free 或delete 釋放內存。動態內存的生存期由程序員決定,使用非常靈活,但問題也最多。

27.struct 和 class 的區別

答案:struct 的成員默認是公有的,而類的成員默認是私有的。struct 和 class 在其他方面是功能相當的。 

從感情上講,大多數的開發者感到類和結構有很大的差別。感覺上結構僅僅象一堆缺乏封裝和功能的開放的內存位,而類就象活的并且可靠的社會成員,它有智能服務,有牢固的封裝屏障和一個良好定義的接口。既然大多數人都這么認為,那么只有在你的類有很少的方法并且有公有數據(這種事情在良好設計的系統中是存在的!)時,你也許應該使用 struct 關鍵字,否則,你應該使用 class 關鍵字。  

28.當一個類A 中沒有生命任何成員變量與成員函數,這時sizeof(A)的值是多少,如果不是零,請解釋一下編譯器為什么沒有讓它為零。(Autodesk)
答案:肯定不是零。舉個反例,如果是零的話,聲明一個class A[10]對象數組,而每一個對象占用的空間是零,這時就沒辦法區分A[0],A[1]…了。

29. 在8086 匯編下,邏輯地址和物理地址是怎樣轉換的?(Intel)
答案:通用寄存器給出的地址,是段內偏移地址,相應段寄存器地址*10H+通用寄存器內地址,就得到了真正要訪問的地址。

30. 比較C++中的4種類型轉換方式? 

請參考:http://blog.csdn.net/wfwd/archive/2006/05/30/763785.aspx,重點是static_cast, dynamic_cast和reinterpret_cast的區別和應用。

31.分別寫出BOOL,int,float,指針類型的變量a 與“零”的比較語句。
答案:
BOOL :    if ( !a ) or if(a)
int :     if ( a == 0)
float :   const EXPRESSION EXP = 0.000001
          if ( a < EXP && a >-EXP)
pointer : if ( a != NULL) or if(a == NULL) 

 

32.請說出const與#define 相比,有何優點?
答案:1) const 常量有數據類型,而宏常量沒有數據類型。編譯器可以對前者進行類型安全檢查。而對后者只進行字符替換,沒有類型安全檢查,并且在字符替換可能會產生意料不到的錯誤。
      2) 有些集成化的調試工具可以對const 常量進行調試,但是不能對宏常量進行調試。

33.簡述數組與指針的區別?
數組要么在靜態存儲區被創建(如全局數組),要么在棧上被創建。指針可以隨時指向任意類型的內存塊。
(1)修改內容上的差別
char a[] = “hello”;
a[0] = ‘X’;
char *p = “world”; // 注意p 指向常量字符串
p[0] = ‘X’; // 編譯器不能發現該錯誤,運行時錯誤
(2) 用運算符sizeof 可以計算出數組的容量(字節數)。sizeof(p),p 為指針得到的是一個指針變量的字節數,而不是p 所指的內存容量。C++/C 語言沒有辦法知道指針所指的內存容量,除非在申請內存時記住它。注意當數組作為函數的參數進行傳遞時,該數組自動退化為同類型的指針。
char a[] = "hello world";
char *p = a;
cout<< sizeof(a) << endl; // 12 字節
cout<< sizeof(p) << endl; // 4 字節
計算數組和指針的內存容量
void Func(char a[100])
{
cout<< sizeof(a) << endl; // 4 字節而不是100 字節
}

34.類成員函數的重載、覆蓋和隱藏區別?
答案:
a.成員函數被重載的特征:
(1)相同的范圍(在同一個類中);
(2)函數名字相同;
(3)參數不同;
(4)virtual 關鍵字可有可無。
b.覆蓋是指派生類函數覆蓋基類函數,特征是:
(1)不同的范圍(分別位于派生類與基類);
(2)函數名字相同;
(3)參數相同;
(4)基類函數必須有virtual 關鍵字。
c.“隱藏”是指派生類的函數屏蔽了與其同名的基類函數,規則如下:
(1)如果派生類的函數與基類的函數同名,但是參數不同。此時,不論有無virtual關鍵字,基類的函數將被隱藏(注意別與重載混淆)。
(2)如果派生類的函數與基類的函數同名,并且參數也相同,但是基類函數沒有virtual 關鍵字。此時,基類的函數被隱藏(注意別與覆蓋混淆)

35. There are two int variables: a and b, don’t use “if”, “? :”, “switch”or other judgement statements, find out the biggest one of the two numbers.
答案:( ( a + b ) + abs( a - b ) ) / 2

36. 如何打印出當前源文件的文件名以及源文件的當前行號?
答案:
cout << __FILE__ ;
cout<<__LINE__ ;
__FILE__和__LINE__是系統預定義宏,這種宏并不是在某個文件中定義的,而是由編譯器定義的。

37. main 主函數執行完畢后,是否可能會再執行一段代碼,給出說明?
答案:可以,可以用_onexit 注冊一個函數,它會在main 之后執行int fn1(void), fn2(void), fn3(void), fn4 (void);
void main( void )
{
String str("zhanglin");
_onexit( fn1 );
_onexit( fn2 );
_onexit( fn3 );
_onexit( fn4 );
printf( "This is executed first.\n" );
}
int fn1()
{
printf( "next.\n" );
return 0;
}
int fn2()
{
printf( "executed " );
return 0;
}
int fn3()
{
printf( "is " );
return 0;
}
int fn4()
{
printf( "This " );
return 0;
}
The _onexit function is passed the address of a function (func) to be called when the program terminates normally. Successive calls to _onexit create a register of functions that are executed in LIFO (last-in-first-out) order. The functions passed to _onexit cannot take parameters.


38. 如何判斷一段程序是由C 編譯程序還是由C++編譯程序編譯的?
答案:
#ifdef __cplusplus
cout<<"c++";
#else
cout<<"c";
#endif

39.文件中有一組整數,要求排序后輸出到另一個文件中
答案:

#i nclude<iostream>

#i nclude<fstream>

using namespace std;


void Order(vector<int>& data) //bubble sort
{
int count = data.size() ;
int tag = false ; // 設置是否需要繼續冒泡的標志位
for ( int i = 0 ; i < count ; i++)
{
for ( int j = 0 ; j < count - i - 1 ; j++)
{
if ( data[j] > data[j+1])
{
tag = true ;
int temp = data[j] ;
data[j] = data[j+1] ;
data[j+1] = temp ;
}
}
if ( !tag )
break ;
}
}


void main( void )
{
vector<int>data;
ifstream in("c:\\data.txt");
if ( !in)
{
cout<<"file error!";
exit(1);
}
int temp;
while (!in.eof())
{
in>>temp;
data.push_back(temp);
}
in.close(); //關閉輸入文件流
Order(data);
ofstream out("c:\\result.txt");
if ( !out)
{
cout<<"file error!";
exit(1);
}
for ( i = 0 ; i < data.size() ; i++)
out<<data[i]<<" ";
out.close(); //關閉輸出文件流
}

 

40. 鏈表題:一個鏈表的結點結構
struct Node
{
int data ;
Node *next ;
};
typedef struct Node Node ;


(1)已知鏈表的頭結點head,寫一個函數把這個鏈表逆序 ( Intel)

Node * ReverseList(Node *head) //鏈表逆序
{
if ( head == NULL || head->next == NULL )
return head;
Node *p1 = head ;
Node *p2 = p1->next ;
Node *p3 = p2->next ;
p1->next = NULL ;
while ( p3 != NULL )
{
p2->next = p1 ;
p1 = p2 ;
p2 = p3 ;
p3 = p3->next ;
}
p2->next = p1 ;
head = p2 ;
return head ;
}
(2)已知兩個鏈表head1 和head2 各自有序,請把它們合并成一個鏈表依然有序。(保留所有結點,即便大小相同)
Node * Merge(Node *head1 , Node *head2)
{
if ( head1 == NULL)
return head2 ;
if ( head2 == NULL)
return head1 ;
Node *head = NULL ;
Node *p1 = NULL;
Node *p2 = NULL;
if ( head1->data < head2->data )
{
head = head1 ;
p1 = head1->next;
p2 = head2 ;
}
else
{
head = head2 ;
p2 = head2->next ;
p1 = head1 ;
}
Node *pcurrent = head ;
while ( p1 != NULL && p2 != NULL)
{
if ( p1->data <= p2->data )
{
pcurrent->next = p1 ;
pcurrent = p1 ;
p1 = p1->next ;
}
else
{
pcurrent->next = p2 ;
pcurrent = p2 ;
p2 = p2->next ;
}
}
if ( p1 != NULL )
pcurrent->next = p1 ;
if ( p2 != NULL )
pcurrent->next = p2 ;
return head ;
}
(3)已知兩個鏈表head1 和head2 各自有序,請把它們合并成一個鏈表依然有序,這次要求用遞歸方法進行。 (Autodesk)
答案:
Node * MergeRecursive(Node *head1 , Node *head2)
{
if ( head1 == NULL )
return head2 ;
if ( head2 == NULL)
return head1 ;
Node *head = NULL ;
if ( head1->data < head2->data )
{
head = head1 ;
head->next = MergeRecursive(head1->next,head2);
}
else
{
head = head2 ;
head->next = MergeRecursive(head1,head2->next);
}
return head ;
}

41. 分析一下這段程序的輸出 (Autodesk)
class B
{
public:
B()
{
cout<<"default constructor"<<endl;
}
~B()
{
cout<<"destructed"<<endl;
}
B(int i):data(i)    //B(int) works as a converter ( int -> instance of  B)
{
cout<<"constructed by parameter " << data <<endl;
}
private:
int data;
};


B Play( B b) 
{
return b ;
}

(1)                                            results:
int main(int argc, char* argv[])      constructed by parameter 5
{      
B(5)形參析構
B t1 = Play(5); B t2 = Play(t1);     destructed  t1形參析構
return 0;               destructed  t2 注意順序!
}                                     destructed  t1

(2)                                   results:
int main(int argc, char* argv[])      constructed by parameter 5
{                                     destructed  B(5)形參析構
B t1 = Play(5); B t2 = Play(10);     constructed by parameter 10
return 0;               destructed  B(10)形參析構
}                                     destructed  t2 注意順序! 

                                      destructed  t1

42. 寫一個函數找出一個整數數組中,第二大的數 (microsoft)
答案:
const int MINNUMBER = -32767 ;
int find_sec_max( int data[] , int count)
{
int maxnumber = data[0] ;
int sec_max = MINNUMBER ;
for ( int i = 1 ; i < count ; i++)
{
if ( data[i] > maxnumber )
{
sec_max = maxnumber ;
maxnumber = data[i] ;
}
else
{
if ( data[i] > sec_max )
sec_max = data[i] ;
}
}
return sec_max ;
}

43. 寫一個在一個字符串(n)中尋找一個子串(m)第一個位置的函數。

KMP算法效率最好,時間復雜度是O(n+m)。

44. 多重繼承的內存分配問題:
   比如有class A : public class B, public class C {}
   那么A的內存結構大致是怎么樣的?

這個是compiler-dependent的, 不同的實現其細節可能不同。
如果不考慮有虛函數、虛繼承的話就相當簡單;否則的話,相當復雜。
可以參考《深入探索C++對象模型》,或者:
http://blog.csdn.net/wfwd/archive/2006/05/30/763797.aspx

45. 如何判斷一個單鏈表是有環的?(注意不能用標志位,最多只能用兩個額外指針)

   struct node { char val; node* next;}

   bool check(const node* head) {} //return false : 無環;true: 有環

一種O(n)的辦法就是(搞兩個指針,一個每次遞增一步,一個每次遞增兩步,如果有環的話兩者必然重合,反之亦然):
bool check(const node* head)
{
    if(head==NULL)  return false;
    node *low=head, *fast=head->next;
    while(fast!=NULL && fast->next!=NULL)
    {
        low=low->next;
        fast=fast->next->next;
        if(low==fast) return true;
    }
    return false;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美久久高跟鞋激| 欧美精品xxxxbbbb| 欧美日本国产视频| 国产亚洲一区字幕| 午夜精品久久久久影视| 国产凹凸在线观看一区二区| 欧美乱妇15p| 国产精品国产三级国产专播品爱网| 日本最新不卡在线| 欧美性大战久久久久久久蜜臀| 国产欧美精品一区二区色综合朱莉| 三级成人在线视频| 91免费观看视频| 亚洲国产电影在线观看| 久久精品国产99| 欧美精品久久一区| 亚洲午夜久久久久久久久久久 | 最新不卡av在线| 精品午夜久久福利影院| 欧美色图一区二区三区| 亚洲视频网在线直播| 成人精品免费网站| 久久免费的精品国产v∧| 麻豆成人91精品二区三区| 欧美年轻男男videosbes| 亚洲精品ww久久久久久p站 | 亚洲色图制服诱惑| 亚洲一二三专区| 成人综合激情网| 精品美女一区二区| 日本午夜精品视频在线观看| 欧美日韩精品高清| 亚洲成人免费av| 在线播放欧美女士性生活| 亚洲一区二区美女| 欧美视频一区二区三区| 五月激情六月综合| 欧美一区2区视频在线观看| 亚洲h在线观看| 欧美一区二区大片| 国产麻豆精品在线观看| 国产日韩成人精品| 成人18精品视频| 亚洲免费在线电影| 欧美无砖专区一中文字| 日韩成人一区二区三区在线观看| 欧美人牲a欧美精品| 六月婷婷色综合| 日本不卡一二三区黄网| 日本免费新一区视频| 制服丝袜激情欧洲亚洲| 免费日本视频一区| 精品久久一区二区三区| 国产精品1区2区3区在线观看| 国产日韩三级在线| 91亚洲精华国产精华精华液| 亚洲一区av在线| 日韩午夜在线播放| 国产乱码一区二区三区| 国产精品久久久久久久岛一牛影视| 97aⅴ精品视频一二三区| 亚洲成人一区在线| 久久午夜色播影院免费高清| 一本一道综合狠狠老| 天天综合色天天| 国产精品美女一区二区三区| 欧美精品自拍偷拍动漫精品| 日本午夜精品一区二区三区电影| 99精品偷自拍| 亚洲成人免费电影| 精品免费国产二区三区| 91在线视频官网| 国产嫩草影院久久久久| 成人的网站免费观看| 午夜一区二区三区视频| 久久久www成人免费毛片麻豆| 91麻豆国产精品久久| 奇米综合一区二区三区精品视频| 中文字幕电影一区| 欧美精品少妇一区二区三区| 成人av集中营| 热久久久久久久| 亚洲日本乱码在线观看| 精品播放一区二区| 欧美色精品天天在线观看视频| 国产麻豆精品在线| 免费成人你懂的| 亚洲精选视频在线| 国产欧美日本一区二区三区| 日韩欧美成人午夜| 欧美日韩在线亚洲一区蜜芽| 成人h动漫精品| 国产一区福利在线| 日韩专区欧美专区| 亚洲欧洲综合另类在线| 国产日产欧美一区二区视频| 亚洲欧美日韩成人高清在线一区| 欧美最猛黑人xxxxx猛交| 国产成人精品影视| 免费的成人av| 日韩精品91亚洲二区在线观看| 亚洲日本中文字幕区| 久久一夜天堂av一区二区三区| 日韩午夜在线观看| 欧美日韩高清不卡| 欧美在线视频你懂得| 成人app网站| 成人精品国产免费网站| 国产精品99久久久久久久女警| 麻豆国产一区二区| 裸体歌舞表演一区二区| 卡一卡二国产精品| 久久99精品国产.久久久久久| 日韩高清一区在线| 日日夜夜精品免费视频| 亚洲午夜激情网站| 亚洲成av人片www| 亚洲高清一区二区三区| 亚洲国产中文字幕| 午夜在线电影亚洲一区| 亚洲成人自拍网| 日日夜夜免费精品| 久久机这里只有精品| 久久97超碰色| 国产一区二区毛片| 国产精品一级黄| 成人午夜看片网址| 不卡av免费在线观看| www.成人在线| 在线观看日韩av先锋影音电影院| 欧美手机在线视频| 欧美精品三级日韩久久| 精品国产污网站| 久久久久97国产精华液好用吗| 国产日韩影视精品| 亚洲色图清纯唯美| 亚洲电影你懂得| 国精品**一区二区三区在线蜜桃| 国产一区视频网站| 99精品视频中文字幕| 欧美色视频一区| 91精品国产综合久久久蜜臀图片| 欧美一区二区免费观在线| 久久蜜桃香蕉精品一区二区三区| 国产精品福利av| 亚洲午夜久久久久| 激情欧美一区二区三区在线观看| 国产综合久久久久久久久久久久| 不卡的av中国片| 欧美另类变人与禽xxxxx| 精品久久久久久最新网址| 国产精品久久久久久户外露出 | 欧美精品一级二级| 精品粉嫩超白一线天av| 亚洲欧洲韩国日本视频| 日韩在线观看一区二区| 东方aⅴ免费观看久久av| 在线视频欧美区| 91精品国产色综合久久不卡电影| 国产精品无人区| 日本欧洲一区二区| 91在线播放网址| 日韩一区二区三区免费看 | 福利电影一区二区三区| 欧美中文字幕一区| 国产日本欧美一区二区| 日本中文在线一区| 一本一道久久a久久精品| 2023国产精品视频| 亚洲 欧美综合在线网络| 国产资源在线一区| 在线观看日韩一区| 国产精品国产精品国产专区不蜜 | 中文字幕欧美三区| 视频一区视频二区中文字幕| 成人免费电影视频| 日韩精品一区二区三区在线播放 | 欧美手机在线视频| 国产精品嫩草影院com| 久色婷婷小香蕉久久| 欧美日韩在线一区二区| 亚洲欧美日韩国产综合| 国产激情视频一区二区三区欧美| 日韩欧美电影一区| 午夜视频在线观看一区| 91丨九色丨蝌蚪富婆spa| 国产午夜精品福利| 久久91精品久久久久久秒播| 欧美日韩电影一区| 亚洲激情网站免费观看| 91一区二区在线| 欧美激情自拍偷拍| 国产成人精品免费在线| 久久一区二区视频| 国产精品一区二区视频| 精品国产免费人成在线观看| 蜜臀久久99精品久久久画质超高清 | 91福利精品视频| 亚洲乱码中文字幕综合| 色一情一伦一子一伦一区|