C++程序設(shè)計(jì)基礎(chǔ)考試題庫(kù)(含答案)_第1頁(yè)
C++程序設(shè)計(jì)基礎(chǔ)考試題庫(kù)(含答案)_第2頁(yè)
C++程序設(shè)計(jì)基礎(chǔ)考試題庫(kù)(含答案)_第3頁(yè)
C++程序設(shè)計(jì)基礎(chǔ)考試題庫(kù)(含答案)_第4頁(yè)
C++程序設(shè)計(jì)基礎(chǔ)考試題庫(kù)(含答案)_第5頁(yè)
已閱讀5頁(yè),還剩232頁(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)介

PAGEPAGE237C++程序設(shè)計(jì)基礎(chǔ)考試題庫(kù)(含答案)一、單選題1.設(shè)存在整型變量intx,則下列句與其它三項(xiàng)含義不同的是()A、int*p=&x;B、int&p=x;C、int&p=x;D、int&p=x;答案:A解析:A選項(xiàng)是定義指針變量p。故含義不同。BCD選項(xiàng)是聲明p是x的引用,p和x的地址相同,不是定義,不需要為a分配內(nèi)存。2.下列哪個(gè)不是函數(shù)重載需要滿足的條件()A、返回值類型不同B、參數(shù)個(gè)數(shù)不同C、參數(shù)個(gè)數(shù)相同時(shí),參數(shù)類型不同D、函數(shù)名相同答案:A解析:

函數(shù)重載,是指在程序的同一范圍內(nèi)聲明幾個(gè)功能類似的同名函數(shù)。

在調(diào)用同名函數(shù)時(shí),實(shí)現(xiàn)函數(shù)的重載必須滿足下列條件之一:

(1)參數(shù)表中對(duì)應(yīng)的參數(shù)類型不同。

(2)參數(shù)表中參數(shù)個(gè)數(shù)不同。

如果兩個(gè)函數(shù)的名字和參數(shù)表都是一樣的,僅僅是返回值類型不同,則這兩個(gè)函數(shù)不是重載的,編譯器認(rèn)為它們是重復(fù)定義,編譯時(shí)會(huì)報(bào)錯(cuò)。故本題選A。3.設(shè)存在函數(shù)intmax(int,int)返回兩參數(shù)中較大值,若求22,59,70三者中最大值,下列表達(dá)式不正確的是()A、intm=max(22,max(59,70));B、intm=max(max(22,59),70);C、intm=max(22,59,70);D、intm=max(59,max(22,70));答案:C解析:函數(shù)參數(shù)的使用應(yīng)與聲明中類型與個(gè)數(shù)保持一致。函數(shù)形參只有兩個(gè)參數(shù),C選項(xiàng)傳遞了3個(gè)參數(shù)。4.C++中函數(shù)返回值類型不可以是()A、引用B、指針C、結(jié)構(gòu)D、數(shù)組答案:D解析:返回值類型就是這個(gè)成員函數(shù)返回值的類型。C++函數(shù)的返回值類型可以是除數(shù)組和函數(shù)以外的任何類型。故不可以是D。5.在下面的二維數(shù)定義正確的是()A、intary[5][];B、intary[][5]={{0,1,2}};C、intary[][5];D、intary[5,5];答案:B解析:定義二維數(shù)在什么情況下也不能省略第二維,所以選項(xiàng)A錯(cuò)誤。在沒(méi)有初始化的情況下省略第一維是非法的,所以選項(xiàng)C錯(cuò)誤。選項(xiàng)D格式錯(cuò)誤。選項(xiàng)B省略的第一維的值為1,合法。6.考慮函數(shù)原型intfun1(floatx,chary="$",inta=9,charb=""),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是()A、fun1(3.14)B、fun1(3.14,"#")C、fun1(3.14,"$","")D、fun1(3.14,"#",7,"")答案:C解析:在C++語(yǔ)言中,可以在聲明函數(shù)時(shí)為形參指定默認(rèn)值。當(dāng)調(diào)用有默認(rèn)參數(shù)值的函數(shù)時(shí),調(diào)用語(yǔ)句中可以不給出對(duì)應(yīng)的實(shí)參,這就相當(dāng)于調(diào)用該函數(shù)時(shí)以默認(rèn)值作為參數(shù)。調(diào)用函數(shù)時(shí),主調(diào)函數(shù)的實(shí)參與被調(diào)函數(shù)的形參按從左至右的順序進(jìn)行匹配對(duì)應(yīng)。C選項(xiàng)中,實(shí)參的個(gè)數(shù)是3少于形參的個(gè)數(shù)4,故函數(shù)原型形參表中最前面的3個(gè)形參與3個(gè)實(shí)參相對(duì)應(yīng),即把字符型實(shí)參賦值給int型形參a,會(huì)產(chǎn)生編譯錯(cuò)誤。選C。同理,ABD是正確的。7.C++語(yǔ)言是從早期的C語(yǔ)言逐漸發(fā)展演變而來(lái)的,與C語(yǔ)言相比,C++在求解問(wèn)題方法上進(jìn)行的最大改進(jìn)是()A、面向過(guò)程B、面向?qū)ο驝、安全性D、復(fù)用性答案:B解析:C++語(yǔ)言是一種編譯式的、通用的、大小寫敏感的編程語(yǔ)言,完全支持面向?qū)ο蟮拈_(kāi)發(fā)模式。

C++語(yǔ)言的主要特點(diǎn):

(1)它是C語(yǔ)言的繼承,盡量兼容C語(yǔ)言。

(2)加入了面向?qū)ο蟮奶卣?,可以進(jìn)行以抽象數(shù)據(jù)類型為特點(diǎn)的基于對(duì)象的程序設(shè)計(jì),還可以進(jìn)行以繼承和多態(tài)為特點(diǎn)的面向?qū)ο蟮某绦蛟O(shè)計(jì)。

故與C語(yǔ)言相比,C++語(yǔ)言的最大改進(jìn)是面向?qū)ο螅xB。8.下列字符常量的寫法中,錯(cuò)誤的是()A、′\t′B、“B”C、‘*’D、‘a(chǎn)’答案:B解析:字符常量:用單引號(hào)括起來(lái)的單個(gè)字符或轉(zhuǎn)義字符。字符串常量:用雙引號(hào)括起來(lái)。選項(xiàng)B是字符串常量。9.設(shè)存在函數(shù)intmax(int,int)返回兩參數(shù)中較大值,若求22,59,70三者中最大值,下列表達(dá)式正確的是()A、intm=max(22,max(59,70));B、intm=max(max(22,59),max(59,70));C、intm=max(max(22,70),59);D、以上皆正確答案:D解析:ABC選項(xiàng)都正確,都可求出三者中的最大值。函數(shù)max只有兩個(gè)參數(shù),因此傳遞的實(shí)參也只能有兩個(gè)。10.面向?qū)ο笾械摹皩?duì)象”是指()A、行為抽象B、數(shù)據(jù)抽象C、行為抽象和數(shù)據(jù)抽象的統(tǒng)一D、行為抽象和數(shù)據(jù)抽象的對(duì)立答案:C解析:結(jié)構(gòu)化程序設(shè)計(jì)使用的是功能抽象,面向?qū)ο蟪绦蛟O(shè)計(jì)不僅能進(jìn)行功能抽象,而且能進(jìn)行數(shù)據(jù)抽象?!皩?duì)象”實(shí)際上是功能抽象(行為抽象)和數(shù)據(jù)抽象的統(tǒng)一。11.C++中定義標(biāo)準(zhǔn)輸入輸出的庫(kù)為()A、stdioB、mathC、iostreamD、stdlib答案:C解析:標(biāo)準(zhǔn)輸入輸出流:<iostream>。

標(biāo)準(zhǔn)文件流:<fstream>。

標(biāo)準(zhǔn)字符串處理函數(shù):<string>。

標(biāo)準(zhǔn)數(shù)學(xué)函數(shù):<cmath>。故本題選C。12.假定a為一個(gè)整型數(shù)組名,則元素a[4]的字節(jié)地址為()A、a+4B、a+8C、a+16D、a+32答案:C解析:a是數(shù)組,a數(shù)組的地址也就是數(shù)組中第一個(gè)元素的地址為a[0],如果想算a[i]的地址套下面的公式:a[0]+i*d,其中d為該數(shù)組類型所占的字節(jié)數(shù),C++中,d是4個(gè)字節(jié)。所以a[4]=a[0]+4*4=a+16。13.設(shè)函數(shù)int&index(int*a,inti)返回?cái)?shù)組a中下標(biāo)為i的元素,如存在整型數(shù)組intArray[]={1,2,3},在執(zhí)行index(Array,2)++后,Array中各元素值為()A、{0,1,2}B、{1,1,2}C、{1,2,4}D、{0,2,3}答案:C解析:數(shù)組的下標(biāo)從0開(kāi)始。函數(shù)int&index(int*a,inti)返回?cái)?shù)組a中下標(biāo)為i的元素,故index(Array,2)表示數(shù)組array中下標(biāo)為2的元素,即array[2]=3。執(zhí)行index(Array,2)++,即array[2]=array[2]+1=4,故array[2]的4替換了3,最終Array={1,2,4}。14.在編譯指令中,嵌入指令是指()A、#includeB、#defineC、#ifD、#else答案:A解析:嵌入指令#include指示編譯器將一個(gè)源文件嵌入到帶有#include指令的源文件中該指令所在的位置處。故本題選A。15.要求指針p既不可以修改其本身的內(nèi)容,也不可修改其所指向地址的內(nèi)容,定義正確的是()A、constchar*p=“ABCD”;B、char*constp="ABCD";C、charconst*p="ABCD";D、constchar*constp="ABCD";答案:D解析:C++語(yǔ)言也可以使用const限定訪問(wèn)權(quán)限,const修飾指針變量時(shí),基本含義如下:

1)如果唯一的const位于符號(hào)*的左側(cè),表示指針?biāo)笖?shù)據(jù)是常量,數(shù)據(jù)不能通過(guò)本指針改變,但可以通過(guò)其他方式進(jìn)行修改;指針本身是變量,可以指向其他的內(nèi)存單元。

2)如果唯一的const位于符號(hào)*的右側(cè),表示指針本身是常量,不能讓該指針指向其他內(nèi)存地址;指針?biāo)傅臄?shù)據(jù)可以通過(guò)本指針進(jìn)行修改。

