熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> C編程 >> 正文

C++面試題集(5)

2022-06-13   來源: C編程 

:是多少位的系統?在數據總線上是怎麼實現的?

<<IBM>>
怎樣用最快的方法判斷鏈表是否有環?

c++中引用和指針有什麼不同?指針加上什麼限制等於引用?
引用被創建的時候必須被初始化而指針不是必需的 引用在創建後就不能改變引用的關系而指針在初始化後可以隨時指向
其它的變量或對象 沒有NULL引用引用必須與合法的存儲單元關聯而指針可以是NULL

做的項目遇到的困難怎樣解決?

操作符重載
class CMyObject:pulic CObject
{
Public:
CMyObject();
CMyObject &operator=(const CMyObject &my);
private:
CString strName;
int nId:
};
請重載賦值操作符

鏈表
Struct structList
{
int value;
structList *pHead;
}
Struct LinkedList *pMyList;
請編寫刪除鏈表的頭尾和第n個節點的程序

用Socket API制作一個聊天程序通訊協議使用tcp/ip要求有簡單界面即可支持多人聊天

如果有過工作經驗請說明在先前公司的工作以及離職原因(如無請說明畢業後的個人展望)

***************************************************************************
對於C++中類(class) 與結構(struct)的描述正確的為:
A類中的成員默認是private的當是可以聲明為publicprivate 和protected結構中定義的成員默認的都是public;
B結構中不允許定義成員函數當是類中可以定義成員函數;
C結構實例使用malloc() 動態創建類對象使用new 操作符動態分配內存;
D結構和類對象都必須使用new 創建;
E結構中不可以定義虛函數當是類中可以定義虛函數
F結構不可以存在繼承關系當是類可以存在繼承關系
答:ADF

兩個互相獨立的類:ClassA 和 ClassB都各自定義了非靜態的公有成員函數 PublicFunc() 和非靜態的私有成員函數 PrivateFunc();
現在要在ClassA 中增加定義一個成員函數ClassA::AdditionalPunction(ClassA aClassB b);則可以在AdditionalPunction(ClassA xClassB y)的實現部分(函數功能體內部)
出現的合法的表達是最全的是:
AxPrivateFunc();xPublicFunc();yPrivateFunc();yPublicFunc();
BxPrivateFunc();xPublicFunc();yPublicFunc();
CxPrivateFunc();yPrivateFunc();yPublicFunc();
DxPublicFunc();yPublicFunc();
答:B
C++程序下列說法正確的有:
A對調用的虛函數和模板類都進行遲後編譯
B基類與子類中函數如果要構成虛函數除了要求在基類中用virtual 聲名而且必須名字相同且參數類型相同返回類型相同
C重載的類成員函數都必須要:或者返回類型不同或者參數數目不同或者參數序列的類型不同
D靜態成員函數和內聯函數不能是虛函數友員函數和構造函數也不能是虛函數但是析構函數可以是虛函數
答:A
***************************************************************************

C++中的類與結構的區別?

構造函數和析構函數是否可以被重載為什麼?
構造函數可以被重載析構函數不可以被重載因為構造函數可以有多個且可以帶參數而析構函數只能有一個且不能帶參數

一個類的構造函數和析構函數什麼時候被調用是否需要手工調用?
構造函數在創建類對象的時候被自動調用析構函數在類對象生命期結束時由系統自動調用

#i nclude filenameh和#i nclude <filenameh>的區別?
#i nclude filenameh表明該文件是用戶提供的頭文件查找該文件時從當前文件目錄開始#i nclude <filenameh>表明這個文件是一個工程或標准頭文件查找過程會檢查預定義的目錄

頭文件的作用是什麼?
通過頭文件來調用庫功能在很多場合源代碼不便(或不准)向用戶公布只要向用戶提供頭文件和二進制的庫即可用戶只需要按照頭文件中的接口聲明來調用庫功能而不必關心接口怎麼實現的編譯器會從庫中提取相應的代碼
頭文件能加強類型安全檢查如果某個接口被實現或被使用時其方式與頭文件中的聲明不一致編譯器就會指出錯誤這一簡單的規則能大大減輕程序員調試改錯的負擔

C++函數中值的傳遞方式有哪幾種?
C++函數的三種傳遞方式為值傳遞指針傳遞和引用傳遞

內存的分配方式的分配方式有幾種?
從靜態存儲區域分配內存在程序編譯的時候就已經分配好這塊內存在程序的整個運行期間都存在例如全局變量
在棧上創建在執行函數時函數內局部變量的存儲單元都可以在棧上創建函數執行結束時這些存儲單元自動被釋放棧內存分配運算內置於處理器的指令集中效率很高但是分配的內存容量有限
從堆上分配亦稱動態內存分配程序在運行的時候用malloc或new申請任意多少的內存程序員自己負責在何時用free或delete釋放內存動態內存的生存期由我們決定使用非常靈活但問題也最多

實現雙向鏈表刪除一個節點P在節點P後插入一個節點寫出這兩個函數;
雙向鏈表刪除一個節點P
template<class type> void list<type>::delnode(int p)
{
int k=;
listnode<type> *ptr*t;
ptr=first;

while(ptr>next!=NULL&&k!=p)
{
ptr=ptr>next;
k++;
}
t=ptr>next;
cout<<&#;你已經將數據項 &#;<<t>data<<&#;刪除&#;<<endl;

ptr>next=ptr>next>next;
length&#;;
delete t;
}

在節點P後插入一個節點
template<class type> bool list<type>::insert(type tint p)
{
listnode<type> *ptr;
ptr=first;

int k=;
while(ptr!=NULL&&k<p)
{
ptr=ptr>next;
k++;
}
if(ptr==NULL&&k!=p)
return false;
else
{
listnode<type> *tp;
tp=new listnode<type>;
tp>data=t;
tp>next=ptr>next;
ptr>next=tp;
length++;

return true;
}
}


From:http://tw.wingwit.com/Article/program/c/201404/30444.html
    推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.