高質量程序設計指南試題_第1頁
高質量程序設計指南試題_第2頁
高質量程序設計指南試題_第3頁
高質量程序設計指南試題_第4頁
高質量程序設計指南試題_第5頁
已閱讀5頁,還剩5頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、一、請填寫 BOOL , float,指針變量與 “零值 ”比較的 if 語句(零值可以為0 ,0.0 ,False或空指針)。例如: int變量 n 與“零值 ”比較的 if 語句為:if(n=0)if(n!=0)1 、請寫出 BOOL flag與零值的比較的 if 語句:if(flag)if(!flag)2 、請寫出 float x與零值比較的 if 語句:const float EPSINON=0.00001;if(x=EPSINON) & (x=EPSINON)3 、請寫出 char *p與零值比較的 if 語句:if(p= =NULL)if(p!=NULL)二、以下為 windows

2、 NT下的 32為 C+ 程序,請計算 sizeof的值。1 、char str= ” Hello ”;Char *p=str;int n=10;請計算 sizeof(str)=6sizeof(p)=4sizeof(n)=42 、void Func(char str100)sizeof(str)=44 、 void *p=malloc(100);sizepf(p)=4三、簡答題。1 、頭文件中的 ifndef/define/endif干什么用?答:防止該頭文件被重復引用。2 、#include和#include“ filename.h”有什么區別?答 : 對 于 #include編 譯 器 從

3、 標 準 庫 路 徑 搜 索filename.h;對于 #include”filename.h”編譯 器從 用戶工作 路徑 搜索filename.h。3 、const有什么用途?答:可以定義 const常量;Const可以修飾函數的參數、返回值,甚至是函數的定義體。被const修飾的東西都受到強制保護,可以防止意外的變動,能提高程序的健壯性。4 、在 C+ 程序中調用 C 編譯器編譯后的函數,為什么要加extern” C”聲明?答:C+ 支持函數重載, C 語言不支持函數重載。函數被C+ 編譯后在庫中的名字與 C 語言不同。假設某個函數原型為:void foo(int x, int y);該函

4、數被C 語言編譯后在庫中的名字變為_foo, 而被 C+ 編譯后則會產生像_foo_int_int之類的名字。所以,C+ 提供了 C 連接交換指定符號extern”C ”來解決名字匹配問題。5 、請簡述以下兩個for循環的優缺點。/第一個for(i=0; iN; i+)if(condition)DoSomething();/第二個if(condition) for(i=0; iN; j+)DoSomething();elseDoOtherthing();else for(i=0; iN; i+)DoOtherthing();答:第一個的優點是:程序簡潔。缺點是:多執行了N-1次邏輯判斷,并打斷

5、了循環“流水”作業,是編譯器不能對循環進行優化處理,降低了效率。第二個的優點是:循環效率高。缺點是:程序不夠簡潔。四、有關內存的思考題。1 、void GetMemory(char *p)P=(char *)malloc(100);Void Test(void)Char *str=NULL;GetMemory(str);Strcpy(str,” hello world” );printf(str);請問運行 Test函數會有什么樣的結果?答:程序會崩潰。因為 GetMemoty并不能傳遞動態內存,Test函數的 str一直都是 NULL 。Strcpy(str,“hello world ”);

6、 將會使程序崩潰。2 、char *GerMemory(void)char p=” hello world”;return p;Void Test(void)Char *str=NULL;Str=GetMemory();Printf(str);請問運行 Test函數后有什么樣的結果?答:可能是亂碼。因為 GetMemory返回的是指向 ”棧內存 ”的指針,該地址的內存不是NULL ,但其原先內容已被清除,所以新內容不可而知。3 、void GetMemory2(char *p, int num)*p=(char *)malloc(num);Void Test(void)Char *str=NU