3)在符號(hào)*的左右各有一個(gè)const時(shí),表示指針和指針?biāo)笖?shù)據(jù)都是常量,既不能讓指針指向其他地址,也不能通過(guò)指針修改所指向的內(nèi)容。故本題選D。16.下列關(guān)于類的權(quán)限的描述錯(cuò)誤的是()A、類本身的成員函數(shù)只能訪問(wèn)自身的私有成員B、類的對(duì)象只能訪問(wèn)該類的公有成員C、普通函數(shù)不能直接訪問(wèn)類的公有成員,必須通過(guò)對(duì)象訪問(wèn)D、一個(gè)類可以將另一個(gè)類的對(duì)象作為成員答案:A解析:聲明為私有的成員變量?jī)H能在類內(nèi)的成員函數(shù)中被訪問(wèn),在類外是不可訪問(wèn)的。但反過(guò)來(lái)說(shuō)不成立。故A錯(cuò)誤。部分成員函數(shù)聲明為公有的,用于提供外界和這個(gè)類的對(duì)象相互作用的接口,從而使得其他函數(shù)也可以訪問(wèn)和處理該類的對(duì)象。即類的對(duì)象可以訪問(wèn)該類的公有成員。故BCD正確。17.對(duì)函數(shù)intmax(inta,intb=0,intc=0,intd=0,inte=0);下列調(diào)用方式正確的是()A、intm=max(10,11,12,13,14);B、intm=max(10,,12,13,14);C、intm=max(10,11,,13,14);D、intm=max(10,11,12,,14);答案:A解析:調(diào)用函數(shù)時(shí),主調(diào)函數(shù)的實(shí)參與被調(diào)函數(shù)的形參按從左至右的順序進(jìn)行匹配對(duì)應(yīng)??傊?,定義函數(shù)時(shí),只能為函數(shù)最后面的連續(xù)若干個(gè)參數(shù)設(shè)置默認(rèn)值,且在調(diào)用處也只能缺省后面的連續(xù)若干個(gè)實(shí)參。BCD選項(xiàng)中的默認(rèn)值都不是放在最后的連續(xù)參數(shù),故都錯(cuò)誤。18.函數(shù)默認(rèn)參數(shù)在函數(shù)原型中說(shuō)明,默認(rèn)參數(shù)必須放在參數(shù)序列的()A、前部B、中部C、后部D、兩端答案:C解析:定義函數(shù)時(shí),只能為函數(shù)最后面的連續(xù)若干個(gè)參數(shù)設(shè)置默認(rèn)值,且在調(diào)用處也只能缺省后面的連續(xù)若干個(gè)實(shí)參。即默認(rèn)參數(shù)必須在參數(shù)序列的后部。19.若有以下類型標(biāo)識(shí)符定義:intx=2;charw='a';floaty=23.45f;doublez=45.6789;則表達(dá)式w*x+y-z的結(jié)果類型是()A、floatB、charC、intD、double答案:D解析:當(dāng)不同類型的量進(jìn)行混合算術(shù)運(yùn)算時(shí),系統(tǒng)自動(dòng)進(jìn)行合理的類型轉(zhuǎn)換。編譯器就會(huì)自動(dòng)把低級(jí)類型向高級(jí)類型轉(zhuǎn)換。數(shù)據(jù)類型級(jí)別由低到高分別為:char→int→float→double。轉(zhuǎn)換時(shí)由低級(jí)別向高級(jí)別轉(zhuǎn)換。會(huì)自動(dòng)提升為參與表達(dá)式求值的最上級(jí)類型double。故本題選D。使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:static_cast或const_cast。20.一個(gè)函數(shù)的功能不太復(fù)雜,但要求被頻繁調(diào)用,選用最適合的是()A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸函數(shù)D、嵌套函數(shù)答案:A解析:對(duì)于只有很少幾條語(yǔ)句的函數(shù),特別是頻繁調(diào)用時(shí),函數(shù)調(diào)用導(dǎo)致的額外時(shí)間開(kāi)銷可能會(huì)使程序運(yùn)行明顯變慢。為了避免這種頻繁的函數(shù)調(diào)用與返回,C++語(yǔ)言引入了內(nèi)聯(lián)函數(shù)的概念。故本題選A。注意:內(nèi)聯(lián)函數(shù)一般來(lái)說(shuō)僅適用于只有幾條語(yǔ)句的小函數(shù)。21.假定有char*P="Hello";,要輸出這個(gè)字符串的地址值的正確寫法是()A、cout<<*PB、cout<<PC、cout<<&PD、cout<<(void*)P答案:D解析:char*是聲明一個(gè)字符類型的指針。這個(gè)指針指向的地址上只能存放字符類型的值。

由于C++標(biāo)準(zhǔn)庫(kù)中I/O類對(duì)<<操作符重載,因此在遇到字符型指針時(shí),會(huì)將其當(dāng)作字符串名來(lái)處理,輸出指針?biāo)傅淖址<热贿@樣,那么我們就別讓它知道那是字符型指針,所以得用到強(qiáng)制類型轉(zhuǎn)換,把char的指針轉(zhuǎn)換為無(wú)返回值指針類型,即cout<<(void*)P,故選D。

A輸出的是H;B輸出的是hello;C輸出的是指針的地址。22.內(nèi)聯(lián)函數(shù)的特點(diǎn)是()A、減少代碼量,加快訪問(wèn)速度B、減少代碼量,減緩訪問(wèn)速度C、增加代碼量,減緩訪問(wèn)速度D、增加代碼量,加快訪問(wèn)速度答案:D解析:為了避免這種頻繁的函數(shù)調(diào)用與返回,加快執(zhí)行速度,C++語(yǔ)言引入了內(nèi)聯(lián)函數(shù)的概念。使用內(nèi)聯(lián)函數(shù),編譯器在編譯時(shí)并不生成函數(shù)調(diào)用,而是將程序中出現(xiàn)的每一個(gè)內(nèi)聯(lián)函數(shù)的調(diào)用表達(dá)式直接用該內(nèi)聯(lián)函數(shù)的函數(shù)體進(jìn)行替換,就像整個(gè)函數(shù)體在調(diào)用處被重寫了一遍一樣。很顯然,使用內(nèi)聯(lián)函數(shù)會(huì)使最終可執(zhí)行程序的體積增大。故綜上,內(nèi)聯(lián)函數(shù)增加代碼量,加快訪問(wèn)速度。23.函數(shù)intsum(inta=1,intb=1,intc=3)可與下列哪個(gè)函數(shù)同時(shí)聲明()A、doublesum(int);B、charsum(int,int);C、intsum(double);D、intsum(int,int,int);答案:C解析:函數(shù)重載,區(qū)別是參數(shù)類型不同,參數(shù)個(gè)數(shù)不同。sum(inta=1,intb=1,intc=3)包含了sum(int,int,int),sum(int,int),sum(int),sum()這四種情況,而根據(jù)一個(gè)函數(shù)的返回值是無(wú)法得知要調(diào)用哪個(gè)函數(shù)的,只能根據(jù)參數(shù)來(lái)決定,所以這道題跟返回值沒(méi)關(guān)系。故ABD都錯(cuò),選C。24.使用下列哪一限定符可強(qiáng)制改變?cè)L問(wèn)方式()A、constB、shortC、longD、signed答案:A解析:與C語(yǔ)言一樣,C++語(yǔ)言也可以使用const限定訪問(wèn)權(quán)限,告訴編譯器,它所修飾的量是不能改變的,也就是不能作為左值使用。故const可強(qiáng)制改變?cè)L問(wèn)方式。25.下列變量命名中,非法的是()A、A**LONGB、MyCarC、my_carD、a48答案:A解析:C++中變量命名規(guī)則和標(biāo)識(shí)符命名規(guī)則一樣:只能由大小寫字母、下劃線和數(shù)字組成,且數(shù)字不能開(kāi)頭。故A錯(cuò)。26.以下能正確定義數(shù)組并正確賦初值的語(yǔ)句是()A、intN=5,b[N][N];B、inta[2]={{1},{3},{4},{5}};C、intc[2][]={{1,2},{3,4}};D、intd[3][2]={{1,2},{3,4}};答案:D解析:A選項(xiàng)數(shù)組長(zhǎng)度不能使用變量。B選項(xiàng)初始化列表與數(shù)組長(zhǎng)度不符。C選項(xiàng)中數(shù)組列長(zhǎng)度不能省略。故只有D正確。27.有以下程序段,其輸出結(jié)果是()#include<iostream>usingnamespacestd;voidmain(){charb[]='Hello,you';b[5]='!';cout<<b<<endl;}A、Hello,youB、HelloC、Hello!youD、!答案:C解析:數(shù)組b用來(lái)存放'Hello,you'中的每個(gè)個(gè)字符,下標(biāo)從0開(kāi)始。數(shù)組b開(kāi)始存放的是字符串“Hello,you”,原來(lái)b[5]=',',執(zhí)行b[5]='!'后,數(shù)組b存放的是字符串變成“Hello!you”,所以輸出Hello!you。選C。28.調(diào)用聲明為intresult(inta,intb)的函數(shù)時(shí),正確的方法是()A、result(1,2)B、result(1)C、result(0.1,0.3)D、result(1,2,3)答案:A解析:函數(shù)的使用應(yīng)與聲明中類型,個(gè)數(shù)保持一致。故只有A符合。29.下列關(guān)于C++標(biāo)識(shí)符的命名不合法的是()A、PadB、name_1C、A#bcD、_a12答案:C解析:一般的標(biāo)識(shí)符命名規(guī)則:

字母、數(shù)字和下劃線的組合,大小寫敏感,但不能以數(shù)字開(kāi)頭,也不能和系統(tǒng)中使用的關(guān)鍵字完全相同。故C錯(cuò)誤,“#”不屬于字母、數(shù)字和下劃線的任何一種。30.頭文件擴(kuò)展名為()A、cppB、hC、ubD、ob答案:B解析:在C++中,

.h文件是頭文件。

.cpp文件是源程序文件;31.下列不是函數(shù)重載所要求的條件是()A、函數(shù)名相同B、參數(shù)個(gè)數(shù)不同C、參數(shù)類型不同D、函數(shù)返回值類型不同答案:D解析:函數(shù)重載:是指在程序的同一范圍內(nèi)聲明幾個(gè)功能類似的同名函數(shù)。即前提是函數(shù)名相同,故A正確。實(shí)現(xiàn)函數(shù)的重載必須滿足下列條件之一:(1)參數(shù)表中對(duì)應(yīng)的參數(shù)類型不同。

(2)參數(shù)表中參數(shù)個(gè)數(shù)不同。故BC正確。要注意的是,返回值類型不能用來(lái)區(qū)分函數(shù),也就是說(shuō),如果僅僅是返回值類型不同,則這兩個(gè)函數(shù)不是重載的,編譯器認(rèn)為它們是重復(fù)定義,編譯時(shí)會(huì)報(bào)錯(cuò)。故本題選D。32.下列表達(dá)式,哪個(gè)是聲明P為指向常量的常量指針()A、constint*PB、int*constPC、constint*constPD、int*P答案:C解析:C++語(yǔ)言也可以使用const限定訪問(wèn)權(quán)限,const修飾指針變量時(shí),基本含義如下:

1)如果唯一的const位于符號(hào)*的左側(cè),表示指針?biāo)笖?shù)據(jù)是常量,數(shù)據(jù)不能通過(guò)本指針改變,但可以通過(guò)其他方式進(jìn)行修改;指針本身是變量,可以指向其他的內(nèi)存單元。

2)如果唯一的const位于符號(hào)*的右側(cè),表示指針本身是常量,不能讓該指針指向其他內(nèi)存地址;指針?biāo)傅臄?shù)據(jù)可以通過(guò)本指針進(jìn)行修改。

