C++簡(jiǎn)答題復(fù)習(xí)_第1頁(yè)
C++簡(jiǎn)答題復(fù)習(xí)_第2頁(yè)
C++簡(jiǎn)答題復(fù)習(xí)_第3頁(yè)
C++簡(jiǎn)答題復(fù)習(xí)_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余12頁(yè)可下載查看

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第一章 概述1、簡(jiǎn)述 C+的發(fā)展簡(jiǎn)況。答:C+語(yǔ)言是從 C 語(yǔ)言發(fā)展而來(lái)的 ,C 語(yǔ)言是一種編譯型的面向過(guò)程的程序設(shè)計(jì)語(yǔ)言,它最早是從英國(guó)劍橋大學(xué)一個(gè)名叫Martin Richards 的學(xué)者在60年代開(kāi)發(fā)的BCPL( 即 BasicCombind Programming Language)語(yǔ)言的基礎(chǔ)之上發(fā)展而來(lái)的。BCPL語(yǔ)言是 MartinRichards在開(kāi)發(fā)系統(tǒng)軟件時(shí),作為描述性語(yǔ)言而使用的一種程序設(shè)計(jì)語(yǔ)言。1970 年,美國(guó) Bell 實(shí)驗(yàn)室的 KenThompson 在軟件開(kāi)發(fā)工作中,繼承和發(fā)展了BCPL 語(yǔ)言的許多特點(diǎn),進(jìn)一步提出了一種叫 “B 語(yǔ)言”的語(yǔ)言。隨后,在美國(guó) Bel

2、l 實(shí)驗(yàn)室實(shí)現(xiàn)的更新型的小型機(jī)PDP-11的 UNIX操作系統(tǒng)的研發(fā)工作中,于 1972 年推出了一種新型的程序語(yǔ)言 C 語(yǔ)言,該語(yǔ)言一經(jīng)推出就在國(guó)際上廣泛流行。20 世紀(jì) 80 年代,由于軟件工程的需要,面向?qū)ο蟪绦蛟O(shè)計(jì)方法在軟件設(shè)計(jì)領(lǐng)域引起了普遍的重視,AT&T Bell 實(shí)驗(yàn)室的計(jì)算機(jī)科學(xué)家Bjarne Stroustrup 結(jié)合流行的 C 語(yǔ)言的所有成分,開(kāi)發(fā)出了面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言C+。2、C+語(yǔ)言有那些主要特點(diǎn)答:C + 語(yǔ)言具有以下主要特點(diǎn):( 1) C+語(yǔ)言是一個(gè)中級(jí)的程序設(shè)計(jì)語(yǔ)言。( 2) C+是一個(gè)結(jié)構(gòu)化的程序設(shè)計(jì)語(yǔ)言。( 3) C+是一種面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。

3、( 4) C+語(yǔ)言是一個(gè)功能齊全的編程語(yǔ)言。( 5) C+語(yǔ)言是一種移植性很好的編程語(yǔ)言。3、 編寫(xiě)的 C+語(yǔ)言的程序主要由那些基本組成部分構(gòu)成答: C+語(yǔ)言的程序主要由以下幾個(gè)基本組成部分構(gòu)成:( 1)預(yù)處理命令:C+語(yǔ)言提供了三類預(yù)處理命令:宏定義命令(define) 、文件包含命令(include) 、條件編譯命令(ifelseendif) ,( 2) 輸入 / 輸出語(yǔ)句( Input/Output 語(yǔ)句,簡(jiǎn)稱 I/O 語(yǔ)句):C+語(yǔ)言的程序中總是少不了輸入和輸出的語(yǔ)句,實(shí)現(xiàn)與程序內(nèi)部的信息交流。( 3) 函數(shù)( Function ):C+的程序是由若干個(gè)文件組成的,每個(gè)文件又是由若干個(gè)

4、函數(shù)組成,因此,可以認(rèn)為 C+的程序就是函數(shù)串,即由若干個(gè)函數(shù)組成,函數(shù)與函數(shù)之間是相對(duì)的,并且是并行的,函數(shù)之間可以調(diào)用。( 4) 語(yǔ)句 (Statement) :語(yǔ)句是組成程序的基本單元。每個(gè)函數(shù)都是由若干條語(yǔ)句組成的。(5) 變量 (Variable):變量是通過(guò)說(shuō)明語(yǔ)句來(lái)定義的,多數(shù)程序都需要說(shuō)明變量和使用變量。(6)其他:除了以上講述的5 個(gè)部分以外,還有其他組成部分。例如,符號(hào)常量和注釋信息等也是程序的一部分。C+程序中盡量把有些常量定義為符號(hào)常量,而在C+的程序中使用符號(hào)常量,該符號(hào)常量代表著某個(gè)確定的常量值。4、 C+語(yǔ)言編寫(xiě)的程序代碼有那些格式特點(diǎn)答: C+語(yǔ)言編寫(xiě)的源代碼程

