《高級(jí)語(yǔ)言程序設(shè)計(jì)》測(cè)試題_第1頁(yè)
《高級(jí)語(yǔ)言程序設(shè)計(jì)》測(cè)試題_第2頁(yè)
《高級(jí)語(yǔ)言程序設(shè)計(jì)》測(cè)試題_第3頁(yè)
《高級(jí)語(yǔ)言程序設(shè)計(jì)》測(cè)試題_第4頁(yè)
《高級(jí)語(yǔ)言程序設(shè)計(jì)》測(cè)試題_第5頁(yè)
已閱讀5頁(yè),還剩62頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

高級(jí)語(yǔ)言程序設(shè)計(jì)》一、判斷題(錯(cuò)誤的在后面寫(xiě)“F”,正確的寫(xiě)“T”,每題1分)程序是描述算法的編程工具。化將函數(shù)模板與某個(gè)具體數(shù)據(jù)類(lèi)型連用,就產(chǎn)生了模板函數(shù),稱(chēng)這個(gè)過(guò)程為函數(shù)模板實(shí)例化.C++語(yǔ)言中,用來(lái)為對(duì)象初始化的特殊成員函數(shù)稱(chēng)為構(gòu)造函數(shù);用于在對(duì)象撤銷(xiāo)時(shí)執(zhí)行一些清理任務(wù)的特殊成員函數(shù)稱(chēng)為析構(gòu)函數(shù).逐條翻譯并執(zhí)行的翻譯程序稱(chēng)為編譯程序把所有類(lèi)組織在一個(gè)樹(shù)形結(jié)構(gòu)中,這時(shí)所有類(lèi),不管它們之間的差別有多大,都有一個(gè)共同的相關(guān)類(lèi),這種結(jié)構(gòu)被稱(chēng)為類(lèi)樹(shù)。類(lèi)群是由一些彼此密切相關(guān)的類(lèi)和類(lèi)族組成的.如果在定義一個(gè)類(lèi)時(shí),該類(lèi)繼承了多個(gè)基類(lèi)的特征,那么這個(gè)繼承關(guān)系稱(chēng)為多重繼承。不同對(duì)象可以調(diào)用相同名稱(chēng)的函數(shù),并可導(dǎo)致完全相同的行為的現(xiàn)象稱(chēng)為多態(tài)性.形式參數(shù)表是用括號(hào)分隔的變量說(shuō)明列表,變量稱(chēng)為函數(shù)的形式參數(shù),有時(shí)也簡(jiǎn)稱(chēng)為形參。9?.在C++語(yǔ)言中,只要在聲明函數(shù)原型時(shí)形式參數(shù)的個(gè)數(shù)或者對(duì)應(yīng)的類(lèi)型不同,兩個(gè)或更多的函數(shù)就可以共用同一個(gè)名字。這種在同一作用域中允許多個(gè)函數(shù)使用同一函數(shù)名的措施被稱(chēng)為重載。C++的作用域分辨:可以迫使編譯器“看到”當(dāng)前作用域的外層部分,存取那些被隱藏的名字。這是由作用域分辨操作符實(shí)現(xiàn)的,這一過(guò)程叫做作用域分辨。11.說(shuō)明函數(shù)原型時(shí)不需要指明每個(gè)函數(shù)參數(shù)的名字,只需要說(shuō)明每個(gè)參數(shù)的類(lèi)型和返回值類(lèi)型就可以了。12.所有的表達(dá)式都有值。13.程序的編譯是以文件為單位的,因此將程序分到多個(gè)文件中可以減少每次對(duì)程序修改所帶來(lái)的編譯工作量。14.類(lèi)的靜態(tài)數(shù)據(jù)成員需要在定義每個(gè)類(lèi)的對(duì)象時(shí)進(jìn)行初始化。15.基類(lèi)中被說(shuō)明為protected和private的成員只能被其派生類(lèi)的成員函數(shù)訪問(wèn),不能被其它的函數(shù)訪問(wèn)。當(dāng)將一個(gè)類(lèi)S定義為另一個(gè)類(lèi)A的友元類(lèi)時(shí),類(lèi)S的所有成員函數(shù)都可以直接訪問(wèn)類(lèi)A的所有成員。當(dāng)函數(shù)的返回值是數(shù)組類(lèi)型的,傳遞的是數(shù)組第一個(gè)元素的地址。如果派生類(lèi)的成員函數(shù)的原型與基類(lèi)中被定義為虛函數(shù)的成員函數(shù)原型相同,那么,這個(gè)函數(shù)自動(dòng)繼承基類(lèi)中虛函數(shù)的特性。字符串’heHo,worl在內(nèi)存中存放時(shí),占用11個(gè)字節(jié)的空間。用new動(dòng)態(tài)申請(qǐng)的內(nèi)存空間,必須用delete來(lái)釋放。變量必須先定義或說(shuō)明,后說(shuō)明.23、常量不能作為左值使用.23、頭文件中一般存放著變量和常量的定義、函數(shù)的原型以及類(lèi)的定義。24、類(lèi)的友元函數(shù)可以直接訪問(wèn)該類(lèi)的所有成員。25、派生類(lèi)的成員函數(shù)可以直接訪問(wèn)基類(lèi)的所有成員。26、一個(gè)類(lèi)可以作為另一個(gè)類(lèi)的友元類(lèi).27、函數(shù)的參數(shù)和返回值類(lèi)型可以是簡(jiǎn)單數(shù)據(jù)類(lèi)型,也可以是指什、引用、數(shù)組和類(lèi).28、在基類(lèi)中被說(shuō)明為虛函數(shù)的類(lèi)的成員函數(shù)必須在每個(gè)派生類(lèi)中說(shuō)明為虛函數(shù),才能具有多態(tài)的特征。29、下面兩個(gè)語(yǔ)句是等價(jià)的:charstr[]=”hello,world”;charstr[11]=”hello,world”;30、 用new動(dòng)態(tài)申請(qǐng)的內(nèi)存是在堆中分配的,而不是在棧中分配的。靜態(tài)聯(lián)編所支持的多態(tài)性稱(chēng)為編譯時(shí)的多態(tài)性。如果一個(gè)類(lèi)中至少有一個(gè)實(shí)函數(shù),則稱(chēng)這個(gè)類(lèi)為抽象類(lèi)。33。 用于在對(duì)象消失時(shí)執(zhí)行一些清理任務(wù)的函數(shù)叫虛函數(shù)。C++源程序文件的缺省擴(kuò)展名為cpp35。 由C++源程序文件編譯而成的目標(biāo)文件的缺省擴(kuò)展名為lik36。 由C++目標(biāo)文件連接而成的可執(zhí)行文件的缺省擴(kuò)展名為obj37。 編寫(xiě)C++程序一般需經(jīng)過(guò)的幾個(gè)步驟依次是編輯、編譯、連接、調(diào)試38。 標(biāo)識(shí)符defaultthenwhile全是保留字能作為C++程序的基本單位是語(yǔ)句程序中主函數(shù)的名字為任意標(biāo)識(shí)符二、填空題(每題3分)TOC\o"1-5"\h\z1。假定x=5,y=6,則執(zhí)行表達(dá)式y(tǒng)+二x--計(jì)算后,x和y的值分別為 和2。 C++常數(shù)0x145對(duì)應(yīng)的十進(jìn)制值為 。3。 C++常數(shù)0345對(duì)應(yīng)的十進(jìn)制值為 .4。 十進(jìn)制常數(shù)245對(duì)應(yīng)的十六進(jìn)制的C++表示為 .5。 十進(jìn)制常數(shù)245對(duì)應(yīng)的八進(jìn)制的C++表示為 。6。 signedchar類(lèi)型的值域范圍是 至 之間的整數(shù)。7。 int和float類(lèi)型的數(shù)據(jù)分別占用 和 個(gè)字節(jié)。&float和double類(lèi)型的數(shù)據(jù)分別占用 和 個(gè)字節(jié)。bool和char類(lèi)型的數(shù)據(jù)分別占用 和 個(gè)字節(jié)。11TOC\o"1-5"\h\zunsignedshortint和int類(lèi)型的長(zhǎng)度分別為 和 。字符串“This、'sabook.\n”的長(zhǎng)度為 。字符串、'\nThis\'sapen\n\n”的長(zhǎng)度為 。在C++中存儲(chǔ)字符串“abcdef”至少需要 個(gè)字節(jié).在C++中存儲(chǔ)字符串“a+b=c〃至少需要 個(gè)字節(jié).假定x和y為整型,其值分別為16和5,則x%y和x/y的值分別為 和 .若while循環(huán)的“頭"為”while(i++〈=10)”,并且i的初值為0,同時(shí)在循環(huán)體中不會(huì)修改i的值,則循環(huán)體將被重復(fù)執(zhí)行 次后正常結(jié)束。若do循環(huán)的“尾〃為〃while(++i〈10)〃,并且i的初值為0,同時(shí)在循環(huán)體中不會(huì)修改i的值,則循環(huán)體將被重復(fù)執(zhí)行 次后正常結(jié)束.當(dāng)在程序中執(zhí)行到 語(yǔ)句時(shí),將結(jié)束本層循環(huán)類(lèi)語(yǔ)句或switch語(yǔ)句的執(zhí)行。當(dāng)在程序中執(zhí)行到 語(yǔ)句時(shí),將結(jié)束所在循環(huán)語(yǔ)句中循環(huán)體的一次執(zhí)行。在程序中執(zhí)行到 語(yǔ)句時(shí),將結(jié)束所在函數(shù)的執(zhí)行過(guò)程,返回到調(diào)用該函數(shù)的位置。在程序執(zhí)行完 函數(shù)調(diào)用后,將結(jié)束整個(gè)程序的執(zhí)行過(guò)程,返回到C++集成開(kāi)發(fā)窗口.元素類(lèi)型為int的數(shù)組a[10]共占用 字節(jié)的存儲(chǔ)空間。元素類(lèi)型為double的二維數(shù)組a[4][6]共占用 字節(jié)的存儲(chǔ)空間。元素類(lèi)型為char的二維數(shù)組a[10][30]共占用 字節(jié)的存儲(chǔ)空間。存儲(chǔ)字符'a'和字符串〃a〃分別需要占用 和 個(gè)字節(jié)??沾拈L(zhǎng)度為 ,存儲(chǔ)它需要占用 個(gè)字節(jié)。TOC\o"1-5"\h\z字符串”\'a\'xy=4\n〃的長(zhǎng)度為 .字符串”a:\\xxk\\數(shù)據(jù)〃的長(zhǎng)度為 。用于存儲(chǔ)一個(gè)長(zhǎng)度為n的字符串的字符數(shù)組的長(zhǎng)度至少為 。若a是一個(gè)字符數(shù)組,則從鍵盤(pán)上向該數(shù)組輸入一個(gè)字符串的表達(dá)式為—。C++是將源程序 ,然后再執(zhí)行,這種翻譯程序稱(chēng)為編譯程序。聯(lián)合的若干數(shù)據(jù)成員使用地址 ,占據(jù)的內(nèi)存是聯(lián)合中占內(nèi)存最大的數(shù)據(jù)成員所占用的內(nèi)存。作用域分辨操作符的一般形式為類(lèi)名::類(lèi)標(biāo)識(shí)符,作用域分辨不僅可用于類(lèi)中,而且可以用在 時(shí)。將關(guān)鍵詞const寫(xiě)在 之后, , 之前,說(shuō)明該函數(shù)是一個(gè)const成員函數(shù)。C++是在 的基礎(chǔ)上,引入面向?qū)ο蟾拍疃鴶U(kuò)充形成的混合型面向?qū)ο笳Z(yǔ)言。在動(dòng)態(tài)聯(lián)編中,直到 時(shí)才能確定調(diào)用哪個(gè)函數(shù)。靜態(tài)聯(lián)編是在程序編譯時(shí)進(jìn)行的。類(lèi)型轉(zhuǎn)換函數(shù) 帶有參數(shù),當(dāng)被派生類(lèi)繼承并被說(shuō)明為 時(shí),可以定義多個(gè)轉(zhuǎn)換函數(shù)。繼承是 的一個(gè)特點(diǎn),繼承支持 類(lèi)概念.C++的 規(guī)則能保證編譯器調(diào)用正確的成員函數(shù).在C++中,聲明構(gòu)造函數(shù)和析構(gòu)函數(shù)時(shí), 使用const或volatile關(guān)鍵詞.41。只能用類(lèi)運(yùn)算符來(lái)重載的運(yùn)算符是: , , , 。應(yīng)該養(yǎng)成將所有extern說(shuō)明放到 中去的習(xí)慣,對(duì)于自己編寫(xiě)的函數(shù),必須自己給出 說(shuō)明。結(jié)構(gòu)是 ,的一種特例,其中成員在缺省情況下是 。當(dāng)使用delete刪除一個(gè)對(duì)象時(shí)‘delete隱含著對(duì) 函數(shù)的一次調(diào)用,如果這個(gè)函數(shù)為虛函數(shù),則這個(gè)調(diào)用采用 聯(lián)編。const放在函數(shù)前面使常量成員返回 。如果定義一個(gè)const對(duì)象,則只能訪問(wèn)該對(duì)象的const成員函數(shù)。在面向?qū)ο蟮某绦蛟O(shè)計(jì)中,一切都是圍繞著 展開(kāi)的。析構(gòu)造函數(shù)是和 同名的函數(shù)。48.指向基類(lèi)的對(duì)象的指針變量也可以指向 的對(duì)象。49.若多繼承時(shí),多個(gè)基類(lèi)中擁有一個(gè)同名的成員,則 用調(diào)整訪問(wèn)權(quán)限確定對(duì)該成員的訪問(wèn)50.多繼承情況下,派生類(lèi)的構(gòu)造函數(shù)的執(zhí)行順序取決于 派生類(lèi)時(shí)所指定的各基類(lèi)的順序。51.構(gòu)造函數(shù)___①___被繼承,析構(gòu)函數(shù) ② 被繼承。52.___①___繼承情況下,派生類(lèi)中對(duì)基類(lèi)成員的訪問(wèn)會(huì)出現(xiàn)二義性.解決二義性的方法是 ② 、___③___和___④___53.垂直訪問(wèn)時(shí),保護(hù)成員的訪問(wèn)控制權(quán)限與 成員相同.54.派生類(lèi)可以調(diào)用其 中不具備的數(shù)據(jù)和操作。55.利用繼承能夠?qū)崿F(xiàn) 。這種實(shí)現(xiàn)縮短了程序的開(kāi)發(fā)時(shí)間,促使開(kāi)發(fā)人員復(fù)用已經(jīng)測(cè)試和調(diào)試好的高質(zhì)量軟件。56.當(dāng)撤消一個(gè)含有基類(lèi)和子對(duì)象成員的派生類(lèi)對(duì)象時(shí),將首先完成___①___的析構(gòu)函數(shù)定義體的執(zhí)行,接著完成 ② 的析構(gòu)函數(shù)定義體的執(zhí)行,最后完成___③___的析構(gòu)函數(shù)定義體的執(zhí)行.57.如果類(lèi)Alpha繼承了類(lèi)Beta,則類(lèi)Alpha稱(chēng)為 ① 類(lèi),類(lèi)Beta稱(chēng)為 ② 類(lèi)58.對(duì)基類(lèi)數(shù)據(jù)成員的初始化必須在派生類(lèi)構(gòu)造函數(shù)中的 處執(zhí)行。在派生類(lèi)中使用基類(lèi)的成員,可以顯示地使用 來(lái)使用基類(lèi)成員當(dāng)將基類(lèi)指針轉(zhuǎn)換為派生類(lèi)指針時(shí),由于編譯器認(rèn)為這種操作是危險(xiǎn)的,所以必須要使用多繼承可以視為是___①___的擴(kuò)展,派生類(lèi)及其基類(lèi)可用一個(gè)___②___表示。62。 繼承是___①___的一個(gè)特點(diǎn),繼承支持___②___類(lèi)概念。TOC\o"1-5"\h\z63?若需要定義一個(gè)標(biāo)識(shí)符常量,并且使C++能夠進(jìn)行類(lèi)型檢查,則應(yīng)在定義語(yǔ)句的開(kāi)始使用保留字 。邏輯表達(dá)式x>3&&xvlO的相反表達(dá)式為 .邏輯表達(dá)式a〉blib==5的相反表達(dá)式為 .假定一個(gè)二維數(shù)組的定義為”chara[5][6];",則該數(shù)組所含元素的個(gè)數(shù)為 ,所占存儲(chǔ)空間的字節(jié)數(shù)為 變量分為全局和局部?jī)煞N, 變量沒(méi)有賦初值時(shí),將由系統(tǒng)自動(dòng)置為0.假定a是一個(gè)一維數(shù)組,則a[i]對(duì)應(yīng)的存儲(chǔ)地址(以字節(jié)為單位)為 假定一個(gè)結(jié)構(gòu)類(lèi)型的定義為”structA{inta,b;A*c;};”,則該類(lèi)型的大小為 字節(jié).TOC\o"1-5"\h\z假定要訪問(wèn)一個(gè)結(jié)構(gòu)指針p所指對(duì)象中的b指針成員所指的對(duì)象,則表示方法為 。三、單選題(每題2分,在下列各題的備選答案中,選出一個(gè)正確答案并將其號(hào)碼填寫(xiě)在題目后面的括號(hào)內(nèi).)1。 C++源程序文件的缺省擴(kuò)展名為( )。cpp B.exe C.obj D。lik2。 由C++源程序文件編譯而成的目標(biāo)文件的缺省擴(kuò)展名為( )。A。 cpp B.exe C.obj D.lik3。 由C++目標(biāo)文件連接而成的可執(zhí)行文件的缺省擴(kuò)展名為()。cpp B.exe C。obj D。lik4。 編寫(xiě)C++程序一般需經(jīng)過(guò)的幾個(gè)步驟依次是( )?編譯、編輯、連接、調(diào)試