3)在符號(hào)*的左右各有一個(gè)const時(shí),表示指針和指針?biāo)笖?shù)據(jù)都是常量,既不能讓指針指向其他地址,也不能通過(guò)指針修改所指向的內(nèi)容。P為指向常量的常量指針,即指針和所指數(shù)據(jù)都是常量,故需*左右各有一個(gè)const,本題選C。33.設(shè)存在函數(shù)intmax(int,int)返回兩參數(shù)中較大值,若求22,59,70三者中最大值,下列表達(dá)式不正確的是()A、intm=max(22,max(59,70));B、intm=max(max(22,59),70);C、intm=max(22,59,70);D、intm=max(59,max(22,70));答案:C解析:max中參數(shù)為兩個(gè),當(dāng)實(shí)參數(shù)量多于形參數(shù)量時(shí),多于的參數(shù)會(huì)被忽略。故本題中不能比較出三者中的最大值34.決定C++語(yǔ)言中函數(shù)的返回值類型的是()A、return語(yǔ)句中的表達(dá)式類型B、調(diào)用該函數(shù)時(shí)系統(tǒng)隨機(jī)產(chǎn)生的類型C、調(diào)用該函數(shù)時(shí)的主調(diào)用函數(shù)類型D、在定義該函數(shù)時(shí)所指定的數(shù)據(jù)類型答案:D解析:函數(shù)都需要由類型說(shuō)明并在定義該函數(shù)時(shí)指定數(shù)據(jù)類型。故本題選D。35.一個(gè)函數(shù)功能不太復(fù)雜,但要求被頻繁調(diào)用,應(yīng)選用()A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸函數(shù)D、嵌套函數(shù)答案:A解析:對(duì)于只有很少幾條語(yǔ)句的函數(shù),特別是頻繁調(diào)用時(shí),函數(shù)調(diào)用導(dǎo)致的時(shí)間開(kāi)銷可能會(huì)使程序運(yùn)行明顯變慢。為了避免這種頻繁的函數(shù)調(diào)用與返回,加快執(zhí)行速度,C++語(yǔ)言引入了內(nèi)聯(lián)函數(shù)的概念。故本題選A。36.下列默認(rèn)參數(shù)的聲明不正確的是()A、intmax(inta,intb,intc,intd=0);B、intmax(inta,intb,intc=0,intd=0);C、intmax(inta=0,intb,intc=0,intd=0);D、intmax(inta,intb=0,intc=0,intd=0);答案:C解析:C++語(yǔ)言規(guī)定,提供默認(rèn)值時(shí)必須按從右至左的順序提供,即有默認(rèn)值的形參必須在形參列表的最后。如果有某個(gè)形參沒(méi)有默認(rèn)值,則它左側(cè)的所有形參都不能有默認(rèn)值。故C錯(cuò)誤,默認(rèn)值應(yīng)該連續(xù)出現(xiàn)再形參列表的最后。調(diào)用函數(shù)時(shí),主調(diào)函數(shù)的實(shí)參與被調(diào)函數(shù)的形參按從左至右的順序進(jìn)行匹配對(duì)應(yīng)。即在調(diào)用時(shí)只能缺省后面的連續(xù)若干個(gè)實(shí)參。37.下列哪種類型的函數(shù)適合聲明為內(nèi)聯(lián)函數(shù)()A、函數(shù)體語(yǔ)句較多B、函數(shù)體邏輯較復(fù)雜C、函數(shù)執(zhí)行時(shí)間較長(zhǎng)D、函數(shù)語(yǔ)句較少,執(zhí)行速度要求高答案:D解析:對(duì)于只有很少幾條語(yǔ)句的函數(shù),特別是頻繁調(diào)用時(shí),函數(shù)調(diào)用導(dǎo)致的時(shí)間開(kāi)銷可能會(huì)使程序運(yùn)行明顯變慢。為了避免這種頻繁的函數(shù)調(diào)用與返回,加快執(zhí)行速度,C++語(yǔ)言引入了內(nèi)聯(lián)函數(shù)的概念。故本題選D。38.已知:p是一個(gè)指向類A數(shù)據(jù)成員m的指針,A1是類A的一個(gè)對(duì)象。如果要給m賦值為5,正確的是()A、A1.p=5;B、A1->p=5;C、A1.*p=5;D、*A1.p=5;答案:D解析:假設(shè)已經(jīng)有了一個(gè)對(duì)象,則可使用“.”運(yùn)算符調(diào)用成員函數(shù)賦初值。題中p是指針,所以如果要給m賦值為5,則*A1.p=5;。39.下列函數(shù)原型聲明語(yǔ)句中,錯(cuò)誤的是()A、intf(void);B、voidf(int);C、intf(a);D、voidf(doublea);答案:C解析:題目考查原型聲明。函數(shù)原型:返回類型函數(shù)名(參數(shù)類型列表)在函數(shù)原型中,可以省略形參的名字,而只給出它的類型及默認(rèn)值。故ABD對(duì)。不能只寫形參的名字,故C錯(cuò)。40.在一個(gè)被調(diào)用函數(shù)中,關(guān)于return語(yǔ)句使用的描述,錯(cuò)誤的是()A、被調(diào)用函數(shù)中可以不用return語(yǔ)句B、被調(diào)用函數(shù)中可以使用多個(gè)return語(yǔ)句C、被調(diào)用函數(shù)中,如果有返回值,就一定要有return語(yǔ)句D、被調(diào)用函數(shù)中,一個(gè)return語(yǔ)句可返回多個(gè)值給調(diào)用函數(shù)答案:D解析:被調(diào)用函數(shù)中,一個(gè)return語(yǔ)句只能返回一個(gè)值給調(diào)用函數(shù)。故D錯(cuò)誤。return語(yǔ)句當(dāng)然可以有多條,只不過(guò)函數(shù)運(yùn)行的時(shí)候,最后只會(huì)執(zhí)行其中的一條。故B正確。

函數(shù)有返回值,那么函數(shù)就要返回其聲明類型的值,所以應(yīng)該有return語(yǔ)句返回相應(yīng)的值,否則編譯出錯(cuò)。故C正確。41.設(shè)有說(shuō)明constchar*constp="ABCD";,則下列選項(xiàng)中正確的是()A、允許修改指針p本身,且允許通過(guò)p修改所指向的數(shù)據(jù)B、允許修改指針p本身,且禁止通過(guò)p修改所指向的數(shù)據(jù)C、禁止修改指針p本身,且允許通過(guò)p修改所指向的數(shù)據(jù)D、禁止修改指針p本身,且禁止通過(guò)p修改所指向的數(shù)據(jù)答案:D解析:C++語(yǔ)言也可以使用const限定訪問(wèn)權(quán)限,const修飾指針變量時(shí),基本含義如下:

1)如果唯一的const位于符號(hào)*的左側(cè),表示指針?biāo)笖?shù)據(jù)是常量,數(shù)據(jù)不能通過(guò)本指針改變,但可以通過(guò)其他方式進(jìn)行修改;指針本身是變量,可以指向其他的內(nèi)存單元。

2)如果唯一的const位于符號(hào)*的右側(cè),表示指針本身是常量,不能讓該指針指向其他內(nèi)存地址;指針?biāo)傅臄?shù)據(jù)可以通過(guò)本指針進(jìn)行修改。

3)在符號(hào)*的左右各有一個(gè)const時(shí),表示指針和指針?biāo)笖?shù)據(jù)都是常量,既不能讓指針指向其他地址,也不能通過(guò)指針修改所指向的內(nèi)容。本題中,const既出現(xiàn)在*的左側(cè),也出現(xiàn)在*的右側(cè),表示指針本身及指針?biāo)傅臄?shù)據(jù)都是不可修改的。故本題選D。42.已知類A中一個(gè)成員函數(shù)說(shuō)明"voidSet(A&a);",其中A&a的含義是()A、指向類A的指針為aB、將a的地址值賦給變量SetC、a是類A的對(duì)象引用,用來(lái)作函數(shù)Set()的形參D、變量A與a按位相與作為函數(shù)Set()的參數(shù)答案:C解析:引用”的定義格式如下:

類型名&引用名=同類型的某變量名;首先,A&a是函數(shù)Set()的形參,根據(jù)引用的語(yǔ)法形式,a是一個(gè)引用,它的類型是A&,也就是說(shuō),a是類A的對(duì)象的引用。Set是函數(shù)名,不是變量名。符號(hào)&表示引用,不是按位與。答案為C。43.C++中是否允許在類結(jié)構(gòu)中定義函數(shù)()A、不允許B、允許C、僅允許定義構(gòu)造函數(shù)D、只不允許定義構(gòu)造函數(shù)答案:B解析:類中定義的數(shù)據(jù)和函數(shù)稱為這個(gè)類的成員。故允許在類結(jié)構(gòu)中定義函數(shù)。44.聲明函數(shù)為內(nèi)聯(lián)使用的關(guān)鍵字為()A、constB、inlineC、shortD、signed答案:B解析:內(nèi)聯(lián)函數(shù)應(yīng)該定義在前,調(diào)用在后,定義時(shí)只需在函數(shù)頭返回值類型的前面加上關(guān)鍵字inline。故本題選B。

short表示數(shù)據(jù)類型短整型。定義引用時(shí),可以在定義的前面加const關(guān)鍵字,表明該引用是“常引用”。D為干擾項(xiàng)。45.對(duì)使用關(guān)鍵字new所開(kāi)辟的動(dòng)態(tài)存儲(chǔ)空間,釋放時(shí)必須使用()A、freeB、createC、deleteD、realse答案:D解析:使用new運(yùn)算符動(dòng)態(tài)申請(qǐng)的內(nèi)存空間,需要在使用完畢釋放。C++提供了delete運(yùn)算符,用來(lái)釋放動(dòng)態(tài)分配的內(nèi)存空間。delete運(yùn)算符的基本用法如下:

delete指針;故本題選C46.對(duì)C++語(yǔ)言和C語(yǔ)言的兼容性,描述正確的是()A、C++兼容CB、C++部分兼容CC、C++不兼容CD、C兼容C++答案:A解析:C語(yǔ)言是C++語(yǔ)言的前身,在進(jìn)一步擴(kuò)充和完善C語(yǔ)言的基礎(chǔ)上得到了C++語(yǔ)言。故C++語(yǔ)言兼容C語(yǔ)言。47.函數(shù)intsum(inta=10,intb=15,intc=25);不可與下列哪個(gè)函數(shù)同時(shí)聲明()A、intsum(int,int,int,int)B、intsum(int,int,int)C、intsum(double)D、intsum(double,double,double);答案:B解析:名稱相同,參數(shù)個(gè)數(shù)相同,參數(shù)類型相同,無(wú)法重載。48.一個(gè)函數(shù)功能不太復(fù)雜,但要求頻繁使用,則該函數(shù)適合作為()A、內(nèi)聯(lián)函數(shù)B、重載函數(shù)C、遞歸函數(shù)D、嵌套函數(shù)答案:A解析:對(duì)于只有很少幾條語(yǔ)句的函數(shù),特別是頻繁調(diào)用時(shí),函數(shù)調(diào)用導(dǎo)致的額外時(shí)間開(kāi)銷可能會(huì)使程序運(yùn)行明顯變慢。為了避免這種頻繁的函數(shù)調(diào)用與返回,C++語(yǔ)言引入了內(nèi)聯(lián)函數(shù)的概念。故本題選A。內(nèi)聯(lián)函數(shù)的適用情況:只有幾條語(yǔ)句,且頻繁調(diào)用的小函數(shù)。49.關(guān)于成員函數(shù)特征的描述中,錯(cuò)誤的是()A、成員函數(shù)一定是內(nèi)聯(lián)函數(shù)B、成員函數(shù)可以重載C、成員函數(shù)可以設(shè)置參數(shù)的缺省值D、成員函數(shù)可以是靜態(tài)的答案:A解析:成員函數(shù):是類中的另一類成員,個(gè)數(shù)不限,其聲明方式與普通函數(shù)的聲明相同。成員函數(shù)可以是靜態(tài)的。一個(gè)類的成員函數(shù)之間可以互相調(diào)用。類的成員函數(shù)可以重載,也可以設(shè)定參數(shù)的默認(rèn)值。故BCD正確。成員函數(shù)既可以在類體內(nèi)定義,也可以在類體外定義。如果成員函數(shù)定義在類體內(nèi)部,則默認(rèn)是內(nèi)聯(lián)函數(shù)。也可以在類體內(nèi)部聲明函數(shù),并加上inline關(guān)鍵字,然后在類體外給出函數(shù)定義,這樣的成員函數(shù)也是內(nèi)聯(lián)函數(shù)。除此之外的不是內(nèi)聯(lián)函數(shù)。故A錯(cuò)。50.下面關(guān)于數(shù)組的初始化正確的是()A、charstr[]={'a','b','c'};B、charstr[2]={'a','b','c'};C、charstr[1][2]={{'a','b'},{'e','d'}};D、charstr[][]={'a','b','c'};答案:A解析:一維數(shù)組:T[N],N代表數(shù)組“元素個(gè)數(shù)”。如果對(duì)數(shù)組的全部元素賦初值,定義時(shí)數(shù)組長(zhǎng)度可以省略;如果被定義數(shù)組的長(zhǎng)度,與初值個(gè)數(shù)不同,則數(shù)組長(zhǎng)度不能省略。故A正確,B中N應(yīng)為3。

