


版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、C+/C 經(jīng)典筆試題及答案C+/C 試題C+/C C+/C C+/C 的理解程度,但不能反映考生的智力和軟件開發(fā)能力。筆試時(shí)間 90 分鐘.請(qǐng)考生認(rèn)真答題,切勿輕視.BOOLfloat, 指針變量 與“零值比較的 if 語句。(10 分)提示:這里“零值”可以是 0, 0.0 , FALSE 或者“空指針”.例如 int 變量 n與“零值”比較的 if 語句為:if ( n = 0 ) if ( n != 0 )以此類推。BOOL flag if 請(qǐng)寫出 float x 與“零值”比較的 if 語句: char *p if 語句:二、以下為 Windows NT 下的 32 位 C+程序,請(qǐng)計(jì)
2、算 sizeof 的值(10 分)char strchar str = “Hello” ;charp = strintn = 10; 請(qǐng)計(jì)算sizeof (str ) =sizeof ( p ) =void Func ( char str100)請(qǐng)計(jì)算sizeof( str ) =void *p = malloc( 100 );請(qǐng)計(jì)算sizeof ( p ) =sizeof ( n ) =三、簡(jiǎn)答題(25 分)1ifndef/define/endif 干什么用?2、include filename。h 和 include “filename.h 有什么區(qū)別?3、const 有什么用途?(請(qǐng)至少
3、說明兩種)4C+ 程序中調(diào)用被 C extern “C”聲明?DoOtherthing();else5、請(qǐng)簡(jiǎn)述以下兩個(gè) for DoOtherthing();else/ 第一個(gè)for (i=0;iN;i+)/if第二個(gè)(condition)if (condition)for (i=0; iN; i+)DoSomething();DoSomething();elsefor (i=0; iN; i+)DoOtherthing();優(yōu)點(diǎn):缺點(diǎn):優(yōu)點(diǎn):缺點(diǎn):四、有關(guān)內(nèi)存的思考題(20 分)voidGetMemory(char p)char GetMemory(void)p = (char *)mall
4、oc(100);char p = ”hello world”;return p;voidTest(void)void Test(void)char *str = NULL;GetMemory(str);char str = NULL; strcpy(str, ”hello world);str = printf(str);printf(str);請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么樣的果?果?答:答:Void GetMemory2(char p, int void Test(void) num)char str = (char *)p = (char *)malloc
5、(num);malloc(100);strcpy(str,“hello”);voidTest(void)free(str);if(str != NULL)char str = NULL;GetMemory(str, 100);strcpy(str,printf(str); printf(str);請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么樣的果?果?答:答:strcpy 函數(shù)(10 分) strcpy char strcpy(char *strDest, const char *strSrc); 其中 strDest 是目的字符串,strSrc 是源字符串。C+/C 的字符
6、串庫函數(shù),請(qǐng)編寫函數(shù) strcpystrcpystrSrc strDest,char 類型的返回值?String 的構(gòu)造函數(shù)、析構(gòu)函數(shù)和賦值函數(shù)(25 分String 的原型為:class Stringpublic:String(const char str = NULL); / 普通構(gòu)造函數(shù)String(constString other);/ 拷貝構(gòu)造函數(shù)String(void);/ 析構(gòu)函數(shù)String & operate =(const String other);/ 賦值函數(shù)private:charm_data;/ 用于保存字符串;請(qǐng)編寫 String 的上述 4 個(gè)函數(shù)。C+/C
7、試題的答案與評(píng)分標(biāo)準(zhǔn)const float EPSINON = 0.00001;if (x = 。0)if (x = EPSINON) & (x =if (x != 0。EPSINON)不可將浮點(diǎn)變量用“=”或“!=”與0)數(shù)字比較,應(yīng)該設(shè)法轉(zhuǎn)化成“=或“和 #include “filename。h” 有什么區(qū)別?(5 分) 答:對(duì)于#include filename.h ,編譯器從標(biāo)準(zhǔn)庫路徑開始搜索 filename。對(duì)于#include “filename。h” ,編譯器從用戶的工作路徑開始搜索 filename。h3、const 有什么用途?(請(qǐng)至少說明兩種)(5 分) 答:(1)可以定
8、義 const 常量(2)const 可以修飾函數(shù)的參數(shù)、返回值,甚至函數(shù)的定義體。被const 修飾的東西都受到強(qiáng)制保護(hù),可以預(yù)防意外的變動(dòng),能提高程序的健壯性.4C+ 程序中調(diào)用被 C 編譯器編譯后的函數(shù),extern “C? (5 分)答:C+語言支持函數(shù)重載,C C+C void foo(int x, int y);該函數(shù)被 C 編譯器編譯后在庫中的名字為_foo,而 C+編譯器則會(huì)產(chǎn)生像_foo_int_int 之類的名字.C+提供了 C 連接交換指定符號(hào) extern“C來解決名字匹配問題。5、請(qǐng)簡(jiǎn)述以下兩個(gè) for 循環(huán)的優(yōu)缺點(diǎn)(5 分)for (i=0; iN; i+)if (
9、condition)for (i=0; iN; i+)if (condition)if (condition)for (i=0; iN; i+)DoSomething();elseDoOtherthing();elsefor (i=0; iN; i+) DoOtherthing();優(yōu)點(diǎn):程序簡(jiǎn)潔優(yōu)點(diǎn):循環(huán)的效率缺點(diǎn):多執(zhí)行了N-1次邏輯判斷,并 缺點(diǎn):程序不簡(jiǎn)潔且打斷了循環(huán)“流水線作業(yè),使得編譯器不能對(duì)循環(huán)進(jìn)行優(yōu)化處理,降低了效率.低了效率.四、有關(guān)內(nèi)存的思考題(每小題 5 分,共 20 分)void GetMemory(char *p)char GetMemory(void)p = (ch
10、ar )malloc(100);char p = ”hello world;return p;voidTest(void)void Test(void)char str = NULL;GetMemory(str);char str = NULL; strcpy(str, ”hello world”);str = printf(str);printf(str);請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么樣的果?果?答:程序崩潰.答:可能是亂碼.因?yàn)镚etMemory并不能傳遞動(dòng)態(tài)內(nèi)因?yàn)镚etMemory返回的是指向“棧存,存”的指針,該指針的地址不是Test函數(shù)中的str一直
11、都是NULL。NULL,但其原現(xiàn)的內(nèi)容已經(jīng)被清除strcpy(str,helloworld”);將使 新內(nèi)容不可知。程序崩潰.void GetMemory2(char p, int void Test(void) num)char str = (char )p = (char )malloc(num); malloc(100);strcpy(str,“hello”);void Test(void)free(str);if(str != NULL)char str = NULL;GetMemory(&str, 100);strcpy(str, strcpy(str,”hello”);printf
12、(str); printf(str);請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么樣的結(jié)請(qǐng)問運(yùn)行Test函數(shù)會(huì)有什么樣的果?果?答:答:篡改動(dòng)態(tài)內(nèi)存區(qū)的內(nèi)容后果難以(1)能夠輸出hello預(yù)料,非常危險(xiǎn)。(2)內(nèi)存泄漏因?yàn)閒ree(str);之后,str成為指針,if(str != NULL)語句不起作用。五、編寫 strcpy 函數(shù)(10 分)已知 strcpy 函數(shù)的原型是char *strcpy(char strDest, const char strSrc); 其中 strDest 是目的字符串,strSrc 是源字符串。C+/C 的字符串庫函數(shù),請(qǐng)編寫函數(shù) strcpychar *strcpy(ch
13、ar *strDest, const char strSrc);assert(strDest!=NULL)(strSrc !=NULL);/2char address=strDest;/ 2 分while( (strDest+ = strSrc+) != 0 ) / 2 分NULL ;returnaddress;/ 2 分strcpy能把strSrc 的內(nèi)容復(fù)制到strDest,為什么還要char * 類型的返回值答:為了實(shí)現(xiàn)鏈?zhǔn)奖磉_(dá)式。/ 2 分例如intlength=strlen(strcpy(strDest,“helloworld”); 六、編寫類String的構(gòu)造函數(shù)、析構(gòu)函數(shù)和賦值函
14、數(shù)(25分)String 的原型為class Stringpublic:String(const char str = NULL); / 普通構(gòu)造函數(shù)String(constString&other);/ 拷貝構(gòu)造函數(shù)String(void);/ 析構(gòu)函數(shù)String operate =(constString other);/ 賦值函數(shù)private:charm_data;/ 用于保存字符串;String 4 標(biāo)準(zhǔn)答案:/ String 的析構(gòu)函數(shù)String:String(void)/ 3 分delete m_data;/ 由于 m_data 是內(nèi)部數(shù)據(jù)類型,也可以寫成 delete m_
15、data;/ String 的普通構(gòu)造函數(shù)String:String(const char str)/ 6 分if(str=NULL)m_data = new char1; / NULL 判斷則更好m_data = 0;elseint length = strlen(str);m_data = new charlength+1; / 若能加 NULL 判斷則更好strcpy(m_data, str);/ 拷貝構(gòu)造函數(shù)String::String(const String &other)/ 3 分int length = strlen(other。m_data);m_datanewcharlength+1;/ NULL 判斷則更好strcpy(m_data, other。m_data);/ 賦值函數(shù)String&String:operate(constStr
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 配送在物流中的作用
- 中醫(yī)護(hù)理學(xué)(第5版)課件 第九章針灸療法與護(hù)理3十四經(jīng)脈及其常用腧穴
- 交通運(yùn)輸行業(yè)智能交通與船舶導(dǎo)航方案
- 科技項(xiàng)目研究可行性研究報(bào)告
- 家庭智能家居控制系統(tǒng)的
- 股份制改革流程及關(guān)鍵文書編寫指南
- 家庭園藝種植技術(shù)手冊(cè)
- 項(xiàng)目申請(qǐng)書和可行性研究報(bào)告的關(guān)系
- 工廠項(xiàng)目可行性報(bào)告
- 企業(yè)人力資源管理師(三級(jí))實(shí)操練習(xí)試題及答案
- 2024年江蘇省南通市中考英語試卷(含答案解析)
- 中職教育一年級(jí)上學(xué)期電子與信息《二極管的單向?qū)щ娦浴方虒W(xué)課件
- 《凝練的視覺符號(hào)》(新課標(biāo)美術(shù)上課)-圖文
- 幼兒園小班語言活動(dòng)《拔蘿卜》課件
- 英文繪本故事Brown.Bear.Brown.Bear.What.Do.You.See
- 讀后續(xù)寫人與自然類我?guī)椭従育埦盹L(fēng)后花園重建順利融入當(dāng)?shù)厣鐓^(qū)講義-2024屆高三英語二輪復(fù)習(xí)
- CJJ28-2014城鎮(zhèn)供熱管網(wǎng)工程施工及驗(yàn)收規(guī)范
- 2024年彌勒市東風(fēng)農(nóng)場(chǎng)有限責(zé)任公司招聘筆試參考題庫附帶答案詳解
- JB-T 8168-2023 脈沖電容器及直流電容器
- (正式版)JBT 7248-2024 閥門用低溫鋼鑄件技術(shù)規(guī)范
- 滬教版八年級(jí)數(shù)學(xué)-代數(shù)方程1-學(xué)生
評(píng)論
0/150
提交評(píng)論