B。 編輯、編譯、連接、調(diào)試編譯、調(diào)試、編輯、連接編輯、調(diào)試、編輯、連接)。)。)。)。C.函數(shù)D。源程序文件C。MainD。任意標(biāo)識(shí)符C.語(yǔ)句D.函數(shù)caseforintdefaultthenwhileC。 boolclasslongD。 gotoreturnchar6。 能作為C++程序的基本單位是(A。 字符 B。語(yǔ)句7。 程序中主函數(shù)的名字為( ).A。 main B.MAIN8。 C++程序的基本模塊為( )。A。表達(dá)式B。標(biāo)識(shí)符9.可用作C++語(yǔ)言用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是()。A。voiddefine+WORDB.a3_b3_123YNC。for—abcCaseD.2aDOsizeof10.存儲(chǔ)以下數(shù)據(jù),占用存儲(chǔ)字節(jié)最多的是()0B?!?' C?!?” D。0.011。 程序運(yùn)行中需要從鍵盤(pán)上輸入多于一個(gè)數(shù)據(jù)時(shí),各數(shù)據(jù)之間應(yīng)使用()符號(hào)作為分隔符。A??崭窕蚨禾?hào) B.逗號(hào)或回車(chē) C.逗號(hào)或分號(hào)D。空格或回車(chē)12。 設(shè)”inta=12;”,則執(zhí)行完語(yǔ)句"a+=a*a;”后,a的值是( )。A。 12B.144C.156D。288113。 假設(shè)在程序中a、b、c均被定義成整型,所賦的值都大于1,則下列能正確表示代數(shù)式丁abc的表達(dá)式是()。A。1.0/a*b*cB.1/(a*b*c)C.1/a/b/(float)c D。1。0/a/b/cTOC\o"1-5"\h\z設(shè)”inta=15,b=26;",則"cout〈〈(a,b);”的輸出結(jié)果是( )。A。15B。26,15C。15,26D.26設(shè)x是一個(gè)bool型的邏輯量,y的值為10,則表達(dá)式x&&y的值為( )。A。1 B。0 C.與x值相同Do與x值相反16。x〉0&&x<=10的相反表達(dá)式為().A。x〈=0I|x>10 B.x<=0&&x〉10C.x<=0I|x〈=10 D。x>0&&x〉1017。x>0|Iy==5的相反表達(dá)式為()。TOC\o"1-5"\h\zA.x<=0|Iy!=5 B.x<=0&&y!=5C.x>0|Iy!=5 D.x>0&&y==5設(shè)x和y均為bool量,則x&&y為真的條件是( )。A.它們均為真 B.其中一個(gè)為真C.它們均為假 D。其中一個(gè)為假設(shè)x和y均為bool量,則xIIy為假的條件是( ).A。它們均為真 B.其中一個(gè)為真Co它們均為假 D.其中一個(gè)為假字符串”a+b=12\n〃的長(zhǎng)度為()。TOC\o"1-5"\h\zAo6 B.7 Co8 Do9假定下列x和y均為int型變量,則不正確的賦值為( )oA.x+=y++ B.x++=y++ C.x=++y D。++x=++y下列的符號(hào)常量定義中,錯(cuò)誤的定義是( )。A.constM=10; B.constintM=20;C.constcharch; D。constboolmark=true;循環(huán)語(yǔ)句“for(inti=0;i〈n;i++)cout〈〈i*i〈〈’’;”中循環(huán)體執(zhí)行的次數(shù)為( )。A。1B。n-1C.nD.n+1在下面循環(huán)語(yǔ)句中循環(huán)體執(zhí)行的次數(shù)為()。for(inti=0;i〈n;i++)if(i>n/2)break;A。n/2B。n/2+1C.n/2-1D.n—125o在下面循環(huán)語(yǔ)句中內(nèi)層循環(huán)體S語(yǔ)句的執(zhí)行總次數(shù)為()ofor(inti=0;i〈n;i++)for(intj=i;j〈n;j++)S;A.n2 B.(n+1)/2Con(n—1)/2 D.n(n+1)/226o在下面循環(huán)語(yǔ)句中循環(huán)體執(zhí)行的次數(shù)為( )?inti=0,s=0;while(s〈20){i++; s+=i;}A.4B.5Co6Do727o在下面循環(huán)語(yǔ)句中循環(huán)體執(zhí)行的次數(shù)為( )?inti=0;doi++;while(i*i〈10);Ao4B.3C.5D.228o當(dāng)處理特定問(wèn)題時(shí)的循環(huán)次數(shù)已知時(shí),通常采用( )來(lái)解決。A.for循環(huán) Bowhile循環(huán)Codo循環(huán)Doswitch語(yǔ)句29.循環(huán)體至少被執(zhí)行一次的語(yǔ)句為( )oAofor循環(huán) B.while循環(huán)Codo循環(huán)Do任一種循環(huán)30.switch語(yǔ)句能夠改寫(xiě)為( )語(yǔ)句。A.for Boif CodoDowhile31.do語(yǔ)句能夠改寫(xiě)為( )語(yǔ)句。Ao復(fù)合 B.if C.switchDowhile32o在下面的一維數(shù)組定義中,哪一個(gè)有語(yǔ)法錯(cuò)誤.( )A.inta□二{1,2,3}; B.inta[10]={0};C.inta[]; D.inta[5];在下面的字符數(shù)組定義中,哪一個(gè)有語(yǔ)法錯(cuò)誤。()oA.chara[20]=〃abcdefg〃; B.chara[]=〃x+y=55.〃;Cochara[15];Dochara[10]='5';在下面的二維數(shù)組定義中,正確的是( )oA.inta[5][]; Bointa[][5];C.inta[][3]={{1,3,5},{2}};Dointa[](10);35o假定一個(gè)二維數(shù)組的定義語(yǔ)句為“inta[3][4]={{3,4},{2,8,6}};",則元素a[1][2]的值為()o

A.2Bo4Co636.假定一個(gè)二維數(shù)組的定義語(yǔ)句為A.2Bo4Co636.假定一個(gè)二維數(shù)組的定義語(yǔ)句為“int的值為()。D。8a[3][4]={{3,4},{2,8,6}};”,則元素a[2][1]A.0Bo4C.8D.6若定義了函數(shù)double大function(),則函數(shù)function的返回值為( )。Ao實(shí)數(shù)型B.實(shí)數(shù)的地址C.指向函數(shù)的指針D.函數(shù)的地址以下說(shuō)法中正確的是()oC++程序總是從第一個(gè)定義的函數(shù)開(kāi)始執(zhí)行C++程序總是從main函數(shù)開(kāi)始執(zhí)行CoC++函數(shù)必須有返回值,否則不能使用函數(shù)DoC++程序中有調(diào)用關(guān)系的所有函數(shù)必須放在同一個(gè)程序文件中以下敘述中不正確的是()oAo在一個(gè)函數(shù)中,可以有多條return語(yǔ)句函數(shù)的定義不能嵌套,但函數(shù)的調(diào)用可以嵌套函數(shù)必須有返回值Do不同的函數(shù)中可以使用相同名字的變量函數(shù)重載是指()oA.兩個(gè)或兩個(gè)以上的函數(shù)取相同的函數(shù)名,但形參的個(gè)數(shù)或類(lèi)型不同Bo兩個(gè)以上的函數(shù)取相同的名字和具有相同的參數(shù)個(gè)數(shù),但形參的類(lèi)型可以不同Co兩個(gè)以上的函數(shù)名字不同,但形參的個(gè)數(shù)或類(lèi)型相同Do兩個(gè)以上的函數(shù)取相同的函數(shù)名,并且函數(shù)的返回類(lèi)型相同以下關(guān)于函數(shù)模板敘述正確的是().Ao函數(shù)模板也是一個(gè)具體類(lèi)型的函數(shù)Bo函數(shù)模板的類(lèi)型參數(shù)與函數(shù)的參數(shù)是同一個(gè)概念Co通過(guò)使用不同的類(lèi)型參數(shù),函數(shù)模板可以生成不同類(lèi)型的函數(shù)用函數(shù)模板定義的函數(shù)沒(méi)有類(lèi)型下列( )的調(diào)用方式是引用調(diào)用。Ao形參和實(shí)參都是變量 Bo形參是指針,實(shí)參是地址值形參是引用,實(shí)參是變量 D.形參是變量,實(shí)參是地址值為了提高程序的運(yùn)行速度,可將不太復(fù)雜的功能用函數(shù)實(shí)現(xiàn),此函數(shù)應(yīng)選擇()Ao內(nèi)聯(lián)函數(shù)B.重載函數(shù)Co遞歸函數(shù)Do函數(shù)模板0445.46.47。函數(shù)原型語(yǔ)句正確的是(A.intFunction(voida);C.intFunction(a);C++中函數(shù)返回值的類(lèi)型是由函數(shù)原型語(yǔ)句正確的是(A.intFunction(voida);C.intFunction(a);C++中函數(shù)返回值的類(lèi)型是由(A.return語(yǔ)句中表達(dá)式的類(lèi)型C.調(diào)用函數(shù)時(shí)的調(diào)用語(yǔ)句

以下函數(shù)的返回結(jié)果是()ointfunction(char*x){char*p=x;while(*p++);)oBovoidFunction(int);D.voidint(doublea);決定的.B.該函數(shù)定義時(shí)的類(lèi)型Do系統(tǒng)根據(jù)結(jié)果return(p-x-1);}}A.CoBo將字符串Bo將字符串x連接到字符串p后面將字符串x復(fù)制到字符串p中Do將字符串x反向存放函數(shù)調(diào)用func((expl,exp2),(exp3,exp4,exp5))中所含實(shí)參的個(gè)數(shù)為( )個(gè).

Ao1Bo2C.4D.5設(shè)有如下函數(shù)定義intf(char大s){char*p=s;while(*p!='\0')p++;return(p-s);}在主函數(shù)中用cout〈〈f(“good〃)調(diào)用上述函數(shù),則輸出結(jié)果為()oAo3 B.4 Co5 D.649o以下正確的函數(shù)原型語(yǔ)句是( )odoublefun(intx,inty)doublefun(intx;inty)Codoublefun(int,int);Dodoublefun(intx,y);50o以下正確的說(shuō)法是( ).用戶調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)前,必須重新定義用戶可以重新定義標(biāo)準(zhǔn)庫(kù)函數(shù),若如此,該函數(shù)將失去原有含義Co系統(tǒng)不允許用戶重新定義標(biāo)準(zhǔn)庫(kù)函數(shù)Do用戶調(diào)用標(biāo)準(zhǔn)庫(kù)函數(shù)前,不必使用預(yù)編譯命令將該函數(shù)所在文件包括到用戶源文件中函數(shù)調(diào)用不可以( )oAo出現(xiàn)在一個(gè)表達(dá)式中出現(xiàn)在執(zhí)行語(yǔ)句中作為一個(gè)函數(shù)的實(shí)參作為一個(gè)函數(shù)的形參以下正確的描述是( ).Ao函數(shù)的定義可以嵌套,函數(shù)的調(diào)用不可以嵌套Bo函數(shù)的定義不可以嵌套,函數(shù)的調(diào)用可以嵌套Co函數(shù)的定義和函數(shù)的調(diào)用均可以嵌套Do函數(shù)的定義和函數(shù)的調(diào)用均不可以嵌套若用數(shù)組名作為函數(shù)調(diào)用的實(shí)參,傳遞給形參的是().Ao數(shù)組的首地址 Bo數(shù)組中第一個(gè)元素的值數(shù)組全部元素的值 D.數(shù)組元素的個(gè)數(shù)54o以下錯(cuò)誤的描述是()oAo被調(diào)用函數(shù)中可以不用return語(yǔ)句被調(diào)用函數(shù)中可以用多個(gè)return語(yǔ)句Co被調(diào)用函數(shù)中,如果有返回值,就一定要有return語(yǔ)句被調(diào)用函數(shù)中,一個(gè)return語(yǔ)句可返回多個(gè)值給調(diào)用函數(shù)以下正確的描述是( )oA.不允許設(shè)置參數(shù)的默認(rèn)值Bo設(shè)置參數(shù)的默認(rèn)值只能在定義函數(shù)時(shí)設(shè)置設(shè)置參數(shù)的默認(rèn)值時(shí),應(yīng)該設(shè)置右邊的參數(shù)Do設(shè)置參數(shù)的默認(rèn)值時(shí),應(yīng)該全部參數(shù)都設(shè)置56。 采用重載函數(shù)的目的是( )o

57.5859.60.6162.636465666768.69。A。實(shí)現(xiàn)共享 B。減少空間提高速度 Do使用方便,提高可讀性將兩個(gè)字符串連接起來(lái)組成一個(gè)字符串時(shí),選用()函數(shù).strlen()Bostrcap()Costrcat()Dostrcmp()以下敘述中正確的是( )oAo使用#define可以為常量定義一個(gè)名字,該名字在程序中可以再賦另外的值使用const定義的常量名有類(lèi)型之分,其值在程序運(yùn)行時(shí)是不可改變的在程序中使用內(nèi)聯(lián)函數(shù)使程序的可讀性變差在定義函數(shù)時(shí)可以在形參表的任何位置給出缺省形參值下面的標(biāo)識(shí)符中,()是文件級(jí)作用域.A.函數(shù)形參B。語(yǔ)句標(biāo)號(hào)C.外部靜態(tài)類(lèi)標(biāo)識(shí)符D.自動(dòng)類(lèi)標(biāo)識(shí)符以下敘述不正確的是().Ao宏替換不占用運(yùn)行時(shí)間 B.宏名無(wú)類(lèi)型宏替換只是字符替換 Do宏名必須用大寫(xiě)字母表示C++語(yǔ)言的編譯系統(tǒng)對(duì)宏命令的處理是()?Ao在程序運(yùn)行時(shí)進(jìn)行Bo在程序連接時(shí)進(jìn)行Co和C++程序的其它語(yǔ)句同時(shí)進(jìn)行編譯在對(duì)源程序中其它成分正式編譯之前進(jìn)行當(dāng)#include后面的文件名用雙引號(hào)括起來(lái)時(shí),尋找被包含文件的方式是()。直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄先在源程序所在目錄搜索,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄僅僅搜索源程序所在目錄搜索當(dāng)前邏輯盤(pán)上的所有目錄當(dāng)#include后面的文件名用尖括號(hào)括起來(lái)時(shí),尋找被包含文件的方式是()oAo直接按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄先在源程序所在目錄搜索,再按系統(tǒng)設(shè)定的標(biāo)準(zhǔn)方式搜索目錄Co僅僅搜索源程序所在目錄搜索當(dāng)前邏輯盤(pán)上的所有目錄在下面存儲(chǔ)類(lèi)中,( )對(duì)象的可見(jiàn)性與生存期不一致。Ao外部類(lèi)Bo自動(dòng)類(lèi)C.內(nèi)部靜態(tài)類(lèi) D.寄存器類(lèi)在下面存儲(chǔ)類(lèi)中,( )的對(duì)象不是局部變量。外部靜態(tài)類(lèi)Bo自動(dòng)類(lèi)Co函數(shù)形參 D.寄存器類(lèi)關(guān)于局部變量,下面說(shuō)法正確的是()oAo定義該變量的程序文件中的函數(shù)都可以訪問(wèn)定義該變量的函數(shù)中的定義處以下的任何語(yǔ)句都可以訪問(wèn)Co定義該變量的復(fù)合語(yǔ)句中的定義處以下的任何語(yǔ)句都可以訪問(wèn)Do定義該變量的函數(shù)中的定義處以上的任何語(yǔ)句都可以訪問(wèn)文件包含命令中被包含的文件的擴(kuò)展名()oAo必須是。hBo不能是。hCo可以是。h或.cppD.必須是.cpp預(yù)處理命令在程序中都是以( )符號(hào)開(kāi)頭的。A.* B.# C.&D。@設(shè)array為一個(gè)數(shù)組,則表達(dá)式sizeof(array)/sizeof(array[0])的結(jié)果為( )。A.array數(shù)組首地址

Boarray數(shù)組中元素個(gè)數(shù)Coarray數(shù)組中每個(gè)元素所占的字節(jié)數(shù)Doarray數(shù)組占的總字節(jié)數(shù)70o用new運(yùn)算符創(chuàng)建一個(gè)含10個(gè)元素的一維整型數(shù)組的正確語(yǔ)句是()。A.int*p=newa[10];Boint*p=newfloat[10];int*p=newint[10];D.int*p=newint[10]={1,2,3,4,5}TOC\o"1-5"\h\z下列給字符數(shù)組賦初值時(shí),正確的是( )oAochars1[]=”abcdef”; B.chars2[4]=”abcd";chars3[2][3]={“abc”,"xyz”}; D.chars4[4][]={‘a(chǎn)','x','s','t'};72o設(shè)有定義“staticintdata[5][6];”設(shè)該數(shù)組在靜態(tài)存儲(chǔ)區(qū)中的起始地址為十進(jìn)制的100,若每個(gè)int型數(shù)占4個(gè)字節(jié),則數(shù)組元素data[2][3]的地址為( ).Ao115 B.124 C.130 Do16073o假定變量m定義為“intm=7;”,則定義變量p的正確語(yǔ)句為()。Aointp=&m; B.int*p=&m; Coint&p=*m;Doint*p=m;假定k是一個(gè)double類(lèi)型的變量,則關(guān)于變量p的正確定義語(yǔ)句為()。A.doublep=&k; B.int*p=&k;C.double&p=*k; Dochar*p=”Thankyou!”;變量s的定義為“char*s=”Helloworld!”;”要使變量p指向s所指向的同一個(gè)字符串,則應(yīng)選?。ǎ﹐Aochar*p=s;Bochar*p=&s;C.char*p;p=*s;D.char*p;p=&s;76o關(guān)于void指針,下列說(shuō)法正確的是()oAovoid指針就是未指向任何數(shù)據(jù)的指針B.void指針就是已定義而未初始化的指針Co指向任何類(lèi)型數(shù)據(jù)的指針可直接賦值給一個(gè)void指針void指針值可直接賦給一個(gè)非void指針77.假定一條定義語(yǔ)句為“inta[10],x,*pa=a;",若要把數(shù)組a中下標(biāo)為3的元素值賦給x,則不正確的語(yǔ)句為()oA.x=pa[3]; Box=*(a+3); C.x=a[3]; Dox=*pa+3;78o假定有定義“intb[10];int大pb;”則不正確的賦值語(yǔ)句為()?A.pb=b; Bopb=&b[0];C.*pb=newint; Dopb=b[5];79o假定p是具有double類(lèi)型的指針變量,則表達(dá)式++p使p的值(以字節(jié)為單位)增加().A.1 B.4 C.sizeof(double) Dosizeof(p)80o假定p指向的字符串為”string",則cout〈〈p+3的輸出結(jié)果為( )。A.stringB.ring CoingDoiA.stringB.ring CoingDoi問(wèn)答題(每題10分)1.為什么稱(chēng)C++語(yǔ)言是混合型面向?qū)ο蟮恼Z(yǔ)言?2o下面是一個(gè)聯(lián)合的定義:ClassCU{union{intivalue;floatfvalue;}//};這是一個(gè)什么聯(lián)合的說(shuō)明?它說(shuō)明ivalue和fvalue具有什么關(guān)系?什么是C++的多態(tài)性?如何通過(guò)抽象形成“類(lèi)"的概念?類(lèi)的概念來(lái)自于什么過(guò)程?下面是類(lèi)C的定義:classC:publicA,privateB{private:intc;public:voidsetC(intx,inty){c=x;setB(y);}voidshowC(){showB();cout〈c<<endl;}};討論類(lèi)C屬于何種方式的繼承及其派生方法對(duì)訪問(wèn)基類(lèi)成員的影響.C++的流庫(kù)預(yù)定義了哪幾個(gè)流?與這幾個(gè)流所聯(lián)結(jié)的具體設(shè)備是什么?在使用C++時(shí),是否應(yīng)仍然保持C語(yǔ)言的習(xí)慣及思維方式?為什么?C++中有哪些機(jī)制可以實(shí)現(xiàn)命名常量?簡(jiǎn)述模板類(lèi)的動(dòng)態(tài)特征。10.簡(jiǎn)述靜態(tài)成員的特性,然后就作用域與全局變量進(jìn)行比較?用指針或引用調(diào)用虛函數(shù)與通過(guò)對(duì)象訪問(wèn)虛函數(shù)的區(qū)別是?12。 多重繼承的構(gòu)造順序一般可分為4步,下面給出這4個(gè)步驟:13。 在C++中,應(yīng)該使用什么語(yǔ)句來(lái)動(dòng)態(tài)分配和釋放內(nèi)存?下面的程序的正確的輸出結(jié)果是什么?#include〈iostream。h>#include<string.h>classbase{public:virtualchar*fun(void)const=0;};char*base::fun(void)const{return”base";}classderived1:virtualpublicbase{public:char*fun(void)const{return”derived1”;}};classderived2:virtualpublicbase{public:char*fun(void)const{return"derived2”;};classsubderived:publicderivedl,publicderived2{public:char*fun(void)const{char*pch;pch=newchar[strlen(derivedl::fun())+strlen(derived2::fun())+l];strcpy(pch,derivedl::fun());strcat(pch,derived2::fun());returnpch;}};voidmain(void){base*pb;pb=newderivedl;cout〈<pb—>fun()<<endl;pb=newderived2;cout〈〈pb->fun()<〈endl;pb=newsubderived;cout<<pb->fun()〈〈endl;}目前推薦的C++標(biāo)準(zhǔn)十分虛構(gòu)造函數(shù)?友元運(yùn)算符@obj會(huì)被C++編譯器解釋為什么?寫(xiě)出下面程序的運(yùn)行結(jié)果。#include<iostream。h>#include<iomanip.h〉voidprint(floata[],intcount,intwidth);voidmain(void){floatf[2]={1.0f,10。0f};cout<<"Defaultnumericformat:”〈<endl;print(f,2,10);cout〈〈"Settingios::showpoint:”〈〈endl;cout。setf(ios::showpoint);print(f,2,10);cout。unsetf(ios::showpoint);cout<〈”Settingios::scientific:"〈〈endl;cout。setf(ios::scientific);print(f,2,10);cout.unsetf(ios::scientific);}voidprint(floata[],intcount,intwidth){for(inti=0;i<count;i++){cout.width(width);cout<<a[i]<<endl;}}一個(gè)const對(duì)象是否能訪問(wèn)所有成員函數(shù)?私有與保護(hù)之間的區(qū)別是什么?20、 在C++中,封裝是借助于什么達(dá)到的?21、 C++可通過(guò)什么建立類(lèi)庫(kù)?22、 用于類(lèi)中虛成員函數(shù)說(shuō)明的關(guān)鍵字是什么?23、 完成下面的類(lèi)定義。ClassMyClass{public:MyClass(){x=0;} ① intGetNum( ② my);private:intx;};intGetNum( ② my){ returnmy。x;}24。在下面程序的橫線處填上適當(dāng)?shù)恼Z(yǔ)句,使類(lèi)型該程序執(zhí)行結(jié)果為10。#include<iostream。h>classMyClass{pub1ic: ① //為x置值 ② //取x值private:intx;};voidmain(){Myclassmy(10);Cout<〈my.GetNum()〈<end;}25。下面的類(lèi)中定義了一個(gè)關(guān)于星期的枚舉類(lèi)型,請(qǐng)完成下面的程序。ClassMyClass{public:enumWeek{Sun,Mon,Tue,Wed,Thu,Fri,Sat};Weekweek;}voidfun(MyClass&my){ ① = ② ; 〃將對(duì)象my的week賦值為所定義的枚舉類(lèi)型//值為3的枚舉量}26。下列程序?qū),y和z按從小到大的順序排列,在劃線處填入正確的內(nèi)容。Template〈classT>voidorder( ① ){ ② if(x〉y){a=x;x=y;y=a;}if(y〉z(mì)){a=y;y=z;z=a;}if(x〉y){a=x;x=y;y=a;}}27。什么是數(shù)據(jù)封裝?28什么叫做支配規(guī)則?29。為什么引入函數(shù)模板和類(lèi)模板?30?在使用C++時(shí),是否應(yīng)仍然保持C語(yǔ)言的習(xí)慣及思維方式?為什么?C++中有哪些機(jī)制可以實(shí)現(xiàn)命名常量?簡(jiǎn)述模板類(lèi)的動(dòng)態(tài)特征。簡(jiǎn)述靜態(tài)成員的特性,然后就作用域與全局變量進(jìn)行比較?用指針或引用調(diào)用虛函數(shù)與通過(guò)對(duì)象訪問(wèn)虛函數(shù)的區(qū)別是?仔細(xì)閱讀下面的程序,給出正確的輸出結(jié)果。#include〈iostream。h〉enumnote{middleA,middleB,middleC,middleD};classinstrument{public:voiddisplay(note)const{cout〈<"instrument::display"<〈endl;}};classpiano:publicinstrument{public:voiddisplay(note)const{cout〈〈”piano::display"〈<endl;}};classguitar:publicinstrument{public:voiddisplay(note)const{cout〈<”guitar::display"〈〈endl;}};voidtone(instrument&i){i.display(middleC);}voidmain(void){guitarguitar1;tone(guitar1);pianopiano1;tone(piano1);}仔細(xì)閱讀下面的程序,分析程序使用何種運(yùn)算符重載,它的用法可以與程序中的哪種構(gòu)造函數(shù)的用法做比較,并給出程序的輸出結(jié)果。#include<iostream.h〉classbase{intlength;intwidth;inthight;public:base(){length=width=hight=1;cout<<”Construcingbaseobjectdefault"〈<endl;base(int,int,int);base(base&);intsurface(void);intvolume(void);base&operator=(constbase&BB);};base::base(inta,intb,intc){length=a;width=b;hight=c;cout〈〈"Constructingbaseobjectbybase(。。.)!"vvendl;}base::base(base&B){length=B.length;width=B.width;hight=B。hight;cout〈〈"Constructingbaseobjectbybase(base&)!”<〈endl;}base&base::operator=(constbase&BB){length=BB.length;width=BB。width;hight=BB。hight;cout〈<”Constructingbaseobjectbyoperator”〈〈endl;return*this;}intbase::surface(void){return2*(length*width+length*hight+width*hight);}intbase::volume(void){returnlength*width*hight;}voidmain(void){baseA;cout〈<”cubeA:surface=”〈〈A.surface()〈<”volume=”〈<A.volume()<<endl;baseB(10,10,10);cout〈〈"cubeB:surface="<〈B。surface()<〈"volume="<<B.volume()〈〈endl;A=B;cout<<”cubeA(B):surface="<<A。surface()〈〈”volume="<〈A.volume()<〈endl;baseC(A);cout<〈”cubeC(A):surface="〈〈C.surface()<<”volume=”〈〈C。volume()<<endl;}閱讀程序,給出正確的輸出結(jié)果。#include〈iostream。h〉classbase{public:virtualintfun(void)const{cout〈<”base::fun"〈<endl;return10;}};classdivide:publicbase{public:intfun(void)const{cout〈〈"divide::fun"<〈endl;return20;}};voidmain(void){divided;base*b1=&d;base&b2=d;baseb3;b1-〉fun();b2。fun();b3.fun();}38。下面這個(gè)程序使用了靜態(tài)成員變量,仔細(xì)閱讀程序然后給出正確的輸出結(jié)果#include〈iostream.h>#include〈stdlib.h〉classroom{intwidth;intheight;intlength;public:room(int,int,int);intgetW(void)const{returnwidth;}intgetH(void)const{returnheight;}intgetL(void)const{returnlength;}intfloorarea(void){returnlength*width;}voiddisplay(void);room&operator+= (int);};room::room(intl=0,intw=0,inth=0){length=l;width=w;height=h;}voidroom::display(void){cout<〈”Theroom'slengthis:”<<length〈〈endl;cout<<”Theroom'swidthis:"<<width〈<endl;cout<<”Theroom'sheightis:"<〈height〈〈endl;}room&room::operator+= (inthh){height+=hh;return*this;}classbuilding{staticroomroomaray[5];staticintheightaray[5];building(){for(inti=1;i〈=5;i++){heightaray[i]+=i;}}voidaddheight(void);voidprint(void);};voidbuilding::addheight(void){for(inti=0;i〈5;i++){roomaray[i]+=i+1;}}voidbuilding::print(void){for(inti=0;i〈5;i++){cout<〈"The"〈〈i〈〈”throom'sinfomationsuchas:”〈<endl;roomaray[i]。display();}}intbuilding::heightaray[5]={0,0,0,0,0};roombuilding::roomaray[5]={room(10,4,3),room(10,4,3),room(10,4,3),room(10,4,3),room(10,4,3)};voidmain(void){buildingbd;bd。print();cout<〈”Doyouwanttoaddtherooms?(y/n)"〈〈endl;charch;cin>〉ch;if(ch=='y'){bd。addheight();bd.print();}elseif(ch=='n')exit(1);elseexit(1);}39。 下面這一程序是關(guān)于多重繼承時(shí)構(gòu)造函數(shù)的調(diào)用順序問(wèn)題,給出正確的輸出結(jié)果并說(shuō)明原因.#include<iostream。h〉classbase{public:intb;base(){b=0;}};classdivide1:virtualpublicbase{intb1;dividel(){b=10;}};classdivide2:virtualpublicbase{intb2;public:divide2(){b=20;}};classsubdivide:publicdivide1,publicdivide2{intd;};voidmain(void){subdivided;inti=d.b;cout<<i<〈endl;}注意下面程序中析構(gòu)函數(shù)的調(diào)用順序,假設(shè)該長(zhǎng)方體的長(zhǎng)寬高分別是10、6、8,仔細(xì)閱讀程序并給出正確的輸出結(jié)果。#includeviostream。h>classrectangle{intwidth,height;public:rectangle(intw=0,inth=0):width(w),height(h){}intgetwidth(void)const{returnwidth;}voidsetwidth(intw){width=w;}intgetheight(void)const{returnheight;}voidsetheight(inth){height=h;}intsurface(void){returnwidth*height;}?rectangle(void){cout〈〈"?rectangle"vvendl;}};classcuboid{rectangleside1,side2,side3;public:cuboid(rectangles1,rectangles2,rectangles3):side1(s1),side2(s2),side3(s3){}intgetsurface(void){return2*(side1.surface()+side2。surface()+side3.surface());}intgetvolume(void){inta[3];a[0]=side1.getwidth();a[1]=side1.getheight();a[2]=((side2。getwidth()==side3。getwidth())I|(side2。getwidth()=side3.getheight()))?(side2.getwidth()):(side2。getheight());returna[0]*a[1]*a[2];}voidprint(void)const{cout〈v”Thecuboid's3sidessuchas:”〈vendl;cout〈〈”sideI:"〈〈side1.getwidth()v〈”,"v〈side1。getheight()〈〈endl;cout〈v"sidell: "<〈side2.getwidth()vv","〈vside2。getheight()vvendl;cout〈<”sideIII:"〈〈side3。getwidth()<<","<〈side3.getheight()<〈endl;}~cuboid(void){cout〈〈"?cuboid"〈vendl;}};voidmain(void){coutv〈"pleaseinputlength,width,height:"〈〈endl;intl,w,h;cin〉>l〉>w>>h;rectangles1(l,w),s2(l,h),s3(w,h);cuboidcb(s1,s2,s3);cb。print();cout〈v"Surfaceis:"vvcb.getsurface()〈vendl;cout〈v"Volumeis: "〈vcb。getvolume()〈vendl;}分析下面的程序,說(shuō)明它演示的概念并給出輸出結(jié)果。#includeviostream。h〉classMemoryManage{public:MemoryManage(){cout〈〈"Allocatingmemory!:-)"vvendl;}~MemoryManage(){cout〈〈"Dellocatingmemory! :—("vvendl;}};voidmain(){cout〈〈"Iamsurethememoryisenoghifyouarenottoofat! :-0"v〈endl;MemoryManageMM;cout〈v"Whatdoyouthinkofourmemoryservice:-8"vvendl;}分析下面程序的作用及測(cè)試結(jié)果。#includeviostream。h〉classtest{private:inti;floatf;charch;public:test(){}test(inta,floatb,charc){i=a;f=b;ch=c;}friendostream&operator〈〈(ostream&stream,testobj);friendistream&operator〉〉(istream&t_stream,test&obj);};ostream&operatorv〈(ostream&stream,testobj){stream〈〈obj。i〈v",";stream〈vobj。fvv",";stream〈〈obj.ch<〈endl;returnstream;}istream&operator>〉(istream&t_stream,test&obj){cout〈<”Inputasifch:”;t_stream?obj。i;t_stream>〉obj.f;t_stream>〉obj。ch;returnt_stream;}voidmain(){testB(45,8.5,'W');cout〈〈B;testA;cin>>A;cout<〈A;}43。請(qǐng)寫(xiě)出程序的輸出#include〈iostream.h>classPoint{public:Point(inta){X=a;cout<〈Xvvendl;}Point(Point&p){X=p。X;cout〈vXv〈endl;}VoidSetx(inta){X=a;}?Point(){coutvvXv〈endl;}private:intX;}voidmain(){Pointp1(1),p2(p1);P2。Sex(2);Pointp3=p2;}#include〈iostream。h〉#include〈stdlib。h〉voidmain(){inta[8]={25,48,32,85,64,18,48,29};intmax,min;max=min=a[0];for(inti=0;i〈8;i++) {if(x>a[i])max=a[i];if(x〈a[i])min=a[i];}cout〈〈"max:”〈〈max〈〈endl;cout〈〈"min:”〈〈min〈〈endl;#include〈iostream.h>voidmain(){inta,b;for(a=1,b=2;b<50;){cout〈〈a〈<''〈〈b<〈'';a=a+b;b=a+b;}cout〈<endl;cout〈〈a〈〈' '<〈b〈〈''〈〈endl;}#include〈iostream.h〉constintM=3,N=4;voidmain(){inti,j,s=0;for(i=1;i〈=M;i++)for(j=1;j〈=N;j++)s+=i*j;cout〈〈”s=”〈〈s〈〈endl;}#include〈iostream。h〉voidmain(){inta=2,b=5,c=0;if(a+b〉10)c=a*b;elsec=3*a+b;if(c〈=20)cout〈〈c*c;elsecout〈〈4+c—5;cout〈〈endl;a=a+b;b=a+b;c+=a+b;cout〈〈"a,b,c=”〈〈a〈〈','〈〈b〈〈','〈〈c〈〈endl;}48.#include〈iomanip。h〉voidmain(){inti,j;for(i=0;i〈5;i++){for(j=i;j〈5;j++)cout〈〈'*';cout〈〈endl;}}#include〈iostream。h>voidmain(){for(inti=l,s=0;i〈20;i++) {if(i%2==0I|i%3==0)continue;cout〈〈i〈〈'';s+=i;}cout〈〈s〈〈endl;}#include〈iostream。h>voidmain(){inta,b,c=0;for(a=1;a〈4;a++)for(b=6;b〉1;b-=2){if((a+b)%2==0) c+=a+b;elsec+=a*b;if(b==2)cout〈〈a〈〈''〈〈b〈〈''〈〈c〈〈endl}}51。 #include〈iostream.h〉constintB=2;voidmain(){intp=1,s=1;while(s〈50){p*=B;s+=p;}cout〈〈"s="〈〈s〈〈endl;}#include〈iostream.h>voidmain(){intx=24,y=88;inti=2,p=1;do{while(x%i==0&&y%i==0) {p*=i;x/=i;y/=i;}i++;}while(x〉=i&&y〉=i);cout〈<p*x*y<<endl;53。 #include〈iomanip。h>constintN=3;voidmain(){inta[N][N]={{7,—5,3},{2,8,-6},{1,-4,—2}};intb[N][N]={{3,6,-9},{2,-8,3},{5,—2,—7}};inti,j,c[N][N];for(i=0;i〈N;i++) //計(jì)算矩陣Cfor(j=0;j<N;j++)c[i][j]=a[i][j]+b[i][j];for(i=0;i<N;i++) { //輸出矩陣Cfor(j=0;j〈N;j++)cout〈〈setw(5)〈〈c[i][j];cout〈〈endl;}}54。 #include〈iostream.h>inta=5;voidmain(){intb=a+20;inta=10;cout〈〈a〈〈''〈〈b〈〈endl;{inta=0,b=0;for(inti=1; i〈6; i++){a+=i;b+=a;}cout〈〈a〈〈''〈〈b〈〈endl;}cout〈〈a〈〈''〈〈b〈〈endl;}55。 #include〈iostream。h>intf1(intx,inty){x=x+y;y=x+y;cout〈〈"x="〈〈x〈〈",y=”〈〈y〈〈endl;returnx+y;}運(yùn)行結(jié)果:voidmain(){intx=5,y=8;intz=f1(x,y);cout〈<”x=”<<x<〈",y=”〈<ycout〈<",z=”<〈z〈<endl;}56。#include〈iostream.h56。voidf2(int&x,int&y){intz=x;x=y;y=z;}voidf3(int*x,int*y){intz=*x;*x=*y;*y=z;}voidmain()intx=10,y=26;cout〈<"x,y="〈〈x<<”,"<<y〈<endl;f2(x,y);cout<〈”x,y="〈<x<<",”<<y<<endl;f3(&x,&y);cout<〈"x,y=”<〈x<〈","<<y<<endl;x++;y-—;f2(y,x);cout<〈"x,y=”〈〈x〈〈”,”<〈y〈<endl#include〈iostream.h>voidf4(inta[],intn,int&s){s=0;for(inti=0;i〈n;i++)s+=a[i];}voidmain(){intb[8]={4,&6,9,2,10,7,12};intx;f4(b,5,x);cout<<x<<'';inty;f4(b+3,4,y);cout<<y〈<'';cout<<x+y〈〈endl;}#include〈iostream.h〉