二維數(shù)組:如果對(duì)全部元素都賦初值,則“行長(zhǎng)度”可以省略。需要注意的是只能省略“行長(zhǎng)度”,但第二維的長(zhǎng)度即“列長(zhǎng)度”不能省略。故C錯(cuò)誤,應(yīng)為str[2][2]。D錯(cuò)誤,列長(zhǎng)度不能省略。51.設(shè)函數(shù)int&index(inta,inti)返回?cái)?shù)組a中下標(biāo)為i的元素,如果整型數(shù)組intarray[]={1,2,3},在執(zhí)行index(array,1)+=3后,array中各元素值為()A、{4,2,3}B、{1,5,3}C、{1,2,6}D、{4,5,6}答案:B解析:數(shù)組的下標(biāo)從0開(kāi)始,index(array,1)+=3使用加法賦值運(yùn)算符(+=),故也可以表示為:index(array,1)=index(array,1)+3。index(array,1)返回array[1]的值,即為2,然后array[1]=2+3=5,所以array中各元素值為{1,5,3}。選B。52.考慮函數(shù)原型voidpass(intx,inty=5,charz=‘*’),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是()A、pass(5)B、pass(5,8)C、pass(6,'#')D、pass(0,0,'*')答案:C解析:在C++語(yǔ)言中,可以在聲明函數(shù)時(shí)為形參指定默認(rèn)值。當(dāng)調(diào)用有默認(rèn)參數(shù)值的函數(shù)時(shí),調(diào)用語(yǔ)句中可以不給出對(duì)應(yīng)的實(shí)參,這就相當(dāng)于調(diào)用該函數(shù)時(shí)以默認(rèn)值作為參數(shù)。

調(diào)用函數(shù)時(shí),主調(diào)函數(shù)的實(shí)參與被調(diào)函數(shù)的形參按從左至右的順序進(jìn)行匹配對(duì)應(yīng)。

C選項(xiàng)中,實(shí)參的個(gè)數(shù)是2少于形參的個(gè)數(shù)3,故函數(shù)原型形參表中最前面的2個(gè)形參與2個(gè)實(shí)參相對(duì)應(yīng),即把字符型實(shí)參#賦值給int型形參y,會(huì)產(chǎn)生編譯錯(cuò)誤。故C錯(cuò)誤。同理,ABD是正確的。53.可用作C++語(yǔ)言用戶標(biāo)識(shí)符的一組標(biāo)識(shí)符是()A、void,define,+WORDB、a3_b3,_123,YNC、for,-abc,CaseD、2a,DO,sizeof答案:B解析:一般的標(biāo)識(shí)符命名規(guī)則:

字母、數(shù)字和下劃線的組合,大小寫敏感,但不能以數(shù)字開(kāi)頭,也不能和系統(tǒng)中使用的關(guān)鍵字完全相同。

故本題只有B正確。A有+,C有-,D數(shù)字開(kāi)頭。54.對(duì)類中聲明的變量,用new運(yùn)算符創(chuàng)建一維數(shù)組的正確形式是()A、int*p=newa[10];B、float*p=newfloat[10];C、int*p=newfloat[10];D、int*p=newint[5]={1,2,3,4,5,6};答案:B解析:使用new運(yùn)算符可以動(dòng)態(tài)分配一個(gè)任意大小的數(shù)組:

p=newT[N];

其中,T是任意類型名,p是類型為T*的指針,N代表數(shù)組“元素個(gè)數(shù)”,可以是任何的值為正整數(shù)的表達(dá)式。數(shù)組中元素的類型是T類型。故本題選B。float*p=newfloat[10];的含義是:開(kāi)辟一個(gè)長(zhǎng)度為10的float型數(shù)組的空間,并把首地址賦予指針變量p,而p是指向float型數(shù)據(jù)的指針。55.下列有關(guān)重載函數(shù)的說(shuō)法中錯(cuò)誤的是()A、重載函數(shù)必須具有不同的返回值類型B、重載函數(shù)名必須相同C、重載函數(shù)參數(shù)個(gè)數(shù)可以不同D、重載函數(shù)必須有不同的形參列表答案:A解析:函數(shù)重載,是指在程序的同一范圍內(nèi)聲明幾個(gè)功能類似的同名函數(shù)。在調(diào)用同名函數(shù)時(shí),實(shí)現(xiàn)函數(shù)的重載必須滿足下列條件之一:

(1)參數(shù)表中對(duì)應(yīng)的參數(shù)類型不同。

(2)參數(shù)表中參數(shù)個(gè)數(shù)不同。如果兩個(gè)函數(shù)的名字和參數(shù)表都是一樣的,僅僅是返回值類型不同,則這兩個(gè)函數(shù)不是重載的,編譯器認(rèn)為它們是重復(fù)定義,編譯時(shí)會(huì)報(bào)錯(cuò)。故本題選A。56.下面關(guān)于類和對(duì)象說(shuō)法不正確是()A、類由數(shù)據(jù)與函數(shù)組成B、一個(gè)對(duì)象必屬于某個(gè)類對(duì)象是類的實(shí)例C、對(duì)象是類的實(shí)例D、一個(gè)類的對(duì)象只有一個(gè)答案:D解析:對(duì)象是類的一個(gè)具象,類是對(duì)象的一個(gè)抽象。一個(gè)類的對(duì)象可以不只有一個(gè)。故D錯(cuò)誤。57.下列語(yǔ)句錯(cuò)誤的是()A、intval(20);B、externintval(20);C、constintval;D、externconstintval;答案:C解析:因?yàn)楸籧onst修飾的變量的值在程序中不能被改變,所以在聲明符號(hào)常量時(shí),必須對(duì)符號(hào)常量進(jìn)行初始化,除非這個(gè)變量時(shí)用extern修飾的外部變量。故只有C錯(cuò)誤,既沒(méi)有初始化,也沒(méi)有用extern修飾。58.下列關(guān)于類的權(quán)限描述錯(cuò)誤的是()A、類本身的成員函數(shù)可以訪問(wèn)自己定義的任何成員B、類的對(duì)象只能訪問(wèn)公有成員C、普通函數(shù)只能通過(guò)對(duì)象訪問(wèn)類的公有成員D、一個(gè)類不能包含另一個(gè)類的對(duì)象作為成員答案:D解析:因?yàn)轭惐旧砭褪且环N新的數(shù)據(jù)類型,所以一個(gè)類的對(duì)象可以作為另一個(gè)類的成員。普通成員函數(shù)由類的對(duì)象調(diào)用。故D錯(cuò)誤。訪問(wèn)類的成員變量及調(diào)用類的成員函數(shù)時(shí),要考慮成員名的訪問(wèn)范圍。類中定義的訪問(wèn)方法是public的,所以可以在類外(如主函數(shù)中)中直接調(diào)用。類內(nèi)的函數(shù)僅作為類內(nèi)其他函數(shù)的輔助函數(shù)使用,并不對(duì)外提供服務(wù),這樣的函數(shù)可以定義為私有的,也就是說(shuō),在類外不可以直接調(diào)用它們。故ABC正確。59.使用new創(chuàng)建的對(duì)象,對(duì)其生命周期描述正確的是()A、由系統(tǒng)決定B、由用戶控制C、全局生命周期D、永久存在答案:B解析:運(yùn)算符new用于建立生存期可控的對(duì)象,new返回這個(gè)對(duì)象的指針。使用new建立的動(dòng)態(tài)對(duì)象只能用delete刪除,以便釋放所占空間,因此由new創(chuàng)建的對(duì)象生命周期由用戶控制。60.C++中函數(shù)中的return指令可以()A、只能有一條B、0或多條C、至少有一條D、只能主函數(shù)調(diào)用答案:B解析:

如果函數(shù)是void的話,可以沒(méi)有return,否則一定要有return,在最結(jié)尾加就行了,可以有多個(gè)。61.下列關(guān)于類的權(quán)限的描述錯(cuò)誤的是()A、類本身的成員函數(shù)只能訪問(wèn)自身的私有成員B、類的對(duì)象只能訪問(wèn)該類的公有成員C、普通函數(shù)不能直接訪問(wèn)類的公有成員,必須通過(guò)對(duì)象訪問(wèn)D、一個(gè)類可以將另一個(gè)類的對(duì)象作為成員答案:A解析:類本身的成員函數(shù)既可以訪問(wèn)自身的私有成員,也可以訪問(wèn)自身的公有成員。故A錯(cuò)。將部分成員函數(shù)聲明為公有的,用于提供外界和這個(gè)類的對(duì)象相互作用的接口,從而使得其他函數(shù)也可以訪問(wèn)和處理該類的對(duì)象。故BCD正確。62.下列關(guān)于類定義的敘述中,正確的是()A、類中可以定義成員變量,并賦初值B、類中可以聲明成員函數(shù),并可以給出參數(shù)的默認(rèn)值C、類體不能為空,即必須定義成員變量及成員函數(shù)D、類中僅能包含成員變量答案:B解析:選項(xiàng)A中,類中可以定義成員變量,但不能賦初值。初值應(yīng)該是特定對(duì)象中成員變量的初始值。而定義類時(shí),還沒(méi)有創(chuàng)建類的對(duì)象,所以不能賦初值。通常為對(duì)象中成員變量賦初值的工作由構(gòu)造函數(shù)完成。

選項(xiàng)C中,類體可以為空,也就是說(shuō)可以定義一個(gè)空類。