5、序的格式具有以下特點(diǎn):(1) C+語(yǔ)言的關(guān)鍵字是小寫(xiě)字符構(gòu)成的,習(xí)慣上也使用小寫(xiě)字母書(shū)寫(xiě)程序;(2) 大多數(shù)語(yǔ)句結(jié)尾必須用"" 作為終止符 , 否則 C+不認(rèn)為該語(yǔ)句的結(jié)束;(3) 每個(gè)程序必須有一個(gè)且只能有一個(gè)主函數(shù),其名稱為main()的函數(shù);(4)每個(gè)函數(shù)的函數(shù)體(包括主函數(shù)和每個(gè)子函數(shù))必須用一對(duì)花括號(hào) "" 和 "" 括起來(lái);(5)一個(gè)較完整的程序文件大致含有: 包括文件程序段(一組 #include<*.h> 語(yǔ)句 )、函數(shù)說(shuō)明部分、 全局變量說(shuō)明、 主函數(shù)和若干個(gè)子函數(shù)組成。 在主函數(shù)和子函數(shù)中又包括局部變量

6、定義、庫(kù)函數(shù)調(diào)用、流程控制語(yǔ)句、用戶函數(shù)的調(diào)用語(yǔ)句等;(6) 注釋部分包含在 "/*" 和 "*/" 之間或 "1c8765,98., , 都是一般形式的實(shí)數(shù)。(3)字符常量所謂字符常量是指一個(gè)單一字符,其表示形式是由兩個(gè)單引號(hào)包括的一個(gè)字符。例如,'A','a','Q','0','9','+',':','','$' 都是字符常量。( 4)字符串常量所謂字符串常量是指用雙引號(hào)括起來(lái)的一串字符來(lái)表示的數(shù)據(jù)

7、下面給出幾個(gè)字符串常量的例子:"Hello!","A Graduate Student","9","Bill Gates","李四 ""北京海淀學(xué)院路29 號(hào)","姓名: " ,"",""(5)標(biāo)識(shí)常量所謂標(biāo)識(shí)常量是指用標(biāo)識(shí)符代替常量使用的一種常量, 其名稱通常是一個(gè)標(biāo)識(shí)符。標(biāo)識(shí)常量的一般說(shuō)明形式為:#define<標(biāo)識(shí)常量名稱 ><常量 >例如,#defineMAX50#definePI#d

8、efineERROR-1其中, MAX、PI 以及 ERROR都是標(biāo)識(shí)常量,它們代替的常量分別是50、和 -1 。(6)換碼序列所謂換碼序列是用反斜線后面跟有一個(gè)字符或者一個(gè)或不超過(guò)3 個(gè)的數(shù)字來(lái)表示的控制代碼的換碼序列如下表所示,它們的表示形式是在反斜線后面跟有一個(gè)小寫(xiě)英文字母。例如, 'a' , '', ''', '056', 'x05a'4、 什么叫說(shuō)明語(yǔ)句怎樣說(shuō)明的變量為局部變量怎樣說(shuō)明的變量為全局變量答:一般來(lái)說(shuō), 變量在使用以前,必須說(shuō)明才能使用。用來(lái)說(shuō)明已有類型的變量的語(yǔ)句稱為變量說(shuō)明語(yǔ)句。變

9、量說(shuō)明的一般形式是:<存儲(chǔ)類型 ><數(shù)據(jù)類型><變量名 > ;在上面變量說(shuō)明的式子里,<變量名 >之后有一個(gè)分號(hào)“; ”意味著它是一個(gè)語(yǔ)句,該語(yǔ)句我們通常稱為變量的說(shuō)明語(yǔ)句。在函數(shù)體或程序段內(nèi)說(shuō)明的變量只能在定義它的函數(shù)體內(nèi)或程序段內(nèi)可以訪問(wèn),這種變量通常稱為局部變量; 在函數(shù)體外說(shuō)明的變量可以在說(shuō)明它的文件中所有函數(shù)里或程序段中訪問(wèn),也可以通過(guò)extern 被其它文件中的函數(shù)或程序段訪問(wèn),這種變量通常稱為全局變量。5、 說(shuō)明變量時(shí)有哪些存儲(chǔ)類型其含義是什么答: C+語(yǔ)言支持四種存儲(chǔ)類型:auto, register, static 和 exte

10、rn 。(1) auto 稱為自動(dòng)型也稱為堆棧型, 用 auto 存儲(chǔ)類型說(shuō)明的變量都是局部于某個(gè)程序范圍內(nèi)的,只能在某個(gè)程序范圍內(nèi)使用,通常在函數(shù)體內(nèi)或函數(shù)中的復(fù)合語(yǔ)句里。(2) register 稱為寄存器型,使用 register 關(guān)鍵詞說(shuō)明的變量主要目的是想將所說(shuō)明的變量放入 CPU的寄存器存儲(chǔ)空間中,這樣可以加快程序的運(yùn)行速度。(3) static稱為靜態(tài)存儲(chǔ)類型,在 C+語(yǔ)言中, 既可以在函數(shù)體內(nèi),也可在函數(shù)體外說(shuō)明static存儲(chǔ)類型的變量。在函數(shù)體內(nèi)說(shuō)明的static存儲(chǔ)類型的變量也是一種局部變量,與auto最大不同點(diǎn)是: static 存儲(chǔ)類型的變量在內(nèi)存中是以固定地址存放的

11、,而不是以堆棧方式存放的;只要整個(gè)程序還在繼續(xù)運(yùn)行靜態(tài)變量就不會(huì)隨著說(shuō)明它的程序段的結(jié)束而消失,它下次再調(diào)用該函數(shù),該存儲(chǔ)類型的變量不再重新說(shuō)明,而且還保留上次調(diào)用存入的數(shù)值。(4) extern 稱為外部參照引用型,使用 extern 說(shuō)明的變量是想引用在其它文件中函數(shù)體外部說(shuō)明的變量。 當(dāng)變量在一個(gè)文件中的函數(shù)體外說(shuō)明, 所有其他文件中的函數(shù)或程序段都可引用這個(gè)變量。這種變量的作用域是所有的函數(shù)和程序段,一般用于在函數(shù)之間傳遞數(shù)據(jù)。6、 什么叫常量化變量其作用是什么所謂常量化變量是指將一個(gè)變量說(shuō)明為一個(gè)常量。作用:當(dāng)一個(gè)變量被說(shuō)明為常量時(shí),那么該變量在程序執(zhí)行過(guò)程中其值是不能改變的。也就是

12、說(shuō), 不能再向常量化的變量再賦值。因此,常量化變量在說(shuō)明時(shí)就必須賦給一個(gè)數(shù)值。常量化的變量基本上和常量一樣。7、 什么叫數(shù)組 說(shuō)說(shuō) short 型的數(shù)組與char 型的數(shù)組的異同點(diǎn)。答:所謂數(shù)組是具有一定順序關(guān)系的若干個(gè)變量的集合,組成數(shù)組的各個(gè)變量稱為數(shù)組的元素。數(shù)組中各元素的數(shù)據(jù)類型要求相同。數(shù)組可以是一維的,也可以是多維的。char 型的數(shù)組 由包含 ASCII字符集中的字符 (英文字母、 數(shù)字、標(biāo)點(diǎn)符號(hào)以及某些特殊符號(hào))的整數(shù)類型組成的數(shù)組。short 型的數(shù)組是由 short 數(shù)據(jù)類型組成的數(shù)組。 類型型,它占用字節(jié)的長(zhǎng)度大于類型 char, 小于或等于類型shortint 。(或s

13、hort int)是一種短整數(shù)類8、 什么叫表達(dá)式什么叫表達(dá)式語(yǔ)句答:所謂表達(dá)式是指由運(yùn)算符、 運(yùn)算量和標(biāo)點(diǎn)符號(hào)組成的有效序列, 其目的是用來(lái)說(shuō)明一個(gè)計(jì)算過(guò)程。表達(dá)式可以獨(dú)立形成語(yǔ)句,該語(yǔ)句稱為表達(dá)式語(yǔ)句9、 什么叫左值什么叫右值答:所謂左值是指能夠出現(xiàn)在賦值表達(dá)式左邊的表達(dá)式。所謂右值是指只能出現(xiàn)在賦值表達(dá)式的右邊的數(shù)值。第四章指針1、什么叫內(nèi)存單元的地址什么叫指針答:在計(jì)算機(jī)內(nèi)部的存儲(chǔ)器(簡(jiǎn)稱內(nèi)存)中,每一個(gè)字節(jié)單元,都有一個(gè)編號(hào),稱為地址。內(nèi)存單元的編號(hào),稱為內(nèi)存單元的地址。在 C+語(yǔ)言中,內(nèi)存單元的地址稱為指針。2、什么叫指針變量什么叫指針的目標(biāo)答:專門用來(lái)存放地址的變量,稱為指針變量

14、 (pointer variable) 。指針指向的內(nèi)存區(qū)域中的數(shù)據(jù)稱為指針的目標(biāo)。3、什么叫空指針其作用是什么答:所謂空指針就是指針變量的內(nèi)容為零的狀態(tài)。4、指針運(yùn)算的實(shí)質(zhì)是什么答:指針運(yùn)算是以指針變量所存放的地址量作為運(yùn)算量而進(jìn)行的運(yùn)算。因此,指針運(yùn)算的實(shí)質(zhì)就是地址的計(jì)算。5、指針有哪些運(yùn)算請(qǐng)枚舉這些計(jì)算。答:指針運(yùn)算的種類是有限的,它只能進(jìn)行算術(shù)運(yùn)算、關(guān)系運(yùn)算和賦值運(yùn)算。6、什么叫數(shù)組的指針什么叫指針數(shù)組的指針答:在C+語(yǔ)言中,數(shù)組的指針是指數(shù)組在內(nèi)存中的起始地址。指針變量數(shù)組和普通的一般變量數(shù)組一樣,編譯系統(tǒng)在處理指針數(shù)組說(shuō)明時(shí), 按照指定的存儲(chǔ)類型為它在內(nèi)存中分配一定的連續(xù)存儲(chǔ)空間,

15、 這時(shí)指針數(shù)組名就表示該指針數(shù)組的存儲(chǔ)首地址,即指針數(shù)組的指針。7、什么叫二級(jí)指針變量什么叫多級(jí)指針變量答:對(duì)于指向處理數(shù)據(jù)的指針變量稱為一級(jí)指針變量, 簡(jiǎn)稱一級(jí)指針。 而把指向一級(jí)指針變量的指針變量稱為二級(jí)指針變量, 簡(jiǎn)稱二級(jí)指針。 我們把一個(gè)指向指針變量的指針變量,稱為多級(jí)指針變量。8、 new 運(yùn)算符的作用是什么delete 運(yùn)算符的作用是什么答:運(yùn)算符new 主要用于分配內(nèi)存,并獲得分配到的內(nèi)存的首地址,通常需要將其賦給相應(yīng)數(shù)據(jù)類型的指針。如果程序中不再需要由new 分配的內(nèi)存空間時(shí),用運(yùn)算符delete釋放這些空間。9、什么叫引用答:所謂引用是指給一個(gè)變量或一個(gè)數(shù)組起一個(gè)別名。使用引

16、用進(jìn)行運(yùn)算的實(shí)質(zhì)是操作原來(lái)的變量或數(shù)組本身的另一個(gè)使用名稱。10、 const 型指針有幾種形式其作用是什么答: const 型指針主要有下面三種形式:( a ) 常量化指針目標(biāo)表達(dá)式:常量化指針目標(biāo)是限制通過(guò)指針改變其目標(biāo)的數(shù)值。( b ) 常量化指針變量:常量化指針變量,使得<指針變量 >的地址值不能修改。但可以通過(guò) *< 指針變量名稱 >可以修改指針?biāo)赶蜃兞康臄?shù)值。( c ) 常量化指針變量及其目標(biāo)表達(dá)式: 常量化指針變量及其目標(biāo)表達(dá)式, 使得既不可以修改 <指針變量 >的地址,也不可以通過(guò) *< 指針變量名稱 >修改指針?biāo)赶蜃兞康闹怠?/p>

17、11、什么叫void 型指針其作用是什么void 型的指針變量是一種不確定數(shù)據(jù)類型的指針變量,它可以通過(guò)強(qiáng)制類型轉(zhuǎn)換讓該變量指向任何數(shù)據(jù)類型的變量或數(shù)組。第五章函數(shù)與宏1、 請(qǐng)給出函數(shù)概念的基本描述。答:函數(shù)就是一個(gè)完成特定功能的代碼模塊, 其程序代碼獨(dú)立, 通常要求有返回值,也可以是空值。2、 什么叫函數(shù)原型答:函數(shù)原型是指由函數(shù)定義中抽取出來(lái)的能代表函數(shù)應(yīng)用特征的部分, 包括函數(shù)的數(shù)據(jù)類型、函數(shù)名稱、形式參數(shù)說(shuō)明。3、 什么叫函數(shù)的實(shí)參什么叫函數(shù)的形參答:實(shí)參是在調(diào)用函數(shù)過(guò)程中傳遞給被調(diào)用函數(shù)的參數(shù);形參是被調(diào)用函數(shù)接受調(diào)用函數(shù)傳遞過(guò)來(lái)的數(shù)據(jù)的參數(shù)。4、 請(qǐng)說(shuō)出函數(shù)參數(shù)為一般變量的復(fù)制傳遞

18、方式、地址傳遞方式和引用方式的異同點(diǎn)。答:復(fù)制傳遞方式是實(shí)參的數(shù)據(jù)拷貝給了形參變量,實(shí)參和形參是具有相同數(shù)據(jù)類型但存儲(chǔ)空間是不同的兩組空間。 在復(fù)制傳遞方式下, 被調(diào)用函數(shù)里對(duì)形參的操作不能改變實(shí)參的內(nèi)容。地址傳遞方式和復(fù)制傳遞方式正好相反,用函數(shù)的參數(shù)本身傳給被調(diào)用函數(shù)。被調(diào)用函數(shù)中對(duì)形參的操作將直接改變實(shí)參的值。調(diào)用函數(shù)將實(shí)參的地址傳送給被調(diào)用函數(shù),被調(diào)用函數(shù)對(duì)該地址的目標(biāo)操作即對(duì)實(shí)參本身的操作。 按地址傳遞 ,實(shí)參為變量的地址,而形參為同類型的指針。引用方式和地址傳遞方式的效果一樣,但引用更直接、更方便。按引用傳遞,實(shí)參為變量,形參為同類型的引用。采用引用方式實(shí)參和形參使用的是相同的內(nèi)存

19、空間,只是名稱不同而已。5、 數(shù)組在函數(shù)間傳遞形式有哪些并給以比較和解釋。答:數(shù)組在函數(shù)間的傳遞形式有復(fù)制傳遞方式、地址傳遞方式、引用方式和全局?jǐn)?shù)組傳遞方式。函數(shù)與函數(shù)之間數(shù)組的復(fù)制傳遞方式是調(diào)用函數(shù)將實(shí)參數(shù)組傳遞給被調(diào)用函數(shù)形參,形參接收是實(shí)參的地址。函數(shù)與函數(shù)之間數(shù)組的地址傳遞方式是將調(diào)用函數(shù)中的實(shí)參數(shù)組的起始地址傳遞給被調(diào)用函數(shù)的指針變量形參。被調(diào)用函數(shù)中對(duì)形參地址的目標(biāo)操作,相當(dāng)于對(duì)實(shí)參本身的操作, 將直接改變實(shí)參數(shù)組的值。 地址傳遞方式 ,實(shí)參應(yīng)該為數(shù)組的指針, 而形參應(yīng)為同類型的指針變量。另外,數(shù)組的地址傳遞方式不僅要把實(shí)參數(shù)組的指針作為參數(shù)傳遞給函數(shù),同時(shí)還需要傳遞數(shù)組的長(zhǎng)度。與

20、引用方式不同的是被調(diào)用函數(shù)的形參應(yīng)聲明為數(shù)組同類型的指針變量。函數(shù)與函數(shù)之間數(shù)組的引用傳遞方式需將被調(diào)用函數(shù)的形參說(shuō)明為數(shù)組的引用形式。在被調(diào)用函數(shù)中,對(duì)形參進(jìn)行操作就是對(duì)實(shí)參數(shù)組的直接操作。數(shù)組的引用方式和地址傳遞方式的作用效果基本一樣,但引用更直接、更方便。按引用方式傳遞數(shù)組,形參為實(shí)參同類型的數(shù)組引用。但引用數(shù)組名不是指針變量,不能作為左值。6、 什么叫函數(shù)指針什么叫指針函數(shù)答:函數(shù)指針是一個(gè)函數(shù)執(zhí)行代碼的起始地址。 指針函數(shù)是指一個(gè)函數(shù)的返回值為地址量的函數(shù)。7、 什么叫內(nèi)聯(lián)函數(shù)答:內(nèi)聯(lián)函數(shù)是類聲明體里定義的函數(shù)或在類的實(shí)現(xiàn)部分定義的、其前用inline 修飾的函數(shù);它將簡(jiǎn)單的函數(shù)(其

21、內(nèi)不能有循環(huán)語(yǔ)句和開(kāi)關(guān)語(yǔ)句)" 內(nèi)嵌 " 到調(diào)用他的程序代碼中 ,這樣做的目的是為了節(jié)省了調(diào)用函數(shù)的開(kāi)銷。8、 什么叫函數(shù)重載答:函數(shù)重載是指使用一個(gè)函數(shù)名稱定義了多個(gè)完成不同功能的函數(shù),這些函數(shù)的輸入?yún)?shù)類型或個(gè)數(shù)不一樣,相應(yīng)的函數(shù)類型也有可能改變。9、 什么叫預(yù)編譯語(yǔ)句在 C+程序的源代碼中可以包括各種編譯用的命令語(yǔ)句,這些語(yǔ)句都稱為預(yù)編譯語(yǔ)句。10、 什么叫宏談?wù)剮?shù)宏與內(nèi)聯(lián)函數(shù)之間的異同點(diǎn).答:宏是指定義一個(gè)標(biāo)識(shí)符來(lái)代替一個(gè)字符序列。內(nèi)聯(lián)函數(shù)和宏都是在程序出現(xiàn)的地方展開(kāi), 是在調(diào)用該函數(shù)的程序處或應(yīng)用宏處將它展開(kāi)。但內(nèi)聯(lián)函數(shù)可以多行的程序段,而宏通常是單行代碼段。

22、11、 什么叫遞歸函數(shù)簡(jiǎn)述其執(zhí)行過(guò)程。答:遞歸函數(shù)是指一個(gè)函數(shù)的函數(shù)體中直接調(diào)用或間接調(diào)用了該函數(shù)自身的函數(shù)。遞歸函數(shù)調(diào)用的執(zhí)行過(guò)程分為兩個(gè)階段:( 1)遞推階段:從原問(wèn)題出發(fā),按遞歸公式遞推,從未知到已知,最終達(dá)到遞歸終止條件。( 2)回歸階段:按遞歸終止條件求出結(jié)果,逆向逐步代入遞歸公式,回歸到原問(wèn)題求解。第六章自定義數(shù)據(jù)類型1、 什么叫結(jié)構(gòu)體數(shù)據(jù)類型答:結(jié)構(gòu)體數(shù)據(jù)類型是由若干個(gè)數(shù)據(jù)成員組成的構(gòu)造類型,每個(gè)成員可以是一個(gè)基本的數(shù)據(jù)類型,也可以是一個(gè)已經(jīng)定義的構(gòu)造數(shù)據(jù)類型,各個(gè)成員占據(jù)不同的存儲(chǔ)空間。2、 什么叫聯(lián)合體數(shù)據(jù)類型答:聯(lián)合體數(shù)據(jù)類型是一種混合數(shù)據(jù)使用的數(shù)據(jù)類型,它的各個(gè)成員雖然是

23、存儲(chǔ)不同數(shù)據(jù)類型的數(shù)據(jù), 但使用時(shí)改變其一個(gè)數(shù)據(jù)成員的數(shù)值將會(huì)影響其它數(shù)據(jù)成員的數(shù)值,各個(gè)成員共享其占用空間最多的成員所分配的存儲(chǔ)空間。3、 在 C+語(yǔ)言中,請(qǐng)說(shuō)明結(jié)構(gòu)體和聯(lián)合體的異同點(diǎn)。答:結(jié)構(gòu)體數(shù)據(jù)類型的變量可以同時(shí)存儲(chǔ)int 、 long、 char 和 double 型等已有數(shù)據(jù)類型的數(shù)據(jù),這些數(shù)據(jù)使用不同的存儲(chǔ)空間,而聯(lián)合體雖然表面上可以存儲(chǔ)int 、 long、char或 double 等已有數(shù)據(jù)類型的數(shù)據(jù),但它們共享其占用空間最多的成員所分配的存儲(chǔ)空間,對(duì)某個(gè)成員賦值將影響其它成員的數(shù)值。4、 結(jié)構(gòu)體數(shù)據(jù)作為參數(shù)在函數(shù)間傳遞有哪幾種方式請(qǐng)指出它們的異同點(diǎn)。答:結(jié)構(gòu)體作為參數(shù)在函數(shù)

24、之間進(jìn)行傳遞主要有下列三種方式:復(fù)制傳遞方式:把調(diào)用函數(shù)中結(jié)構(gòu)體實(shí)參的值復(fù)制給被調(diào)用函數(shù)的形參構(gòu)體地址傳遞方式:將調(diào)用函數(shù)中實(shí)參結(jié)構(gòu)體的地址傳遞給被調(diào)用函數(shù)形參的結(jié)構(gòu)體指針。引用方式: 被調(diào)用函數(shù)的形參應(yīng)該說(shuō)明為引用結(jié)構(gòu)體變量形式。實(shí)際上, 它是為實(shí)參結(jié)構(gòu)化起一個(gè)別名。另外,還可以通過(guò)全局變量的方式在函數(shù)間進(jìn)行數(shù)據(jù)傳遞,但這種方式不好,增加函數(shù)之間的耦合性。地址傳遞方式要比復(fù)制方式效率高。結(jié)構(gòu)體復(fù)制傳遞方式需要對(duì)實(shí)參做一個(gè)備份,它把一個(gè)結(jié)構(gòu)體變量作為參數(shù)傳遞, 但要將結(jié)構(gòu)體全部成員值一個(gè)一個(gè)傳遞 ,費(fèi)時(shí)間又費(fèi)空間,開(kāi)銷大。如果結(jié)構(gòu)體的成員較多,則程序運(yùn)行效率會(huì)大大降低 ,而采用地址傳遞方式將結(jié)

25、構(gòu)體變量的地址作為函數(shù)參數(shù)比較好,能提高運(yùn)行效率。復(fù)制傳遞方式不影響調(diào)用函數(shù)實(shí)參的數(shù)值,而地址傳遞方式有可能影響實(shí)參的數(shù)值。第七章類與對(duì)象a) 什么叫面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言什么叫類什么叫對(duì)象什么叫消息答:在程序設(shè)計(jì)語(yǔ)言中 ,面向?qū)ο笫侵覆捎贸橄?、封裝、繼承、多態(tài)等程序設(shè)計(jì)的方法。因此,具有抽象、封裝、繼承、多態(tài)等特性的編程語(yǔ)言稱為面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言。類實(shí)際上是一種抽象的數(shù)據(jù)類型,它將完成某特定功能所用到的數(shù)據(jù)和對(duì)數(shù)據(jù)的操作(即函數(shù)) 封裝在一起。 對(duì)象是指具有某些屬性和功能的單個(gè)個(gè)體。消息是對(duì)象之間相互請(qǐng)求或相互協(xié)作的途徑,是要求某個(gè)對(duì)象執(zhí)行其中某個(gè)功能操作的規(guī)格說(shuō)明。2、結(jié)構(gòu)化程序設(shè)計(jì)方

26、法存在什么問(wèn)題答:結(jié)構(gòu)化程序設(shè)計(jì)方法主要存在以下問(wèn)題:1)軟件重用性差: 重用性是指同一軟件不經(jīng)修改或稍加修改就可多次重復(fù)使用的性質(zhì)。軟件重用性是軟件工程追求的目標(biāo)之一。2)軟件可維護(hù)性差:軟件工程強(qiáng)調(diào)軟件的可維護(hù)性,強(qiáng)調(diào)文檔資料的重要性,規(guī)定最終的軟件產(chǎn)品應(yīng)該由完整、一致的配置成分組成。在軟件開(kāi)發(fā)過(guò)程中,始終強(qiáng)調(diào)軟件的可讀性、可修改性和可測(cè)試性是軟件的重要的質(zhì)量指標(biāo)。實(shí)踐證明, 用傳統(tǒng)方法開(kāi)發(fā)出來(lái)的軟件,維護(hù)時(shí)其費(fèi)用和成本仍然很高,其原因是可修改性差,維護(hù)困難,導(dǎo)致可維護(hù)性差。3)開(kāi)發(fā)出的軟件不能滿足用戶需要:用傳統(tǒng)的結(jié)構(gòu)化方法開(kāi)發(fā)大型軟件系統(tǒng)涉及各種不同領(lǐng)域的知識(shí), 在開(kāi)發(fā)需求模糊或需求動(dòng)

27、態(tài)變化的系統(tǒng)時(shí),所開(kāi)發(fā)出的軟件系統(tǒng)往往不能真正滿足用戶的需要。3、 什么叫抽象什么叫分類答:從許多事物中舍棄個(gè)別的、非本質(zhì)的特征,抽取共同的、本質(zhì)性的特征,就叫作抽象。抽象是形成概念的必須手段。分類就是把具有相同屬性和服務(wù)的對(duì)象劃分為一類,用類作為這些對(duì)象的抽象描述。4、 請(qǐng)簡(jiǎn)述結(jié)構(gòu)體、聯(lián)合體和類三種類類型的異同點(diǎn)。答:三種類類型的異同點(diǎn)見(jiàn)下列表格:類型結(jié)構(gòu)體聯(lián)合體類關(guān)鍵字structunionclass訪問(wèn)權(quán)限缺省數(shù)據(jù)或函數(shù)訪問(wèn)公有數(shù)據(jù)或函數(shù)訪問(wèn)公有數(shù)據(jù)或函數(shù)訪問(wèn)私有成員種類數(shù)據(jù)和函數(shù)數(shù)據(jù)和函數(shù)數(shù)據(jù)和函數(shù)初始化方式可以直接初始化可以直接初始化struct 結(jié)構(gòu)體類型和class 類類型都可以

28、封裝數(shù)據(jù)和操作,只能間接初始化具有派生性、隱藏性和多態(tài)性。而聯(lián)合體不具有派生性,但具有隱藏性和多態(tài)性。5、 什么叫根類答:根類是沒(méi)有從其它類派生而創(chuàng)建的類類型。實(shí)際上,根據(jù)class 類類型定義的一般形式, :<基類型列表 >是一個(gè)可缺省的項(xiàng);如缺省將定義一個(gè)根類。6、 類定義通常分為兩部分,主要指什么答:類的定義一般分為說(shuō)明部分和實(shí)現(xiàn)部分,說(shuō)明部分放在類定義體內(nèi),用來(lái)說(shuō)明該類中的數(shù)據(jù)成員和函數(shù)成員的類型和名稱,是類的外部接口;實(shí)現(xiàn)部分常放在類體外,用以給出說(shuō)明部分中聲明的成員函數(shù)的定義,是類的內(nèi)部實(shí)現(xiàn)。7、 在類定義中, 說(shuō)明成員的訪問(wèn)權(quán)限的public 、private 和 p

29、rotected 三個(gè)關(guān)鍵字的作用是什么請(qǐng)分別簡(jiǎn)述之。答:在類定義體里,使用了private 、protected 、 public 三個(gè)關(guān)鍵字是用來(lái)說(shuō)明數(shù)據(jù)成員和函數(shù)成員的訪問(wèn)權(quán)限,private 說(shuō)明私有成員,該類成員只能被自己的成員函數(shù)或友元訪問(wèn); protected說(shuō)明保護(hù)型的成員,可以被自己的成員函數(shù)或友元訪問(wèn),也可以被派生類的函數(shù)成員訪問(wèn);public 說(shuō)明公有成員,該類成員都可以通過(guò)對(duì)象被訪問(wèn)的。8、 什么叫內(nèi)聯(lián)函數(shù)什么叫外聯(lián)函數(shù)答:將說(shuō)明部分和成員函數(shù)實(shí)現(xiàn)部分合并在類定義體內(nèi),即將該函數(shù)定義為內(nèi)聯(lián)函數(shù)。若該函數(shù)語(yǔ)句行不多且又無(wú)循環(huán)語(yǔ)句和開(kāi)關(guān)語(yǔ)句也可以成為內(nèi)聯(lián)函數(shù), 只要在該函數(shù)

30、的類型說(shuō)明符之前使用關(guān)鍵字 inline 即可。外聯(lián)函數(shù)是指函數(shù)的說(shuō)明放在類定義體內(nèi),而函數(shù)的定義是在類定義體外的類成員函數(shù)。9、 簡(jiǎn)述構(gòu)造函數(shù)和析構(gòu)函數(shù)的特點(diǎn)。答:構(gòu)造函數(shù)是類的成員函數(shù), 函數(shù)體可寫(xiě)在類定義體內(nèi),也可在類定義體外定義;它是一個(gè)特殊的函數(shù), 其函數(shù)名與類名相同,該函數(shù)不指定類型說(shuō)明,它有隱含的返回值,該值由系統(tǒng)內(nèi)部使用; 該函數(shù)可以沒(méi)有參數(shù),也可以有一個(gè)或多個(gè)參數(shù),即構(gòu)造函數(shù)可以重載,可以定義具有不同數(shù)據(jù)類型或不同參數(shù)個(gè)數(shù)的構(gòu)造函數(shù); 另外,程序中不能直接調(diào)用構(gòu)造函數(shù),在創(chuàng)建對(duì)象時(shí)系統(tǒng)將自動(dòng)調(diào)用構(gòu)造函數(shù)。析構(gòu)函數(shù)也是類中的成員函數(shù),其定義的函數(shù)體可寫(xiě)在類定義體內(nèi),也可在類定義

31、體外;它也是一個(gè)特殊的函數(shù),它的名字與類名相同,但在其前面要加上“”字符,用來(lái)區(qū)別于構(gòu)造函數(shù); 析構(gòu)函數(shù)也不指定數(shù)據(jù)類型,并且也沒(méi)有形式參數(shù);但一個(gè)類中只可以定義一個(gè)析構(gòu)函數(shù);析構(gòu)函數(shù)還可以被調(diào)用,也可以被系統(tǒng)自動(dòng)調(diào)用。10、為什么要用拷貝構(gòu)造函數(shù)它有哪些特點(diǎn)答:拷貝構(gòu)造函數(shù)是一種特殊的構(gòu)造函數(shù),它的功能是用一個(gè)已有數(shù)值的對(duì)象賦值給另一個(gè)同類的一個(gè)對(duì)象??截悩?gòu)造函數(shù)是構(gòu)造函數(shù),但它是在賦值時(shí)被調(diào)用,將一個(gè)已有數(shù)值的對(duì)象的數(shù)據(jù)成員的值拷貝給另一個(gè)同類的對(duì)象的對(duì)應(yīng)數(shù)據(jù)成員??截悩?gòu)造函數(shù)的特點(diǎn)如下:(1) 該函數(shù)名同類名,因?yàn)樗彩且环N構(gòu)造函數(shù),并且該函數(shù)也不被指定返回類型;(2) 該函數(shù)只有一個(gè)參

32、數(shù),并且是對(duì)同類的某個(gè)對(duì)象的引用;(3) 每個(gè)類都必須有一個(gè)拷貝構(gòu)造函數(shù);(4) 在新建對(duì)象時(shí),對(duì)對(duì)象進(jìn)行初始化時(shí)調(diào)用,對(duì)象之間賦值不調(diào)用。11、簡(jiǎn)述深拷貝和淺拷貝。答:如果一個(gè)類的數(shù)據(jù)成員需要使用動(dòng)態(tài)分配的堆資源,并且這個(gè)類的對(duì)象之間發(fā)生了數(shù)據(jù)成員擁有的堆資源復(fù)制過(guò)程的時(shí)候,這個(gè)過(guò)程就可以叫做深拷貝,反之,對(duì)象存在數(shù)據(jù)成員擁有堆資源但復(fù)制過(guò)程并未實(shí)現(xiàn)數(shù)據(jù)成員擁有堆資源的復(fù)制情況視為淺拷貝。12、 this 指針有什么作用答: this 是專門指向類對(duì)象自身的地址常量,是一個(gè)隱含式的指針,也就是說(shuō)使用它時(shí)不需要自己去定義就可使用,而是由系統(tǒng)自己設(shè)定的。另外,它也隱含于每一個(gè)成員函數(shù)中,也就是說(shuō)

33、類的每一個(gè)成員函數(shù)都有一個(gè)this 指針,它指向了該函數(shù)所屬類的對(duì)象。this 是指向?qū)ο笞约旱闹羔槪? this就是對(duì)象自己。this 指針只能在某一個(gè)類的函數(shù)體內(nèi)使用,其他地方無(wú)意義。 該指針指向類的一個(gè)實(shí)例,實(shí)際上,該指針指向當(dāng)前正在操作的應(yīng)用對(duì)象自身。13、簡(jiǎn)述類中使用常對(duì)象和常成員函數(shù)需要注意的問(wèn)題。答:使用常對(duì)象和常成員函數(shù)需要注意以下問(wèn)題:(1)常對(duì)象在說(shuō)明時(shí)必須進(jìn)行初始化,而且不能被更新。常對(duì)象還可以作為類的成員。(2)const是函數(shù)類型的一個(gè)組成部分,因此在函數(shù)實(shí)現(xiàn)部分也要帶有const關(guān)鍵字;(3)在常成員函數(shù)里不能更改所屬類的數(shù)據(jù)成員,也不能調(diào)用該類中沒(méi)有用const修

34、飾的類的成員函數(shù);(4)常對(duì)象只能調(diào)用它的常成員函數(shù),而不能調(diào)用其他的成員函數(shù);(5)const 關(guān)鍵字可以用于進(jìn)行函數(shù)重載的區(qū)分。其重載的原則是:常對(duì)象只能調(diào)用常成員函數(shù),一般對(duì)象調(diào)用一般成員函數(shù)。第八章派生與繼承1、試比較類的三種繼承方式public , protected , private 之間的差別。答:不同的繼承方式, 導(dǎo)致不同訪問(wèn)屬性的基類成員在派生類中的訪問(wèn)屬性也有所不同:公有繼承,使得基類 public( 公有 )和 protected( 保護(hù) )成員的訪問(wèn)屬性在派生類中不變,而基類 private( 私有 )成員不可訪問(wèn)。私有繼承,使得基類public( 公有 )和 pro

35、tected( 保護(hù) )成員都以private( 私有 )成員身份出現(xiàn)在派生類中,而基類private( 私有 )成員不可訪問(wèn)。保護(hù)繼承中,基類public( 公有 )和 protected( 保護(hù) )成員都以protected( 保護(hù) )成員身份出現(xiàn)在派生類中,而基類private( 私有 )成員不可訪問(wèn)。2、簡(jiǎn)述派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)的執(zhí)行次序。答:在派生與繼承的層次結(jié)構(gòu)中,當(dāng)說(shuō)明一個(gè)派生類的對(duì)象時(shí),系統(tǒng)先執(zhí)行各個(gè)基類的構(gòu)造函數(shù), 先對(duì)基類成員進(jìn)行初始化,然后再執(zhí)行派生類的構(gòu)造函數(shù);若某一個(gè)基類也是派生類, 則這種執(zhí)行基類的構(gòu)造函數(shù)的過(guò)程需要遞歸進(jìn)行下去。在繼承鏈中, 構(gòu)造函數(shù)的執(zhí)行原

36、則是:先執(zhí)行基類的構(gòu)造函數(shù),再執(zhí)行派生類的構(gòu)造函數(shù)。當(dāng)一個(gè)派生類的對(duì)象使用完畢撤消時(shí),析構(gòu)函數(shù)的執(zhí)行順序正好與構(gòu)造函數(shù)的執(zhí)行順序相反。即:先執(zhí)行派生類的析構(gòu)函數(shù),再執(zhí)行基類的析構(gòu)函數(shù)。3、什么叫做虛基類有何作用答:當(dāng)某類的部分或全部直接基類是從另一個(gè)基類派生而來(lái),這些直接基類中,從上一級(jí)基類繼承來(lái)的成員就擁有相同的名稱,派生類的對(duì)象的這些同名成員在內(nèi)存中同時(shí)擁有多個(gè)拷貝, 我們可以使用作用域分辨符來(lái)唯一標(biāo)識(shí)并分別訪問(wèn)它們。我們也可以將直接基類的共同基類設(shè)置為虛基類,這時(shí)從不同的路徑繼承過(guò)來(lái)的該類成員在內(nèi)存中只擁有一個(gè)拷貝,這樣就解決了同名成員的唯一標(biāo)識(shí)問(wèn)題。虛基類的聲明是在派生類的定義過(guò)程,其

37、語(yǔ)法格式為:class 派生類名: virtual繼承方式基類名上述語(yǔ)句聲明基類為派生類的虛基類,在多繼承情況下,虛基類關(guān)鍵字的作用范圍和繼承方式關(guān)鍵字相同,只對(duì)緊跟其后的基類起作用。聲明了虛基類之后,虛基類的成員在進(jìn)一步派生過(guò)程中,和派生類一起維護(hù)一個(gè)內(nèi)存數(shù)據(jù)拷貝。第九章友元與靜態(tài)成員1、 什么叫友元友元有哪些答:友元指的是一種特性,通過(guò)這種特性能夠利用某些特定的全局函數(shù)或類的成員函數(shù)對(duì)某類的私有成員進(jìn)行存取。C+語(yǔ)言中的友元分為友元函數(shù)和友元類。2、 請(qǐng)給出友元函數(shù)與友元類的說(shuō)明方法。答:友元函數(shù)的說(shuō)明方法:friend<返回值類型><類名 >(<參數(shù)說(shuō)明列表

38、>);友元類的說(shuō)明方法:friendclass<類名 >3、 簡(jiǎn)述使用友元的利弊。答:使用友元的益處:在有些情況下,能夠利用某些特定的全局函數(shù)或類的成員函數(shù)對(duì)某類的隱藏成員進(jìn)行存取的這種特性是非常方便的,避免了將類中所有成員都設(shè)定為公有成員;使用友元的弊端: 雖然聲明友元可以方便的對(duì)類的非公有數(shù)據(jù)進(jìn)行訪問(wèn), 但同時(shí)破壞了類的封裝與信息隱藏性,并且難以維護(hù)。4、 試說(shuō)明使用靜態(tài)成員的目的靜態(tài)成員跟全局變量相比有哪些優(yōu)點(diǎn)答:使用靜態(tài)成員的目的:實(shí)現(xiàn)數(shù)據(jù)共享。靜態(tài)成員相較于全局變量的優(yōu)點(diǎn):1)靜態(tài)成員名稱的作用域只限定于定義它的類中,因此避免了與具有相同名稱的其他類的成員或者相同名

39、稱的全局變量發(fā)生命名上的沖突。.2)定義靜態(tài)成員保證了類的封裝性。因?yàn)殪o態(tài)成員可以被定義成類的私有成員而全局變量卻不能。3)靜態(tài)成員必然是跟程序中特定的類相關(guān)聯(lián)的,這將有利于程序編寫(xiě)者說(shuō)明定義這個(gè)成員的意圖,而在外部定義的全局變量有時(shí)是晦澀難懂的。5、 靜態(tài)數(shù)據(jù)成員是否可以通過(guò)對(duì)象來(lái)對(duì)其進(jìn)行訪問(wèn)并簡(jiǎn)要的給出相應(yīng)的說(shuō)明。答:可以。因?yàn)橛脤?duì)象去引用靜態(tài)成員函數(shù),只是用其類型。6、 所有靜態(tài)數(shù)據(jù)成員的初始化都不能在類的內(nèi)部完成是否正確如果不正確,請(qǐng)舉出相應(yīng)程序的例子來(lái)說(shuō)明。答:不正確。舉例見(jiàn)程序例。7、 如果靜態(tài)成員函數(shù)訪問(wèn)了非靜態(tài)數(shù)據(jù)成員會(huì)出現(xiàn)怎樣的錯(cuò)誤并說(shuō)明原因。答:將提示非法操作,靜態(tài)成員函數(shù)無(wú)法訪問(wèn)非靜態(tài)數(shù)據(jù)成員。由于靜態(tài)成員函數(shù)不與任何類的對(duì)象相聯(lián)系,故不能對(duì)非靜態(tài)成員進(jìn)行默認(rèn)訪問(wèn)。第十章虛擬函數(shù)與多態(tài)性1、在 C+中運(yùn)行時(shí)多態(tài)性是通過(guò)什么方式來(lái)實(shí)現(xiàn)的答:在 C+ +語(yǔ)言中,使用重載、模板和虛函數(shù)等概念來(lái)支持多態(tài)性。2、函數(shù)重載與虛擬函數(shù)有哪些相同點(diǎn)與不同點(diǎn)答:相同點(diǎn):函數(shù)重載和虛函數(shù)都是用來(lái)支持多態(tài)性的。不同點(diǎn):函數(shù)重載用來(lái)實(shí)現(xiàn)的是編譯時(shí)的多態(tài)性,虛函數(shù)用來(lái)實(shí)現(xiàn)的時(shí)運(yùn)行時(shí)的多態(tài)性。3、虛擬函數(shù)是如何實(shí)現(xiàn)面向?qū)ο缶幊痰亩鄳B(tài)性的,它會(huì)帶來(lái)什么益處答:虛擬函數(shù)的運(yùn)用使操作不在編譯時(shí)被關(guān)聯(lián)到指針的原始類型的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論