7、LL;GetMemory(&str, 100);strcpy(str,“ hello ” );printf(str);請問運行 Test函數后有什么樣的結果?答:輸出 ”hello ”,內存泄漏。4 、void Test(void)Char *str=(char *)malloc(100);strcpy(str,“ hello” );free(str);if(str!=NULL)strcpy(str,“ world ” );printf(str);請問運行 Test函數后有什么樣的結果?答:篡改動態內存的內容,后果難以預料,這種行為非常危險。因為 free(str)后, str變成野指針, i

8、f(str!=NULL)不起作用。五、編寫 strcpy函數。已知strcpy函數的原型是: char*strcpy(char*strDest,constchar *strSrc);其中, strDest是目的字符串, strSrc是源字符串。、不調用 C+/C 的字符串庫函數,請編寫函數 strcpy 。解答: char *strcpy(char *strDest, const char *strSrc)assert(strDest! = NULL) & (strSrc! = NULL);char *address = strDest;while(*strDest+ = *strSrc+)

9、!=0 )NULL;ruturnaddress;(2) 、strcpy能把 strSrc的內容復制到strDest,為什么還要 char *類型的返回值?答:為了實現鏈式表達式。例如: int length=strlen(strcpy(strDest,“hello world!”);六、編寫 String的構造函數、析構函數和賦值函數。已知類 String的原型為:Class Stringpublic:String(const char *str=NULL);/普通構造函數String(const String &other);/拷貝構造函數String(void)/析構函數String &o

10、peratr=(const String &orher);/賦值函數private:char *m_date;請寫出 String上述的四個函數。解答:/String的析構函數String:String(void)delete m_data;/由于 m_data是內部數據類型,所以可以寫出delete m_data;/String的普通構造函數String:String(const char *p)if(p=NULL)m_data=new char(1);*m_data=0 ;elseInt length=strlen(str);m_data=new char(length+1);strcpy

11、(m_data,str);/String的拷貝構造函數String:String(const String &other)int length=strlen(other.m_data);m_data=new char(length+1);strcpy(m_data, other.m_data);/String的復制構造函數String & String:operate=(const String &other)if(this=&other)return this;/檢查自賦值delete m_data;/釋放原有的內存資源int length=strlen(other.m_data); m_d

12、ata=new char(length+1); strcmp(m_data, other.m_data);/分配新的內存資源,并復制內容return this;/返回本對象的引用出師表兩漢:諸葛亮先帝創業未半而中道崩殂, 今天下三分, 益州疲弊, 此誠危急存亡之秋也。然侍衛之臣不懈于內,忠志之士忘身于外者,蓋追先帝之殊遇,欲報之于陛下也。誠宜開張圣聽,以光先帝遺德,恢弘志士之氣,不宜妄自菲薄,引喻失義,以塞忠諫之路也。宮中府中,俱為一體;陟罰臧否,不宜異同。若有作奸犯科及為忠善者,宜付有司論其刑賞,以昭陛下平明之理;不宜偏私,使內外異法也。侍中、侍郎郭攸之、費祎、董允等,此皆良實,志慮忠純,是

13、以先帝簡拔以遺陛下:愚以為宮中之事,事無大小,悉以咨之,然后施行,必能裨補闕漏,有所廣益。將軍向寵,性行淑均,曉暢軍事,試用于昔日,先帝稱之曰愚以為營中之事,悉以咨之,必能使行陣和睦,優劣得所。“能 ”,是以眾議舉寵為督:親賢臣, 遠小人, 此先漢所以興隆也; 親小人, 遠賢臣, 此后漢所以傾頹也。 先帝在時,每與臣論此事, 未嘗不嘆息痛恨于桓、 靈也。 侍中、尚書、 長史、 參軍,此悉貞良死節之臣,愿陛下親之、信之,則漢室之隆,可計日而待也。臣本布衣,躬耕于南陽,茍全性命于亂世,不求聞達于諸侯。先帝不以臣卑鄙,猥自枉屈,三顧臣于草廬之中,咨臣以當世之事,由是感激,遂許先帝以驅馳。后值傾覆,受任于敗軍之際,奉命于危難之間,爾來二十有一年矣。先帝知臣謹慎,故臨崩寄臣以大事也。受命以來,夙夜憂嘆

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論