選項(xiàng)D中,類中既可以包含成員變量,也可以包含成員函數(shù)。故本題只有B正確。63.以下有關(guān)類與對(duì)象的敘述中,錯(cuò)誤的是()A、對(duì)象是類的一個(gè)實(shí)例B、一個(gè)類可以有多個(gè)對(duì)象C、任何一個(gè)對(duì)象都?xì)w屬于一個(gè)具體的類D、只要是某個(gè)類的對(duì)象,那么該對(duì)象就可以訪問(wèn)這個(gè)類的所有成員答案:D解析:對(duì)象是類的一個(gè)具象,類是對(duì)象的一個(gè)抽象。類和對(duì)象的關(guān)系如同一個(gè)模具與用這個(gè)模具鑄造出來(lái)的鑄造件之間的關(guān)系。故一個(gè)類可以有多個(gè)對(duì)象,且任何一個(gè)對(duì)象都?xì)w屬于一個(gè)具體的類。故ABC正確。類的對(duì)象只能訪問(wèn)公有成員,其他函數(shù)不能使用類的私有成員,也不能使用公有成員函數(shù),它們只能通過(guò)類的對(duì)象使用類的公有成員函數(shù)。因此D錯(cuò)誤。64.已知:"inta=5;charc='a';"則輸出語(yǔ)句cout<<c+1<<a<<c;的顯示結(jié)果是()A、65aB、985aC、98'5'aD、65'a'答案:B解析:cout是一個(gè)標(biāo)準(zhǔn)輸出流對(duì)象,使用流插入運(yùn)算符“<<”向輸出設(shè)備屏幕輸出信息。使用cout進(jìn)行輸出時(shí),系統(tǒng)會(huì)自動(dòng)判別輸出數(shù)據(jù)的類型,并按相應(yīng)的類型輸出對(duì)應(yīng)的數(shù)據(jù)。字符型數(shù)據(jù)在內(nèi)存中以ASCII碼的形式存放。故a對(duì)于的ASCII的代碼值為97,c+1為98,因此輸出結(jié)果為985a。故選B。65.定義了指向常量的指針p的選項(xiàng)是()A、constint*p;B、int*p;C、int*constp=&x;D、constint*constp=&x;答案:A解析:const修飾指針變量時(shí):如果唯一的const位于符號(hào)*的左側(cè),表示指針?biāo)笖?shù)據(jù)是常量,數(shù)據(jù)不能通過(guò)本指針改變,但可以通過(guò)其他方式進(jìn)行修改;指針本身是變量,可以指向其他的內(nèi)存單元。本題中,“指向常量的指針p”,表示指針?biāo)笖?shù)據(jù)是常量,故唯一的const位于符號(hào)*的左側(cè),選A。注意:如果唯一的const位于符號(hào)*的右側(cè),表示指針本身是常量,不能讓該指針指向其他內(nèi)存地址;指針?biāo)傅臄?shù)據(jù)可以通過(guò)本指針進(jìn)行修改。在符號(hào)*的左右各有一個(gè)const時(shí),表示指針和指針?biāo)笖?shù)據(jù)都是常量,既不能讓指針指向其他地址,也不能通過(guò)指針修改所指向的內(nèi)容。66.在C++中,頭文件擴(kuò)展名為()A、.cppB、.hC、.libD、.obj答案:B解析:在C++中,.h文件是頭文件。.cpp文件是源程序文件;67.如果有int型變量a,則定義指向變量a的指針p正確的寫法是()A、intp=&vB、int*p=&vC、int&p=*vD、int*p=v答案:B解析:指針變量中保存的是一個(gè)地址,有時(shí)也稱指針指向一個(gè)地址。定義一個(gè)指向int型變量a的指針p為:int*p=&a;故選B68.面向?qū)ο蟛粌H進(jìn)行功能抽象,還要進(jìn)行()A、動(dòng)態(tài)抽象B、消息抽象C、數(shù)據(jù)抽象D、算法抽象答案:C解析:對(duì)象具有兩個(gè)特性:一是狀態(tài)(也稱為屬性);二是行為(也稱為操作)。在面向?qū)ο蠹夹g(shù)中,屬性表現(xiàn)為數(shù)據(jù),而把對(duì)對(duì)象的操作定義為實(shí)現(xiàn)一定功能的函數(shù)。故“對(duì)象”實(shí)際上是功能抽象和數(shù)據(jù)抽象的統(tǒng)一。選C。69.如想使用std命名空間,正確的程序語(yǔ)句是()A、usingstd;B、namespacestd;C、usingnamespace;D、usingnamespacestd;答案:D解析:using語(yǔ)句引用其他命名空間的標(biāo)識(shí)符的語(yǔ)法格式有兩種形式:

using命名空間名::標(biāo)識(shí)符;

usingnamespace命名空間名;故D符合。70.下列關(guān)于類和對(duì)象的敘述中,錯(cuò)誤的是()A、一個(gè)類只能有一個(gè)對(duì)象B、對(duì)象是類的具體實(shí)例C、類是某一類對(duì)象的抽象D、類和對(duì)象的關(guān)系是一種數(shù)據(jù)類型與變量的關(guān)系答案:A解析:具有類類型的變量稱為對(duì)象。類只是一個(gè)樣板,根據(jù)這個(gè)樣板,可以在內(nèi)存中開(kāi)辟出同樣結(jié)構(gòu)的實(shí)例,即對(duì)象。所以說(shuō),對(duì)象是類的實(shí)例。故一個(gè)類可以有多個(gè)對(duì)象。答案為A。71.若有定義int*p=newint(0),則下列說(shuō)法正確的是()A、系統(tǒng)用指針變量p來(lái)表示所指整型變量B、聲明一個(gè)指針變量p,指向名為new的存儲(chǔ)單元C、系統(tǒng)為指針變量p分配一個(gè)整型數(shù)據(jù)的存儲(chǔ)空間D、通過(guò)運(yùn)算符new,分配一個(gè)整型數(shù)據(jù)的存儲(chǔ)空間,并將其內(nèi)存地址賦予指針變量答案:D解析:在C++語(yǔ)言中,使用new運(yùn)算符實(shí)現(xiàn)動(dòng)態(tài)內(nèi)存分配。例如,可以寫如下的語(yǔ)句:

p=newT;其中,T是任意類型名,p是類型為T*的指針。這樣的語(yǔ)句會(huì)動(dòng)態(tài)分配出一片大小為sizeof(T)字節(jié)的內(nèi)存空間,并且將該內(nèi)存空間的起始地址賦值給指針p。本題中,int*p=newint(0)表示通過(guò)運(yùn)算符new,分配一個(gè)整型數(shù)據(jù)的存儲(chǔ)空間,并將其內(nèi)存地址賦予指針變量。D正確。72.下列關(guān)于類的權(quán)限描述錯(cuò)誤的是()A、類本身的成員函數(shù)可以訪問(wèn)自身的任何成員B、類的對(duì)象只能訪問(wèn)公有成員C、普通函數(shù)可以不通過(guò)對(duì)象直接訪問(wèn)類的公有成員D、一個(gè)類可以包含另一個(gè)類的對(duì)象作為成員答案:C解析:類本身的成員函數(shù)可以使用類的所有成員(私有和公有成員)。故A正確。類的對(duì)象只能訪問(wèn)公有成員函數(shù),其他函數(shù)不能使用類的私有成員,也不能使用公有成員函數(shù),它們只能通過(guò)定義類的對(duì)象為自己的數(shù)據(jù)成員,然后通過(guò)類的對(duì)象使用類的公有成員函數(shù)。故B正確,C錯(cuò)誤。類本身就是一種新的數(shù)據(jù)類型,所以一個(gè)類的對(duì)象可以作為另一個(gè)類的成員。故D正確。73.不同對(duì)象調(diào)用同名函數(shù),但導(dǎo)致完全不同行為的現(xiàn)象稱為()A、抽象B、封裝C、繼承D、多態(tài)性答案:D解析:多態(tài)是指不同種類的對(duì)象都具有名稱相同的行為,而具體行為的實(shí)現(xiàn)方式卻有所不同。

可簡(jiǎn)單理解為:多態(tài)即同名,行為不同,故本題選D。74.下面關(guān)于對(duì)象概念的描述中錯(cuò)誤的是()A、任何對(duì)象都必須有繼承性B、對(duì)象是屬性和方法的封裝體C、對(duì)象間的通信靠消息傳遞D、操作是對(duì)象的動(dòng)態(tài)屬性答案:A解析:

對(duì)象的特點(diǎn)包括兩個(gè)方面:屬性和操作。屬性指的是描述對(duì)象靜態(tài)特征(即狀態(tài))的數(shù)據(jù)項(xiàng);操作指的是描述對(duì)象動(dòng)態(tài)特征(即行為)的函數(shù)序列。故D正確。故也可稱對(duì)象是屬性和方法的封裝體。故B正確?!袄^承”,就是在編寫一個(gè)“新”類的時(shí)候,以現(xiàn)有的類作為基礎(chǔ),使得新類從現(xiàn)有的類“派生”而來(lái),從而達(dá)到代碼擴(kuò)充和代碼復(fù)用的目的。繼承支持層次概念。并不是任何對(duì)象都必須具有繼承性。因此A錯(cuò)誤。75.結(jié)構(gòu)化程序設(shè)計(jì)所規(guī)定的三種基本控制結(jié)構(gòu)是()A、輸入、處理、輸出B、樹(shù)形、網(wǎng)形、環(huán)形C、順序、選擇、循環(huán)D、主程序、子程序、函數(shù)答案:C解析:在編寫程序時(shí),使用3種基本控制結(jié)構(gòu)來(lái)構(gòu)造程序:順序、選擇、循環(huán)基本控制結(jié)構(gòu)。這3種結(jié)構(gòu)到目前為止仍是主要的控制結(jié)構(gòu)。故本題選C。76.下列關(guān)于類和對(duì)象的說(shuō)法中,正確的是()A、編譯器為每個(gè)類和類的對(duì)象分配內(nèi)存B、類的對(duì)象具有成員函數(shù)的副本C、類的成員函數(shù)由類來(lái)調(diào)用D、編譯器為每個(gè)對(duì)象的成員變量分配內(nèi)存答案:D解析:選項(xiàng)A中,類并不占用空間,占用空間的是類的對(duì)象。

選項(xiàng)B中,定義類后,不是每創(chuàng)建一個(gè)對(duì)象,就為成員函數(shù)分配存儲(chǔ)的空間。實(shí)例化對(duì)象時(shí),只會(huì)分配成員變量的空間,而不會(huì)分配成員函數(shù)的空間。

選項(xiàng)C中,類的成員函數(shù)不一定是由類來(lái)調(diào)用的,普通成員函數(shù)由類的對(duì)象調(diào)用。類的靜態(tài)成員函數(shù)由類來(lái)調(diào)用。故本題只有D正確。77.用于包含C++標(biāo)準(zhǔn)庫(kù)iostream的預(yù)處理指令是()A、#define<iostream>B、#include<iostream>C、#define‘iostream’D、#include‘iostream’答案:B解析:嵌入指令#include指示編譯器將一個(gè)源文件嵌入到帶有#include指令的原文件中該指令所在的位置處。當(dāng)使用當(dāng)程序中用到cin和cout時(shí),需要在程序中包含頭文件<iostream>。故綜上,B符合。78.下列輸出語(yǔ)句中,正確的是()A、cout<<("%c\n","student")B、cout<<("%s\n","hello")C、cout<<("%c\n","c")D、cout<<("%s\n",&a)答案:B解析:%c是輸岀單個(gè)字符的格式控制符。%s是輸出字符串的格式控制符。故只有B正確。選項(xiàng)C中"c"是字符串,不能用c%格式輸出。79.結(jié)構(gòu)化程序設(shè)計(jì)的基本原則不包括()A、多態(tài)性B、自頂向下C、模塊化D、逐步求精答案:A解析:在結(jié)構(gòu)化程序設(shè)計(jì)中,采用自頂向下、逐步求精及模塊化的思想,將復(fù)雜的大問(wèn)題層層分解為許多簡(jiǎn)單的小問(wèn)題。故不包括A。80.下列表達(dá)式,哪一是聲明P為指向常量的指針()A、constint*pB、int*constp;C、constint*constpD、int*p答案:A解析:const修飾指針變量時(shí),基本含義如下:

1)如果唯一的const位于符號(hào)*的左側(cè),表示指針?biāo)笖?shù)據(jù)是常量,數(shù)據(jù)不能通過(guò)本指針改變,但可以通過(guò)其他方式進(jìn)行修改;指針本身是變量,可以指向其他的內(nèi)存單元。

2)如果唯一的const位于符號(hào)*的右側(cè),表示指針本身是常量,不能讓該指針指向其他內(nèi)存地址;指針?biāo)傅臄?shù)據(jù)可以通過(guò)本指針進(jìn)行修改。

3)在符號(hào)*的左右各有一個(gè)const時(shí),表示指針和指針?biāo)笖?shù)據(jù)都是常量,既不能讓指針指向其他地址,也不能通過(guò)指針修改所指向的內(nèi)容。故本題中,“指向常量”,是指數(shù)據(jù)是常量,故const在*左側(cè),選A。81.在C++語(yǔ)言中用于注釋的標(biāo)識(shí)符是()A、&B、//C、*D、/答案:B解析:C++程序中,仍沿用C語(yǔ)言的注釋風(fēng)格,即注釋有以下兩種形式。

