




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、1.static有什么用途?(請(qǐng)至少說明兩種) (1)函數(shù)體內(nèi)static變量的作用范圍為該函數(shù)體,不同于auto變量,該變量的內(nèi)存只被分配一次,因此其值在下次調(diào)用時(shí)仍維持上次的值;(2)在模塊內(nèi)的static全局變量可以被模塊內(nèi)所用函數(shù)訪問,但不能被模塊外其它函數(shù)訪問;(3)在模塊內(nèi)的static函數(shù)只可被這一模塊內(nèi)的其它函數(shù)調(diào)用,這個(gè)函數(shù)的使用范圍被限制在聲明它的模塊內(nèi);(4)在類中的static成員變量屬于整個(gè)類所擁有,對(duì)類的所有對(duì)象只有一份拷貝;(5)在類中的static成員函數(shù)屬于整個(gè)類所擁有,這個(gè)函數(shù)不接收this指針,因而只能訪問類的static成員變量。2.引用與指針有什么區(qū)別
2、? 1) 引用必須被初始化,指針不必。 2) 引用初始化以后不能被改變,指針可以改變所指的對(duì)象。 3) 不存在指向空值的引用,但是存在指向空值的指針。3. 什么是“引用”?申明和使用“引用”要注意哪些問題?答:引用就是某個(gè)目標(biāo)變量的“別名”(alias),對(duì)應(yīng)用的操作與對(duì)變量直接操作效果完全相同。申明一個(gè)引用的時(shí)候,切記要對(duì)其進(jìn)行初始化。引用聲明完畢后,相當(dāng)于目標(biāo)變量名有兩個(gè)名稱,即該目標(biāo)原名稱和引用名,不能再把該引用名作為其他變量名的別名。聲明一個(gè)引用,不是新定義了一個(gè)變量,它只表示該引用名是目標(biāo)變量名的一個(gè)別名,它本身不是一種數(shù)據(jù)類型,因此引用本身不占存儲(chǔ)單元,系統(tǒng)也不給引用分配存儲(chǔ)單元。
3、不能建立數(shù)組的引用。4. 將“引用”作為函數(shù)參數(shù)有哪些特點(diǎn)?(1)傳遞引用給函數(shù)與傳遞指針的效果是一樣的。這時(shí),被調(diào)函數(shù)的形參就成為原來主調(diào)函數(shù)中的實(shí)參變量或?qū)ο蟮囊粋€(gè)別名來使用,所以在被調(diào)函數(shù)中對(duì)形參變量的操作就是對(duì)其相應(yīng)的目標(biāo)對(duì)象(在主調(diào)函數(shù)中)的操作。(2)使用引用傳遞函數(shù)的參數(shù),在內(nèi)存中并沒有產(chǎn)生實(shí)參的副本,它是直接對(duì)實(shí)參操作;而使用一般變量傳遞函數(shù)的參數(shù),當(dāng)發(fā)生函數(shù)調(diào)用時(shí),需要給形參分配存儲(chǔ)單元,形參變量是實(shí)參變量的副本;如果傳遞的是對(duì)象,還將調(diào)用拷貝構(gòu)造函數(shù)。因此,當(dāng)參數(shù)傳遞的數(shù)據(jù)較大時(shí),用引用比用一般變量傳遞參數(shù)的效率和所占空間都好。(3)使用指針作為函數(shù)的參數(shù)雖然也能達(dá)到與使用
4、引用的效果,但是,在被調(diào)函數(shù)中同樣要給形參分配存儲(chǔ)單元,且需要重復(fù)使用*指針變量名的形式進(jìn)行運(yùn)算,這很容易產(chǎn)生錯(cuò)誤且程序的閱讀性較差;另一方面,在主調(diào)函數(shù)的調(diào)用點(diǎn)處,必須用變量的地址作為實(shí)參。而引用更容易使用,更清晰。5.全局變量和局部變量在內(nèi)存中是否有區(qū)別?如果有,是什么區(qū)別? 全局變量儲(chǔ)存在靜態(tài)數(shù)據(jù)庫,局部變量在堆棧。6.堆棧溢出一般是由什么原因?qū)е碌模?沒有回收垃圾資源。具體 :分配的數(shù)組過大, 函數(shù)遞歸的層次過深。等。7.分別寫出BOOL,int,float,指針類型的變量a 與“零”的比較語句。答案:BOOL : if ( !a ) or if(a)int : if ( a = 0)
5、float :const EXP = 0.000001 if ( a -EXP)pointer : if ( a != NULL) or if(a = NULL) (.寫出float x 與“零值”比較的if語句。) if(x0.000001&x-0.000001)8. 什么時(shí)候需要“引用”?流操作符、賦值操作符=的返回值、拷貝構(gòu)造函數(shù)的參數(shù)、賦值操作符=的參數(shù)都推薦使用引用。9. 結(jié)構(gòu)與聯(lián)合有和區(qū)別?1. 結(jié)構(gòu)和聯(lián)合都是由多個(gè)不同的數(shù)據(jù)類型成員組成, 但在任何同一時(shí)刻, 聯(lián)合中只存放了一個(gè)被選中的成員(所有成員共用一塊地址空間), 而結(jié)構(gòu)的所有成員都存在(不同成員的存放地址不同)。2. 對(duì)于
6、聯(lián)合的不同成員賦值, 將會(huì)對(duì)其它成員重寫, 原來成員的值就不存在了, 而對(duì)于結(jié)構(gòu)的不同成員賦值是互不影響的。.不能做switch()的參數(shù)類型是: switch的參數(shù)不能為實(shí)型。10 頭文件中的ifndef/define/endif 的作用?答:防止該頭文件被重復(fù)引用。11. include 與 include file.h的區(qū)別?答:前者是從系統(tǒng)標(biāo)準(zhǔn)目錄的路徑尋找和引用file.h,而后者是從當(dāng)前工作路徑搜尋并引用file.h。12 在C+ 程序中調(diào)用被C 編譯器編譯后的函數(shù),為什么要加extern “C”?首先,作為extern是C/C+語言中表明函數(shù)和全局變量作用范圍(可見性)的關(guān)鍵字,
7、該關(guān)鍵字告訴編譯器,其聲明的函數(shù)和變量可以在本模塊或其它模塊中使用。通常,在模塊的頭文件中對(duì)本模塊提供給其它模塊引用的函數(shù)和全局變量以關(guān)鍵字extern聲明。例如,如果模塊B欲引用該模塊A中定義的全局變量和函數(shù)時(shí)只需包含模塊A的頭文件即可。這樣,模塊B中調(diào)用模塊A中的函數(shù)時(shí),在編譯階段,模塊B雖然找不到該函數(shù),但是并不會(huì)報(bào)錯(cuò);它會(huì)在連接階段中從模塊A編譯生成的目標(biāo)代碼中找到此函數(shù)extern C是連接申明,被extern C修飾的變量和函數(shù)是按照C語言方式編譯和連接的,來看看C+中對(duì)類似C的函數(shù)是怎樣編譯的:作為一種面向?qū)ο蟮恼Z言,C+支持函數(shù)重載,而過程式語言C則不支持。函數(shù)被C+編譯后在符
8、號(hào)庫中的名字與C語言的不同。例如,假設(shè)某個(gè)函數(shù)的原型為: void foo( int x, int y );該函數(shù)被C編譯器編譯后在符號(hào)庫中的名字為foo,而C+編譯器則會(huì)產(chǎn)生像_foo_int_int之類的名字(不同的編譯器可能生成的名字不同,但是都采用了相同的機(jī)制)。_foo_int_int這樣的名字包含了函數(shù)名、函數(shù)參數(shù)數(shù)量及類型信息,C+就是靠這種機(jī)制來實(shí)現(xiàn)函數(shù)重載的。例如,在C+中,函數(shù)void foo( int x, int y )與void foo( int x, float y )編譯生成的符號(hào)是不相同的,后者為_foo_int_float。13.New delete 與mal
9、loc free 的聯(lián)系與區(qū)別?答案:都是在堆(heap)上進(jìn)行動(dòng)態(tài)的內(nèi)存操作。用malloc函數(shù)需要指定內(nèi)存分配的字節(jié)數(shù)并且不能初始化對(duì)象,new 會(huì)自動(dòng)調(diào)用對(duì)象的構(gòu)造函數(shù)。delete 會(huì)調(diào)用對(duì)象的析構(gòu)函數(shù),而free 不會(huì)調(diào)用對(duì)象的析構(gòu)函數(shù).14. c中struct 和c+中 class 的區(qū)別答案:struct 的成員默認(rèn)是公有的,而類的成員默認(rèn)是私有的。C中struct不能包含成員函數(shù),c+中class可以包含成員函數(shù)。15 說說Const的作用?(1)欲阻止一個(gè)變量被改變,可以使用const關(guān)鍵字。在定義該const變量時(shí),通常需要對(duì)它進(jìn)行初始化,因?yàn)橐院缶蜎]有機(jī)會(huì)再去改變它了;(
10、2)對(duì)指針來說,可以指定指針本身為const,也可以指定指針?biāo)傅臄?shù)據(jù)為const,或二者同時(shí)指定為const;(3)在一個(gè)函數(shù)聲明中,const可以修飾形參,表明它是一個(gè)輸入?yún)?shù),在函數(shù)內(nèi)部不能改變其值;(4)對(duì)于類的成員函數(shù),若指定其為const類型,則表明其是一個(gè)常函數(shù),不能修改類的成員變量;(5)對(duì)于類的成員函數(shù),有時(shí)候必須指定其返回值為const類型,以使得其返回值不為左值。寫一個(gè)程序, 要求功能:求出用1,2,5這三個(gè)數(shù)不同個(gè)數(shù)組合的和為100的組合個(gè)數(shù)。如:100個(gè)1是一個(gè)組合,5個(gè)1加19個(gè)5是一個(gè)組合。 答案:最容易想到的算法是:設(shè)x是1的個(gè)數(shù),y是2的個(gè)數(shù),z是5的個(gè)數(shù),n
11、umber是組合數(shù)注意到0=x=100,0=y=50,0=z=20,所以可以編程為:number=0;for (x=0; x=100; x+)for (y=0; y=50; y+)for (z=0; z=20; z+)if (x+2*y+5*z)=100)number+;coutnumberendl;上面這個(gè)程序一共要循環(huán)100*50*20次,效率實(shí)在是太低了事實(shí)上,這個(gè)題目是一道明顯的數(shù)學(xué)問題,而不是單純的編程問題。因?yàn)閤+2y+5z=100所以x+2y=100-5z,且z=20 x=100 y=50所以(x+2y)=100,且(x+5z)是偶數(shù)對(duì)z作循環(huán),求x的可能值如下:z=0, x=1
12、00, 98, 96, . 0z=1, x=95, 93, ., 1z=2, x=90, 88, ., 0z=3, x=85, 83, ., 1z=4, x=80, 78, ., 0.z=19, x=5, 3, 1z=20, x=0某個(gè)偶數(shù)m以內(nèi)的偶數(shù)個(gè)數(shù)(包括0)可以表示為m/2+1=(m+2)/2某個(gè)奇數(shù)m以內(nèi)的奇數(shù)個(gè)數(shù)也可以表示為(m+2)/2所以,求總的組合次數(shù)可以編程為:number=0;for (int m=0;m=100;m+=5)number+=(m+2)/2;coutnumber=a&*s=z)*us = *s-32;else*us = *s;*us = 0;int main()char *s,*us;char ss20;printf(Please input a string:n);scanf(%s,ss);s = ss;uppers(s,us);printf(The result is:n%sn,us);getch();請(qǐng)?jiān)谛∮?9999的正整數(shù)中找符合下列條件的數(shù),它既是完全平方數(shù),又有兩位數(shù)字相同,如:144,676。#include#include/函數(shù)havesamenum確認(rèn)num是否滿足條件int havesamenum(int num)int i=0,j;cha
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- DB63∕T 1865-2020 川西云杉播種育苗及造林技術(shù)規(guī)程
- 壁紙銷售計(jì)劃書
- 江蘇省連云港市2024-2025學(xué)年七年級(jí)下學(xué)期6月期末考試生物試卷(含詳解)
- 小學(xué)生超市活動(dòng)策劃方案
- 小班春季親子活動(dòng)方案
- 小小企業(yè)家研學(xué)活動(dòng)方案
- 希臘移民活動(dòng)方案
- 帽子派對(duì)活動(dòng)方案
- 工程公司招聘策劃方案
- 居家體驗(yàn)活動(dòng)方案
- 應(yīng)急工器具培訓(xùn)課件
- 中國食用油市場調(diào)研及發(fā)展策略研究報(bào)告2025-2028版
- 2025年 浙江省考行測考試試題附答案
- JJF 2252-2025機(jī)動(dòng)車檢測用渦流式金屬探傷儀校準(zhǔn)規(guī)范
- 2025年安徽亳州機(jī)場管理有限公司招聘筆試參考題庫含答案解析
- 2025年四川省遂寧市中考語文試卷及答案
- 2025至2030年中國酮洛芬行業(yè)市場發(fā)展調(diào)研及投資方向分析報(bào)告
- 人教版(2024)八年級(jí)下冊(cè)物理期末復(fù)習(xí):知識(shí)點(diǎn)清單+重難點(diǎn)考點(diǎn) 學(xué)案
- 2025年高考江蘇卷物理高考真題+解析(參考版)
- 四川省眉山市東坡區(qū)2023-2024學(xué)年高二下學(xué)期6月期末聯(lián)合考試數(shù)學(xué)試題(解析版)
- 2025年貴州茅臺(tái)酒廠集團(tuán)招聘筆試參考題庫含答案解析
評(píng)論
0/150
提交評(píng)論