voidmain(){inta[8]={36,25,48,14,55,40,50,24};intb1,b2;b1=b2=a[0];for(inti=1;i〈8;i++)if(a[i]>b1){b2=b1;b1=a[i];}elseif(a[i]〉b2)b2=a[i];cout〈<b1<<''〈〈b2<<endl;}59。 #include〈iostream。h〉voidmain(){chara[]="abcdabcabfgacd";inti1=0, i2=0,i=0;while(a[i]){if(a[i]=='a')i1++;if(a[i]=='b')i2++;i++;}cout〈〈i1〈〈''〈〈i2〈〈''〈〈i〈〈endl;}運(yùn)行結(jié)果:4314#include〈iostream。h>voidmain(){inta[10]={76,83,54,62,40,75,90,92,77,84}intb[4]={60,70,90,101};intc[4]={0};for(inti=0;i〈10;i++){intj=0;while(a[i]>=b[j])j++;c[j]++;}}61.for(i=0;i〈4;i++)cout〈〈c[i]〈cout〈〈}61.#include<iostream。h〉#include〈string。h>voidmain(){chara[5][10]={"student”,”worker”,"soldier",”cadre","peasant"};chars1[10],s2[10];strcpy(s1,a[0]);strcpy(s2,a[0]);for(inti=1;i〈5;i++){if(strcmp(a[i],s1)〉0)strcpy(s1,a[i]);if(strcmp(a[i],s2)〈0)strcpy(s2,a[i]);cout<〈s1<〈''<〈s2〈<endl}建立普通的基類(lèi)Building,用來(lái)存儲(chǔ)一座樓房的層數(shù)、房間數(shù)以及它的總平方米數(shù)。建立派生類(lèi)House,繼承Building,并存儲(chǔ)下面的內(nèi)容:臥室與浴室的數(shù)量。另外,建立派生類(lèi)office,繼承Building,并存儲(chǔ)滅火器與電話的數(shù)目.設(shè)計(jì)一個(gè)程序,按照如下格式顯示文本。例如,要求顯示文本C++和ProgrammingLanguage時(shí),屏幕輸出如下:C++***ProgrammingLanguane********************64.大學(xué)里有這樣幾類(lèi)人員:學(xué)生、教師、職員和在職讀書(shū)的教師.給出這幾類(lèi)人員的類(lèi)描述。答案《C++程序設(shè)計(jì)》一、判斷題(錯(cuò)誤的在后面寫(xiě)“F”,正確的寫(xiě)“T”,每題1分)程序是描述算法的編程工具。T將函數(shù)模板與某個(gè)具體數(shù)據(jù)類(lèi)型連用,就產(chǎn)生了模板函數(shù),稱(chēng)這個(gè)過(guò)程為函數(shù)TOC\o"1-5"\h\z模板實(shí)例化. TC++語(yǔ)言中,用來(lái)為對(duì)象初始化的特殊成員函數(shù)稱(chēng)為構(gòu)造函數(shù);用于在對(duì)象撤銷(xiāo)時(shí)執(zhí)行一些清理任務(wù)的特殊成員函數(shù)稱(chēng)為析構(gòu)函數(shù)。 T逐條翻譯并執(zhí)行的翻譯程序稱(chēng)為編譯程序. F把所有類(lèi)組織在一個(gè)樹(shù)形結(jié)構(gòu)中,這時(shí)所有類(lèi),不管它們之間的差別有多大,都有一個(gè)共同的相關(guān)類(lèi),這種結(jié)構(gòu)被稱(chēng)為類(lèi)樹(shù).類(lèi)群是由一些彼此密切相關(guān)的類(lèi)和類(lèi)族組成的。F如果在定義一個(gè)類(lèi)時(shí),該類(lèi)繼承了多個(gè)基類(lèi)的特征,那么這個(gè)繼承關(guān)系稱(chēng)為多TOC\o"1-5"\h\z重繼承。 T不同對(duì)象可以調(diào)用相同名稱(chēng)的函數(shù),并可導(dǎo)致完全相同的行為的現(xiàn)象稱(chēng)為多態(tài)性。 F形式參數(shù)表是用括號(hào)分隔的變量說(shuō)明列表,變量稱(chēng)為函數(shù)的形式參數(shù),有時(shí)也簡(jiǎn)稱(chēng)為形參。 F9?.在C++語(yǔ)言中,只要在聲明函數(shù)原型時(shí)形式參數(shù)的個(gè)數(shù)或者對(duì)應(yīng)的類(lèi)型不同,兩個(gè)或更多的函數(shù)就可以共用同一個(gè)名字。這種在同一作用域中允許多個(gè)函數(shù)使用同一函數(shù)名的措施被稱(chēng)為重載. TC++的作用域分辨:可以迫使編譯器“看到”當(dāng)前作用域的外層部分,存取那些被隱藏的名字。這是由作用域分辨操作符實(shí)現(xiàn)的,這一過(guò)程叫做作用域分辨.T11.說(shuō)明函數(shù)原型時(shí)不需要指明每個(gè)函數(shù)參數(shù)的名字,只需要說(shuō)明每個(gè)參數(shù)的類(lèi)型和返回值類(lèi)型就可以了。T12.所有的表達(dá)式都有值。F13.程序的編譯是以文件為單位的,因此將程序分到多個(gè)文件中可以減少每次對(duì)程序修改所帶來(lái)的編譯工作量。T類(lèi)的靜態(tài)數(shù)據(jù)成員需要在定義每個(gè)類(lèi)的對(duì)象時(shí)進(jìn)行初始化。F基類(lèi)中被說(shuō)明為protected和private的成員只能被其派生類(lèi)的成員函數(shù)訪問(wèn),不能被其它的函數(shù)訪問(wèn).F當(dāng)將一個(gè)類(lèi)S定義為另一個(gè)類(lèi)A的友元類(lèi)時(shí),類(lèi)S的所有成員函數(shù)都可以直接訪問(wèn)類(lèi)A的所有成員。T當(dāng)函數(shù)的返回值是數(shù)組類(lèi)型的,傳遞的是數(shù)組第一個(gè)元素的地址。F如果派生類(lèi)的成員函數(shù)的原型與基類(lèi)中被定義為虛函數(shù)的成員函數(shù)原型相同,那么,這個(gè)函數(shù)自動(dòng)繼承基類(lèi)中虛函數(shù)的特性。T字符串'hello,wor在內(nèi)存中存放時(shí),占用11個(gè)字節(jié)的空間。F用new動(dòng)態(tài)申請(qǐng)的內(nèi)存空間,必須用delete來(lái)釋放。T變量必須先定義或說(shuō)明,后使用。T23、常量不能作為左值使用。T23、 頭文件中一般存放著變量和常量的定義、函數(shù)的原型以及類(lèi)的定義。F24、 類(lèi)的友元函數(shù)可以直接訪問(wèn)該類(lèi)的所有成員。T25、 派生類(lèi)的成員函數(shù)可以直接訪問(wèn)基類(lèi)的所有成員。F26、 一個(gè)類(lèi)可以作為另一個(gè)類(lèi)的友元類(lèi)。T27、 函數(shù)的參數(shù)和返回值類(lèi)型可以是簡(jiǎn)單數(shù)據(jù)類(lèi)型,也可以是指什、引用、數(shù)組和類(lèi)。F28、 在基類(lèi)中被說(shuō)明為虛函數(shù)的類(lèi)的成員函數(shù)必須在每個(gè)派生類(lèi)中說(shuō)明為虛函數(shù),才能具有多態(tài)的特征.F29、 下面兩個(gè)語(yǔ)句是等價(jià)的:Fcharstr[]=”hello,world";charstr[11]=”hello,world";30、用new動(dòng)態(tài)申請(qǐng)的內(nèi)存是在堆中分配的,而不是在棧中分配的.TOC\o"1-5"\h\z靜態(tài)聯(lián)編所支持的多態(tài)性稱(chēng)為編譯時(shí)的多態(tài)性。 T如果一個(gè)類(lèi)中至少有一個(gè)實(shí)函數(shù),則稱(chēng)這個(gè)類(lèi)為抽象類(lèi)。 F用于在對(duì)象消失時(shí)執(zhí)行一些清理任務(wù)的函數(shù)叫虛函數(shù). F34。 C++源程序文件的缺省擴(kuò)展名為cpp T35。 由C++源程序文件編譯而成的目標(biāo)文件的缺省擴(kuò)展名為lik F36。 由C++目標(biāo)文件連接而成的可執(zhí)行文件的缺省擴(kuò)展名為obj F37。 編寫(xiě)C++程序一般需經(jīng)過(guò)的幾個(gè)步驟依次是編輯、編譯、連接、調(diào)試 T38。 標(biāo)識(shí)符defaultthen while全是保留字 F39。 能作為C++程序的基本單位是語(yǔ)句 T40。 程序中主函數(shù)的名字為任意標(biāo)識(shí)符 F二、填空題(每題3分)1。假定x=5,y=6,則執(zhí)行表達(dá)式y(tǒng)+二x計(jì)算后,x和y的值分別為 和4112。 C++常數(shù)0x145對(duì)應(yīng)的十進(jìn)制值為 .3253。 C++常數(shù)0345對(duì)應(yīng)的十進(jìn)制值為 。2294。 十進(jìn)制常數(shù)245對(duì)應(yīng)的十六進(jìn)制的C++表示為 。0xF5(F大小寫(xiě)均可)5。 十進(jìn)制常數(shù)245對(duì)應(yīng)的八進(jìn)制的C++表示為 。0365(F大小寫(xiě)均可)6。 signedchar類(lèi)型的值域范圍是 至 之間的整數(shù)。—128+1277.int和float類(lèi)型的數(shù)據(jù)分別占用44__和 ___個(gè)字節(jié)。8。float和double類(lèi)型的數(shù)據(jù)分別占用48 和__ 個(gè)字節(jié).9。bool和char類(lèi)型的數(shù)據(jù)分別占用___和 __個(gè)字節(jié).TOC\o"1-5"\h\z11unsignedshortint和int類(lèi)型的長(zhǎng)度分別為 和 。24字符串、'This\'sabook。\n"的長(zhǎng)度為 .15字符串“\nThis\'sapen\n\n”的長(zhǎng)度為 .15在C++中存儲(chǔ)字符串“abcdef”至少需要 個(gè)字節(jié).7在C++中存儲(chǔ)字符串“a+b=c〃至少需要 個(gè)字節(jié)。6假定x和y為整型,其值分別為16和5,則x%y和x/y的值分別為 和 13若while循環(huán)的“頭"為”while(i++〈=10)",并且i的初值為0,同時(shí)在循環(huán)體中不會(huì)修改i的值,則循環(huán)體將被重復(fù)執(zhí)行 次后正常結(jié)束。11若do循環(huán)的“尾”為〃while(++i〈10)〃,并且i的初值為0,同時(shí)在循環(huán)體中不會(huì)修改i的值,則循環(huán)體將被重復(fù)執(zhí)行 次后正常結(jié)束.10當(dāng)在程序中執(zhí)行到 語(yǔ)句時(shí),將結(jié)束本層循環(huán)類(lèi)語(yǔ)句或switch語(yǔ)句的執(zhí)行。break當(dāng)在程序中執(zhí)行到 語(yǔ)句時(shí),將結(jié)束所在循環(huán)語(yǔ)句中循環(huán)體的一次執(zhí)行。continue在程序中執(zhí)行到 語(yǔ)句時(shí),將結(jié)束所在函數(shù)的執(zhí)行過(guò)程,返回到調(diào)用該函數(shù)的位置。return在程序執(zhí)行完 函數(shù)調(diào)用后,將結(jié)束整個(gè)程序的執(zhí)行過(guò)程,返回到C++集成開(kāi)發(fā)窗口。主(或main)元素類(lèi)型為int的數(shù)組a[10]共占用 字節(jié)的存儲(chǔ)空間。40元素類(lèi)型為double的二維數(shù)組a[4][6]共占用 字節(jié)的存儲(chǔ)空間。192元素類(lèi)型為char的二維數(shù)組a[10][30]共占用 字節(jié)的存儲(chǔ)空間。300存儲(chǔ)字符'a'和字符串〃a"分別需要占用 和 個(gè)字節(jié)。12空串的長(zhǎng)度為 ,存儲(chǔ)它需要占用 個(gè)字節(jié)。01TOC\o"1-5"\h\z字符串”\'a\'xy=4\n〃的長(zhǎng)度為 。7字符串”a:\\xxk\\數(shù)據(jù)〃的長(zhǎng)度為 。11用于存儲(chǔ)一個(gè)長(zhǎng)度為n的字符串的字符數(shù)組的長(zhǎng)度至少為 。n+1若a是一個(gè)字符數(shù)組,則從鍵盤(pán)上向該數(shù)組輸入一個(gè)字符串的表達(dá)式―.cin〉>aC++是將源程序 ,然后再執(zhí)行,這種翻譯程序稱(chēng)為編譯程序。一次翻譯成目標(biāo)程序聯(lián)合的若干數(shù)據(jù)成員使用地址 ,占據(jù)的內(nèi)存是聯(lián)合中占內(nèi)存最大的數(shù)據(jù)成員所占用的內(nèi)存。同一作用域分辨操作符的一般形式為類(lèi)名::類(lèi)標(biāo)識(shí)符,作用域分辨不僅可用于類(lèi)中,而且可以用在 時(shí)。函數(shù)調(diào)用將關(guān)鍵詞const寫(xiě)在 之后, , 之前,說(shuō)明該函數(shù)是一個(gè)const成員函數(shù).函數(shù)頭 函數(shù)體C++是在 的基礎(chǔ)上,引入面向?qū)ο蟾拍疃鴶U(kuò)充形成的 混合型面向?qū)ο笳Z(yǔ)言。標(biāo)準(zhǔn)C語(yǔ)言36。在動(dòng)態(tài)聯(lián)編中,直到 時(shí)才能確定調(diào)用哪個(gè)函數(shù)。靜態(tài)聯(lián)編是在程序編譯時(shí)進(jìn)行的。程序運(yùn)行37.類(lèi)型轉(zhuǎn)換函數(shù)個(gè)轉(zhuǎn)換函數(shù)。 帶有參數(shù),當(dāng)被派生類(lèi)繼承并被說(shuō)明為 不能 虛函數(shù)__時(shí),可以定義多38.繼承是 _ 的一個(gè)特點(diǎn),繼承支持__ 類(lèi)概念。對(duì)象 層次39.C++的__規(guī)則能保證編譯器調(diào)用正確的成員函數(shù)。作用域40。在C++中,聲明構(gòu)造函數(shù)和析構(gòu)函數(shù)時(shí),__使用const或volatile關(guā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)論