1)從/*開(kāi)始,到*/結(jié)束,這之間的所有內(nèi)容都視作注釋。

2)從//直到行尾,都是注釋。故綜上,/*……*/或//都用于注釋。本題選B。82.若有說(shuō)明:intn=2,*p=&n,*q=p;,則以下非法的賦值語(yǔ)句是()A、n=*qB、p=nC、p=qD、*q=*P答案:B解析:指針變量中保存的是一個(gè)地址,有時(shí)也稱指針指向一個(gè)地址。指針p指向整型變量n,p中保存n的地址,而不是值2。p指向的地址中的值是2。地址與地址中的值不要混淆。故p是指向int類型的指針,n是int類型的數(shù)據(jù),不能p=n。故B錯(cuò)。83.下列對(duì)于類的描述錯(cuò)誤的是()A、類要先聲明后使用B、類是具有唯一標(biāo)識(shí)的實(shí)體C、兩個(gè)類可以使用同一個(gè)名稱D、組成類的不僅有數(shù)據(jù),還可以有對(duì)數(shù)據(jù)進(jìn)行操作的函數(shù)答案:C解析:類是具有唯一標(biāo)識(shí)符的實(shí)體,就是說(shuō)類名不能重復(fù)。故C錯(cuò)誤。84.下列選項(xiàng)中,不屬于類模型結(jié)構(gòu)圖中的是()A、類名B、屬性C、操作D、對(duì)象名答案:D解析:類模型結(jié)構(gòu)與對(duì)象結(jié)構(gòu)很類似,如下圖:對(duì)象結(jié)構(gòu)圖與類模型結(jié)構(gòu)圖中都含有屬性與操作,不同的是,對(duì)象結(jié)構(gòu)圖中有對(duì)象名,類模型結(jié)構(gòu)圖中有類名。故本題選D。85.以下說(shuō)法中不正確的是()A、C++程序中必須有一個(gè)主函數(shù)main(),而且是從main()的第一條語(yǔ)句開(kāi)始執(zhí)行B、非主函數(shù)都是在執(zhí)行主函數(shù)時(shí),通過(guò)函數(shù)調(diào)用或嵌套調(diào)用而得以執(zhí)行的C、主函數(shù)可以在任何地方出現(xiàn)D、主函數(shù)必須出現(xiàn)在固定位置答案:D解析:程序中必須有且僅有一個(gè)主函數(shù)main(),這是程序執(zhí)行的總?cè)肟凇5o(wú)固定位置。主函數(shù)也稱為主程序。程序從主函數(shù)的開(kāi)始處執(zhí)行,按照其控制結(jié)構(gòu),一直執(zhí)行到結(jié)束。故A、C正確,D錯(cuò)誤。主函數(shù)中可以調(diào)用程序中定義的其他函數(shù),但其他函數(shù)不能調(diào)用主函數(shù)。故B正確。答案為D。86.intFunc(int,int);不可與下列哪個(gè)函數(shù)構(gòu)成重載()A、intFunc(int,int,int);B、doubleFunc(int,int);C、doubleFunc(double,double);D、doubleFunc(int,double);答案:B解析:函數(shù)重載的條件:同名,不同參數(shù)表,不同參數(shù)個(gè)數(shù)。故B不可以。87.設(shè)存在數(shù)組a,其長(zhǎng)度為L(zhǎng)en,則下列哪項(xiàng)泛型算法用于在a中尋找值Value的位置()A、reverse(a,a+Len,Value);B、sort(a,a+Len,Value);C、find(a,a+Len,Value);D、copy(a,a+Len,Value);答案:C解析:A選項(xiàng)用于將數(shù)組元素反轉(zhuǎn);B選項(xiàng)用于對(duì)a進(jìn)行升冪排序;C選項(xiàng)用于查找數(shù)組a內(nèi)是否存在值為value的元素;D選項(xiàng)用于輸出數(shù)組的內(nèi)容。故本題選C。88.下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)()A、函數(shù)體語(yǔ)句較多B、函數(shù)體語(yǔ)句較少C、函數(shù)執(zhí)行時(shí)間較短D、函數(shù)執(zhí)行時(shí)間過(guò)長(zhǎng)答案:A解析:內(nèi)聯(lián)函數(shù)的適用情況:只有幾條語(yǔ)句,且頻繁調(diào)用的小函數(shù)。故A明顯錯(cuò)誤。89.關(guān)于對(duì)象概念的描述中,說(shuō)法錯(cuò)誤的是()A、對(duì)象就是C語(yǔ)言中的結(jié)構(gòu)體B、對(duì)象代表著正在創(chuàng)建的系統(tǒng)中的一個(gè)實(shí)體C、對(duì)象是類的一個(gè)變量D、對(duì)象之間的信息傳遞是通過(guò)消息進(jìn)行的答案:A解析:類是對(duì)現(xiàn)實(shí)世界中客觀事物的抽象。對(duì)象是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)體。故A錯(cuò)誤,B正確。對(duì)象是類的一個(gè)具象,類是對(duì)象的一個(gè)抽象。對(duì)象是類的實(shí)例,是類的一個(gè)變量。故C正確。對(duì)象之間通過(guò)消息進(jìn)行信息傳遞,故D正確。90.對(duì)classpoint,如使用point*ptr=newpoint[2];創(chuàng)建對(duì)象數(shù)組,則刪除此數(shù)組使用的語(yǔ)句是()A、deleteptr[2];B、delete[]ptr;C、deleteptr[];D、delete[2]ptr;答案:B解析:當(dāng)delete釋放動(dòng)態(tài)對(duì)象數(shù)組時(shí),必須告訴這個(gè)動(dòng)態(tài)對(duì)象數(shù)組有幾個(gè)元素對(duì)象,C++使用“[]”來(lái)實(shí)現(xiàn),即delete[]ptr;。91.包含自定義頭文件file.h的預(yù)處理指令是()A、#define<file.h>B、#includefile.hC、#definefile.hD、#include"file.h"答案:D解析:嵌入指令#include指示編譯器將一個(gè)源文件嵌入到帶有#include指令的源文件中該指令所在的位置。書寫時(shí),可以使用引號(hào),也可以用尖括號(hào)。尖括號(hào)引用系統(tǒng)提供的包含文件。雙引號(hào)引用自己定義的包含文件。根據(jù)題意,D選項(xiàng)正確。92.C++程序文件擴(kuò)展名為()A、.cppB、.hC、.libD、.obj答案:A解析:在C++中,.cpp文件是源程序文件,即.cpp是程序文件擴(kuò)展名。.h文件是頭文件。93.在inta=3,*p=&a;中,*p的值是()A、變量a的地址值B、無(wú)意義C、變量p的地址值D、3答案:D解析:指針p指向整型變量a,p中保存a的地址,而不是a中的值3。而*p表示地址中的值,即為3。地址與地址中的值不要混淆。94.假設(shè)給出如下的函數(shù)聲明:voidfunc(inta,intb=2,intc=3);,則下列函數(shù)調(diào)用正確的是()A、func(1,22,333);B、func();C、func("#",20);D、func(5,,9);答案:A解析:在C++語(yǔ)言中,可以在聲明函數(shù)時(shí)為形參指定默認(rèn)值。當(dāng)調(diào)用有默認(rèn)參數(shù)值的函數(shù)時(shí),調(diào)用語(yǔ)句中可以不給出對(duì)應(yīng)的實(shí)參,這就相當(dāng)于調(diào)用該函數(shù)時(shí)以默認(rèn)值作為參數(shù)。

調(diào)用函數(shù)時(shí),主調(diào)函數(shù)的實(shí)參與被調(diào)函數(shù)的形參按從左至右的順序進(jìn)行匹配對(duì)應(yīng)。本題中,“func(1,22,333);”是正確的,調(diào)用時(shí)給出了所有實(shí)參,且參數(shù)的類型也是匹配的。

“func();”是錯(cuò)誤的,聲明中參數(shù)a沒(méi)有默認(rèn)值,調(diào)用時(shí)必須給出實(shí)參值。

“func("#",20);”是錯(cuò)誤的,實(shí)參表中的字符型實(shí)參#賦值給int型形參b,會(huì)產(chǎn)生編譯錯(cuò)誤。“func(5,,9);”是錯(cuò)誤的,調(diào)用時(shí)給出的實(shí)參應(yīng)該是連續(xù)排列的。95.類聲明的內(nèi)容用花括號(hào)括起來(lái),在花括號(hào)后跟哪個(gè)符號(hào)表示類聲明結(jié)束()A、:B、;C、,D、.答案:B解析:類所有聲明的內(nèi)容用花括號(hào)括起來(lái),右花括號(hào)后的分號(hào)(即;)作為類聲明語(yǔ)句的結(jié)束標(biāo)志。96.設(shè)存在函數(shù)intmin(int,int)返回兩參數(shù)中較小值,若求15,26,47三者中最小值,下列表達(dá)式中錯(cuò)誤的是()A、intm=min(min(15,26),min(15,47));B、intm=min(15,26,47);C、intm=min(15,min(47,26));D、intm=min(min(47,26),16);答案:B解析:函數(shù)的使用中參數(shù)的類型與個(gè)數(shù)應(yīng)與聲明中保持一致。函數(shù)形參只有兩個(gè)參數(shù),B選項(xiàng)傳遞了3個(gè)參數(shù),故錯(cuò)誤。97.適宜采用inline定義函數(shù)情況是()A、函數(shù)體含有循環(huán)語(yǔ)句B、函數(shù)體含有switch語(yǔ)句C、函數(shù)代碼多,不常調(diào)用D、函數(shù)代碼少,頻繁調(diào)用答案:D解析:定義內(nèi)聯(lián)函數(shù)時(shí)只需在函數(shù)頭返回值類型的前面加上關(guān)鍵字inline。內(nèi)聯(lián)函數(shù)的適用情況:只有幾條語(yǔ)句,且頻繁調(diào)用的小函數(shù)。故本題選D。98.下列表達(dá)式,能將P聲明為指向常量的指針的是()A、constint*P;B、int*constP;C、constint*constP;D、int*P;答案:A解析:C++語(yǔ)言也可以使用const限定訪問(wèn)權(quán)限,const修飾指針變量時(shí),基本含義如下:

1)如果唯一的const位于符號(hào)*的左側(cè),表示指針?biāo)笖?shù)據(jù)是常量,數(shù)據(jù)不能通過(guò)本指針改變,但可以通過(guò)其他方式進(jìn)行修改;指針本身是變量,可以指向其他的內(nèi)存單元。

2)如果唯一的const位于符號(hào)*的右側(cè),表示指針本身是常量,不能讓該指針指向其他內(nèi)存地址;指針?biāo)傅臄?shù)據(jù)可以通過(guò)本指針進(jìn)行修改。

3)在符號(hào)*的左右各有一個(gè)const時(shí),表示指針和指針?biāo)笖?shù)據(jù)都是常量,既不能讓指針指向其他地址,也不能通過(guò)指針修改所指向的內(nèi)容。本題要聲明“指向常量的指針”,即所指數(shù)據(jù)是常量,故const在左側(cè),選A。99.下列訪問(wèn)成員的方式哪個(gè)是正確的()A、對(duì)象名.對(duì)象成員名B、對(duì)象指針名.對(duì)象成員名C、對(duì)象名->對(duì)象成員名D、類名->對(duì)象成員名答案:A解析:定義了類和對(duì)象后,就可以訪問(wèn)對(duì)象的成員。通過(guò)對(duì)象訪問(wèn)成員變量的一般格式如下:對(duì)象名.成員變量名故本題選A。還可以使用指針或引用的方式來(lái)訪問(wèn)類成員。如果是通過(guò)指針訪問(wèn)成員變量,則點(diǎn)運(yùn)算符.換為箭頭運(yùn)算符->,即使用“指針->成員名”的方式來(lái)訪問(wèn)對(duì)象的成員。故BCD錯(cuò)誤。100.關(guān)于類和對(duì)象不正確的說(shuō)法是()A、類是一種類型,它封裝了數(shù)據(jù)和操作B、對(duì)象是類的實(shí)例C、一個(gè)類的對(duì)象只有一個(gè)D、一個(gè)對(duì)象必屬于某個(gè)類答案:C解析:對(duì)象就是一類物體的實(shí)例,將一組對(duì)象的共同特征抽象出來(lái),從而形成“類”的概念。一個(gè)類的對(duì)象可以有很多,因此C項(xiàng)錯(cuò)誤。101.在類外定義成員函數(shù)時(shí),::運(yùn)算符兩側(cè)分別連接()A、返回值類型函數(shù)名B、返回值類型類名C、函數(shù)名類名D、類名函數(shù)名答案:D解析:類體外函數(shù)定義的前面必須用“類名::”來(lái)限定,格式如下:返回值類型類名::成員函數(shù)名(參數(shù)列表)

{

成員函數(shù)的函數(shù)體

}102.若Test類中的一個(gè)成員函數(shù)set的說(shuō)明如下:voidset(Test&a);,則Test&a的含義是()A、指向類Test的名為a的指針B、a是Test的對(duì)象引用,用來(lái)作函數(shù)set()的形參C、將a的地址賦給變量setD、變量Test與a按位與的結(jié)果作為函數(shù)set()的參數(shù)答案:B解析:首先,Test&a是函數(shù)set()的形參,根據(jù)引用的語(yǔ)法形式,a是一個(gè)引用,它的類型是Test&,也就是說(shuō),a是類Test的對(duì)象的引用。故本題選B。

set是函數(shù)名,不是變量名。符號(hào)&表示引用,不是按位與。103.關(guān)于封裝,下列說(shuō)法中不正確的是()A、通過(guò)封裝,對(duì)象的全部屬性和操作結(jié)合在一起,形成一個(gè)整體B、通過(guò)封裝,一個(gè)對(duì)象的實(shí)現(xiàn)細(xì)節(jié)被盡可能地隱藏起來(lái)C、通過(guò)封裝,每個(gè)對(duì)象都成為相對(duì)獨(dú)立的實(shí)體D、通過(guò)封裝,對(duì)象的屬性都是不可見(jiàn)的答案:D解析:通過(guò)封裝,數(shù)據(jù)和操作數(shù)據(jù)的函數(shù)緊密聯(lián)系起來(lái);還可以將對(duì)象的一部分屬性和函數(shù)隱藏起來(lái),讓這部分屬性和函數(shù)對(duì)外不可見(jiàn),而留下另一些屬性和函數(shù)對(duì)外可見(jiàn),作為對(duì)對(duì)象進(jìn)行操作的接口。故D錯(cuò)誤,只有部分不可見(jiàn)。封裝特點(diǎn):將對(duì)象的屬性及實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái),只給出如何使用的信息。故B正確。封裝將對(duì)象屬性和操作結(jié)合在一起,構(gòu)成獨(dú)立的單元。故A,C正確。104.布爾類型標(biāo)識(shí)符是()A、voidB、shortC、longD、bool答案:D解析:布爾類型標(biāo)識(shí)符是bool。如果函數(shù)沒(méi)有返回值,那么應(yīng)聲明為void類型。short短整型。long長(zhǎng)整型。105.cout是C++的()A、關(guān)鍵字B、對(duì)象C、類D、運(yùn)算符答案:B解析:C++類中對(duì)象:

cin:運(yùn)算符為>>,用于鍵盤輸入。cout:運(yùn)算符為<<,用于屏幕輸出。故cout是對(duì)象。選B。106.下列不屬于C++關(guān)鍵字的是()A、externB、gotoC、freeD、default答案:C解析:

extern、goto、default是C++關(guān)鍵字。free不是C++關(guān)鍵字。107.下列哪個(gè)類型的函數(shù)適合聲明為內(nèi)聯(lián)函數(shù)()A、函數(shù)體語(yǔ)句較多B、函數(shù)體語(yǔ)句較少C、函數(shù)體內(nèi)含有循環(huán)D、函數(shù)體內(nèi)含有switch語(yǔ)句答案:B解析:內(nèi)聯(lián)函數(shù)一般來(lái)說(shuō)僅適用于只有幾條語(yǔ)句的小函數(shù)。所以函數(shù)體語(yǔ)句較多的函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)。含有循環(huán)語(yǔ)句和switch語(yǔ)句的函數(shù),也不定義為內(nèi)聯(lián)函數(shù)。108.若有以下的定義:inta=100,*p=&a;,則下列選項(xiàng)中,表述錯(cuò)誤的是()A、聲明變量p,其中*表示p是一個(gè)指針變量B、變量p經(jīng)初始化,獲得變量a的地址C、變量p只可以指向一個(gè)整型變量D、變量p的值為100答案:D解析:指針p指向整型變量a,p中保存a的地址,而不是值100。p指向的地址中的值是100。故D錯(cuò)誤。注意:地址與地址中的值不要混淆。109.下列哪種默認(rèn)參數(shù)的聲明是不正確的()A、intmax(inta,intb,intc,intd=0);B、intmax(inta,intb,intc=0,intd=0);C、intmax(inta=0,intb,intc=0,intd=0);D、intmax(inta,intb=0,intc=0,intd=0);答案:C解析:調(diào)用函數(shù)時(shí),主調(diào)函數(shù)的實(shí)參與被調(diào)函數(shù)的形參按從左至右的順序進(jìn)行匹配對(duì)應(yīng)??傊x函數(shù)時(shí),只能為函數(shù)最后面的連續(xù)若干個(gè)參數(shù)設(shè)置默認(rèn)值,且在調(diào)用處也只能缺省后面的連續(xù)若干個(gè)實(shí)參。故只有C不符合在最后面連續(xù)設(shè)置默認(rèn)值。110.按照標(biāo)識(shí)符的要求,不能組成標(biāo)識(shí)符的符號(hào)是()A、連接符B、下劃線C、大小寫字母D、數(shù)字字符答案:A解析:標(biāo)識(shí)符命名規(guī)則:字母、數(shù)字和下劃線的組合,大小寫敏感,但不能以數(shù)字開(kāi)頭,也不能和系統(tǒng)中使用的關(guān)鍵字完全相同。故不包括A。111.對(duì)于int*pa[5];的描述中,正確的是()A、pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素B、pa是一個(gè)指向某數(shù)組中第5個(gè)元素的指針,該元素是int型變量C、pa[5]表示數(shù)組的第5個(gè)元素的值,是int型的值D、pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針答案:D解析:int*pa[5]中pa是一個(gè)具有5個(gè)元素的指針數(shù)組,每個(gè)元素是一個(gè)int型指針。int(*pa)[5]中pa是一個(gè)指向數(shù)組的指針,所指向的數(shù)組是5個(gè)int型元素。112.下列不是C++語(yǔ)言的基本數(shù)據(jù)類型的是()A、字符類型B、整數(shù)類型C、邏輯類型D、枚舉類型答案:D解析:C++的基本數(shù)據(jù)類型:bool布爾型(又稱邏輯型)

char字符型

int整型

float浮點(diǎn)型

double雙精度浮點(diǎn)型故不包括D。113.假定指針變量p定義為"int*p=newint(100);",要釋放p所指向的動(dòng)態(tài)內(nèi)存,應(yīng)使用語(yǔ)句()A、deletep;B、delete*p;C、delete&p;D、delete[]p;答案:B解析:如果是使用new運(yùn)算符動(dòng)態(tài)分配了一個(gè)數(shù)組,那么釋放該數(shù)組時(shí),語(yǔ)句如下:delete[]指針;故本題選D。114.若二維數(shù)組y有m列,則位于y[i][j]之前的元素?cái)?shù)量是()A、j*m+iB、i*m+jC、i*m+j-1D、i*m+j+1答案:B解析:二維數(shù)組y有m列,即每行有m個(gè)元素。y[i][j]前面的元素有前i行i*m個(gè)元素再加上第i行第j列前面的j個(gè)元素,一共i*m+j個(gè)元素。115.在函數(shù)調(diào)用時(shí),如某一默認(rèn)參數(shù)要指明一個(gè)特定值,則有()A、其之前所有參數(shù)都必須賦值B、其之后所有參數(shù)都必須賦值C、其前、后所有參數(shù)都必須賦值D、其前、后所有參數(shù)都不必賦值答案:A解析:定義函數(shù)時(shí),只能為函數(shù)最后面的連續(xù)若干個(gè)參數(shù)設(shè)置默認(rèn)值,且在調(diào)用處也只能缺省后面的連續(xù)若干個(gè)實(shí)參。調(diào)用函數(shù)時(shí),主調(diào)函數(shù)的實(shí)參與被調(diào)函數(shù)的形參按從左至右的順序進(jìn)行匹配對(duì)應(yīng)。故默認(rèn)值前的實(shí)參必須都賦值。選A。116.關(guān)于new運(yùn)算符的下列描述中,錯(cuò)誤的是()A、它可以用來(lái)動(dòng)態(tài)創(chuàng)建對(duì)象和對(duì)象數(shù)組B、使用它創(chuàng)建的對(duì)象或?qū)ο髷?shù)組可以使用運(yùn)算符delete刪除C、使用它創(chuàng)建對(duì)象時(shí)要調(diào)用構(gòu)造函數(shù)D、使用它創(chuàng)建對(duì)象數(shù)組時(shí)必須指定初始值答案:D解析:使用“類名*對(duì)象指針名=new類名;”創(chuàng)建對(duì)象時(shí),調(diào)用無(wú)參的構(gòu)造函數(shù)。如果這個(gè)構(gòu)造函數(shù)是由編譯器為類提供的,則類中成員變量不進(jìn)行初始化。使用“類名*對(duì)象指針名=new類名();”創(chuàng)建對(duì)象時(shí),也調(diào)用無(wú)參的構(gòu)造函數(shù)。如果這個(gè)構(gòu)造函數(shù)是由編譯器為類提供的,則對(duì)類中的成員變量進(jìn)行初始化。故創(chuàng)建對(duì)象都要調(diào)用構(gòu)造函數(shù),但不一定都指定初始值。故D錯(cuò)誤,C正確。在C++語(yǔ)言中,使用new運(yùn)算符實(shí)現(xiàn)動(dòng)態(tài)內(nèi)存分配??梢詣?chuàng)建對(duì)象和對(duì)象數(shù)組。使用new創(chuàng)建的對(duì)象,必須用delete來(lái)撤銷。故A、B正確117.編寫C++程序一般需經(jīng)過(guò)的幾個(gè)步驟依次是()A、編輯、調(diào)試、編譯、連接B、編譯、調(diào)試、編輯、連接C、編譯、編輯、連接、運(yùn)行D、編輯、編譯、連接、運(yùn)行答案:D解析:用C++語(yǔ)言寫成的程序稱為源程序,源程序必須經(jīng)過(guò)C++編譯程序翻譯成機(jī)器語(yǔ)言才能執(zhí)行。一般需要經(jīng)過(guò)編輯、編譯、連接、運(yùn)行。118.存儲(chǔ)以下數(shù)據(jù),占用存儲(chǔ)字節(jié)最多的是()A、0B、'0'C、"0"D、0.0答案:D解析:整型通常將8位的塊作為一個(gè)字節(jié),32位或4個(gè)字節(jié)作為一個(gè)字(word)。一般float用一個(gè)字(32位)來(lái)表示。double類型用兩個(gè)字(64位來(lái)表示),longdouble類型用三個(gè)或四個(gè)字(96或128位)來(lái)表示。A為整型,B為字符,C為字符串,D為小數(shù),為double類型,因此占用字符字節(jié)最多。119.下列哪個(gè)類型函數(shù)不適合聲明為內(nèi)聯(lián)函數(shù)()A、函數(shù)體語(yǔ)句較多B、函數(shù)體語(yǔ)句較少C、函數(shù)執(zhí)行時(shí)間較短D、函數(shù)被頻繁調(diào)用答案:A解析:內(nèi)聯(lián)函數(shù)主要應(yīng)用于代碼量少的函數(shù),編譯時(shí),編譯程序?qū)⒄麄€(gè)函數(shù)體的代碼復(fù)制到調(diào)用該函數(shù)的位置,而不會(huì)編譯成函數(shù)調(diào)用的指令。故對(duì)于代碼量較大的函數(shù),如果將其定義為內(nèi)聯(lián)函數(shù),則增加的程序長(zhǎng)度對(duì)時(shí)空效率的不利影響很大。故內(nèi)聯(lián)函數(shù)一般來(lái)說(shuō)僅適用于只有幾條語(yǔ)句的小函數(shù)。答案為A。120.使用string.h庫(kù)操縱字符串時(shí),將兩個(gè)字符串連接成一個(gè)字符串的函數(shù)是()A、strlen()B、strcap()C、strcat()D、strcmp()答案:C解析:strcat():用于連接字符串。strlen():返回字符串的長(zhǎng)度。strcmp():比較兩個(gè)字符串的大小。不存在strcap()。故本題選C。121.如果有intx,*p;floaty,*q;則下面操作中,正確的是()A、p=xB、p=qC、p=&xD、p=&y答案:C解析:C選項(xiàng),指針變量p指向整型變量×,正確。122.對(duì)于new類型名[size]描述正確的是()A、申請(qǐng)可以存儲(chǔ)size個(gè)字節(jié)的空間B、申請(qǐng)可以存儲(chǔ)1個(gè)該數(shù)據(jù)類型的空間C、申請(qǐng)可以存儲(chǔ)size個(gè)該數(shù)據(jù)類型對(duì)象的空間D、申請(qǐng)可以存儲(chǔ)1個(gè)字節(jié)的空間答案:C解析:使用new運(yùn)算符還可以動(dòng)態(tài)分配一個(gè)任意大小的數(shù)組:p=newT[N];

其中,T是任意類型名,p是類型為T*的指針,N代表數(shù)組“元素個(gè)數(shù)”。這條語(yǔ)句動(dòng)態(tài)分配了N*sizeof(T)個(gè)字節(jié)的內(nèi)存空間。即new類型名[size]//申請(qǐng)可以存儲(chǔ)size個(gè)該數(shù)據(jù)類型的對(duì)象。選C。123.關(guān)于對(duì)象性質(zhì),下列描述錯(cuò)誤的是()A、同一類對(duì)象之間不可相互賦值B、可以使用對(duì)象數(shù)組C、對(duì)象可以用作函數(shù)參數(shù)D、一個(gè)對(duì)象可以用作另一個(gè)類的成員答案:A解析:對(duì)象是類的一個(gè)具象,類是對(duì)象的一個(gè)抽象。同一類的對(duì)象之間可以相互賦值。故A錯(cuò)誤。124.采用重載函數(shù)的目的是()A、實(shí)現(xiàn)共享B、減少空間C、提高速度D、使用方便,提高可讀性答案:D解析:有了函數(shù)重載機(jī)制,C++程序員在編寫程序時(shí),可以對(duì)完成類似功能的不同函數(shù)統(tǒng)一命名,可以有效重用代碼,增加可讀性。故本題選D。

針對(duì)同名的函數(shù),分別為其編寫函數(shù)體,即可實(shí)現(xiàn)各自的功能。125.不能作為函數(shù)重載的判斷依據(jù)的是()A、constB、返回類型C、參數(shù)個(gè)數(shù)D、參數(shù)類型答案:B解析:實(shí)現(xiàn)函數(shù)的重載必須滿足下列條件之一:

(1)參數(shù)表中對(duì)應(yīng)的參數(shù)類型不同。

(2)參數(shù)表中參數(shù)個(gè)數(shù)不同。用const修飾傳遞參數(shù),意思是通知函數(shù),它只能使用參數(shù)而無(wú)權(quán)修改它,可以作為函數(shù)重載的判斷依據(jù)。返回類型不能作為函數(shù)重載的依據(jù)。故本題選B。126.在C++中使用流進(jìn)行輸入輸出,其中專用于從鍵盤進(jìn)行輸入的流是()A、cerrB、cinC、coutD、cfile答案:B解析:C++類中對(duì)象:

cin:運(yùn)算符為>>,用于鍵盤輸入。

cout:運(yùn)算符為<<,用于屏幕輸出。故本題選B。127.對(duì)C++中主函數(shù)描述正確的是()A、名稱為main,可為多個(gè)B、名稱不限,可為多個(gè)C、名稱為main,必須有且只能有一個(gè)D、名稱不限,必須有且只能有一個(gè)答案:C解析:C++程序以.cpp作為文件擴(kuò)展名,文件中包含若干個(gè)類和若干個(gè)函數(shù)。程序中必須有且僅有一個(gè)主函數(shù)main(),這是程序執(zhí)行的總?cè)肟凇?28.使用重載函數(shù)的目的是()A、共享函數(shù)數(shù)據(jù)B、減少代碼量C、優(yōu)化運(yùn)行效率D、提高可讀性答案:D解析:函數(shù)重載,是指在程序的同一范圍內(nèi)聲明幾個(gè)功能類似的同名函數(shù)。使用同一個(gè)函數(shù)名作為功能一樣的函數(shù)的函數(shù)名,這也符合人們的習(xí)慣。針對(duì)同名的函數(shù),分別為其編寫函數(shù)體,即可實(shí)現(xiàn)各自的功能。故使用其可提高代碼可讀性。選D。129.所謂數(shù)據(jù)封裝就是將一組數(shù)據(jù)和與這組數(shù)據(jù)有關(guān)操作組裝在一起,形成一個(gè)實(shí)體,這實(shí)體也就是()A、類B、對(duì)象C、函數(shù)體D、數(shù)據(jù)塊答案:A解析:面向?qū)ο蠓椒ㄖ械念悾菏菍?duì)具有相同屬性和行為的同一類對(duì)象的抽象描述。故封裝將對(duì)象屬性和操作結(jié)合在一起,構(gòu)成獨(dú)立的單元,即實(shí)體。故本題選A。130.以下敘述中不正確的是()A、在一個(gè)函數(shù)中,可以有多條return語(yǔ)句B、函數(shù)的定義不能嵌套,但函數(shù)的調(diào)用可以嵌套C、函數(shù)必須有返回值D、不同的函數(shù)中可以使用相同名字的變量答案:C解析:函數(shù)都需要由類型說(shuō)明。intmain()指出main是整數(shù)類型,返回值由return后面的表達(dá)式?jīng)Q定,且表達(dá)式的值必須與聲明函數(shù)的類型一致。如果函數(shù)不需要返回值,還可用void標(biāo)識(shí)。故C錯(cuò)誤,函數(shù)可以沒(méi)有返回值。131.對(duì)指針動(dòng)態(tài)分配空間用的關(guān)鍵字是()A、defineB、intC、newD、float答案:C解析:在C++語(yǔ)言中,使用new運(yùn)算符實(shí)現(xiàn)動(dòng)態(tài)內(nèi)存分配。例如,可以寫如下的語(yǔ)句:

p=newT;故本題選C。B、D都是基本數(shù)據(jù)類型。132.考慮函數(shù)原型voidtest(inta,intb=7,charch='*'),下面的函數(shù)調(diào)用中,屬于不合法調(diào)用的是()A、test(5)B、test(5,8)C、test(6,'#')D、test(0,0,'*')答案:C解析:在C++語(yǔ)言中,可以在聲明函數(shù)時(shí)為形參指定默認(rèn)值。當(dāng)調(diào)用有默認(rèn)參數(shù)值的函數(shù)時(shí),調(diào)用語(yǔ)句中可以不給出對(duì)應(yīng)的實(shí)參,這就相當(dāng)于調(diào)用該函數(shù)時(shí)以默認(rèn)值作為參數(shù)。調(diào)用函數(shù)時(shí),主調(diào)函數(shù)的實(shí)參與被調(diào)函數(shù)的形參按從左至右的順序進(jìn)行匹配對(duì)應(yīng)。C選項(xiàng)中,實(shí)參有2個(gè),少于形參的個(gè)數(shù)3,故從左至右匹配,將會(huì)把字符型實(shí)參#賦值給整型形參b,則會(huì)產(chǎn)生編譯錯(cuò)誤。故選C。133.對(duì)使用關(guān)鍵字new所開(kāi)辟的動(dòng)態(tài)存儲(chǔ)空間,釋放時(shí)必須使用()A、freeB、createC、deleteD、release答案:C解析:使用new運(yùn)算符動(dòng)態(tài)申請(qǐng)的內(nèi)存空間,需要在使用完畢釋放。C++提供了delete運(yùn)算符,用來(lái)釋放動(dòng)態(tài)分配的內(nèi)存空間。delete運(yùn)算符的基本用法如下:

delete指針;134.若有以下標(biāo)志符定義:charc=’c’;inta=4;floatf=3.14;doubled=1.212;則表達(dá)式c+a/(int)d+f的結(jié)果類型是()A、floatB、charC、intD、double答案:D解析:當(dāng)不同類型的量進(jìn)行混合算術(shù)運(yùn)算時(shí),系統(tǒng)自動(dòng)進(jìn)行合理的類型轉(zhuǎn)換,編譯器就會(huì)自動(dòng)把低級(jí)類型向高級(jí)類型轉(zhuǎn)換。數(shù)據(jù)類型級(jí)別由低到高分別為:char→int→float→double。轉(zhuǎn)換時(shí)由低級(jí)別向高級(jí)別轉(zhuǎn)換。會(huì)自動(dòng)提升為參與表達(dá)式求值的最上級(jí)類型double。故本題選D。也可以在程序中使用強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:static_cast或const_cast。135.C++中注釋“//”的有效范圍是()A、從“//”開(kāi)始到行尾B、從“//”開(kāi)始到下一個(gè)“//”C、“//”及其后一個(gè)字符D、從“//”開(kāi)始到程序尾答案:A解析:C++程序中,仍沿用C語(yǔ)言的注釋風(fēng)格,即注釋有以下兩種形式。

1)從/*開(kāi)始,到*/結(jié)束,這之間的所有內(nèi)容都視作注釋。

2)從//直到行尾,都是注釋。故本題選A。136.下面不能夠判斷字符串S是空串的是()A、if(S[0]==0)B、if(strlen(S)==0)C、if(strcmp(S,"")==0)D、if(S=='\0')答案:D解析:S字符串的第一個(gè)字符,即S[0]=0,說(shuō)明S是空串,A正確。系統(tǒng)函數(shù)strlen()表示字符串S的長(zhǎng)度,若等于0,則判斷字符串S是空串,B正確。系統(tǒng)函數(shù)strcmp()表示比較兩個(gè)字符串,若相等,返回0,故strcmp(S,"")==0可以判斷字符串S是空串,C正確。S=='\0'這個(gè)表達(dá)式左邊是字符串,右邊是字符,顯然是非法的,如果改寫成if(S=="\0")就可以判斷字符串S是否是空串。故D錯(cuò)。137.關(guān)于對(duì)類的描述中,錯(cuò)誤的是()A、類是創(chuàng)建對(duì)象的

溫馨提示

  • 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)論